12. Host-protocol¶
Elke OpenMV cam wordt geleverd met een protocolstack die de camera blootstelt als een verzameling benoemde datakanalen aan een hostprogramma. Het hostprogramma kan een Python-script op de laptop van de ontwikkelaar zijn, een desktop-GUI, een andere cam aan het andere uiteinde van een UART, of een dienst op een werkstation die een vloot camera’s bewaakt. De cam maakt het niet uit welke – dezelfde framing, dezelfde betrouwbaarheidsmachinerie, dezelfde kanaalabstractie werkt voor allemaal.
Dit is het antwoord op twee vragen die voortdurend opduiken zodra een cam-project de IDE verlaat:
“Hoe krijg ik een live weergave van wat de cam ziet in een aangepaste GUI op mijn laptop?”
“Hoe laat ik een operator tijdens runtime een drempelwaarde wijzigen of een aandachtsgebied kiezen, zonder opnieuw te flashen?”
De protocol-module aan de cam-zijde en het openmv-python-pakket aan de host-zijde beantwoorden beide vragen, door een Python-klasse op de cam een kanaal te laten blootstellen waaruit een Python-klasse op de host kan lezen, naar kan schrijven, en op gebeurtenissen kan reageren, alles over een enkele USB- of seriële verbinding.
Het hoofdstuk behandelt beide zijden. De cam-zijdige code laat zien hoe je kanalen registreert en voedt; de host-zijdige code laat zien hoe je verbindt, de kanalen opsomt, data ophaalt en commando’s terugstuurt. Echte tools die meegeleverd worden in de map openmv-projects/tools/ gebruiken precies de patronen die hier worden getoond.
Framing
Afronding