12. Hostitelský protokol¶
Každá kamera OpenMV se dodává s protokolovým zásobníkem, který kameru vystavuje hostitelskému programu jako sadu pojmenovaných datových kanálů. Hostitelským programem může být skript v Pythonu na vývojářově notebooku, desktopové GUI, jiná kamera na druhém konci UART nebo služba běžící na pracovní stanici sledující flotilu kamer. Kameře je jedno, který z nich – stejné rámcování, stejný mechanismus spolehlivosti, stejná abstrakce kanálu fungují pro všechny.
To je odpověď na dvě otázky, které se neustále objevují, jakmile projekt s kamerou opustí IDE:
„Jak dostanu živý náhled toho, co kamera vidí, do vlastního GUI na svém notebooku?“
„Jak umožním operátorovi změnit práh nebo vybrat oblast zájmu za běhu, bez nového nahrání firmwaru?“
Modul protocol na straně kamery a balíček openmv-python na straně hosta odpovídají na obě otázky tím, že umožňují třídě v Pythonu na kameře vystavit kanál, ze kterého může třída v Pythonu na hostu číst, do kterého může zapisovat a na jehož události může reagovat, to vše přes jediné připojení USB nebo sériové připojení.
Tato kapitola učí obě strany. Kód na straně kamery ukazuje, jak registrovat kanály a plnit je daty; kód na straně hosta ukazuje, jak se připojit, vypsat kanály, stáhnout data a poslat zpět příkazy. Skutečné nástroje, které se dodávají v adresáři openmv-projects/tools/, používají přesně vzory uvedené zde.
Rámcování (framing)
Streamování
Shrnutí