תוכן עניינים:

ניתוח מערכת Bluetooth של Windows - גישת SensorTag: 7 שלבים (עם תמונות)
ניתוח מערכת Bluetooth של Windows - גישת SensorTag: 7 שלבים (עם תמונות)

וִידֵאוֹ: ניתוח מערכת Bluetooth של Windows - גישת SensorTag: 7 שלבים (עם תמונות)

וִידֵאוֹ: ניתוח מערכת Bluetooth של Windows - גישת SensorTag: 7 שלבים (עם תמונות)
וִידֵאוֹ: Leap Motion SDK 2024, יוני
Anonim
ניתוח מערכת Bluetooth של Windows - גישת SensorTag
ניתוח מערכת Bluetooth של Windows - גישת SensorTag

להלן אעשה ניתוח של מערכת ההפעלה Windows (OS) מבחינת התקשורת עם התקני Bluetooth עם אנרגיה נמוכה - במקרה שלנו עם סוגים שונים של SensorTags: Thunderboard React, Thunderboard Sense (שניהם מיוצרים על ידי Silicon Labs חברה), CC2650STK ו- CC2541DK (שניהם פותחו על ידי חברת טקסס אינסטרומנטס).

שלב 1: ניתוח מערכת Bluetooth של Windows - גישת SensorTag

ניתוח מערכת Bluetooth של Windows - גישת SensorTag
ניתוח מערכת Bluetooth של Windows - גישת SensorTag

להלן אעשה ניתוח של מערכת ההפעלה Windows (OS) מבחינת התקשורת עם התקני Bluetooth עם אנרגיה נמוכה - במקרה שלנו עם סוגים שונים של SensorTags: Thunderboard React, Thunderboard Sense (שניהם מיוצרים על ידי Silicon Labs חברה), CC2650STK ו- CC2541DK (שניהם פותחו על ידי חברת טקסס אינסטרומנטס).

להלן, אנתח את Windows 7, Windows 8.1 ואת גירסאות Windows 10 הבאות:

· עדכון יום השנה (פורסם ב -2 באוגוסט 2016; סיום התמיכה: מרץ 2018 באופן סופי), · עדכון יוצרים (פורסם ב -5 באפריל 2017; סוף התמיכה: ספטמבר 2018 באופן סופי) ו-

· עדכון יוצרי סתיו (פורסם ב -17 באוקטובר 2017; סיום התמיכה: מרץ 2019 באופן סופי).

הניתוח יתבצע מנקודות המבט הבאות:

1. היכולת של מערכת ההפעלה (OS) להתאמה עם SensorTag;

2. היכולת לקבל נתוני גישה גנריים (זהו שירות חובה);

3. היכולת לקבל מידע על המכשיר (שירות זה חושף מידע על היצרן ו/או הספק הקשור ל- SensorTag ספציפי);

4. היכולת לקבל את נתוני SensorTag, באמצעות גישת הקריאה ו-

5. היכולת לקבל את נתוני SensorTag, באמצעות גישת ההודעות.

כל הבדיקות נעשו באמצעות גירסת 9.7.8.0 של אפליקציית blessTags. אפליקציית blessTags נבנתה כתמיכה ב- Windows SDK - Bluetoothapis. נעשה שימוש בפונקציות כמו BluetoothGATTGetCharacteristicValue, BluetoothGATTGetDescriptorValue, BluetoothGATTGetServices או BluetoothGATTSetCharacteristicValue.

ניתן להוריד יישום זה, יישום blessTags (BLE SensorTags) מאפליקציות חנות Windows: https://www.microsoft.com/store/apps/9p054xsjjr1n. למידע נוסף, הדגמה, יישומים מעשיים, דוגמאות וכו 'אנא בקר בבלוג הבא:

שלב 2: Windows 10 - עדכון יום השנה - גירסה 1607

Image
Image

גרסה זו של מערכת ההפעלה Windows 10 היא הטובה ביותר מבחינת מכשירי Bluetooth עם אנרגיה נמוכה. הוא יכול להתאים ללא כל בעיה עם כל SensorTags (ללא קשר לגרסת התוכנה הפועלת עליהם), שאיתו יישום blessTags יודע כיצד לפעול (CC2650STK, Thunderboard React, Thunderboard Sense ו- CC2541DK), וכל המידע משירותי ה- Bluetooth Get Get Generic גישה וקבלת מידע על המכשיר נרכשת ללא כל בעיה.

ניתוח מהירות רכישת הנתונים (למכשירי CC2650STK ו- CC2541DK) באמצעות מנגנון הודעה וקריאה של העברת נתונים, נוכל לראות את הדברים הבאים:

1. באמצעות מנגנון ההודעות, אנו יכולים לקבל נתונים מכל החיישנים (שמונה) מ -150 [ms] ל- 150 [ms] ללא בעיות;

2. במקום זאת, כאשר אנו מגדירים את זמן הרכישה ל -150 [ms] ואנו משתמשים במנגנון קריאת הנתונים - במצב המאושר ביותר, אנו מקבלים 713 [ms] ובמקרה הגרוע ביותר, אנו מקבלים 840 [ms].

אם ננתח את Thunderboard React ו- Thunderboard Sense, נקבל את התוצאות השוות - הן פועלות ללא כל בעיה בסביבת עדכון יום השנה של Windows 10.

למעשה, כל סרטי המצגת של הפונקציות העיקריות של אפליקציית blessTags ושל התכונות הספציפיות השונות (כמו גאדג'טים) נעשו בעזרת התמיכה של עדכון יום השנה 10 של Windows.

שלב 3: Windows 10 - עדכון יוצרים - גירסה 1703

ווינדוס 7
ווינדוס 7

גרסת Creators Update של Windows 10 היא מערכת ההפעלה הגרועה ביותר (OS) מבחינת מכשירי Bluetooth נמוכים.

כמעט שום דבר לא עובד. מיקרוסופט הודתה שעדכון היוצרים שבר את Bluetooth Low Energy (הפניה 1 והתייחסות 2). חברת מיקרוסופט הבטיחה תיקון חם בהקדם האפשרי. אבל מאז הם הוציאו גרסה מעודכנת של Windows (עדכון יוצרי סתיו) ושום דבר לא קרה - עד כה בגירסת Windows 10 Creators Update, ה- Bluetooth Low Energy עדיין לא עובד.

ישנם מספר רב של פוסטים בפורומים בהם אנשים שונים מתלוננים על סוגים שונים של מכשירי Bluetooth המפסיקים לפעול לאחר השדרוג ל- Creators Update (ראה כאן, ראה כאן, ראה כאן, ראה כאן וכו ').

התוצאות, אני עומד להציג מיד, הושגו לאחר בדיקות רבות: (1) במחשב שולחני בעל מחשב USB CSR4.0 Bluetooth (CSR8510 A10) ו- (2) במחשב נייד Dell Inspiron P66F עם מחשב נייד מכשיר Bluetooth LE משולב. אני יודע שיש באינטרנט פתרונות רבים לתיקון מספר סוגים של בעיות Bluetooth. ניסיתי כמעט הכל, אבל שום דבר לא עבד (עדכן את מנהל ההתקן של Bluetooth, הפעל את פותר הבעיות של Windows, השבת והפעל שירותים הקשורים ל- Bluetooth וכו ')

אז בואו נציג את התוצאות:

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 Sense:

אותו תהליך פועם, שנצפה עבור Thunderboard React, נמצא קיים גם עבור Thunderboard Sense - כאשר אנו רוצים להשיג את תהליך ההתאמה. אך כאן, הדברים גרועים אף יותר: לאחר ההתאמה, תוכנית blessTag לא יכולה לזהות את SensorTag. אז, אין מכשיר פעיל - אין ישות ממנה היישום blessTags לרכוש את הנתונים.

4. CC2541DK:

ההתנהגות זהה להתנהגות CC2650STK (גירסת קושחה 1.40). בכל ניסיון חיבור תקבל את הודעת השגיאה הבאה: "נסה לחבר את המכשיר שוב".

אז לסיכום, בתוך גירסה זו של Windows 10 (עדכון יוצרים), אי אפשר לתקשר עם כל אחד מארבעת סוגי ה- SensorTags שציינו למעלה. כתוצאה מכך, אני מזכיר (שוב) שכאן השתמשתי באותה גרסת תוכנה שבה השתמשתי גם בכל הבדיקות שנעשו בעדכון יום השנה של Windows 10.

שלב 4: Windows 10 - עדכון יוצרי סתיו - גירסה 1709

Image
Image

גרסה זו של Windows 10 (1709 - מערכת ההפעלה Build 16299.19) היא צעד ענק קדימה, בהשוואה לעדכון היוצרים של Windows 10 (היו ב- BLE כמעט שום דבר לא עובד), אך עדיין יש לה דרך ארוכה להגיע לרמה של עדכון יום השנה של Windows 10 (1607) מערכת הפעלה

אבל בואו נראה מדוע אמרתי את המשפט הזה:

1. CC2650STK (גירסת קושחה 1.40) & CC2541DK:

אני אתייחס כאן לשני המכשירים בו זמנית מכיוון שהתנהגותם הקשורה למערכת ההפעלה Windows 10 (1709) דומה.

פעולת הזיווג והקריאה, משירותי הגישה הגנרית ושירותי מידע המכשיר, פועלים בצורה מושלמת ללא בעיות כלשהן.

הבעיות מתרחשות רק כאשר אנו רוצים לקרוא מידע מהחיישנים. מנגנון העברת הנתונים באמצעות התראות אינו פועל כלל.

הדרך היחידה לקבל נתונים מהחיישנים, המוטבעים ב- SensorTag, היא באמצעות מנגנון הקריאה הישירה מהמכשיר. לגישה זו שתי סוגיות: (1) מהירות העברת נתונים נמוכה יותר (כפי שהראינו לעיל) ו- (2) אם כל החיישנים מקבלים אחת משתי שיטות העברת הנתונים (באמצעות קריאה והתראה), הלחצנים ב- SensorTag יכולים להיות נחקר רק באמצעות מנגנון ההודעות. הודות ל"תכונה "זו של מערכת ההפעלה Windows 10 (1709), יישום blessTags מיישם, החל מגרסה 9.7.8.0, גם שיטת הקריאה לרכישת נתונים.

מופיעה בעיה ב- CC2650STK SensorTag עם גירסת הקושחה 1.20. אם תהליך ההתאמה וקריאת הנתונים משירות Access Generic עובד טוב מאוד, תהליך הקריאה משירותי מידע התקנים אינו אפשרי. יתר על כן, קריאת החיישנים (מתוך SensorTag זה עם גרסת קושחה זו) אינה פועלת באמצעות אחד משני המנגנונים האפשריים (קריאה או הודעה).

2. תגובת Thunderboard:

באותו מצב כמו ב- Windows 10 Creators Update, SensorTag מופיע ונעלם כשאנחנו רוצים להוסיף מכשיר Bluetooth חדש. אותה התנהגות ניתן להדגיש במרכז הפעולות בלחצן הפעולה המהירה של בלוטות 'הוצגו "לא מחובר" ו- "Thunderboard React" מוצגים שוב ושוב (אנא ראה בסרט הבא תהליך זה החל ממדד הזמן 5.14 ש'). מיד נוכל להסיק כי Thunderboard React אשם, בעיקר עקב יישום לקוי של מנגנון הפרסום על ידי מהנדסי Silicon Labs. אך בחיפוש באינטרנט נבחין כי משתמשים אחרים דיווחו על אותה בעיה לסוגים אחרים של מכשירי BLE, לאחר התקנת יוצרי Fall Fall. עדכון - למשל צפה בסרט זה ב- YouTube.

לאחר זיווג SensorTag, היישום blessTags אינו מצליח למצוא את התקן Thunderboard React. אז, בשלב זה שום דבר לא עובד: גישה כללית ושירותי מידע התקנים או רכישת נתונים מהחיישנים המוטבעים ב- Thunderboard React SensorTag.

3. Thunderboard Sense:

מצב ההתנהגות דומה לזה של ה- Thunderboard React. מכשיר Bluetooth זה מוצג ונעלם שוב ושוב. כאשר תהליך ההתאמה הצליח, ניתן לקחת נתונים משירות Access Generic. אבל מנקודה זו, שום דבר כבר לא עובד.

לסיכום, עדכון 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.

מאז המהדורה הראשונה של עדכון יוצרי סתיו Windows 10 (build 16229.19), ב- 17 באוקטובר 2017, לא נרשמו שיפורים או תיקוני שגיאות הקשורים ל- Bluetooth LE עד KB4054517 (פורסם ב -12 בדצמבר 2017). ב- KB4054517 (OS Build 16299.125) חל שינוי מרכזי ב- Bluetooth LE (ראה כאן): "מטפל בבעיה בהתקני Bluetooth מותאמים אישית שאינם תומכים במליטה". מכיוון שההודעה הזו מאוד קריפית, החלטתי לחדש את כל הניתוחים שלי שנעשו עד כה ולראות אם יש שיפורים בהשוואה למהדורה הראשונה של עדכון יוצרי Windows 10 Fall (build 16229.19). … והפתעה קטנה, כרגע אני יכול לקבל: (1) נתונים מ- Thunderboard Sense (מהחיישנים המוטמעים על SensorTag אך רק באמצעות מנגנון הקריאה) ו- (2) כל המידע משירותי גישה כללית ומידע על מכשירים.. אין שיפורים אחרים.

שלב 5: Windows 8

כמערכת ההפעלה הראשונה של Microsoft עם תמיכה ב- BLE, היישום משביע רצון, אך הוא רחוק מלהיות מצוין. המכשירים היחידים שעובדים עם מערכת הפעלה זו הם CC2650STK ו- CC2541DK.

הגדרת זמן הרכישה ל- 150 [ms], עבור CC2650STK, נוכל לקבל את הנתונים (מכל החיישנים המוטבעים), תוך התאמה לקצב הדגימה של 150 [ms], באמצעות מנגנון ההודעות ללא בעיות. לרוע המזל, באמצעות מנגנון הקריאה CCC2650STK, אנו יכולים לקבל נתונים (מכל החיישנים) בפרק זמן של 2 שניות.

המצב מחמיר כאשר אנו מדברים על CC2541DK. באמצעות מנגנון ההודעות, הנתונים מתקבלים עם תקופה של 0.4… 0.6 שניות. תוך שימוש במנגנון הקריאה נוכל לאחזר את הנתונים עם תקופה משתנה של 2.8 … 3 שניות. התנאים זהים: תקופת רכישה 150 [אלפיות השנייה] מכל החיישנים המוטמעים ב- CC2541DK SensorTag.

שלב 6: Windows 7

חברת מיקרוסופט הוסיפה תמיכה בערימת Bluetooth Low Energy (BLE) החל ממערכת ההפעלה Windows 8. הם סיפקו API המאפשר ליישומים לגשת למכשירי BLE.

אבל מיקרוסופט לא העבירה את ה- API של BLE ל- 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 אינו זמין - הוא נועד לשימוש פנימי בלבד של חברת TI.

שלב 7: מסקנות

מסקנות
מסקנות

עדכון יום השנה 10 של Windows 10 (גירסה 1607) הוא גרסת Windows הטובה ביותר שנעשתה אי פעם על ידי מיקרוסופט מנקודת מבט של התקני Bluetooth Low Energy (BLE) - SensorTags במקרה שלנו. ברור שזה גם נובע מהמספר הניכר של השיפורים שחלו ברמת LE LE של Bluetooth במערכות ההפעלה הבאות (ראה מידע נוסף: https://support.microsoft.com/en-us/help/4000825): 14393.51, 14393.105, 14393.189, 14393.222, 14393.321, 14393.351, 14393.726 ו- 14393.1083.

ניתן להוריד את היישום blessTags (BLE SensorTags) מאפליקציות חנות Windows: https://www.microsoft.com/store/apps/9p054xsjjr1n. למידע נוסף, הדגמה, יישומים מעשיים, דוגמאות וכו 'בקר בבלוג הבא:

סינתזת כל התוצאות לעיל נקבל את הטבלה המשויכת לשלב זה.

מוּמלָץ: