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ć.