الروبوت بليه، القراءة والكتابة الخصائص
-
20-12-2019 - |
سؤال
أقوم حاليًا بتطوير Android BLE، وأواجه الكثير من المشكلات مع مجموعات Android BLE.
أداة التطوير الخاصة بي هي Samsung Galaxy J الذي يعمل بنظام Android 4.3.
أريد أن أعرف كيف يمكنني قراءة الخصائص من بليه وكتابة الخصائص (مثل التحقق من البيانات التي تلقيتها، ثم إرسال بيانات أخرى باستخدام بليه)
ولدي مشكلة خطيرة في فهم كيفية عمل عمليات الاسترداد التي تعمل بنظام Android Ble ، لا أفهم هذه الوظائف الخمس ... والدليل غير واضح ، هل يمكن لأي شخص أن يشرح بشكل جيد في شكل بسيط ؟؟؟
onCharacteristicWrite
onCharacteristicRead
onCharacteristicChanged
onDescriptorRead
onDescriptorWrite
وضعي الحالي هو أنني تمكنت من قراءة البيانات في رد الاتصال onCharacteristicChanged() ثم تحققت من استلام البيانات التي أحاول إرسالها باستخدام
characteristics.setValue(data)
gatt.writeCharacteristic(characteristics)
لكن مكدس Android BLE لا يتصل بـCharacteristicsWrite() وفي الواقع، Android معلق هناك..
أحاول البحث في Google عن Android BLE، ولا يوجد الكثير من المعلومات ولا توجد سوى مجموعة من الشكاوى حول مدى عدم استقرار مكدسات BLE......
المحلول
كل من ردود اتصال من Android Ble لديه وظائفه؛
ondescriptorread وكتابة ondescriptorrite
يستخدم هذا لكتابة / قراءة إعدادات التكوين للجهاز BLE، قد تتطلب بعض المصنوعات إرسال بعض البيانات إلى الجهاز BLE واعترف بها بالقراءة، قبل أن تتمكن من الاتصال بجهاز BLE
oncharacteristicwrite
يستخدم هذا لإرسال البيانات إلى الجهاز BLE، عادة في وضع البيانات للجهاز BLE. يتم استدعاء هذا الاتصال عند الكتابة
giveacodicetagpre.oncharacteristicread
يستخدم هذا لقراءة البيانات من الجهاز BLE يتم استدعاء الاتصال عند كتابة هذا الرمز
giveacodicetagpre.onfcharacteristicschanged
يتم استدعاء الاتصال عند محاولة إرسال البيانات باستخدام WriteCharacteristic (الخصائص) ويستجيب الجهاز BLE مع بعض القيمة.
عادة ما يكون جهاز بلي لديه خصائص قليلة، لجعلها بسيطة، أسمي بعض الخصائص
- الكتابة - خصائص الكتابة
- قراءة - قراءة الخصائص
لتتحد الأمر واضحا، عند إرسال البيانات، ستحتاج إلى استخدام الخصائص قوية ، عند استجابة تطبيق Android يستمد قراءة الخصائص
نقطة مهمة للغاية لملاحظة أن Android Ble Stack يتيح لك كتابة الخصائص واحدة في وقت واحد فقط
مثال: إذا حاولت استدعاء خصائص الكتابة مرتين في نفس الوقت
giveacodicetagpre.لن يصدر مكدس أندرويد BLE خصائص الكتابة الثانية!
نصائح أخرى
قبل setValue:characteristics.setValue(data)
يجب عليك استخدام gatt.setCharacteristicNotification(Char,true)
ل setNotification
.