12. Протокол хоста¶
Каждая камера OpenMV поставляется со стеком протокола, который представляет камеру хост-программе как набор именованных каналов данных. Хост-программой может быть скрипт Python на ноутбуке разработчика, настольный графический интерфейс, другая камера на другом конце UART или служба, работающая на рабочей станции и наблюдающая за парком камер. Камере всё равно, что это – одно и то же кадрирование, один и тот же механизм надёжности, одна и та же абстракция канала работают для всех них.
Это ответ на два вопроса, которые постоянно возникают, как только проект камеры покидает IDE:
«Как мне получить живое изображение того, что видит камера, в собственном графическом интерфейсе на ноутбуке?»
«Как разрешить оператору менять порог или выбирать область интереса во время работы, без перепрошивки?»
Модуль protocol на стороне камеры и пакет openmv-python на стороне хоста отвечают на оба вопроса, позволяя классу Python на камере представить канал, из которого класс Python на хосте может читать, в который может писать и на события которого может реагировать – всё это через одно USB- или последовательное соединение.
Эта глава учит обеим сторонам. Код на стороне камеры показывает, как регистрировать каналы и подавать в них данные; код на стороне хоста показывает, как подключиться, перечислить каналы, забрать данные и отправить команды обратно. Реальные инструменты, поставляемые в каталоге openmv-projects/tools/, используют именно те шаблоны, что показаны здесь.
Кадрирование
Потоковая передача
Заключение