9.3. Kabeln och bildrutan#

De två lägsta lagren i stacken är lättast att ta för givna på kameran, eftersom allt de gör sker inuti chippet och kameran hanterar dem utan att någon Python-kod är inblandad. De är ändå värda en kort genomgång, eftersom de förklarar vad ”lokalt nätverk” betyder och var gränsen mot resten av infrastrukturen börjar.

9.3.1. Det fysiska lagret#

Det understa lagret är själva signaleringen – ledningarna, optiska fibrer eller radiovågor som bär bitar mellan två enheter. Ethernet över partvinnade kablar kodar varje bit som en spänningsövergång med fast hastighet. Wi-Fi modulerar samma bitar på en radiobärvåg i 2,4 GHz- eller 5 GHz-bandet. Båda producerar en ström av binära siffror mellan två maskinvaror; båda är den sortens detalj som kamerans kisel hanterar utan att programvaran behöver tänka på det.

Ur ett Python-skripts perspektiv är det fysiska lagret ”länken är uppe” eller ”länken är nere”. Modulen network rapporterar det tillståndet genom sin metod isconnected() på Wi-Fi-gränssnittet och genom länkstatusen på ett trådbundet Ethernet-gränssnitt. Utöver det är allt annat som detta lager gör dolt.

9.3.3. Vad kameran exponerar#

Kameran har en MAC-adress för varje nätverksgränssnitt den har – en Wi-Fi-adress om kameran har trådlöst stöd, en Ethernet-adress om kortet har motsvarande port. Modulen network ger åtkomst till den via network_interface.config("mac") på det gränssnittsobjekt som applikationen använder, när den behöver läsa adressen. Vissa applikationer behöver det, till exempel för att registrera enheten i ett flotthanteringssystem. I övrigt är detta den enda ratt som länklagret överlämnar till Python.

Allt annat – inramningen, själva MAC-trafiken på ledningen eller i luften, förhandlingen mellan kameran och accesspunkten om vilken kanal och hastighet som ska användas – sker helt och hållet inuti den trådlösa maskinvaran eller Ethernet-maskinvaran. Nästa sida täcker det enda ställe där ett Python-skript faktiskt har ett ord med i laget i länklagret: att tala om för kameran vilket nätverk den ska ansluta till.