Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Ako mvvmcross.plugin.ble manipuluje s asynchrónnymi hovormi BLE inak od plugin.ble


Ako mvvmcross.plugin.ble manipuluje s asynchrónnymi hovormi BLE inak od plugin.ble


Mvvmcross.plugin.ble a plugin.By obaja manipulujú s asynchrónnymi hovormi BLE, ale líšia sa vo svojom prístupe k riadeniu týchto hovorov a integrácii s rámcom MVVMCross.

mvvmcross.plugin.ble

1. Injekcia závislosti: mvvmcross.plugin.Be používa systém injekcie závislosti MVVMCross na riadenie inštancií `ibluetoothle` a` iadapter`. Sú registrované ako lenivé initializované singletony, čo ich umožňuje podľa potreby vyriešiť a vstreknúť do zobrazenia modelov alebo iných komponentov [1].

2. Registrácia služieb: Plugin tieto služby zaregistruje, aby k nim ľahko pristupovali v celej aplikácii. Toto zjednodušuje proces získania adaptéra Bluetooth alebo riadenia operácií Bluetooth v aplikácii [1].

3. Výnimočná manipulácia: Zatiaľ čo mvvmcross.plugin.ble výslovne nezaoberá asynchrónnymi výnimkami inak, odporúča sa obklopiť volania BLE s blokovými blokmi z dôvodu potenciálu výnimiek, najmä na Android [1].

4. Integrácia s MVVMCross: Plugin je navrhnutý tak, aby bezproblémovo pracoval s MVVMCross, čo umožňuje ľahkú integráciu do aplikácií založených na MVVMCross. To zahŕňa podporu funkcií, ako je obnovenie štátu a režimy pozadia na iOS [1].

plugin.ble

1. Priamy prístup: Plugin.ble poskytuje priamy prístup k funkciám Bluetooth bez potreby injekcie závislosti. Používatelia majú jednoducho prístup k inštancii „crossbluetoothle.current“ na správu operácií Bluetooth [2].

2. Async operácie: Plugin.Ble podporuje asynchrónne operácie, ako je pripojenie k zariadeniam, charakteristiky čítania/písania a oznámenia o manipulácii. Vyžaduje si však starostlivé riadenie týchto asynchrónnych hovorov, aby sa predišlo problémom, ako sú chyby GATT v systéme Android [2].

3. Výnimočná manipulácia: Plugin.Be zdôrazňuje dôležitosť okolitých asynchrvných volaní s blokmi skúšok, aby sa zvládli výnimky, ktoré sa môžu vyskytnúť počas operácií. To je rozhodujúce v dôsledku nepredvídateľnej povahy interakcií BLE [2].

4. Všeobecné osvedčené postupy: Doplnok podporuje osvedčené postupy, ako je napríklad vyhýbanie sa súbežným operáciám BLE pri skenovaní, zastavenie skenov po nájdení požadovaného zariadenia, a nie charakteristiky vyrovnávacej pamäte alebo servisné inštancie medzi pripojeniami [2].

Kľúčové rozdiely

- Vstrekovanie závislosti: MVVMCross.plugin.ble používa injekciu závislosti, čo zjednodušuje správu služieb v aplikáciách MVVMCross, zatiaľ čo plugin.ble to nevyžaduje.
- Integrácia: mvvmcross.plugin.ble je špeciálne navrhnutá pre aplikácie MVVMCross, poskytujúca integráciu s jeho funkciami, zatiaľ čo plugin.ble je všestrannejšia a dá sa použiť v ľubovoľnom projekte Xamarin alebo Maui.
- Správa async hovorov: Oba doplnky vyžadujú starostlivé riadenie asynchrvných hovorov, ale MVVMCross.plugin.ble sa spolieha na správu služieb MVVMCross, čo potenciálne zjednodušuje spracovanie chýb v štruktúrovanom rámci.

Stručne povedané, zatiaľ čo obidva doplnky manipulujú s asynchrónnymi volaniami BLE podobne, pokiaľ ide o vyžadovanie starostlivého riadenia a manipulácie s výnimkou, MVVMcross.plugin.ble úzko integruje s rámcom MVVMCross, využívajúc jeho injekciu závislosti a funkcie riadenia služieb.

Citácie:
[1] https://www.nuget.org/packages/mvvmcross.plugin.ble/
[2] https://www.nuget.org/packages/plugin.ble/
[3] https://stackoverflow.com/questions/36522920
[4] https://www.youtube.com/watch?v=sfgulskeoee
[5] https://www.reddit.com/r/dotnet/comments/1bds6rj/why_there_is_no_good_crossplatform_bluetooth/
[6] https://github.com/xabre/xamarin-bluetooth-le/issues/524
[7] https://stackoverflow.com/questions/69735708/xamarin-plugin-cle-why-data-read-aesnt-avan
[8] https://learn.microsoft.com/en-us/answers/questions/2101489/using-plugin-ble-to-connect-connect-reconnect-to-conect-to-ble-devimic