12. Isäntäprotokolla¶
Jokainen OpenMV-kamera toimitetaan protokollapinon kanssa, joka tarjoaa kameran isäntäohjelmalle joukkona nimettyjä datakanavia. Isäntäohjelma voi olla Python-skripti kehittäjän kannettavalla, työpöydän graafinen käyttöliittymä, toinen kamera UART-yhteyden toisessa päässä tai työasemalla ajettava palvelu, joka valvoo kameralaivuetta. Kameraa ei kiinnosta, mikä – sama kehystys, sama luotettavuuskoneisto ja sama kanava-abstraktio toimii niille kaikille.
Tämä on vastaus kahteen kysymykseen, jotka nousevat jatkuvasti esiin, kun kameraprojekti poistuu IDE:stä:
”Miten saan reaaliaikaisen näkymän siitä, mitä kamera näkee, omaan mukautettuun graafiseen käyttöliittymääni kannettavalla?”
”Miten annan käyttäjän muuttaa kynnysarvoa tai valita kohdealueen ajon aikana ilman uudelleenflashausta?”
Kameran puolen protocol-moduuli ja isännän puolen openmv-python-paketti vastaavat molempiin kysymyksiin antamalla kameralla olevan Python-luokan tarjota kanavan, josta isännällä oleva Python-luokka voi lukea, johon se voi kirjoittaa ja jonka tapahtumiin se voi reagoida, kaikki yhden USB- tai sarjayhteyden yli.
Luku opettaa molemmat puolet. Kameran puolen koodi näyttää, miten kanavia rekisteröidään ja syötetään; isännän puolen koodi näyttää, miten yhdistetään, listataan kanavat, vedetään dataa ja työnnetään komentoja takaisin. openmv-projects/tools/-hakemistossa toimitettavat oikeat työkalut käyttävät juuri tässä näytettyjä malleja.
Kehystys
Yhteenveto