12. Protocolul de gazdă

Fiecare cameră OpenMV este livrată cu o stivă de protocol care expune camera ca un set de canale de date denumite către un program gazdă. Programul gazdă poate fi un script Python pe laptopul dezvoltatorului, o interfață grafică de desktop, o altă cameră la celălalt capăt al unui UART sau un serviciu rulând pe o stație de lucru care supraveghează o flotă de camere. Camerei nu îi pasă care – aceeași încadrare, aceeași mecanică de fiabilitate, aceeași abstractizare de canal funcționează pentru toate.

Acesta este răspunsul la două întrebări care apar constant odată ce un proiect de cameră părăsește IDE-ul:

  • „Cum aduc o vizualizare live a ceea ce vede camera într-o interfață grafică personalizată de pe laptopul meu?”

  • „Cum permit unui operator să modifice un prag sau să aleagă o regiune de interes în timpul execuției, fără a reflasha?”

Modulul protocol de pe partea camerei și pachetul openmv-python de pe partea gazdei răspund la ambele întrebări, permițând unei clase Python de pe cameră să expună un canal din care o clasă Python de pe gazdă poate citi, în care poate scrie și la ale cărui evenimente poate reacționa, totul printr-o singură conexiune USB sau serială.

Un PC gazdă se conectează la o cameră prin USB; camera expune trei canale -- un canal de cadre pentru datele de imagine, un canal de configurare pentru valorile de control și canalul stdout încorporat pentru afișări -- iar scriptul gazdă citește din sau scrie în fiecare.

Acest capitol predă ambele părți. Codul de pe partea camerei arată cum se înregistrează canalele și cum se alimentează acestea; codul de pe partea gazdei arată cum să te conectezi, să listezi canalele, să extragi date și să trimiți comenzi înapoi. Instrumente reale livrate în directorul openmv-projects/tools/ folosesc exact tiparele prezentate aici.

Încheiere