mvvmcross.plugin.ble و plugin.ble كلا التعامل مع المكالمات غير المتزامنة ، لكنها تختلف في نهجها في إدارة هذه المكالمات والتكامل مع إطار MVVMCross.
mvvmcross.plugin.ble
1. حقن التبعية: MVVMCROSS.Plugin.ble يستخدم نظام حقن التبعية MVVMCROSS لإدارة مثيلات "ibluetoothle" و "Iadapter". يتم تسجيلها على أنها مسندات مسجلة كسول ، مما يسمح بحلها وحقنها في نماذج العرض أو المكونات الأخرى حسب الحاجة [1].
2. تسجيل الخدمة: يسجل البرنامج المساعد هذه الخدمات بحيث يمكن الوصول إليها بسهولة خلال التطبيق. هذا يبسط عملية الحصول على محول Bluetooth أو إدارة عمليات Bluetooth داخل التطبيق [1].
3. معالجة الاستثناء: في حين أن mvvmcross.plugin.ble لا يتعامل بشكل صريح من الاستثناءات غير المتزامنة بشكل مختلف ، يوصى بإحياء مكالمات BLE مع كتل المحاولة بسبب احتمال الاستثناءات ، وخاصة على Android [1].
4. التكامل مع MVVMcross: تم تصميم المكون الإضافي للعمل بسلاسة مع MVVMCross ، مما يسمح بسهولة التكامل في التطبيقات المستندة إلى MVVMCross. يتضمن ذلك دعمًا لميزات مثل ترميم الحالة وأنماط الخلفية على iOS [1].
Plugin.ble
1. الوصول المباشر: يوفر Plugin.ble الوصول المباشر إلى وظائف Bluetooth دون الحاجة إلى حقن التبعية. يمكن للمستخدمين ببساطة الوصول إلى مثيل `crossbluetoothle.current` لإدارة عمليات Bluetooth [2].
2. العمليات ASYNC: Plugin.ble يدعم العمليات غير المتزامنة مثل الاتصال بالأجهزة ، وقراءة/كتابة خصائص ، ومعالجة الإخطارات. ومع ذلك ، فإنه يتطلب إدارة دقيقة لهذه المكالمات غير المتزامنة لتجنب مشاكل مثل أخطاء GATT على Android [2].
3. معالجة الاستثناءات: المكون الإضافي. هذا أمر بالغ الأهمية بسبب الطبيعة التي لا يمكن التنبؤ بها للتفاعلات بلي [2].
4.
الاختلافات الرئيسية
- حقن التبعية: يستخدم mvvmcross.plugin.ble حقن التبعية ، مما يبسط إدارة الخدمة في تطبيقات MVVMcross ، في حين أن المكون الإضافي.
- التكامل: تم تصميم mvvvmcross.plugin.ble خصيصًا لتطبيقات MVVMCross ، مما يوفر التكامل مع ميزاته ، في حين أن المكون الإضافي.
- إدارة مكالمات ASYNC: تتطلب كلا الإضافات إدارة دقيقة لمكالمات ASYNC ، ولكن mvvmcross.plugin.ble تعتمد على إدارة خدمة MVVMCross ، مما قد يبسط معالجة الأخطاء في إطار منظم.
باختصار ، في حين أن كلا المكونات الإضافية تتعامل مع مكالمات BLE غير المتزامنة بالمثل من حيث طلب إدارة دقيقة ومعالجة استثناءات ، فإن mvvmcross.plugin.ble تدمج بشكل أكثر إحكاما مع إطار MVVMCross ، مما يستفيد من ميزات حقن التبعية وإدارة الخدمة.
الاستشهادات:[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=Sfgulskooee
[5]
[6] https://github.com/xabre/xamarin-luetooth-le/issues/524
[7] https://stackoverflow.com/questions/69735708/xamarin-plugin-ble-why-data-read-doesnt-ghnange
[8] https://learn.microsoft.com/en-us/answers/questions/2101489/using-plugin-ble-to-connect-neconnect-to-ble-devic