9.3. Кабель і кадр

Два нижніх рівні стека найлегше сприймати як належне на камері, оскільки все, що вони роблять, відбувається всередині чіпа, і камера обробляє їх без будь-якого коду Python. Вони все одно заслуговують на короткий огляд, адже пояснюють, що означає «локальна мережа» і де починається межа з рештою інфраструктури.

9.3.1. Фізичний рівень

Нижній рівень — це реальна передача сигналів: дроти, оптичні волокна або радіохвилі, що переносять біти між двома пристроями. Ethernet по кручений парі кодує кожен біт як перехід напруги з фіксованою швидкістю. Wi-Fi модулює ті самі біти на радіонесучу в діапазоні 2,4 ГГц або 5 ГГц. Обидва методи створюють потік двійкових цифр між двома апаратними засобами; обидва — це тип деталей, з якими кремній камери справляється без участі програмного забезпечення.

З точки зору скрипту Python фізичний рівень — це «з’єднання встановлено» або «з’єднання відсутнє». Модуль network повідомляє цей стан через метод isconnected() для Wi-Fi інтерфейсу та через статус з’єднання для дротового Ethernet інтерфейсу. Все інше, що робить цей рівень, приховано.

9.3.3. Що надає камера

Камера має MAC-адресу для кожного мережевого інтерфейсу — Wi-Fi, якщо камера підтримує бездротовий зв’язок, або Ethernet, якщо на платі є відповідний порт. Модуль network надає доступ до неї через network_interface.config("mac") на будь-якому об’єкті інтерфейсу, який використовує застосунок, коли потрібно прочитати адресу. Деяким застосункам це потрібно, наприклад, щоб зареєструвати пристрій у системі управління парком. В іншому випадку це єдиний параметр, який канальний рівень передає Python.

Все інше — формування кадрів, фактичний MAC-трафік по кабелю або в повітрі, переговори між камерою та точкою доступу щодо каналу та швидкості — відбувається повністю всередині бездротового або Ethernet обладнання. Наступна сторінка розглядає єдине місце, де скрипт Python дійсно має вплив на канальний рівень: вказує камері, до якої мережі підключитися.