9.3. Il cavo e il frame

I due livelli più bassi dello stack sono i più facili da dare per scontati sulla camera, perché tutto ciò che fanno avviene all’interno del chip e la camera li gestisce senza che sia coinvolto alcun codice Python. Vale comunque la pena dare loro una rapida occhiata, perché spiegano cosa significa «rete locale» e dove inizia il confine con il resto dell’infrastruttura.

9.3.1. Il livello fisico

Il livello più basso è la segnalazione vera e propria: i fili, le fibre ottiche o le onde radio che trasportano i bit tra due dispositivi. Ethernet su cavi a doppino intrecciato codifica ogni bit come una transizione di tensione a una frequenza fissa. Il Wi-Fi modula gli stessi bit su una portante radio nella banda a 2,4 GHz o 5 GHz. Entrambi producono un flusso di cifre binarie tra due componenti hardware; entrambi sono il tipo di dettaglio che il silicio della camera gestisce senza che il software debba preoccuparsene.

Dal punto di vista di uno script Python, il livello fisico è «il collegamento è attivo» oppure «il collegamento è inattivo». Il modulo network riporta tale stato attraverso il suo metodo isconnected() sull’interfaccia Wi-Fi e attraverso lo stato del collegamento su un’interfaccia Ethernet cablata. Oltre a questo, tutto il resto di ciò che fa questo livello rimane nascosto.

9.3.3. Cosa espone la camera

La camera ha un indirizzo MAC per ciascuna interfaccia di rete che possiede: uno Wi-Fi se la cam ha il supporto wireless, uno Ethernet se la scheda ha la porta corrispondente. Il modulo network vi dà accesso tramite network_interface.config("mac") sull’oggetto interfaccia che l’applicazione sta utilizzando, quando ha bisogno di leggere l’indirizzo. Alcune applicazioni ne hanno bisogno, ad esempio per registrare il dispositivo presso un sistema di gestione della flotta. Altrimenti, questa è l’unica manopola che il livello di collegamento mette a disposizione di Python.

Tutto il resto – il framing, il traffico MAC effettivo sul filo o nell’aria, la negoziazione tra la camera e l’access point su quale canale e velocità utilizzare – avviene interamente all’interno dell’hardware wireless o Ethernet. La pagina successiva tratta l’unico punto in cui uno script Python ha effettivamente voce in capitolo nel livello di collegamento: indicare alla camera a quale rete unirsi.