יום חמישי, 19 בינואר 2017

אוטומציה לחיבור USB - גירסת ה-DIY

חלק ממערך הטסטים שנדרשתי לבצע כלל חיבור וניתוק מרובים של מכשירי mobile. לפעמים זה הגיע בתור דרישה מלקוח לשחזור באג שהתרחש רק אחרי עשרות או מאות ניתוקים וחיבורים בהשהיות משתנות.

איך עושים את זה ?



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

אני מניח שבבתי תוכנה גדולים יש פתרונות מוסדרים לעניין, אבל בהנחה שהאמצעים דלים בארגון שלכם, יש לי פתרון יצירתי לענין שנבנה בהשראת בלוג שמצאתי באינטרנט בזמנו [משום מה לא זמין כרגע]

בבסיס הרעיון עומד רכיב אלקטרוני שנקרא Relay שהוא בעצם סוג של מתג אלקטרוני.
מי שיערוך חיפוש בנושא ימצא עשרות שאילתות עם מוצרים די דומים, בעיקר מתחום הבית החכם ו- Home Automation.

אחרי נבירה בהמון מדריכים ומוצרים - בחרתי את המוצר הבא:
sigma-shop.com
המוצר הוא מתג אלקטרוני שנשלט ע"י USB ודרייבר.

הוא לא יקר במיוחד אבל גם לא זול כל כך ועולה בסביבות ~100 ש"ח ליחידה. יש לו גם גירסה זולה יותר ללא כיסוי הפלסטיק, מה שמהווה חיסרון לדעתי בגלל הסיכון לחשיפה לחשמל סטטי.

יש בשוק לא מעט מודלים דומים, רובם סיניים אבל לדעתי לא שווה להתפתות. אני יכול להעיד מניסיון אישי שהחומרה הנ"ל היא איכותית ועבדה ימים ולילות בחיבור וניתוק ללא תקלות.

היתרונות של המוצר הנ"ל על האחרים שגרמו לי לבחור בו הם:

- הוא מבוסס USB ולא RS323 שהוא מסורבל לעבודה.
- הוא מקבל את החשמל שלו מה-USB ולכן חוסך חיבור לשנאי.
- למוצר תמיכה במגוון אפשרויות תוכנה: דרך אפליקציה ייעודית או דרך שפות תוכנה שונות.
- המוצר אמנם מגיע עם דרייבר אבל הוא נתמך Native ב- Linux.
- לחברה שמוכרת אותו יש אתר שמעיד שהם רציניים בתחום ולא סתם עוד מוכר מאיביי.

איך זה עובד ?

sigma-shop.com

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

כל כבל USB מורכב מ-4 גידים: Input / Output / Ground / Power
הרעיון הוא לחבר את גיד ה-Power דרך ה-Relay וכאשר ה-Relay יסגר, יתרחש נתק בגיד מה שיגרום לנפילת החיבור ולהיפך, כאשר ה-Relay יפתח, הזרם יתחדש וכך גם החיבור.

מאיפה מתחילים ?

ראשית, נבדוק שה-Relay עובד.

1. חברו את ה-Relay מצידו השני אל PC כלשהו באמצעות כבל USB רגיל.

2. במידה ומותקן על המחשב Linux לא תצטרכו להתקין דבר.
אם מותקן Windows תצטרכו להתקין דרייברים מאתר החברה.
כך או כך, יופיע לכם חיבור Com חדש במנהל ההתקנים.

קיימים מספר דרכים לשלוט על ה-Relay אך הפשוטה והמהירה ביותר היא שליחת פקודה אל פורט ה-Com.

למשל:


$ stty -F /dev/ttyUSB0 9600
$ echo -e '\xff\x01\x01' > /dev/ttyUSB0 // the relay 1 go ON.
$ stty -F /dev/ttyUSB0 9600
$ echo -e '\xff\x01\x00' > /dev/ttyUSB0 // the relay 1 go OFF.


אם שמעתם "קליק" כאשר שלחתם את אחת מהפקודות אל ה-Relay, זה אומר שהוא עובד.

ולחלק האומנותי

עכשיו נצטרך להכין כבל USB שיתחבר אל הצד הקדמי של ה-Relay.
לצורך כך נשתמש בכבל USB מאריך קצר.


3. בערך מאמצע הכבל, יש לחשוף את הבידוד עד שמגיעים אל הגידים. שימו לב לא לחתוך את הגידים עדיין.


4. לאחר שחשפתם בערך 5 ס"מ של כבל, חיתכו בזהירות רק את הגיד האדום וחישפו את קצותיו.

5. שחררו את ההברגה מעל הפתחים של ה-Relay.

6. הכניסו קצה אחד אל מחבר C האמצעי ב-Relay ואת הקצה השני אל מחבר NO.

7. סיגרו בחזרה את ההברגה בעדינות, רק כדי לאחוז בגיד שלא יצא חזרה.

8. קבעו את הכבל אל ה-Relay באמצעות סלוטייפ כלשהו כדי שלא ישתחרר.

זהו ! החלק הקשה מאחוריכם.


כעת, כדי לבדוק שכל ה-Setup תקין, חברו מכשיר USB כלשהו - למשל USB Flash למחבר הנקבה של מאריך ה-USB ואת חיבור הזכר אל המערכת עליה אתם מבצעים את הטסטים שלכם.

כאשר חיבור ה-Relay  ייפתח אתם אמורים לראות חיבור על מחשב הטסטים וזיהוי של מכשיר ה-USB וכאשר הוא מנותק תראו שהחיבור מתנתק.

מה עושים עם זה ?

קיימות תוכנות פשוטות התומכות ב-Relay שמאפשרות תכנות למספר גדול של חיבורים וניתוקים.
אפשרות נוספת היא שילוב של הפקודות לחיבור וניתוק בתוך סקריפט או בתוך קוד. קיימות דוגמאות לשם כך בדף המוצר.

לאחר שתכתבו פונקציה שתשלוט על החיבור והניתוק - תוכלו לשלב את ה-Relay בתוך סט של בדיקות אוטומאטיות שכבר קיים בתוספת ניתוק המכשיר באמצע - כטסט Negative, למשל, או יחד עם מספר פעולות מוגדרות שירוצו על המכשיר לפני ולאחרי החיבור כטסט Stability.

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


סיכום

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

כדאי גם לציין שקיימים גם Relay עם מספר פורטים שונים שניתן לשלוט על כל אחד מהם בנפרד. כך למשל, ניתן לחבר מספר מכשירים לתוך חיבור USB יחיד ובכל פעם לחבר ולנתק באמצעות הסקריפט מכשיר אחר.




אין תגובות:

הוסף רשומת תגובה