9.3. O cabo e o quadro

As duas camadas mais baixas da pilha são as mais fáceis de tomar como certas na câmera, porque tudo o que elas fazem acontece dentro do chip e a câmera as gerencia sem que nenhum código Python esteja envolvido. Ainda assim, vale a pena um breve tour por elas, porque explicam o que significa “rede local” e onde começa a fronteira com o restante da infraestrutura.

9.3.1. A camada física

A camada mais baixa é a sinalização propriamente dita – os fios, fibras ópticas ou ondas de rádio que transportam bits entre dois dispositivos. A Ethernet sobre cabos de par trançado codifica cada bit como uma transição de tensão a uma taxa fixa. O Wi-Fi modula esses mesmos bits sobre uma portadora de rádio na banda de 2,4 GHz ou 5 GHz. Ambos produzem um fluxo de dígitos binários entre dois equipamentos de hardware; ambos são o tipo de detalhe que o silício da câmera trata sem que o software precise pensar nisso.

Da perspectiva de um script Python, a camada física é “o link está ativo” ou “o link está inativo”. O módulo network informa esse estado por meio de seu método isconnected() na interface Wi-Fi e por meio do status do link em uma interface Ethernet cabeada. Além disso, tudo o mais que essa camada faz fica oculto.

9.3.3. O que a câmera expõe

A câmera tem um endereço MAC para cada interface de rede que possui – um de Wi-Fi se a câmera tiver suporte sem fio, e um de Ethernet se a placa tiver a porta correspondente. O módulo network dá acesso a ele por meio de network_interface.config("mac") em qualquer objeto de interface que a aplicação esteja usando, quando ela precisa ler o endereço. Algumas aplicações precisam fazer isso, por exemplo, para registrar o dispositivo em um sistema de gerenciamento de frota. Fora isso, esse é o único controle que a camada de enlace entrega ao Python.

Todo o resto – o enquadramento, o tráfego MAC propriamente dito no fio ou no ar, a negociação entre a câmera e o ponto de acesso sobre qual canal e qual taxa usar – acontece inteiramente dentro do hardware sem fio ou Ethernet. A próxima página aborda o único ponto em que um script Python de fato tem voz na camada de enlace: dizer à câmera a qual rede se conectar.