12. פרוטוקול מארח

כל מצלמת OpenMV מגיעה עם מחסנית פרוטוקול שחושפת את המצלמה כאוסף של ערוצי נתונים בעלי שם לתוכנית מארחת. התוכנית המארחת יכולה להיות סקריפט Python במחשב הנייד של המפתח, ממשק גרפי שולחני, מצלמה אחרת בקצה השני של UART, או שירות הרץ בתחנת עבודה הצופה בצי של מצלמות. למצלמה לא אכפת מאיזה – אותו מסגור, אותו מנגנון אמינות, אותה הפשטת ערוץ עובדים עבור כולם.

זו התשובה לשתי שאלות שעולות באופן תמידי ברגע שפרויקט מצלמה עוזב את ה-IDE:

  • ”כיצד אני מקבל תצוגה חיה של מה שהמצלמה רואה לתוך ממשק גרפי מותאם אישית במחשב הנייד שלי?“

  • ”כיצד אני מאפשר למפעיל לשנות סף או לבחור אזור עניין בזמן ריצה, מבלי לכתוב מחדש את הקושחה?“

מודול ה-protocol בצד המצלמה וחבילת openmv-python בצד המארח עונים על שתי השאלות, על ידי כך שהם מאפשרים למחלקת Python במצלמה לחשוף ערוץ שמחלקת Python במארח יכולה לקרוא ממנו, לכתוב אליו, ולהגיב לאירועים בו, הכל דרך חיבור USB או טורי יחיד.

A host PC connects to a cam over USB; the cam exposes three channels -- a frame channel for image data, a config channel for control values, and the built-in stdout channel for prints -- and the host script reads or writes each.

הפרק מלמד את שני הצדדים. הקוד בצד המצלמה מראה כיצד לרשום ערוצים ולהזין אותם; הקוד בצד המארח מראה כיצד להתחבר, לרשום את הערוצים, למשוך נתונים, ולדחוף פקודות בחזרה. כלים אמיתיים המגיעים בתיקיית openmv-projects/tools/ משתמשים בדיוק בדפוסים המוצגים כאן.

סיכום