12. Protocolo del host¶
Cada cámara OpenMV se entrega con una pila de protocolo que expone la cámara como un conjunto de canales de datos con nombre a un programa host. El programa host puede ser un script de Python en el portátil del desarrollador, una GUI de escritorio, otra cámara al otro extremo de un UART, o un servicio que se ejecuta en una estación de trabajo vigilando una flota de cámaras. A la cámara no le importa cuál: el mismo tramado, la misma maquinaria de fiabilidad y la misma abstracción de canales funcionan para todos ellos.
Esta es la respuesta a dos preguntas que surgen constantemente en cuanto un proyecto de cámara sale del IDE:
«¿Cómo obtengo una vista en directo de lo que ve la cámara en una GUI personalizada en mi portátil?»
«¿Cómo permito que un operador cambie un umbral o seleccione una región de interés en tiempo de ejecución, sin volver a flashear?»
El módulo protocol del lado de la cámara y el paquete openmv-python del lado del host responden a ambas preguntas, permitiendo que una clase de Python en la cámara exponga un canal desde el que una clase de Python en el host puede leer, en el que puede escribir y al que puede reaccionar ante eventos, todo ello a través de una única conexión USB o serie.
El capítulo enseña ambos lados. El código del lado de la cámara muestra cómo registrar canales y alimentarlos; el código del lado del host muestra cómo conectarse, listar los canales, extraer datos y enviar comandos de vuelta. Las herramientas reales que se distribuyen en el directorio openmv-projects/tools/ usan exactamente los patrones mostrados aquí.
Tramado
Resumen