Palyginus mvvmcross.plugin.ble ir papildin.ble, abu naudojami norint pasiekti „Bluetooth Low Energy“ (BLE) funkcijas įvairiose platformose, tokiose kaip „Android“, „iOS“, „MacOS“ ir „Windows“. Tačiau jie tarnauja skirtingiems tikslams ir turi aiškų būdą tvarkyti BLE operacijas.
mvvmcross.plugin.ble
Šis papildinys yra specialiai sukurtas naudoti „MVVMCross“ sistemoje, tai yra kryžminio platformos MVVM sistema. Tai sklandžiai integruoja „BLE“ funkcionalumą į „MVVMCross“ programas, registruojant „iBluetoothle“ ir „iAdapter“ kaip tingus initializuotas singletons. Tai leidžia lengvai įpurškti ir išspręsti šias paslaugas „MVVMCross“ sistemoje.
Vienas iš pagrindinių „MVVMCross.plugin.ble“ naudojimo pranašumų yra jo integracija su „MVVMCross“ sistema, todėl lengviau valdyti BLE operacijas „MVVMCross“ programose. Tačiau iš prigimties nėra nagrinėjamos konkrečios problemos, kuriose „Pillin.ble“ gali nesielgti, nes ji remiasi „Publiin.ble“ pagrindinei BLE funkcijai.
papildinys.ble
** papildinys.Ble yra bendresnės paskirties BLE papildinys, kurį galima naudoti įvairiose .NET pagrįstose programose, įskaitant .NET Maui projektus. Tai pateikia kryžminio platformos API, skirtas BLE operacijoms, tačiau neapima MVVM specifinių funkcijų.
** „Pillin.ble“ turi keletą apribojimų, ypač „Android“, pavyzdžiui, reikalaujant, kad charakteristikų raštai būtų vykdomi pagrindiniame gijoje ir vykdo nuoseklios BLE komandų vykdymą, kad būtų išvengta GATT klaidų [2]. Be to, ji pataria nenaudoti talpyklos charakteristikų ar paslaugų atvejų tarp ryšio sesijų, kad būtų išvengta netinkamų nuorodų [2].
Konkrečios problemos, susijusios su mvvmcross.plugin.ble
Nors mvvmcross.plugin.ble iš prigimties neišsprendžia klausimų, kuriuos „Pillin.ble“ nenagrinėja, tai yra struktūrizuotas būdas valdyti BLE paslaugas „MVVMCross“ sistemoje. Tai gali padėti sušvelninti problemas, susijusias su paslaugų skiriamąja geba ir priklausomybės injekcija, kurios gali kilti naudojant „Pillin.ble“ tiesiogiai.
Pavyzdžiui, mvvmcross.plugin.ble padeda išvengti „NullreferenceException“ klausimų, užtikrinant, kad paslaugos būtų tinkamai užregistruotos ir išspręstos MVVMCross sistemoje [3]. Tačiau tai labiau susiję su integracija į sistemą, o ne spręsti konkrečius BLE funkcionalumo apribojimus.
Išvada
Apibendrinant galima pasakyti, kad mvvmcross.plugin.ble siūlo patogią BLE funkcionalumo integraciją į „MVVMCross“ programas, panaudojant papildinį.ble, skirtas pagrindinėms BLE operacijoms. Nors jis konkrečiai neištaiso klausimų, kurių „Pillin.ble“ nenagrinėja, jis pateikia struktūrizuotą metodą, kaip valdyti BLE paslaugas MVVMCROSS sistemoje. Jei kuriate programą, kuri naudoja „MvVMCross“, „Mvvmcross.plugin.ble“ yra geresnis pasirinkimas. Kitų tipų programoms, tokioms kaip .NET Maui projektai, „Pillin.ble“ gali būti tinkamesnės.
Citatos:[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://learn.microsoft.com/en-us/answers/questions/1518375/which-package-huld-itilie-for-bluetooth-low-e
[5] https://punchthrough.com/android-ble-guide/
[6] https://github.com/xabre/xamarin-bluetooth-le/issues/524
[7] https://stackoverflow.com/questions/38327176/xamarin-forms-plugins-ble-mvvmcross-plugins-ble
[8] https://github.com/dotnet-bluetooth-le/dotnet-bluetooth-le/issues/901