Para fabricantes de cámaras

Dos puertas, y puede entrar por cualquiera.

Definimos un vocabulario de cámara canónico y no permitimos que las formas de cada fabricante crucen el bus. Esa negativa es la invitación: nunca tendrá que adoptar nuestro lenguaje, nuestro sistema de compilación ni nuestro ritmo de versiones.

Puerta uno

Escriba un controlador

Un objeto compartido contra una ABI de C estable. Seis funciones, una cabecera, ninguna dependencia de nosotros. Un controlador completo ronda las doscientas líneas, compila en una sola orden y se registra por ruta.

$ cc -O2 -shared -fPIC -I /path/to/cam_abi.h/dir my_driver.c -o libcam_acme.so # then name it in the config the hub already reads:"camctl": { "drivers": ["/opt/acme/libcam_acme.so"] }
La orden de compilación tal como la indica el manual del controlador. Seis puntos de entrada: reboot, get_info, set_enc, set_image, ptz, get_state.
Puerta dos

Hable el dialecto nativo

Responda al vocabulario canónico directamente por REST y no necesitará controlador alguno. El dialecto se autodescribe: su firmware anuncia lo que sabe hacer en lugar de que nosotros lo supongamos.

$ curl -s http://reference-camera:8600/v1/helpCommands (POST /v1/<command>, JSON body, Authorization: Bearer <token>): help [/<cmd>] this index; /v1/help/<cmd> details one command (GET ok) login mint a session token (8 concurrent, 3600 s lease) logout void the calling token get_info identity: model, firmware, name get_state everything readable in one call: ptz caps + enc + image set_enc change bitrate_kbps / fps on one stream set_image day_night, back_light, anti_flicker, exposure, white_balance, rotation, mirroring (canonical values) ptz continuous move; the caller owns the press/release pair reboot reseed state, void tokens, drop RTSP sessions
El /v1/help de la cámara de referencia, en extracto. Existe una versión JSON del mismo índice, para que un controlador valide la superficie al arrancar.

La cámara de referencia es la prueba

Incluimos una cámara sintética que solo acepta vocabulario canónico. Es un verificador incorporado: si su controlador falla contra ella, sigue hablando en dialecto propio. Nada que reservar, nada que enviar; lo sabrá antes que nosotros.

Por qué merece la pena

Porque el controlador es suyo y sigue funcionando. La traducción queda aislada detrás de la ABI, así que nuestras versiones no se convierten en las suyas. Las condiciones de listado y certificación se están definiendo; la puerta técnica ya está abierta.

Iniciar una conversación técnica La especificación de la API de cámara y el manual del controlador son documentación pública, no una descarga para socios.