12. Gazdagép-protokoll

Minden OpenMV kamera protokoll-veremmel érkezik, amely a kamerát megnevezett adatcsatornák halmazaként teszi elérhetővé egy gazdaprogram számára. A gazdaprogram lehet egy Python-szkript a fejlesztő laptopján, egy asztali grafikus felület, egy másik kamera egy UART túloldalán, vagy egy munkaállomáson futó szolgáltatás, amely egy kameraflottát figyel. A kamerát nem érdekli, melyik – ugyanaz a keretezés, ugyanaz a megbízhatósági gépezet, ugyanaz a csatornaabsztrakció működik mindegyikkel.

Ez a válasz arra a két kérdésre, amely folyamatosan felmerül, amint egy kameraprojekt elhagyja az IDE-t:

  • „Hogyan juttatom el élő nézetben a laptopomon lévő egyedi grafikus felületre azt, amit a kamera lát?”

  • „Hogyan engedhetem meg egy kezelőnek, hogy futás közben módosítson egy küszöbértéket vagy válasszon egy érdeklődési területet, újraflashelés nélkül?”

A kamera oldalán lévő protocol modul és a gazdagép oldalán lévő openmv-python csomag mindkét kérdésre választ ad azzal, hogy egy kamerán lévő Python-osztály egy csatornát tesz elérhetővé, amelyről egy gazdagépen lévő Python-osztály olvashat, amelyre írhat, és amelynek eseményeire reagálhat, mindezt egyetlen USB- vagy soros kapcsolaton keresztül.

Egy gazda PC USB-n keresztül csatlakozik a kamerához; a kamera három csatornát tesz elérhetővé -- egy képkocka-csatornát a képadatokhoz, egy konfigurációs csatornát a vezérlőértékekhez, és a beépített stdout csatornát a kiírásokhoz --, a gazda-szkript pedig olvas vagy ír mindegyikre.

A fejezet mindkét oldalt megtanítja. A kamera-oldali kód megmutatja, hogyan kell csatornákat regisztrálni és táplálni; a gazdagép-oldali kód megmutatja, hogyan kell csatlakozni, listázni a csatornákat, adatot lehúzni és parancsokat visszaküldeni. Az openmv-projects/tools/ könyvtárban szállított valódi eszközök pontosan az itt bemutatott mintákat használják.

Összefoglalás