فهرست مطالب:

تجزیه و تحلیل سیستم بلوتوث Windows - رویکرد SensorTag: 7 مرحله (همراه با تصاویر)
تجزیه و تحلیل سیستم بلوتوث Windows - رویکرد SensorTag: 7 مرحله (همراه با تصاویر)

تصویری: تجزیه و تحلیل سیستم بلوتوث Windows - رویکرد SensorTag: 7 مرحله (همراه با تصاویر)

تصویری: تجزیه و تحلیل سیستم بلوتوث Windows - رویکرد SensorTag: 7 مرحله (همراه با تصاویر)
تصویری: Diving deep into Briar at XMPP Meetup Berlin 2024, نوامبر
Anonim
تجزیه و تحلیل سیستم بلوتوث ویندوز - رویکرد SensorTag
تجزیه و تحلیل سیستم بلوتوث ویندوز - رویکرد SensorTag

در ادامه ، من تجزیه و تحلیل سیستم عامل ویندوز (سیستم عامل) را از نظر ارتباط با دستگاه های کم مصرف بلوتوث انجام می دهم - در مورد ما با انواع مختلف SensorTags: Thunderboard React ، Thunderboard Sense (هر دو توسط Silicon Labs تولید شده اند) Company) ، CC2650STK و CC2541DK (هر دو توسط شرکت Texas Instruments توسعه یافته اند).

مرحله 1: تجزیه و تحلیل سیستم بلوتوث Windows - رویکرد SensorTag

تجزیه و تحلیل سیستم بلوتوث ویندوز - رویکرد SensorTag
تجزیه و تحلیل سیستم بلوتوث ویندوز - رویکرد SensorTag

در ادامه ، من تجزیه و تحلیل سیستم عامل ویندوز (سیستم عامل) را از نظر ارتباط با دستگاه های کم مصرف بلوتوث انجام می دهم - در مورد ما با انواع مختلف SensorTags: Thunderboard React ، Thunderboard Sense (هر دو توسط Silicon Labs تولید شده اند) Company) ، CC2650STK و CC2541DK (هر دو توسط شرکت Texas Instruments توسعه یافته اند).

در ادامه ، ویندوز 7 ، ویندوز 8.1 و نسخه های زیر ویندوز 10 را تجزیه و تحلیل می کنم:

· به روز رسانی سالگرد (منتشر شده در 2 آگوست 2016 ؛ پایان پشتیبانی: به طور آزمایشی مارس 2018) ،

· بروزرسانی Creators (منتشر شده در 5 آوریل 2017 ؛ پایان پشتیبانی: به طور آزمایشی سپتامبر 2018) و

· Fall Creators Update (منتشر شده در 17 اکتبر 2017 ؛ پایان پشتیبانی: به طور آزمایشی مارس 2019).

تجزیه و تحلیل از نظرات زیر انجام می شود:

1. توانایی سیستم عامل (OS) برای جفت شدن با SensorTag.

2. امکان دستیابی به داده های دسترسی عمومی (این یک سرویس اجباری است) ؛

3. توانایی دریافت اطلاعات دستگاه (این سرویس اطلاعات سازنده و/یا فروشنده مربوط به SensorTag خاص را نشان می دهد).

4. توانایی به دست آوردن داده های SensorTag ، با استفاده از روش خواندن و

5. امکان دریافت داده های SensorTag با استفاده از روش اطلاع رسانی.

همه آزمایشات با استفاده از نسخه 9.7.8.0 برنامه beqTags انجام شد. برنامه BegTags با پشتیبانی از SDK Windows - Bluetoothapis ساخته شد. از عملکردهایی مانند BluetoothGATTGetCharacteristicValue ، BluetoothGATTGetDescriptorValue ، BluetoothGATTGetServices یا BluetoothGATTSetCharacteristicValue استفاده شد.

این برنامه ، برنامه beTags (BLE SensorTags) را می توانید از برنامه های Windows Store بارگیری کنید: https://www.microsoft.com/store/apps/9p054xsjjr1n. برای اطلاعات بیشتر ، نسخه ی نمایشی ، برنامه های کاربردی ، نمونه ها و غیره لطفاً از وبلاگ زیر دیدن کنید:

مرحله 2: ویندوز 10 - به روز رسانی سالگرد - نسخه 1607

Image
Image

این نسخه از سیستم عامل ویندوز 10 از نظر دستگاه های بلوتوث کم مصرف بهترین نسخه است. می تواند بدون هیچ مشکلی با همه SensorTags (صرف نظر از نسخه نرم افزاری که بر روی آنها اجرا می شود) ، جفت شود ، که با آن برنامه begTags نحوه کار می داند (CC2650STK ، Thunderboard React ، Thunderboard Sense و CC2541DK) و همه اطلاعات خدمات بلوتوث دسترسی و دریافت اطلاعات دستگاه بدون هیچ مشکلی بدست می آید.

با تجزیه و تحلیل سرعت جمع آوری داده ها (برای دستگاه های CC2650STK و CC2541DK) با استفاده از مکانیسم اطلاع رسانی و خواندن انتقال داده ها ، می توان موارد زیر را مشاهده کرد:

1. از طریق مکانیسم اعلان ، می توانیم داده ها را از همه سنسورها (هشت) از 150 [ms] تا 150 [ms] بدون هیچ مشکلی دریافت کنیم.

2. در عوض ، وقتی زمان کسب را روی 150 [ms] تنظیم می کنیم و از مکانیسم خواندن داده ها استفاده می کنیم - در شادترین شرایط ، 713 [ms] و در بدترین حالت ، 840 [ms] را دریافت می کنیم.

اگر Thunderboard React و Thunderboard Sense را تجزیه و تحلیل کنیم ، نتایج معادل به دست می آوریم - آنها بدون هیچ مشکلی در محیط Windows Update Anniversary Update کار می کنند.

در واقع ، همه فیلم های ارائه عملکرد اصلی برنامه bextTags و ویژگی های مختلف مختلف (مانند ابزارها) با پشتیبانی از به روز رسانی سالگرد ویندوز 10 ساخته شده است.

مرحله 3: Windows 10 - Creators Update - نسخه 1703

ویندوز 7
ویندوز 7

نسخه Creators Update ویندوز 10 از نظر دستگاه های بلوتوث کم مصرف بدترین سیستم عامل (OS) است.

تقریباً هیچ چیز کار نمی کند. مایکروسافت تصدیق کرد که Creators Update بلوتوث Low Energy (مرجع 1 و مرجع 2) را خراب کرده است. شرکت مایکروسافت وعده رفع مشکل در اسرع وقت را داد. اما از آن زمان آنها نسخه به روز شده ویندوز (Fall Creators Update) را منتشر کردند و هیچ اتفاقی نیفتاده است - تا کنون در نسخه Update Creators ویندوز 10 ، Bluetooth Low Energy هنوز کار نمی کند.

تعداد زیادی پست در انجمن ها وجود دارد که افراد مختلف در مورد انواع مختلف دستگاه های بلوتوثی که پس از ارتقاء به Creators Update کار خود را متوقف می کنند ، شکایت می کنند (اینجا را ببینید ، اینجا را ببینید ، اینجا را ببینید ، اینجا را ببینید و غیره).

نتایج ، که من بلافاصله نشان خواهم داد ، پس از آزمایش های زیادی بدست آمد: (1) در رایانه رومیزی که دارای دانگل USB CSR4.0 بلوتوث (CSR8510 A10) و (2) در لپ تاپ Dell Inspiron P66F با دستگاه بلوتوث LE یکپارچه من می دانم که راه حل های زیادی در اینترنت برای رفع چندین نوع مشکل بلوتوث وجود دارد. من تقریباً همه را امتحان کردم ، اما هیچ چیزی کار نمی کرد (درایور بلوتوث را به روز کنید ، عیب یاب ویندوز را اجرا کنید ، خدمات مربوط به بلوتوث را غیرفعال و فعال کنید و غیره)

بنابراین ، بیایید نتایج را ارائه دهیم:

1. CC2650STK:

آ. در سیستم عامل نسخه 1.40 جفت شدن دستگاه SensorTag با ویندوز غیرممکن است (من چندین بار این روند را تکرار کردم ، حداقل 8-10 بار ، بلوتوث را خاموش و روشن کردم و دوباره تلاش کردم-نتایج یکسان بود: غیرممکن بود این دستگاه را اضافه کنید)

ب در سیستم عامل نسخه 1.20 ، رایانه SensorTag را کشف کرد و من توانستم SensorTag را با کامپیوتر جفت کنم.

همچنین ، من توانستم داده های دسترسی عمومی را دریافت کنم. اما ، در سرویس دریافت اطلاعات دستگاه ، از 9 ویژگی فقط 6 مورد پاسخ دادند و فقط از آنها امکان دریافت اطلاعات وجود داشت.

در عوض ، من نمی توانم دستگاه را راه اندازی کنم و نمی توانم داده ها را از طریق حسگرها یا از طریق مکانیسم خواندن یا اعلان ها از سنسورها بازیابی کنم.

2. Thunderboard React:

هنگامی که فرآیند جفت شدن آغاز می شود ، سیستم عامل رفتار عجیبی دارد. در لیست دستگاه های کشف شده ، SensorTag ظاهر می شود و ناپدید می شود (با مدت زمان 1… 1.5 ثانیه). سرانجام ، هنگامی که یک کلیک ماوس روی SensorTag موفق می شود ، روند جفت شدن انجام می شود و LED های Thunderboard React (آبی و سبز) دارای یک دوره زمانی هستند که به طور متوالی در حالت غیر معمول چشمک می زنند.

خواندن ویژگی های سرویس دسترسی عمومی (0x1800) می تواند بدون هیچ مشکلی انجام شود ، اما خواندن از سرویس اطلاعات دستگاه (0x180A) در هر چهار ویژگی موجود شکست می خورد.

با تنظیم سنسورها (تعبیه شده در SensorTag) ، نحوه دستیابی به داده ها (در Thunderboard React تنها این امکان را دارید: (1) برای دریافت اطلاعات از طریق اعلان 3 سنسور و (2) برای خواندن داده ها از چهار سنسور دیگر) غیر ممکن است. بنابراین ، عدم امکان بدست آوردن داده های واقعی از حسگرها مستقیماً از اینجا حاصل می شود.

3. Thunderboard Sense:

همان روند ضربان دار ، مشاهده شده برای Thunderboard React ، مشخص شد که برای Thunderboard Sense نیز وجود دارد - هنگامی که می خواهیم به روند جفت شدن برسیم. اما در اینجا ، اوضاع بدتر است: پس از جفت شدن ، برنامه begTag نمی تواند SensorTag را تشخیص دهد. بنابراین ، هیچ دستگاهی فعال نیست - هیچ نهادی از جایی که برنامه beagTags برای به دست آوردن داده ها استفاده می کند.

4. CC2541DK:

رفتار مشابه رفتار CC2650STK (سیستم عامل نسخه 1.40) است. در هر تلاش اتصال ، پیام خطای زیر را دریافت خواهید کرد: "دوباره دستگاه خود را وصل کنید".

بنابراین ، در نتیجه ، در این نسخه از ویندوز 10 (Creators Update) ، برقراری ارتباط با هیچ یک از چهار نوع SensorTag های ذکر شده در بالا غیرممکن است. در نتیجه ، من (یکبار دیگر) اشاره می کنم که در اینجا از همان نسخه نرم افزاری استفاده کرده ام که در تمام تست های انجام شده در Windows 10 Anniversary Update نیز استفاده کرده ام.

مرحله 4: Windows 10 - Fall Creators Update - نسخه 1709

Image
Image

این نسخه از ویندوز 10 (1709 - OS Build 16299.19) در مقایسه با بروزرسانی Windows 10 Creators (در BLE تقریباً هیچ چیزی کار نمی کند) یک گام بزرگ به جلو است ، اما هنوز راه زیادی برای رسیدن به سطح به روز رسانی سالگرد Windows 10 دارد (1607) سیستم عامل

اما بیایید ببینیم چرا این جمله را بیان کردم:

1. CC2650STK (سیستم عامل نسخه 1.40) و CC2541DK:

من این دو دستگاه را در اینجا به طور همزمان درمان می کنم زیرا رفتار آنها مربوط به سیستم عامل ویندوز 10 (1709) مشابه است.

عملیات جفت شدن و خواندن ، از خدمات عمومی و اطلاعات دستگاه ، کاملاً بدون هیچ گونه مشکلی کار می کند.

مشکلات فقط زمانی رخ می دهد که بخواهیم اطلاعات سنسورها را بخوانیم. مکانیسم انتقال داده از طریق اعلانات به هیچ وجه کار نمی کند.

تنها راه برای دریافت اطلاعات از حسگرهای تعبیه شده در SensorTag ، استفاده از مکانیسم خواندن مستقیم از دستگاه است. این رویکرد دو مسئله دارد: (1) سرعت کمتر انتقال داده (همانطور که در بالا نشان دادیم) و (2) اگر همه سنسورها یکی از دو روش انتقال داده را (از طریق خواندن و اطلاع رسانی) بپذیرند ، دکمه های SensorTag می توانند فقط از طریق مکانیزم اطلاع رسانی بازجویی می شود. با تشکر از این "ویژگی" سیستم عامل ویندوز 10 (1709) ، برنامه begTags پیاده سازی می شود ، با نسخه 9.7.8.0 شروع می شود ، روش خواندن برای جمع آوری داده ها نیز.

مشکلی در CC2650STK SensorTag با سیستم عامل نسخه 1.20 ظاهر می شود. اگر روند جفت شدن و خواندن داده ها از سرویس دسترسی عمومی بسیار خوب عمل کند ، فرآیند خواندن از خدمات اطلاعات دستگاه امکان پذیر نیست. علاوه بر این ، سنسورهای خوانده شده (از این SensorTag با این نسخه سیستم عامل) از طریق یکی از دو مکانیسم ممکن (خواندن یا اطلاع رسانی) کار نمی کنند.

2. Thunderboard React:

در همان حالت مانند Windows 10 Creators Update ، هنگامی که می خواهیم یک دستگاه بلوتوث جدید اضافه کنیم ، SensorTag ظاهر می شود و ناپدید می شود. همان رفتار را می توان در مرکز اقدام روی دکمه عملکرد سریع بلوتوث برجسته کرد اگر "متصل نیست" و "Thunderboard React" به طور مکرر نمایش داده می شود (لطفاً در فیلم زیر این روند را از شاخص زمان 5.14 ثانیه شروع کنید) مشاهده کنید. بلافاصله می توان نتیجه گرفت Thunderboard React مقصر است ، عمدتا به دلیل اجرای نادرست مکانیزم تبلیغاتی توسط مهندسین آزمایشگاه های Silicon. اما با جستجو در اینترنت متوجه می شویم که سایر کاربران پس از نصب Fall Creators مشکل مشابهی را به انواع دیگر دستگاه های BLE گزارش کرده اند. به روز رسانی - به عنوان مثال مشاهده این فیلم در YouTube.

پس از جفت شدن SensorTag ، برنامه begTags قادر به پیدا کردن دستگاه Thunderboard React نیست. بنابراین ، در این مرحله هیچ چیز کار نمی کند: دسترسی عمومی و خدمات اطلاعات دستگاه یا جمع آوری داده ها از حسگرهای تعبیه شده در Thunderboard React SensorTag.

3. Thunderboard Sense:

حالت رفتار شبیه به حالت Thunderboard React است. این دستگاه بلوتوث بارها نمایش داده می شود و ناپدید می شود. هنگامی که روند جفت شدن موفقیت آمیز بود ، می توان داده ها را از سرویس دسترسی عمومی دریافت کرد. اما از این به بعد ، دیگر هیچ چیز کار نمی کند.

در پایان ، در Windows 10 Fall Creators Update (1709 ، build 16229.19) فقط SensorTags تولید شده توسط TI (CC2650STK و CC2541DK) در حال کار هستند. بیشتر ، آنها فقط در حالت خواندن کار می کنند. اما توجه! فقط سیستم عامل CC2650STK نسخه 1.40 در این حالت کار می کند. متأسفانه ، هنگام خرید CC2650STK ، شانس بسیار بالایی برای استفاده از دستگاهی با ویرایش سیستم عامل 1.20 دارید. بنابراین ، برای ارتباط با چنین نوع SensorTag ارتقاء ، حداقل به سیستم عامل نسخه 1.40 ضروری است.

در ارتباط با این مرحله ، من فیلمی را ارائه می کنم که تمام این گفته های بالا را برای Windows 10 Fall Creators Update نشان می دهد.

از زمان انتشار اولین نسخه Windows 10 Fall Creators Update (ساخت 16229.19) ، در 17 اکتبر 2017 ، هیچ پیشرفت یا تصحیح خطایی در ارتباط با Bluetooth LE تا KB4054517 (منتشر شده در 12 دسامبر 2017) انجام نشده است. در KB4054517 (OS Build 16299.125) یک تغییر کلیدی در Bluetooth LE وجود دارد (اینجا را ببینید): "مشکل دستگاههای بلوتوث شخصی که از اتصال پشتیبانی نمی کنند" را برطرف می کند. از آنجا که این پیام بسیار رمزآلود است ، تصمیم گرفتم تمام تجزیه و تحلیل های خود را تا کنون از سر بگیرم و ببینم آیا پیشرفت هایی در مقایسه با اولین نسخه Windows 10 Fall Creators Update (ساخت 16229.19) وجود دارد یا خیر. … و یک شگفتی کوچک ، در حال حاضر من می توانم: (1) داده ها را از Thunderboard Sense (از سنسورهای تعبیه شده در SensorTag اما فقط از طریق مکانیسم خواندن) و (2) همه اطلاعات خدمات دسترسی عمومی و اطلاعات دستگاه به هیچ پیشرفت دیگری وجود ندارد.

مرحله 5: ویندوز 8

به عنوان اولین سیستم عامل مایکروسافت با پشتیبانی BLE ، پیاده سازی رضایت بخش است ، اما بسیار عالی است. تنها دستگاه هایی که با این سیستم عامل کار می کنند CC2650STK و CC2541DK هستند.

با تنظیم زمان دستیابی به 150 [ms] ، برای CC2650STK ، می توانیم داده ها (از تمام سنسورهای تعبیه شده) را با رعایت نرخ نمونه برداری 150 [ms] از طریق مکانیسم اعلان بدون هیچ مشکلی دریافت کنیم. متأسفانه ، با استفاده از مکانیسم خواندن CCC2650STK ، می توانیم داده ها (از تمام سنسورها) را در مدت زمان 2 ثانیه دریافت کنیم.

وقتی صحبت از CC2541DK می شود ، وضعیت بدتر می شود. از طریق مکانیسم اطلاع رسانی ، داده ها با دوره 0.4… 0.6 ثانیه به دست می آیند. در حالی که از مکانیسم خواندن استفاده می کنیم ، می توانیم داده ها را با یک دوره نوسان 2.8 … 3 ثانیه بازیابی کنیم. شرایط یکسان است: دوره خرید 150 [ms] از تمام سنسورهای تعبیه شده در CC2541DK SensorTag.

مرحله 6: ویندوز 7

شرکت مایکروسافت پشتیبانی از پشته Bluetooth Low Energy (BLE) را با سیستم عامل ویندوز 8 اضافه کرده است. آنها یک API ارائه کرده اند که برنامه ها را قادر می سازد به دستگاه های BLE دسترسی پیدا کنند.

اما مایکروسافت API های BLE را به ویندوز 7 منتقل نکرده است. پشته داخلی Windows 7 فقط از بلوتوث نسخه 2.1/3.0 پشتیبانی می کند ، از BLE (4.0 ، 4.1 یا 4.2) پشتیبانی نمی شود. بنابراین ، از دیدگاه توسعه دهندگان ، ارتباط با یک دستگاه BLE با استفاده از پشته ویندوز 7 در ویندوز 7 غیرممکن است.

شرکت TI برنامه ای به نام BLE Device Monitor دارد که قادر است: (1) روی ویندوز 7 اجرا شود و (2) برای ارتباط با SensorTag. اما برای اینها باید از یک دانگل USB مخصوص (به عنوان مثال USB کم مصرف بلوتوث CC2540) استفاده کنید. اگر کد منبع دانگل USB رایگان است ، کد منبع BLE Device Monitor در دسترس نیست - فقط برای استفاده داخلی شرکت TI است.

مرحله 7: نتیجه گیری

نتیجه گیری
نتیجه گیری

Windows 10 Anniversary Update (نسخه 1607) بهترین نسخه ویندوزی است که توسط مایکروسافت از نظر دستگاههای Bluetooth Low Energy (BLE) ساخته شده است - SensorTags در مورد ما. بدیهی است ، این نیز به دلیل پیشرفت قابل ملاحظه ای است که در سطح بلوتوث LE در سیستم عامل های زیر ایجاد شده است (برای اطلاعات بیشتر به https://support.microsoft.com/fa-us/help/4000825 مراجعه کنید): 14393.51 ، 14393.105 ، 14393.189 ، 14393.222 ، 14393.321 ، 14393.351 ، 14393.726 و 14393.1083

برنامه BegTags (BLE SensorTags) را می توانید از برنامه های Windows Store بارگیری کنید: https://www.microsoft.com/store/apps/9p054xsjjr1n. برای اطلاعات بیشتر ، نسخه ی نمایشی ، برنامه های کاربردی ، نمونه ها و غیره لطفاً از وبلاگ زیر دیدن کنید:

با ترکیب همه نتایج فوق ، جدول مربوط به این مرحله را دریافت می کنیم.

توصیه شده: