9.3. הכבל והפריים

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

9.3.1. השכבה הפיזית

השכבה התחתונה היא האיתות עצמו – החוטים, סיבים אופטיים, או גלי הרדיו הנושאים ביטים בין שני התקנים. Ethernet על גבי כבלי זוג שזור מקודד כל ביט כמעבר מתח בקצב קבוע. Wi-Fi מאפנן את אותם ביטים על נושא רדיו בתחום 2.4 GHz או 5 GHz. שניהם מייצרים זרם של ספרות בינאריות בין שני רכיבי חומרה; שניהם מסוג הפרטים שהסיליקון של המצלמה מטפל בהם מבלי שהתוכנה צריכה לחשוב עליהם.

מנקודת המבט של סקריפט Python, השכבה הפיזית היא ”הקישור פעיל“ או ”הקישור מנותק“. מודול network מדווח על מצב זה דרך המתודה isconnected() שלו בממשק Wi-Fi ודרך מצב הקישור בממשק Ethernet קווי. מעבר לכך, כל יתר מה שהשכבה הזו עושה מוסתר.

9.3.3. מה שהמצלמה חושפת

למצלמה יש כתובת MAC לכל ממשק רשת שיש לה – כתובת Wi-Fi אם למצלמה יש תמיכה אלחוטית, וכתובת Ethernet אם ללוח יש את היציאה המתאימה. מודול network מעניק גישה אליה דרך network_interface.config("mac") על אובייקט הממשק שבו האפליקציה משתמשת, כאשר היא צריכה לקרוא את הכתובת. חלק מהאפליקציות זקוקות לכך, למשל כדי לרשום את ההתקן במערכת ניהול צי. אחרת, זהו הכפתור היחיד ששכבת הקישור מעבירה לידי Python.

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