9.3. A kábel és a képkocka

A verem két legalsó rétegét a legkönnyebb adottnak venni a kamerán, mert minden, amit csinálnak, a chipen belül történik, és a kamera anélkül kezeli őket, hogy bármilyen Python kód érintve lenne. Mégis érdemes egy rövid körutat tenni rajtuk, mert megmagyarázzák, mit jelent a „helyi hálózat”, és hol kezdődik az infrastruktúra többi részével szembeni határ.

9.3.1. A fizikai réteg

A legalsó réteg maga a tényleges jeltovábbítás – a vezetékek, az optikai szálak vagy a rádióhullámok, amelyek a biteket két eszköz között szállítják. A sodrott érpáras kábeleken futó Ethernet minden bitet egy rögzített ütemben végbemenő feszültségátmenetként kódol. A Wi-Fi ugyanezeket a biteket modulálja egy rádiós vivőjelre a 2,4 GHz-es vagy az 5 GHz-es sávban. Mindkettő bináris számjegyek folyamát állítja elő két hardvereszköz között; mindkettő olyan részlet, amelyet a kamera szilíciuma anélkül kezel, hogy a szoftvernek foglalkoznia kellene vele.

Egy Python szkript szemszögéből a fizikai réteg annyit jelent, hogy „a kapcsolat él” vagy „a kapcsolat nem él”. A network modul ezt az állapotot a Wi-Fi interfész isconnected() metódusán keresztül, illetve egy vezetékes Ethernet interfész esetén a kapcsolat állapotán keresztül jelzi. Ezen túl minden más, amit ez a réteg csinál, rejtve marad.

9.3.3. Mit tesz elérhetővé a kamera

A kamera minden egyes hálózati interfészéhez tartozik egy MAC-cím – egy Wi-Fi-s, ha a kamera vezeték nélküli támogatással rendelkezik, és egy Ethernetes, ha a panelen van megfelelő port. A network modul a network_interface.config("mac") hívással biztosít hozzáférést ehhez azon az interfészobjektumon, amelyet az alkalmazás éppen használ, amikor be kell olvasnia a címet. Néhány alkalmazásnak erre szüksége van, például hogy regisztrálja az eszközt egy flottakezelő rendszerben. Egyébként ez az egyetlen szabályozó, amelyet a kapcsolati réteg átad a Pythonnak.

Minden más – a keretezés, a tényleges MAC-forgalom a vezetéken vagy a levegőben, a kamera és a hozzáférési pont közötti egyeztetés arról, hogy melyik csatornát és sebességet használják – teljes egészében a vezeték nélküli vagy az Ethernet hardveren belül történik. A következő oldal azt az egyetlen helyet tárgyalja, ahol egy Python szkriptnek mégis van beleszólása a kapcsolati rétegbe: megmondani a kamerának, melyik hálózathoz csatlakozzon.