For interactive use inkvoke the script like this:
python3 -i listen.py
then you can call functions as follows:
>>>initCam()
>>>sendCmd("Autoiris", 0)
>>>sendKey("Iris", 127)
26pin_studio_10pin_remote_6pin_tally.xls
Es wird nur der Remote Anschluß benötigt.
Der Stecker ist ein gewönlicher 6pin Mini-Din (der PS/2 Stecker) Anschluß.
Zum Beispiel: http://www.reichelt.de/SE-DIO-M06/3/index.html?&ACTION=3&LA=446&ARTICLE=17457&artnr=SE-DIO+M06
Signallevel: 3.3V
Format: 9600baud 1E8 (8 daten, 1 stop-bit, even-parity)
Normal CCU to CAM flow | ||||
---|---|---|---|---|
Direction (seen from OCP) | TX | RX | TX | RX |
length (in Byte) | 1 | 1 | 3-4 | 1 |
Purpose | Startbyte | ACK | Data | ACK |
which seems to be requested by a special char (0x90)
Startbyte | ||||||||
---|---|---|---|---|---|---|---|---|
Bit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Purpose | Transmission Start | 0 | Special | data |
If Special bit is set: data is the payload for the request this transmission was requested with. (see 3 byte data bitflags)
ACK byte | ||||||||
---|---|---|---|---|---|---|---|---|
Bit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Funktion | ACK | UNIMPL | ACK | UNIMPL | 0 | UNIMPL | 0 |
0xA0 => transmission understood, everything OK
0xF2 => transmission understood, but Feature not implemented
Daten | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Byte | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
Bit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Purpose | key | 0 | value | checksum |
Data | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Byte | 0 | 1 | 2 | |||||||||||||||||||||
Bit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Purpose | Command | Bitflags | Set Value | Checksum |
Bitflags[2] = apply setting
Bitflags[1] = request special transmission
This table was taken from cmds.csv wich was made by capturing the init sequence of CCU and CAM.
With this handshake all available/unavailable Features should be negotiated.
cmd => 3 byte
key => 4 byte
hex value for a specific setting (topic)
must be treated differently for key and cmd
value to be set for the setting
currently we are thinking these bits represet specific flags
applies only to 3 byte commands; also see the section about 3 byte data
Response byte sent by the Camera,
tells if the requested feature is available in the specific model.
The following table was created by listening to communication with a JVC GM-HY251
//TODO: camera model?
human readable representation of the setting-id
for example cmd setting 0x07 is understood as gain control
human readable representation of the values a setting can have.
such as ON, OFF, incremental values, specific operation modes, ...
cmd type | setting | value | bitfield | cam response | topic | value-representation |
---|---|---|---|---|---|---|
cmd | 0x00 | 0x0 | 0b0100 | IMPL | Colorbars | |
cmd | 0x01 | 0x0 | 0b0100 | IMPL | Detail | |
cmd | 0x02 | 0x0 | 0b0100 | IMPL | Autoiris | |
cmd | 0x02 | 0x1 | 0b0100 | IMPL | Autoiris | |
cmd | 0x03 | 0x0 | 0b0100 | IMPL | White Bal | Manual |
cmd | 0x03 | 0x1 | 0b0100 | IMPL | White Bal | Preset |
cmd | 0x03 | 0x2 | 0b0100 | IMPL | White Bal | A |
cmd | 0x03 | 0x3 | 0b0100 | IMPL | White Bal | B |
cmd | 0x03 | 0xf | 0b0100 | IMPL | White Bal | full auto |
cmd | 0x06 | 0x0 | 0b0110 | UNIPLM | Auto White | |
cmd | 0x06 | 0x1 | 0b0110 | IMPL | Auto White | |
cmd | 0x07 | 0x0 | 0b0100 | IMPL | Gain | 0dB |
cmd | 0x07 | 0x1 | 0b0100 | IMPL | Gain | 6dB |
cmd | 0x07 | 0x2 | 0b0100 | IMPL | Gain | 9dB |
cmd | 0x07 | 0x3 | 0b0100 | IMPL | Gain | 12dB |
cmd | 0x07 | 0x4 | 0b0100 | IMPL | Gain | 18dB |
cmd | 0x07 | 0x5 | 0b0100 | UNIPLM | Gain | |
cmd | 0x07 | 0x6 | 0b0100 | UNIPLM | Gain | |
cmd | 0x07 | 0x8 | 0b0100 | IMPL | Gain | |
cmd | 0x07 | 0x8 | 0b0100 | IMPL | Gain | ALC |
cmd | 0x07 | 0xa | 0b0100 | IMPL | Gain | 3dB |
cmd | 0x07 | 0xe | 0b0100 | UNIPLM | Gain | |
cmd | 0x08 | 0x0 | 0b0100 | IMPL | Tally PGM | |
cmd | 0x08 | 0x1 | 0b0100 | IMPL | Tally PGM | |
cmd | 0x09 | 0x0 | 0b0100 | IMPL | Call | |
cmd | 0x09 | 0x1 | 0b0100 | IMPL | Call | |
cmd | 0x0b | 0x0 | 0b0110 | UNIPLM | ||
cmd | 0x0c | 0x0 | 0b0100 | IMPL | Shutter | off |
cmd | 0x0c | 0x1 | 0b0100 | UNIPLM | Shutter | |
cmd | 0x0c | 0x2 | 0b0100 | IMPL | Shutter | 1/120 |
cmd | 0x0c | 0x3 | 0b0100 | IMPL | Shutter | 1/250 |
cmd | 0x0c | 0x4 | 0b0100 | IMPL | Shutter | 1/500 |
cmd | 0x0c | 0x5 | 0b0100 | IMPL | Shutter | 1/1000 |
cmd | 0x0c | 0x6 | 0b0100 | IMPL | Shutter | 1/2000 |
cmd | 0x0c | 0xf | 0b0100 | UNIPLM | Shutter | |
cmd | 0x0f | 0x0 | 0b0100 | IMPL | Black Toe | unmod |
cmd | 0x0f | 0x1 | 0b0100 | IMPL | Black Toe | stretch |
cmd | 0x0f | 0x2 | 0b0100 | IMPL | Black Toe | compress |
cmd | 0x1b | 0x0 | 0b0100 | UNIPLM | ||
cmd | 0x1b | 0x1 | 0b0100 | UNIPLM | ||
cmd | 0x1c | 0x0 | 0b0100 | IMPL | Auto Knee | |
cmd | 0x1d | 0x0 | 0b0100 | IMPL | Gamma | |
cmd | 0x1d | 0x1 | 0b0100 | IMPL | Gamma | |
cmd | 0x1d | 0x2 | 0b0100 | IMPL | Gamma | |
cmd | 0x1d | 0x3 | 0b0100 | IMPL | Gamma | |
cmd | 0x1d | 0x4 | 0b0100 | IMPL | Gamma | |
cmd | 0x47 | 0x0 | 0b0100 | IMPL | GENLOCK SC | 0 |
cmd | 0x47 | 0x1 | 0b0100 | IMPL | GENLOCK SC | 90 |
cmd | 0x47 | 0x2 | 0b0100 | IMPL | GENLOCK SC | 180 |
cmd | 0x47 | 0x3 | 0b0100 | IMPL | GENLOCK SC | 270 |
cmd | 0x4a | 0x0 | 0b0100 | IMPL | DNR | |
cmd | 0x4b | 0x0 | 0b0100 | UNIPLM | ||
cmd | 0x4b | 0x1 | 0b0100 | UNIPLM | ||
cmd | 0x4b | 0x2 | 0b0100 | UNIPLM | ||
cmd | 0x4b | 0xf | 0b0100 | UNIPLM | ||
cmd | 0x4c | 0x0 | 0b0100 | IMPL | ||
cmd | 0x4c | 0x1 | 0b0100 | IMPL | ||
cmd | 0x4c | 0x2 | 0b0100 | IMPL | ||
cmd | 0x4c | 0xf | 0b0100 | UNIPLM | ||
cmd | 0x4d | 0x0 | 0b0100 | IMPL | Skin Detail | |
cmd | 0x4e | 0x1 | 0b0100 | UNIPLM | ||
cmd | 0x4f | 0x0 | 0b0100 | UNIPLM | ||
cmd | 0x4f | 0x1 | 0b0100 | UNIPLM | ||
cmd | 0x4f | 0x2 | 0b0100 | UNIPLM | ||
cmd | 0x50 | 0x1 | 0b0100 | IMPL | Full Auto Shooting | |
cmd | 0x51 | 0x0 | 0b0100 | UNIPLM | ||
cmd | 0x51 | 0x1 | 0b0100 | UNIPLM | ||
cmd | 0x52 | 0x0 | 0b0100 | IMPL | ||
cmd | 0x53 | 0x0 | 0b0100 | IMPL | Tally PVW | |
cmd | 0x53 | 0x1 | 0b0100 | IMPL | Tally PVW | |
cmd | 0x7c | 0x1 | 0b0100 | IMPL | ||
cmd | 0x7d | 0x1 | 0b0100 | IMPL | ||
key | 0x00 | 0x340 | IMPL | Iris | ||
key | 0x02 | IMPL | Gain R | |||
key | 0x03 | IMPL | Gain B | |||
key | 0x06 | IMPL | Master Black | |||
key | 0x12 | 0x530 | UNIPLM | |||
key | 0x14 | 0x400 | IMPL | |||
key | 0x16 | 0x400 | IMPL | |||
key | 0x26 | 0x328 | IMPL | Red | ||
key | 0x26 | 0x404 | IMPL | Red | ||
key | 0x27 | 0x230 | IMPL | Blue | ||
key | 0x27 | 0x41c | IMPL | Blue | ||
key | 0x32 | 0x604 | IMPL | |||
key | 0x36 | 0x114 | IMPL | Gamma Master | ||
key | 0x37 | 0x114 | IMPL | Gamma G | ||
key | 0x40 | 0x340 | IMPL | Autoiris | ||
key | 0x56 | 0x26e | UNIPLM | |||
key | 0x74 | 0x801 | UNIPLM | |||
key | 0xb4 | 0x801 | UNIPLM | Genlock H Phase 1 | ||
key | 0xb5 | 0x801 | UNIPLM | Genlock H Phase 2 | ||
key | 0xf2 | 0x008 | UNIPLM | |||
key | 0xf2 | 0x00c | UNIPLM | |||
key | 0xf2 | 0x80c | UNIPLM | |||
key | 0xf3 | 0x00c | UNIPLM | |||
key | 0xf3 | 0xf7c | UNIPLM |