Protocolo de control integrado para dispositivos de video
Este protocolo de Blackmagic permite controlar los modelos Blackmagic URSA Mini y
Blackmagic Studio Cameras mediante la tarjeta Arduino, y además brinda la posibilidad de
diseñar dispositivos que se integren con nuestros productos. Nuestra filosofía es mantener los
protocolos abiertos para facilitar la colaboración entre usuarios durante los procesos creativos.
Descripción general
Este documento describe un protocolo expansible para enviar mensajes cortos integrados en
la parte de la señal digital que no contiene información visual.
El protocolo puede transmitirse a distintos dispositivos. El equipo al que debe enviarse el
mensaje se determina mediante un proceso de direccionamiento.
Presunciones
El documento del protocolo describe las limitaciones en cuanto a la compensación y la
alineación de la información. Los grupos de bits se ordenan comenzando por el bit menos
importante (LSB). Se asume que los grupos de mensajes, mensajes individuales y encabezados
de comandos se encuentran optimizados para sistemas de 32 bits.
Codificación en el intervalo de supresión
Los grupos de mensajes se codifican en un paquete SMPTE 291M, con DID/SDID x51/x53 en la
región activa de la línea 16 correspondiente al espacio vertical para datos auxiliares (VANC).
Agrupamiento de mensajes
Es posible concatenar y enviar hasta 32 mensajes en un paquete, con una carga útil máxima de
255 bytes. En la mayoría de los casos, esto permite transmitir todos los mensajes en un
fotograma como máximo.
Si la cantidad de paquetes de mensajes que el dispositivo intenta transmitir es mayor al número
de bytes que pueden incluirse en un fotograma, será necesario utilizar métodos heurísticos
para determinar cuáles tienen prioridad. Los mensajes menos importantes pueden transmitirse
en fotogramas posteriores o ignorarse por completo según sea necesario.
Formato abstracto de los paquetes
Cada paquete de mensajes consiste en un encabezado de 3 bytes, seguido de un bloque de
datos opcional de longitud variable. El tamaño máximo de los paquetes es de 64 bytes.
Dispositivo de destino
(uint8)
Longitud del comando
(uint8)
Identificación del
comando (uint8)
Reservado (uint8)
Información del comando
(uint8[])
Las direcciones de los dispositivos se representan mediante un número entero
de 8 bits sin signo. Los dispositivos individuales se numeran del 0 al 254,
mientras que el número 255 se reserva para mensajes transmitidos a todos
los equipos.
La longitud del comando consiste en un número entero de 8 bits sin signo que
indica la extensión de la información. Es preciso destacar que dicho valor NO
incluye la longitud del encabezado o de los bytes de compensación.
Consiste en un número entero de 8 bits sin signo que indica el tipo de mensaje
enviado. El dispositivo receptor deberá ignorar cualquier comando
incomprensible. Los números 0 al 127 se reservan para comandos genéricos
aplicados a múltiples equipos. Los números 128 al 255 se asignan a comandos
para dispositivos específicos.
Este byte se reserva para alineaciones y futuras expansiones. Debería ser 0.
La información del comando puede incluir entre 0 y 60 bytes. El formato de la
selección de datos está definido por el comando mismo.
Protocolo de control Studio Camera
127