9.3. Kabel i ramka

Dwie najniższe warstwy stosu najłatwiej w przypadku kamery uznać za oczywiste, ponieważ wszystko, co robią, dzieje się wewnątrz układu, a kamera obsługuje je bez udziału jakiegokolwiek kodu w Pythonie. Mimo to warto je pokrótce omówić, ponieważ wyjaśniają, co oznacza „sieć lokalna” i gdzie zaczyna się granica z resztą infrastruktury.

9.3.1. Warstwa fizyczna

Najniższa warstwa to faktyczna sygnalizacja – przewody, światłowody lub fale radiowe, które przenoszą bity między dwoma urządzeniami. Ethernet po skrętce koduje każdy bit jako przejście napięciowe ze stałą szybkością. Wi-Fi moduluje te same bity na nośnej radiowej w paśmie 2,4 GHz lub 5 GHz. Oba rozwiązania wytwarzają strumień cyfr binarnych między dwoma fragmentami sprzętu; oba są rodzajem szczegółu, którym krzem kamery zajmuje się bez konieczności myślenia o nim przez oprogramowanie.

Z perspektywy skryptu w Pythonie warstwa fizyczna to „łącze jest aktywne” albo „łącze jest nieaktywne”. Moduł network zgłasza ten stan poprzez metodę isconnected() na interfejsie Wi-Fi oraz poprzez status łącza na przewodowym interfejsie Ethernet. Poza tym wszystko inne, co robi ta warstwa, pozostaje ukryte.

9.3.3. Co udostępnia kamera

Kamera ma adres MAC dla każdego posiadanego interfejsu sieciowego – adres Wi-Fi, jeśli kamera obsługuje łączność bezprzewodową, oraz adres Ethernet, jeśli płytka ma odpowiedni port. Moduł network daje do niego dostęp poprzez network_interface.config("mac") na dowolnym obiekcie interfejsu, którego używa aplikacja, gdy potrzebuje odczytać adres. Niektóre aplikacje tego potrzebują, na przykład aby zarejestrować urządzenie w systemie zarządzania flotą. Poza tym jest to jedyne pokrętło, które warstwa łącza oddaje Pythonowi.

Wszystko inne – tworzenie ramek, faktyczny ruch MAC w przewodzie lub w eterze, negocjacje między kamerą a punktem dostępowym dotyczące tego, którego kanału i szybkości użyć – dzieje się w całości wewnątrz sprzętu bezprzewodowego lub Ethernet. Następna strona omawia jedyne miejsce, w którym skrypt w Pythonie ma coś do powiedzenia w warstwie łącza: wskazanie kamerze, do której sieci ma dołączyć.