12. Värdprotokoll¶
Varje OpenMV-kamera levereras med en protokollstack som exponerar kameran som en uppsättning namngivna datakanaler för ett värdprogram. Värdprogrammet kan vara ett Python-skript på utvecklarens bärbara dator, ett skrivbordsgränssnitt, en annan kamera i andra änden av en UART, eller en tjänst som körs på en arbetsstation och övervakar en flotta av kameror. Kameran bryr sig inte om vilket – samma inramning, samma tillförlitlighetsmaskineri och samma kanalabstraktion fungerar för dem alla.
Detta är svaret på två frågor som dyker upp ständigt när ett kameraprojekt väl lämnar IDE:n:
”Hur får jag en livevy av vad kameran ser in i ett anpassat gränssnitt på min bärbara dator?”
”Hur låter jag en operatör ändra ett tröskelvärde eller välja ett intresseområde under körning, utan att flasha om?”
Modulen protocol på kamerasidan och paketet openmv-python på värdsidan besvarar båda frågorna genom att låta en Python-klass på kameran exponera en kanal som en Python-klass på värden kan läsa från, skriva till och reagera på händelser i, allt över en enda USB- eller seriell anslutning.
Kapitlet lär ut båda sidor. Koden på kamerasidan visar hur man registrerar kanaler och matar dem; koden på värdsidan visar hur man ansluter, listar kanalerna, hämtar data och skickar tillbaka kommandon. Riktiga verktyg som levereras i katalogen openmv-projects/tools/ använder exakt de mönster som visas här.
Inramning
Sammanfattning