جدول المحتويات:

تحليل نظام Windows Bluetooth - نهج SensorTag: 7 خطوات (مع الصور)
تحليل نظام Windows Bluetooth - نهج SensorTag: 7 خطوات (مع الصور)

فيديو: تحليل نظام Windows Bluetooth - نهج SensorTag: 7 خطوات (مع الصور)

فيديو: تحليل نظام Windows Bluetooth - نهج SensorTag: 7 خطوات (مع الصور)
فيديو: مشكلة معظم الشباب❌ 2024, يوليو
Anonim
تحليل نظام Windows Bluetooth - نهج SensorTag
تحليل نظام Windows Bluetooth - نهج SensorTag

في ما يلي ، سأقوم بتحليل نظام التشغيل Windows (OS) من وجهة نظر الاتصال بأجهزة Bluetooth منخفضة الطاقة - في حالتنا مع أنواع مختلفة من SensorTags: Thunderboard React ، Thunderboard Sense (كلاهما من إنتاج Silicon Labs Company) و CC2650STK و CC2541DK (كلاهما تم تطويرهما بواسطة شركة Texas Instruments Company).

الخطوة 1: تحليل نظام Windows Bluetooth - نهج SensorTag

تحليل نظام Windows Bluetooth - نهج SensorTag
تحليل نظام Windows Bluetooth - نهج SensorTag

في ما يلي ، سأقوم بتحليل نظام التشغيل Windows (OS) من وجهة نظر الاتصال بأجهزة Bluetooth منخفضة الطاقة - في حالتنا مع أنواع مختلفة من SensorTags: Thunderboard React ، Thunderboard Sense (كلاهما من إنتاج Silicon Labs Company) و CC2650STK و CC2541DK (كلاهما تم تطويرهما بواسطة شركة Texas Instruments Company).

فيما يلي ، سأقوم بتحليل Windows 7 و Windows 8.1 وإصدارات Windows 10 التالية:

· تحديث الذكرى السنوية (تم إصداره في 2 أغسطس 2016 ؛ انتهاء الدعم: مبدئيًا في مارس 2018) ،

· تحديث منشئي المحتوى (تم إصداره في 5 أبريل 2017 ؛ انتهاء الدعم: مبدئيًا في سبتمبر 2018) و

· تحديث Fall Creators (تم إصداره في 17 أكتوبر 2017 ؛ انتهاء الدعم: مبدئيًا في مارس 2019).

سيتم التحليل من وجهات النظر التالية:

1. قدرة نظام التشغيل (OS) على الاقتران مع SensorTag ؛

2. القدرة على الحصول على بيانات الوصول العامة (هذه خدمة إلزامية) ؛

3. القدرة على الحصول على معلومات الجهاز (تعرض هذه الخدمة معلومات الشركة المصنعة و / أو البائع المتعلقة بـ SensorTag معين) ؛

4. القدرة على الحصول على بيانات SensorTag ، باستخدام نهج القراءة و

5. القدرة على الحصول على بيانات SensorTag ، باستخدام نهج الإخطار.

تم إجراء جميع الاختبارات باستخدام إصدار 9.7.8.0 من تطبيق جيدًا. تم إنشاء تطبيق بليتاجس بدعم من Windows SDK - Bluetoothapis. تم استخدام وظائف مثل BluetoothGATTGetCharacteristicValue أو BluetoothGATTGetDescriptorValue أو BluetoothGATTGetServices أو BluetoothGATTSetCharacteristicValue.

يمكن تنزيل هذا التطبيق ، تطبيقraceTags (BLE SensorTags) ، من تطبيقات متجر Windows: https://www.microsoft.com/store/apps/9p054xsjjr1n. لمزيد من المعلومات والعروض التوضيحية والتطبيقات العملية والأمثلة وما إلى ذلك ، يرجى زيارة المدونة التالية:

الخطوة 2: Windows 10 - Anniversary Update - الإصدار 1607

Image
Image

هذا الإصدار من نظام التشغيل Windows 10 هو الأفضل من وجهة نظر أجهزة Bluetooth منخفضة الطاقة. يمكنه الاقتران دون أي مشكلة مع جميع علامات SensorTags (بغض النظر عن إصدار البرنامج الذي يعمل عليها) ، والتي يعرف بها تطبيق جيدًا كيف يعمل (CC2650STK و Thunderboard React و Thunderboard Sense و CC2541DK) ، وجميع المعلومات من خدمات Bluetooth احصل على معلومات عامة يتم الحصول على الوصول والحصول على معلومات الجهاز دون أي مشكلة.

تحليل سرعة الحصول على البيانات (لأجهزة CC2650STK و CC2541DK) باستخدام آلية الإخطار والقراءة لنقل البيانات ، يمكننا ملاحظة ما يلي:

1. من خلال آلية الإخطار ، يمكننا الحصول على البيانات من جميع أجهزة الاستشعار (ثمانية) من 150 [مللي ثانية] إلى 150 [مللي ثانية] دون أي مشاكل ؛

2. بدلاً من ذلك ، عندما نضبط وقت الاستحواذ على 150 [مللي ثانية] ونستخدم آلية قراءة البيانات - في أسعد المواقف ، نحصل على 713 [مللي ثانية] وفي أسوأ الأحوال ، نحصل على 840 [مللي ثانية].

إذا قمنا بتحليل Thunderboard React و Thunderboard Sense ، فسنحصل على النتائج المكافئة - تعمل دون أي مشكلة في بيئة Windows 10 Anniversary Update.

في الواقع ، تم إعداد جميع أفلام العروض التقديمية للوظائف الرئيسية لتطبيق بليس وميزات محددة مختلفة (مثل الأدوات) بدعم من تحديث الذكرى السنوية لـ Windows 10.

الخطوة 3: Windows 10 - تحديث المنشئين - الإصدار 1703

ويندوز 7
ويندوز 7

يعد إصدار Creators Update لنظام التشغيل Windows 10 هو أسوأ نظام تشغيل (OS) من وجهة نظر أجهزة Bluetooth منخفضة الطاقة.

تقريبا لا شيء يعمل. أقرت Microsoft أن تحديث المبدعين كسر Bluetooth Low Energy (المرجع 1 والمرجع 2). وعدت شركة مايكروسوفت بإصلاح عاجل في أسرع وقت ممكن. ولكن منذ ذلك الحين أصدروا إصدارًا محدثًا من Windows (Fall Creators Update) ولم يحدث شيء - حتى الآن في إصدار Windows 10 Creators Update ، لا يزال Bluetooth Low Energy لا يعمل.

هناك عدد كبير من المنشورات في المنتديات حيث يشتكي مختلف الأشخاص من أنواع مختلفة من أجهزة Bluetooth التي تتوقف عن العمل بعد الترقية إلى Creators Update (انظر هنا ، انظر هنا ، انظر هنا ، انظر هنا وما إلى ذلك).

تم الحصول على النتائج ، التي سأعرضها على الفور ، بعد العديد من الاختبارات: (1) على جهاز كمبيوتر مكتبي به دونجل CSR4.0 Bluetooth USB (CSR8510 A10) و (2) على كمبيوتر محمول Dell Inspiron P66F مع جهاز بلوتوث مدمج LE. أعلم أن هناك العديد من الحلول على الإنترنت لإصلاح عدة أنواع من مشكلات Bluetooth. لقد جربت كل شيء تقريبًا ، ولكن لم يكن هناك شيء يعمل (تحديث برنامج تشغيل Bluetooth ، وتشغيل مستكشف أخطاء Windows ومصلحها ، وتعطيل الخدمات ذات الصلة بالبلوتوث وتمكينها ، إلخ.)

لذا ، فلنعرض النتائج:

1. CC2650STK:

أ. في إصدار البرنامج الثابت 1.40 ، من المستحيل إقران جهاز SensorTag مع Windows (كررت العملية عدة مرات ، على الأقل 8-10 مرات ، قمت بتشغيل Bluetooth وإيقاف تشغيله وحاولت مرة أخرى - كانت النتائج هي نفسها: كان من المستحيل أضف هذا الجهاز).

ب. في إصدار البرنامج الثابت 1.20 ، اكتشف الكمبيوتر SensorTag وتمكنت من إقران SensorTag مع الكمبيوتر.

أيضًا ، تمكنت من الحصول على بيانات الوصول العامة. ولكن ، في خدمة الحصول على معلومات الجهاز ، من بين 9 خصائص فقط استجابت 6 خصائص وكان من الممكن الحصول على المعلومات منها فقط.

بدلاً من ذلك ، لا يمكنني إعداد الجهاز ولا يمكنني استرداد البيانات من أجهزة الاستشعار إما من خلال آلية القراءة أو من خلال الإشعارات.

2. رد فعل Thunderboard:

يتسم نظام التشغيل بسلوك غريب عند بدء عملية الاقتران. في قائمة الأجهزة المكتشفة ، تظهر SensorTag وتختفي (مع فترة 1 … 1.5 ثانية). أخيرًا ، عندما تنجح نقرات الماوس على SensorTag ، تكتمل عملية الاقتران وتكون لمصابيح LED الموجودة في Thunderboard React (الأزرق والأخضر) فترة عندما تومض بشكل متتالي في وضع غير نمطي.

يمكن قراءة خصائص خدمة الوصول العام (0x1800) دون أي مشكلة ، ولكن تفشل القراءة من خدمة معلومات الجهاز (0x180A) في جميع الخصائص الأربع الموجودة.

إعداد المستشعرات (المضمنة في SensorTag) ، ووضع الحصول على البيانات (في Thunderboard React ، لديك فقط الاحتمال التالي: (1) للحصول على البيانات من خلال الإخطار من 3 أجهزة استشعار و (2) لقراءة البيانات من أجهزة الاستشعار الأربعة الأخرى) مستحيل. لذلك ، فإن استحالة الحصول على البيانات الفعلية من أجهزة الاستشعار تنتج مباشرة من هنا.

3. استشعار الرعد:

تم العثور على نفس عملية النبض ، التي لوحظت في Thunderboard React ، لتكون موجودة أيضًا في Thunderboard Sense - عندما نريد تحقيق عملية الاقتران. لكن الأمور هنا أسوأ: بعد الاقتران ، يتعذر على برنامج باركره اكتشاف SensorTag. لذلك ، لا يوجد جهاز نشط - لا يوجد أي كيان من حيث يقوم تطبيق بليتاغس بالحصول على البيانات.

4. CC2541DK:

السلوك مطابق لسلوك CC2650STK (إصدار البرنامج الثابت 1.40). في كل محاولة اتصال ، ستصلك رسالة الخطأ التالية: "حاول توصيل جهازك مرة أخرى".

لذلك ، في الختام ، ضمن هذا الإصدار من Windows 10 (Creators Update) ، من المستحيل التواصل مع أي من أنواع SensorTags الأربعة المشار إليها أعلاه. وبالتالي ، أذكر (مرة أخرى) أنني هنا استخدمت نفس إصدار البرنامج الذي استخدمته أيضًا في جميع الاختبارات التي أجريت على Windows 10 Anniversary Update.

الخطوة 4: Windows 10 - Fall Creators Update - الإصدار 1709

Image
Image

يعد هذا الإصدار من Windows 10 (1709 - OS Build 16299.19) خطوة كبيرة للأمام ، مقارنةً بتحديث Windows 10 Creators (لم يكن هناك أي شيء يعمل على BLE تقريبًا) ، ولكن لا يزال أمامه طريق طويل للوصول إلى مستوى Windows 10 Anniversary Update (1607) نظام تشغيل

لكن دعنا نرى لماذا أدليت بهذا البيان:

1. CC2650STK (إصدار البرنامج الثابت 1.40) و CC2541DK:

سأتعامل مع هذين الجهازين هنا في وقت واحد لأن سلوكهما المتعلق بنظام التشغيل Windows 10 (1709) مشابه.

تعمل عملية الاقتران والقراءة ، من الوصول العام وخدمات معلومات الجهاز ، بشكل مثالي دون أي نوع من المشاكل.

تحدث المشاكل فقط عندما نريد قراءة المعلومات من أجهزة الاستشعار. آلية نقل البيانات عبر الإخطارات لا تعمل إطلاقا.

الطريقة الوحيدة للحصول على البيانات من أجهزة الاستشعار ، المضمنة في SensorTag ، هي عن طريق آلية القراءة المباشرة من الجهاز. يحتوي هذا النهج على مشكلتين: (1) انخفاض سرعة نقل البيانات (كما أوضحنا أعلاه) و (2) إذا قبلت جميع المستشعرات إحدى طريقتين لنقل البيانات (من خلال القراءة والإخطار) ، يمكن أن تكون الأزرار الموجودة على SensorTag استجوابه فقط من خلال آلية الإخطار. بفضل هذه "الميزة" في نظام التشغيل Windows 10 (1709) ، يطبق تطبيقraceTags ، بدءًا من الإصدار 9.7.8.0 ، طريقة القراءة للحصول على البيانات أيضًا.

تظهر مشكلة في CC2650STK SensorTag التي تحتوي على إصدار البرنامج الثابت 1.20. إذا كانت عملية الاقتران وقراءة البيانات من خدمة Generic Access تعمل بشكل جيد للغاية ، فإن عملية القراءة من خدمات معلومات الجهاز غير ممكنة. علاوة على ذلك ، لا تعمل المستشعرات التي تقرأ (من SensorTag مع إصدار البرنامج الثابت هذا) من خلال أي من الآليتين المحتملتين (القراءة أو الإخطار).

2. رد فعل Thunderboard:

في نفس الوضع كما هو الحال في Windows 10 Creators Update ، تظهر SensorTag وتختفي عندما نريد إضافة جهاز Bluetooth جديد. يمكن تمييز نفس السلوك في مركز الإجراءات الموجود على زر الإجراء السريع الخاص بالبلوتوث "غير متصل" ويتم عرض "Thunderboard React" بشكل متكرر (يرجى مشاهدة هذه العملية في الفيلم التالي بدءًا من مؤشر الوقت 5.14 ثوانٍ). يمكننا أن نستنتج على الفور أن Thunderboard React مذنب ، ويرجع ذلك أساسًا إلى التنفيذ الخاطئ لآلية الإعلان بواسطة مهندسي Silicon Labs. ولكن عند البحث على الإنترنت ، سنلاحظ أن المستخدمين الآخرين أبلغوا عن نفس المشكلة لأنواع أخرى من أجهزة BLE ، بعد تثبيت Fall Creators تحديث - على سبيل المثال مشاهدة هذا الفيلم على موقع يوتيوب.

بعد إقران SensorTag ، لن يتمكن تطبيقraceTags من العثور على جهاز Thunderboard React. لذلك ، في هذه المرحلة ، لا شيء يعمل: الوصول العام وخدمات معلومات الجهاز أو الحصول على البيانات من المستشعرات المضمنة في Thunderboard React SensorTag.

3. استشعار الرعد:

الوضع المطلوب التصرف مشابه لوضع Thunderboard React. يتم عرض جهاز Bluetooth هذا ويختفي بشكل متكرر. عند نجاح عملية الاقتران ، من الممكن أخذ البيانات من خدمة الوصول العام. ولكن من هذه النقطة ، لا شيء يعمل بعد الآن.

في الختام ، حتى الآن في تحديث Windows 10 Fall Creators (1709 ، الإصدار 16229.19) تعمل فقط SensorTags التي تنتجها TI (CC2650STK و CC2541DK). أكثر ، إنهم يعملون فقط في وضع القراءة. لكن الانتباه! سيعمل فقط إصدار البرنامج الثابت CC2650STK 1.40 في هذا الوضع. لسوء الحظ ، عندما تشتري CC2650STK ، تكون لديك فرصة كبيرة جدًا لأخذ جهاز مع مراجعة البرامج الثابتة 1.20. لذا ، لكي تكون قادرًا على التواصل مع مثل هذا النوع من SensorTag ، فإن الترقية ضرورية على الأقل إلى إصدار البرنامج الثابت 1.40.

مقترنًا بهذه الخطوة ، أقدم فيلمًا يثبت كل هذه العبارات المذكورة أعلاه لتحديث Windows 10 Fall Creators.

منذ الإصدار الأول من Windows 10 Fall Creators Update (الإصدار 16229.19) ، في 17 أكتوبر 2017 ، لم تكن هناك تحسينات أو تصحيحات أخطاء تتعلق بـ Bluetooth LE حتى KB4054517 (تم إصداره في 12 ديسمبر 2017). في KB4054517 (إصدار نظام التشغيل 16299.125) ، يوجد تغيير رئيسي في Bluetooth LE (انظر هنا): "معالجة مشكلة مع أجهزة Bluetooth المخصصة التي لا تدعم الترابط". نظرًا لأن هذه الرسالة مشفرة للغاية ، فقد قررت استئناف جميع تحليلاتي التي تم إجراؤها حتى الآن ومعرفة ما إذا كانت هناك أي تحسينات مقارنة بالإصدار الأول من Windows 10 Fall Creators Update (الإصدار 16229.19). … ومفاجأة صغيرة ، الآن يمكنني الحصول على: (1) بيانات من Thunderboard Sense (من المستشعرات المضمنة في SensorTag ولكن فقط من خلال آلية القراءة) و (2) جميع المعلومات من الوصول العام وخدمات معلومات الجهاز. لا توجد تحسينات أخرى.

الخطوة 5: نظام التشغيل Windows 8

كأول نظام تشغيل Microsoft مع دعم BLE ، يكون التنفيذ مرضيًا ، لكن لا يزال بعيدًا عن أن يكون ممتازًا. الأجهزة الوحيدة التي تعمل مع نظام التشغيل هذا هي CC2650STK و CC2541DK.

ضبط وقت الاستحواذ على 150 [مللي ثانية] ، بالنسبة لـ CC2650STK ، يمكننا الحصول على البيانات (من جميع أجهزة الاستشعار المضمنة) ، بما يتوافق مع معدل أخذ العينات البالغ 150 [مللي ثانية] ، من خلال آلية الإخطار دون أي مشاكل. لسوء الحظ ، باستخدام آلية القراءة CCC2650STK ، يمكننا الحصول على البيانات (من جميع المستشعرات) لمدة ثانيتين.

يزداد الوضع سوءًا عندما نتحدث عن CC2541DK. من خلال آلية الإخطار ، يتم الحصول على البيانات بفترة 0.4… 0.6 ثانية. أثناء استخدام آلية القراءة ، يمكننا استرداد البيانات مع فترة متقلبة تبلغ 2.8 … 3 ثوانٍ. الشروط هي نفسها: فترة الاستحواذ 150 [مللي ثانية] من جميع المستشعرات المضمنة في CC2541DK SensorTag.

الخطوة 6: Windows 7

أضافت شركة Microsoft دعمًا لمكدس Bluetooth Low Energy (BLE) بدءًا من نظام التشغيل Windows 8. لقد قدموا واجهة برمجة تطبيقات تمكن التطبيقات من الوصول إلى أجهزة BLE.

لكن Microsoft لم تنقل BLE API إلى Windows 7. يدعم المكدس المدمج في Windows 7 إصدار Bluetooth 2.1 / 3.0 فقط ، ولا يوجد دعم لـ BLE (4.0 أو 4.1 أو 4.2). لذلك ، من وجهة نظر المطور ، من المستحيل الاتصال ، في Windows 7 ، بجهاز BLE باستخدام مكدس Windows 7.

تمتلك شركة TI برنامجًا يسمى BLE Device Monitor وهو قادر على: (1) التشغيل على Windows 7 و (2) للتواصل مع SensorTag. ولكن يجب عليك استخدام دونجل USB خاص لهذه الأجهزة (مثل CC2540 Bluetooth Low Energy USB). إذا كان الكود المصدري لجهاز دونجل USB مجانيًا ، فلن يكون الكود المصدري لجهاز BLE Device Monitor متاحًا - فهو مخصص للاستخدام الداخلي لشركة TI فقط.

الخطوة 7: الاستنتاجات

الاستنتاجات
الاستنتاجات

تحديث الذكرى السنوية لـ Windows 10 (الإصدار 1607) هو أفضل إصدار من Windows على الإطلاق بواسطة Microsoft من وجهة نظر أجهزة Bluetooth منخفضة الطاقة (BLE) - SensorTags في حالتنا. من الواضح أن هذا يرجع أيضًا إلى العدد الكبير من التحسينات التي حدثت على مستوى Bluetooth LE في إصدارات نظام التشغيل التالية (انظر لمزيد من المعلومات: https://support.microsoft.com/en-us/help/4000825): 14393.51 و 14393.105 و 14393.189 و 14393.222 و 14393.321 و 14393.351 و 14393.726 و 14393.1083.

يمكن تنزيل تطبيقraceTags (BLE SensorTags) من تطبيقات متجر Windows: https://www.microsoft.com/store/apps/9p054xsjjr1n. لمزيد من المعلومات والعروض التوضيحية والتطبيقات العملية والأمثلة وما إلى ذلك ، يرجى زيارة المدونة التالية:

عند تجميع جميع النتائج المذكورة أعلاه ، سنحصل على الجدول المرتبط بهذه الخطوة.

موصى به: