×
技术支持  
4K60矩阵专用串口RS232通讯协议与控制指令代码
2021-09-22

协议总体格式

HEX 格式CmdHead + CmdIndex + ValidLen + ValidData + CheckSum + CmdTail

CmdHead:

2个字节组成, CmdHead 2种格式,分别为CmdHeadA CmdHeadB

CmdHeadA = 7B 7B ( ‘{‘ ‘{‘ ) ;

CmdHeadB = 7B 3C ( ‘{‘ ‘<‘ ) ;

CmdIndex:

1个字节组成,构成指令功能。

ValidLen:

1个字节组成,ValidLen是计算ValidData长度的值。

ValidData:

ValidLen个字节组成,构成协议有效有用数据内容。

CheckSum:

1个字节组成,CmdHeadCmdIndexValidLenValidDataCmdTail数据相加取低位1个字节构成CheckSum,当然为了方便特殊情况下可以手动发指令不需要计算校验和,CheckSum为一些特殊的值时,可以跳过校验,直接解析有效数据,比如CheckSum = 0x99

CmdTail:

2个字节组成, CmdTail = 7D 7D ( ‘}’ ‘}’ )

特殊词:

PC:指上层统称,可以是PC-tool,串口工具,网页等任何给底层发数据的非底层一方。

MainB:指主板卡

SubB:指子板卡(除主板卡外其它板卡,包含输入板、输出板、按键板)

InB:指输入板卡

OutB:指输出板卡

KeyB:指按键板卡

CS:指校验和,CSCheckSum是一个意思

协议具体格式内容

写在前面注意事项:

①   MainB发到InB/OutB可能做了Addr或Port的处理,具体需要根据具体代码分析,协议不能描述到所有细节处理

②   InB/OutB发到MainB可能协议头7B 7B修改成了7B 3C,MainB发送到PC可能又把7B 3C改成7B 7B,这些协议中不会描述到,需要根据代码了解其中转换变化

CmdIndex = 0x01(切换矩阵-常用纯矩阵)

PC->MainB:

格式:7B 7B 01 02 inPort outPort CS 7D 7D


①   当配置的矩阵输出口<=8

inPort:按字节解析,最小值为0,代表输入端口1,以此类推.

outPort:按比特解析,这个字节有8bit,bit0~bit7分别表示输出端口1~8是否需要切换,可以切换多个输出通道.当值为FF表示所有输出端口.比如: outPort = 0x03, inPort = 0x01,表示将输出口1和2都切换为输入2.

举例:

输出1切换为输入2

7B 7B 01 02 01 01 CS 7D 7D

输出1~8切换为输入1,因为矩阵配置<=8,所以也可以指所有输出切换为输入1

7B 7B 01 02 00 FF CS 7D 7D


②   当配置的矩阵输出口>8

inPort:按字节解析,最小值为0,代表输入端口1,以此类推.

outPort:按字节解析,最小值为0,代表输出端口1,以此类推.当值为FF表示所有输出.

举例:

输出2切换为输入2

7B 7B 01 02 01 01 CS 7D 7D

所有输出切换为输入1

7B 7B 01 02 00 FF CS 7D 7D

MainB->PC/KeyB:

格式:7B 7B 11 ValidOutNum Out1Inx Out2Inx … OutnInx CS 7D 7D

(详情见CmdIndex = 0x11)

CmdIndex = 0x12(要求矩阵汇报当前矩阵关系)

格式: 7B 7B 12 01 00 CS 7D 7D

CmdIndex = 0x11(当前矩阵关系汇报)

MainB->PC/KeyB:

格式: 7B 7B 11 ValidOutNum Out1Inx Out2Inx … OutnInx CS 7D 7D

ValidOutNum:有效的输出端口个数n,当你配置矩阵为4(输入)x6(输出)时, ValidOutNum = 6,以此类推。

Out1Inx Out2Inx … OutnInx:共ValidOutNum个字节, Out1Inx代表输出端口1对应的输入端口,其余以此类推。OutnInx代表最后一个输出端口n对应的输入端口


CmdIndex = 0x94(切换矩阵-常用拼接)

PC->MainB:

格式:7B 7B 94 VaildLen ValidData CS 7D 7D

ValidData:由Mode Input Output [扩展数据]组成

①   Mode = 0.

[扩展数据]为空,即ValidData由Mode Input output组成, VaildLen=3.

Input:输入端口,从0开始,表示输入端口1

Output:输出端口,从0开始,表示输出端口1


1.      Mode 0,切换单个输出的输入信息:

举例:

命令:7B 7B 94 03 00 01 00 88 7D 7D

功能:切换输入2到输出1


②   Mode = 1.

[扩展数据]长度为2(n-1)个字节,和Input Output [扩展数据]共组成2n个字节, VaildLen = 2n+1,n最大为矩阵最大输出端口数。

Input:输入端口,从0开始,表示输入端口1

Output:输出端口,从0开始,表示输出端口1


2.      Mode 1,切换多个输出的输入:

举例:

命令: 7B 7B 94 11 01 00 00 01 01 02 02 03 03 04 04 05 05 06 06 07 07 CE 7D 7D

功能:把输入1切换到输出1,输入2切换到输出2,输入3切换输出3,输入4切换到输出4,输入5切换到输出5,输入6切换到输出6,输入7切换到输出7,输入8切换到输出8;


③   Mode = 2.

[扩展数据]长度为m个字节,即ValidData由Mode Input output [扩展数据]组成, VaildLen=1+1+m+1. Output的bit7~bit0的值分别表示通道1~8是否需要切换为Input,[扩展数据]相当于Output的扩展。

Input:输入端口,从0开始,表示输入端口1

Output:输出端口,从0开始,表示输出端口1


3.      Mode 2,切换某一输入到多个输出:

举例:

命令:7B 7B 94 03 02 01 F0 7A 7D 7D

功能:切换输入2到 输出1/2/3/4



④   Mode = 0xFF,表示切换所有输出端口为Input.

[扩展数据]为空,即ValidData由Mode Input output组成,且output无效不解析数据。 VaildLen=3.

Input:输入端口,从0开始,表示输入端口1

Output:无效,预留 = 0


4.      Mode 0xFF,切换某一输入到所有输出:

举例:

命令:7B 7B 94 03 FF 01 00 87 7D 7D

功能:切换输入2到所有输出

MainB->PC/KeyB:

格式: 7B 7B 11 ValidOutNum Out1Inx Out2Inx … OutnInx CS 7D 7D

(详情见CmdIndex = 0x11)


CmdIndex = 0x95(矩阵规模)

PC->MainB:

格式:7B 7B 95 03 Mode ValidOutSum ValidInSum CS 7D 7D

Mode:   = 0表示读取,

= 1表示设置;

ValidOutSum:有效输出端口数

ValidInSum:有效输入端口数

MainB->PC:

①   PC->MainB时,Mode = 0(读取)时,

格式:7B 7B 95 05 Mode ValidOutSum ValidInSum MaxOutSum MaxTVWallMode CS 7D 7D

ValidOutSum:有效输出端口数

ValidInSum:有效输入端口数

MaxOutSum:最大有效输出端口数

MaxTVWallMode:最大拼接墙模式数


②   PC->MainB时,Mode = 1(设置)时

格式:7B 7B 95 03 Mode OutSum InSum CS 7D 7D

ValidOutSum:有效输出端口数

ValidInSum:有效输入端口数


CmdIndex = 0x96(软件版本-只读)

PC->MainB:

格式:7B 7B 96 09 Addr Ctrl 00 00 00 00 00 00 00 CS 7D 7D

Addr: 目标板卡地址,在读取输入输出板卡时使用,从0开始,0表示机箱中第一个卡槽中板卡地址,其他情况默认为0.

Ctrl: [bit7]:预留,默认写0

         [bit6]:      = 1,表示目标板卡地址Addr描述的为输入板卡

                    = 0,表示目标板卡地址Addr描述的为输出板卡

         [bit5-4]:预留,默认写0

[bit3-0]: = 0,表示读取主板卡软件版本

         = 1,表示读取按键板卡软件版本

         = 2,表示读取输出板卡软件版本

         = 3,保留未使用

         = 4,表示读取输入板卡软件版本

MainB->PC:

格式:7B 7B 96 09 Addr Ctrl YearH YearL Month Day Hour Minute Second CS 7D 7D

Addr: 板卡地址,在读取输入输出板卡时使用,从0开始,0表示机箱中第一个卡槽中板卡地址,其他情况默认为0.

Ctrl: [bit7]:预留,默认写0

         [bit6]:      = 1,表示板卡地址Addr表示的输入板卡

                    = 0,表示板卡地址Addr表示的输出板卡

         [bit5-4]:预留,默认写0

[bit3-0]: = 0,表示读取主板卡软件版本

         = 1,表示读取按键板卡软件版本

         = 2,表示读取输出板卡软件版本

         = 3,预留

        = 4,表示读取输入板卡软件版本

YearH:年份高位,其值非真实年份,16进制显示的表示年份.如0x20

YearL:年份低位,其值非真实年份,16进制显示的表示年份.如0x16

Month:月,其值非真实年份,16进制显示的表示年份.如0x10

Day:日,其值非真实年份,16进制显示的表示年份.如0x01

Hour:时,其值非真实年份,16进制显示的表示年份.如0x08

Minute:分,其值非真实年份,16进制显示的表示年份.如0x30

Second:秒,其值非真实年份,16进制显示的表示年份.如0x00

综上,软件版本为2016/10/1-8:30:0


Note:

读取输出板卡软件版本Ctrl = 0x02,读取输入板卡软件版本Ctrl = 0x44.



CmdIndex = 0x02(场景保存)

PC->MainB:

格式: 7B 7B 02 01 ModeIndex CS 7D 7D

ModeIndex:模式id或模式索引,从0开始,表示模式1

MainB->PC:

格式: 7B 7B 02 01 ModeIndex CS 7D 7D

ModeIndex:模式id或模式索引,从0开始,表示模式1

CmdIndex = 0x03(场景调用)

PC/KeyB->MainB:

格式: 7B 7B 03 01 ModeIndex CS 7D 7D

ModeIndex:模式id或模式索引,从0开始,表示模式1

MainB->KeyB/PC:

格式: 7B 7B 11 ValidOutNum Out1Inx Out2Inx … OutnInx CS 7D 7D

(详情见CmdIndex = 0x11)

MainB->OutB:

格式:7B 7B 90 09 Addr Ctrl Line Column P Q SyncLock Adjust Routing CS 7D 7D

(详情见CmdIndex = 0x90)

MainB->PC:

格式:7B 7B 93 ValidLen ValidData CS 7D 7D

(详情见CmdIndex = 0x93)


CmdIndex = 0x97(拼接墙模式保存)

PC->MainB:

格式: 7B 7B 97 01 ModeIndex CS 7D 7D

ModeIndex:模式id或模式索引,从0开始,表示模式1

MainB->PC:

格式: 7B 7B 97 01 ModeIndex CS 7D 7D

ModeIndex:模式id或模式索引,从0开始,表示模式1


CmdIndex = 0x98(拼接墙模式调用)

PC/KeyB->MainB:

格式: 7B 7B 98 01 ModeIndex CS 7D 7D

ModeIndex:模式id或模式索引,从0开始,表示模式1

MainB->KeyB/PC:

格式: 7B 7B 11 ValidOutNum Out1Inx Out2Inx … OutnInx CS 7D 7D

(详情见CmdIndex = 0x11)

MainB->OutB:

格式:7B 7B 90 09 Addr Ctrl Line Column P Q SyncLock Adjust Routing CS 7D 7D

(详情见CmdIndex = 0x90)

CmdIndex = 0x90(屏幕开始拼接)

PC->MainB:

格式:7B 7B 90 09 Port Ctrl Line Column P Q SyncLock Adjust Routing CS 7D 7D

Port:端口号.

Ctrl: [bit7]:       = 1,表示读取拼接参数.

= 0,表示设置拼接.

[Bit6]:    = 1,表示端口为输入板卡端口.

= 0,表示端口为输出板卡端口.

[bit5~0]:保留未使用,默认写0.

Line: 拼接屏幕一共的行数

Column: 拼接屏幕一共的列数

P: 当前屏幕所在的行数

Q: 当前屏幕所在的列数

bSyncLock:同步锁开关,1-开; 0-关

Adjust:校正值

Routing:输出端口(Add-1)映射的输入端口



CmdIndex = 0x91(拼接屏幕边缘调整)

PC->MainB->OutB:

格式:7B 7B 91 06 Port Ctrl Left Right Top Bottom CS 7D 7D

Port:端口号.

Ctrl: [bit7]:      = 1,表示读取当前屏幕的边缘调整参数.

                          = 0,表示设置当前屏幕的边缘调整参数.

         [bit6]:       = 1,表示端口为输入板卡端口.

                         = 0,表示端口为输出板卡端口.

         [bit5~0]:  保留未使用,默认写0.

Left:表示屏幕左边沿的值. 单位为像素.

Right:表示屏幕右边沿的值. 单位为像素.(目前该参数不使用,表示与Left相同)

Top:表示屏幕上边沿的值. 单位为像素.

Bottom:表示屏幕下边沿的值.单位为像素.(目前该参数不使用,表示与Top相同)


CmdIndex = 0x92(拼接SyncLock-同步锁定)

PC->MainB->OutB:

格式:7B 7B 92 03 Port Ctrl LockFlag CS 7D 7D

Port:端口号.

Ctrl: [bit7]:      = 1,表示读取SyncLock的开关值.

                          = 0,表示设置SyncLock的开关值.

         [bit6]:      = 1,表示端口为输入板卡端口.

                          = 0,表示端口为输出板卡端口.

         [bit5~0]:  保留不使用,默认写0.

LockFlag:         = 1,表示设置同步锁定.

                          = 0,表示取消同步锁定.


CmdIndex = 0x93(拼接墙设置与读取)

PC->MainB:

格式:7B 7B 93 ValidLen ValidData CS 7D 7D

ValidLen: =2+3+5*NUM_Vaild, NUM_Vaild为拼接墙屏幕的有效个数(有效个数 <= 拼接墙屏幕行*拼接墙屏幕列)

ValidData:由Addr+Ctrl+NUM_Vaild+NUM_Line+NUM_Column[+Flag+ FirstCombineID+ OutputPort+ AdjustValue+ InputPort+……]组成.


Addr:板卡地址,因为信息发给主板,所以Addr没啥意义,默认为0

Ctrl:[bit7]: = 1,表示读取拼接墙数据

         = 0,表示设置拼接墙数据

NUM_Valid:拼接墙屏幕的有效个数

NUM_Line:拼接墙屏幕的行数

NUM_Column:拼接墙屏幕的列数

Flag:[bit0]: = 1,表示拼接

         = 0,表示不拼接

         [bit1]: = 1,表示锁定同步时钟

          = 0,表示不锁定同步时钟

FirstCombineID: NUM_Line* NUM_Column的拼接屏幕第一个屏幕的索引id

OutputPort:输出端口

AdjustValue:校正值

InputPort:输入端口

Flag+ FirstCombineID+ OutputPort+ AdjustValue+ InputPort+……:总共共有NUM_Valid个Flag+ FirstCombineID+ OutputPort+ AdjustValue+ InputPort结构的数据.

①   当Ctrl的bit7为1时,读取拼接墙数据, NUM_Valid= NUM_Line= NUM_Column=0; ValidLen=5

MainB->PC:

格式:7B 7B 93 ValidLen ValidData CS 7D 7D

ValidLen: =3+5*NUM_Vaild, NUM_Vaild为拼接墙屏幕的有效个数(有效个数 <= 拼接墙屏幕行*拼接墙屏幕列)

ValidData:由NUM_Vaild+NUM_Line+NUM_Column+Flag+ FirstCombineID+ OutputPort+ AdjustValue+ InputPort+……组成.


NUM_Valid:拼接墙屏幕的有效个数

NUM_Line:拼接墙屏幕的行数

NUM_Column:拼接墙屏幕的列数

Flag:[bit0]: = 1,表示拼接

         = 0,表示不拼接

         [bit1]: = 1,表示锁定同步时钟

          = 0,表示不锁定同步时钟

FirstCombineID: NUM_Line* NUM_Column的拼接屏幕第一个屏幕的索引id

OutputPort:输出端口

AdjustValue:校正值

InputPort:输入端口

Flag+ FirstCombineID+ OutputPort+ AdjustValue+ InputPort+……:总共共有NUM_Valid个Flag+ FirstCombineID+ OutputPort+ AdjustValue+ InputPort结构的数据.


CmdIndex = 0x80(OSD背景透明开关)

PC->MainB->OutB:

格式:7B 7B 80 03 Port Ctrl TransparentFlag CS 7D 7D

Port:端口号

Ctrl: [bit7]:       = 1,表示查询OSD背景色

                          = 0,表示设置OSD背景色

         [bit6]:       = 1,表示端口是输入板卡端口

                          = 0,表示端口是输出板卡端口

         [bit5~0]:保留未使用,默认写0

TransparentFlag:    = 1,表示打开背景色透明

                                   = 0,表示关闭背景色透明

OutB->MainB->PC:

格式:7B 7B 80 03 Port Ctrl TransparentFlag CS 7D 7D

Port:端口号

Ctrl: [bit7]:       = 1,表示查询OSD背景色

                          = 0,表示设置OSD背景色

         [bit6]:       = 1,表示端口是输入板卡端口

                          = 0,表示端口是输出板卡端口

         [bit5~0]:保留未使用,默认写0

TransparentFlag:    = 1,表示打开背景色透明

                                   = 0,表示关闭背景色透明


CmdIndex = 0x81(OSD显示位置)

PC->MainB->OutB:

格式:7B 7B 81 06 Port Ctrl XH XL YH YL CS 7D 7D

Port:端口号

Ctrl: [bit7]:      = 1,表示查询OSD文字显示位置信息

                          = 0,表示设置OSD文字显示位置信息

         [bit6]:       = 1,表示端口是输入板卡端口

                          = 0,表示端口是输出板卡端口

         [bit5]: 保留未使用,默认写0

[bit4]:      = 1,表示设置OSD文字时,操作的是文字左上角的坐标,Ctrl[bit3~0]无效

                          = 0,表示设置OSD文字时,操作的是文字整体位置,此时,Ctrl[bit3~0]有效

         [bit3~2]:  00-垂直靠上,01-垂直居中,10-垂直靠下,11-保留未使用

[bit1~0]:  00-水平靠左,01-水平居中,10-水平靠右,11-保留未使用

XH:表示x轴坐标值的高八位(Ctrl:bit4为1时有效)

XL:表示x轴坐标值的低八位(Ctrl:bit4为1时有效)

YH:表示y轴坐标值的高八位(Ctrl:bit4为1时有效)

YL:表示y轴坐标值的低八位(Ctrl:bit4为1时有效)

OutB->MainB->PC:

格式:7B 7B 81 06 Port Ctrl XH XL YH YL CS 7D 7D

Port:端口号

Ctrl: [bit7]:      = 1,表示查询OSD文字显示位置信息

                          = 0,表示设置OSD文字显示位置信息

         [bit6]:       = 1,表示端口是输入板卡端口

                          = 0,表示端口是输出板卡端口

         [bit5]: 保留未使用,默认写0

[bit4]:      = 1,表示设置OSD文字时,操作的是文字左上角的坐标,Ctrl[bit3~0]无效

                          = 0,表示设置OSD文字时,操作的是文字整体位置,此时,Ctrl[bit3~0]有效

         [bit3~2]:  00-垂直靠上,01-垂直居中,10-垂直靠下,11-保留未使用

[bit1~0]:  00-水平靠左,01-水平居中,10-水平靠右,11-保留未使用

XH:表示x轴坐标值的高八位(Ctrl:bit4为1时有效)

XL:表示x轴坐标值的低八位(Ctrl:bit4为1时有效)

YH:表示y轴坐标值的高八位(Ctrl:bit4为1时有效)

YL:表示y轴坐标值的低八位(Ctrl:bit4为1时有效)


CmdIndex = 0x82(OSD字体信息)

PC->MainB->OutB:

格式:7B 7B 82 04 Port Ctrl Type Size CS 7D 7D

Port:端口号

Ctrl: [bit7]:      = 1,表示查询字体信息

                          = 0,表示设置字体信息

         [bit6]:      = 1,表示端口为输入板卡端口

                          = 0,表示端口为输出板卡端口

[bit5]:保留未使用,默认写0

[bit 4]:       = 1,表示颜色反转

                  = 0,表示颜色不反转

[bit 3]:       = 1,表示斜体

                  = 0,表示正常

[bit 2]:       = 1,表示下划线

                  = 0,表示无下划线

[bit 1]:       = 1,表示加黑

                  = 0,表示不加黑

[bit0]:       = 1,表示加粗

                  = 0,表示不加粗

Type:表示字体类型, 0x00-黑体、0x01-楷体、0x02宋体、0x03-仿宋、其他值保留使用

Size:表示字体大小, 0x00-32*32、0x01-48*48、0x02-64*64、0x03-80*80、0x04-96*96、其他值保留使用

OutB->MainB->PC:

格式:7B 7B 82 04 Port Ctrl Type Size CS 7D 7D

Port:端口号

Ctrl: [bit7]:      = 1,表示查询字体信息

                           = 0,表示设置字体信息

         [bit6]:      = 1,表示端口为输入板卡端口

                          = 0,表示端口为输出板卡端口

[bit5]:保留未使用,默认写0

[bit 4]:       = 1,表示颜色反转

                  = 0,表示颜色不反转

[bit 3]:       = 1,表示斜体

                  = 0,表示正常

[bit 2]:       = 1,表示下划线

                  = 0,表示无下划线

[bit 1]:       = 1,表示加黑

                  = 0,表示不加黑

[bit0]:       = 1,表示加粗

                  = 0,表示不加粗

Type:表示字体类型, 0x00-黑体、0x01-楷体、0x02宋体、0x03-仿宋、其他值保留使用

Size:表示字体大小, 0x00-32*32、0x01-48*48、0x02-64*64、0x03-80*80、0x04-96*96、其他值保留使用

CmdIndex = 0x83(OSD颜色信息)

PC->MainB->OutB:

格式:7B 7B 83 05 Port Ctrl Rval Gval Bval CS 7D 7D

Port:端口号

Ctrl: [bit7]:      = 1,表示查询OSD颜色

                          = 0,表示设置OSD颜色

         [bit6]:      = 1,表示端口为输入板卡端口

                          = 0,表示端口为输出板卡端口

         [bit5~2]:  保留未使用

         [bit1]:      = 1,表示RGB 参数为十进制

                          = 0,表示RGB 参数为十六进制

         [bit0]:      = 1,表示设置背景色

                          = 0,表示设置前景色(文字颜色)

Rval:RGBRed的值,配合Ctrl[bit1]的值计算

Gval:RGBGreen的值,配合Ctrl[bit1]的值计算

Bval:RGBBlue的值,配合Ctrl[bit1]的值计算

OutB->MainB->PC:

格式:7B 7B 83 05 Port Ctrl Rval Gval Bval CS 7D 7D

Port:端口号

Ctrl: [bit7]:      = 1,表示查询OSD颜色

                          = 0,表示设置OSD颜色

         [bit6]:      = 1,表示端口为输入板卡端口

                          = 0,表示端口为输出板卡端口

         [bit5~2]:  保留未使用

         [bit1]:      = 1,表示RGB 参数为十进制

                          = 0,表示RGB 参数为十六进制

         [bit0]:      = 1,表示设置背景色

                          = 0,表示设置前景色(文字颜色)

Rval:RGBRed的值,配合Ctrl[bit1]的值计算

Gval:RGBGreen的值,配合Ctrl[bit1]的值计算

Bval:RGBBlue的值,配合Ctrl[bit1]的值计算

CmdIndex = 0x84(OSD配置信息)

PC->MainB->OutB:

格式:7B 7B 84 03 Port Ctrl DataInfo TimeInfo UpdateFrequence SaveFrequence CharsNUM_Before_Data CharsNUM_Before_Time IDInfo BaseData(N Bytes) CS 7D 7D

Port:端口号

Ctrl:[bit7]:        =1,表示查询,查询时设备先返回0x84指令(不包含设置时的BaseData信息),然后返回0x85指令的数据

=0,表示设置

[bit6]:       =1,表示端口为输入板卡的端口

=0,表示端口为输出板卡的端口

[bit5]:       保留未使用

[bit4]:       =0,显性OSD模式

=1,隐性OSD模式

[bit3]:       =1,当Ctrl的bit7=0时有效,表示最后1条BaseData数据

=0,当Ctrl的bit7=0时有效,表示第1条BaseData数据(当数据量大的时候需要发送两条)

[bit2]:       =1,表示需要板卡自动计算时间

=0,表示不需要自动计算时间

[bit1~0]:表示OSD模式,0-正常模式,1-3x3模式,2-3x4模式,3-保留未使用;(隐性OSD模式时请设置为非零值!)


显性OSD模式时,参数解析:

DateInfo:         4,表示日期的格式,取值0-3有效(含义见PC工具OSD设置页面);

4,表示日期所在的行号,取值0-15分别表示第1-16

TimeInfo:         4,表示时间的格式,取值0-3有效(含义见PC工具OSD设置页面);

4,表示时间所在的行号,取值0-15分别表示第1-16

UpdateFrequence:时间更新的频率,单位秒

SaveFrequence:时间保存的频率,单位分钟

CharsNUM_Before_Date:日期前面的字的字节个数

CharsNUM_Before_Time:时间前面的字的字节个数

IDInfo:该字节的值保留不使用

BaseData:需要显示的所有不同字的GBK编码的字节数据,每条命令N取值最大为75;且需要全部的ASCII字节数据排列在前,其余的非ASCII码的数据(如汉字的字节数据)排列在后.

!!!:

1.      BaseData用于加载字体的点阵信息使用

2.      数字的ASCII值不需要写入BaseData里面,设备默认自动加载数字的点阵信息.

3.      只需要发送一条0x84指令时,Ctrlbit3需要为1;需要发送两条0x84指令时,第一条指令的Ctrlbit3需要为0,2条指令的Ctrlbit3需要为1

单条指令的最大长度为90,BaseData的长度为Nbyte,所以N的最大值为75

隐性OSD模式时,参数解析:

DateInfo:         4,(Month)的所在行数

4,(Day)的所在行数

TimeInfo:         4,小时的所在行数

4,分钟的所在行数

UpdateFrequence:时间更新的频率,单位秒

SaveFrequence:时间保存的频率,单位分钟

CharsNUM_Before_Date:      4,(Month)前面的字的字节个数

4,(Day)前面的字的字节个数

CharsNUM_Before_Time:      4,小时前面的字的字节个数

4,分钟前面的字的字节个数

IDInfo:              4,ID所在的行数

4,ID前面的字的字节个数

BaseData:固定长度5个字节,含义如下:

第一个字节:   HiddenOsdMode:1-重复x1,2-重复x5,3-重复x9,其他值保留不使用

第二个字节:   YearSecondInfo:高4,年的所在行数;4,秒的所在行数.

第三个字节:   CharsNUM_Before_YearSecond:高4,年前面的字的字节个数;4,秒前面的字的字节个数.

第四个字节:   ID的高8.

第五个字节:   ID的低8.

!!!:

隐性OSD模式时,年月日时分秒所在的行数值:

1.      取值0-7: 表示行数值

2.      其他值:    无效,该行数值将导致对应的年月日时分秒不显示出来。

隐性OSD模式时,年月日时分秒前面的字的字节个数,用于在一行上面左右移动其显示的位置(补充空白)

OutB->MainB->PC:

格式:7B 7B 84 03 Port Ctrl DataInfo TimeInfo UpdateFrequence SaveFrequence CharsNUM_Before_Data CharsNUM_Before_Time IDInfo BaseData(N Bytes) CS 7D 7D

Port:端口号

Ctrl:[bit7]:        =1,表示查询,查询时设备先返回0x84指令(不包含设置时的BaseData信息),然后返回0x85指令的数据

=0,表示设置

[bit6]:       =1,表示端口为输入板卡的端口

=0,表示端口为输出板卡的端口

[bit5]:       保留未使用

[bit4]:       =0,显性OSD模式

=1,隐性OSD模式

[bit3]:       =1,当Ctrl的bit7=0时有效,表示最后1条BaseData数据

=0,当Ctrl的bit7=0时有效,表示第1条BaseData数据(当数据量大的时候需要发送两条)

[bit2]:       =1,表示需要板卡自动计算时间

=0,表示不需要自动计算时间

[bit1~0]:表示OSD模式,0-正常模式,1-3x3模式,2-3x4模式,3-保留未使用;(隐性OSD模式时请设置为非零值!)


显性OSD模式时,参数解析:

DateInfo:         4,表示日期的格式,取值0-3有效(含义见PC工具OSD设置页面);

4,表示日期所在的行号,取值0-15分别表示第1-16

TimeInfo:         4,表示时间的格式,取值0-3有效(含义见PC工具OSD设置页面);

4,表示时间所在的行号,取值0-15分别表示第1-16

UpdateFrequence:时间更新的频率,单位秒

SaveFrequence:时间保存的频率,单位分钟

CharsNUM_Before_Date:日期前面的字的字节个数

CharsNUM_Before_Time:时间前面的字的字节个数

IDInfo:该字节的值保留不使用

BaseData:需要显示的所有不同字的GBK编码的字节数据,每条命令N取值最大为75;且需要全部的ASCII字节数据排列在前,其余的非ASCII码的数据(如汉字的字节数据)排列在后.

!!!:

4.      BaseData用于加载字体的点阵信息使用

5.      数字的ASCII值不需要写入BaseData里面,设备默认自动加载数字的点阵信息.

6.      只需要发送一条0x84指令时,Ctrlbit3需要为1;需要发送两条0x84指令时,第一条指令的Ctrlbit3需要为0,2条指令的Ctrlbit3需要为1

单条指令的最大长度为90,BaseData的长度为Nbyte,所以N的最大值为75

隐性OSD模式时,参数解析:

DateInfo:         4,(Month)的所在行数

4,(Day)的所在行数

TimeInfo:         4,小时的所在行数

4,分钟的所在行数

UpdateFrequence:时间更新的频率,单位秒

SaveFrequence:时间保存的频率,单位分钟

CharsNUM_Before_Date:      4,(Month)前面的字的字节个数

4,(Day)前面的字的字节个数

CharsNUM_Before_Time:      4,小时前面的字的字节个数

4,分钟前面的字的字节个数

IDInfo:              4,ID所在的行数

4,ID前面的字的字节个数

BaseData:固定长度5个字节,含义如下:

第一个字节:   HiddenOsdMode:1-重复x1,2-重复x5,3-重复x9,其他值保留不使用

第二个字节:   YearSecondInfo:高4,年的所在行数;4,秒的所在行数.

第三个字节:   CharsNUM_Before_YearSecond:高4,年前面的字的字节个数;4,秒前面的字的字节个数.

第四个字节:   ID的高8.

第五个字节:   ID的低8.

!!!:

隐性OSD模式时,年月日时分秒所在的行数值:

3.      取值0-7: 表示行数值

4.      其他值:    无效,该行数值将导致对应的年月日时分秒不显示出来。

隐性OSD模式时,年月日时分秒前面的字的字节个数,用于在一行上面左右移动其显示的位置(补充空白)

CmdIndex = 0x85(OSD文字内容)

PC->MainB->OutB:

格式:7B 7B 85 ValidLen Port Ctrl Line Column StringS CS 7D 7D

ValidLen:有效长度为4+N字节,其中NStringS所表示一系列编码数据的长度

Port:端口号

Ctrl: [bit7]:      = 1,表示查询OSD文字内容

                          = 0,表示设置OSD文字内容

         [bit6]:      = 1,表示端口为输入板卡的端口

                          = 0,表示端口为输出板卡的端口

         [bit5~3]:保留未使用

         [bit2]:      = 1,表示快速显示字符串(可能显示不全)

                          = 0,表示全面显示字符串(可能耗时长)

         [bit1]:      = 1,表示将某行的(Line,Column)位置的写入内容之前的部分擦除为空白

                          = 0,表示不擦除

         [bit0]:      = 1,表示将某行的(Line,Column)位置的写入内容之后的部分擦除为空白

                          = 0,表示不擦除

Line:表示需要访问的行序

Column:表示需要访问的列序

StringS:表示一系列需要写入的文字串的编码值,长度为任意的N个字节,当Ctrl[bit7]为1时,StringS为空

OutB->MainB->PC:

格式:7B 7B 85 ValidLen Port Ctrl Line Column StringS CS 7D 7D

ValidLen:有效长度为4+N字节,其中NStringS所表示一系列编码数据的长度

Port:端口号

Ctrl: [bit7]:      = 1,表示查询OSD文字内容

                          = 0,表示设置OSD文字内容

         [bit6]:      = 1,表示端口为输入板卡的端口

                          = 0,表示端口为输出板卡的端口

         [bit5~3]:保留未使用

         [bit2]:      = 1,表示快速显示字符串(可能显示不全)

                          = 0,表示全面显示字符串(可能耗时长)

         [bit1]:      = 1,表示将某行的(Line,Column)位置的写入内容之前的部分擦除为空白

                          = 0,表示不擦除

         [bit0]:      = 1,表示将某行的(Line,Column)位置的写入内容之后的部分擦除为空白

                          = 0,表示不擦除

Line:表示需要访问的行序

Column:表示需要访问的列序

StringS:表示一系列需要写入的文字串的编码值,长度为任意的N个字节,当Ctrl[bit7]为1时,StringS为空

CmdIndex = 0x86(OSD不透明度信息)

PC->MainB->OutB:

格式:7B 7B 86 03 Port Ctrl OpaqueVal CS 7D 7D

Port:端口号

Ctrl: [bit7]:      = 1,表示查询OSD不透明度的值

                          = 0,表示设置OSD不透明度的值

         [bit6]:      = 1,表示端口为输入板卡的端口

                          = 0,表示端口为输出板卡的端口

         [bit5~0]:保留未使用

OpaqueVal: 不透明度的值

OutB->MainB->PC:

格式:7B 7B 86 03 Port Ctrl OpaqueVal CS 7D 7D

Port:端口号

Ctrl: [bit7]:      = 1,表示查询OSD不透明度的值

                          = 0,表示设置OSD不透明度的值

         [bit6]:      = 1,表示端口为输入板卡的端口

                          = 0,表示端口为输出板卡的端口

         [bit5~0]:保留未使用

OpaqueVal: 不透明度的值

CmdIndex = 0x87(OSD显示开关)

PC->MainB->OutB:

格式:7B 7B 87 Port Ctrl Flag CS 7D 7D

Port:端口号

Ctrl: [bit7]:      = 1,表示查询OSD开关状态

                          = 0,表示设置OSD开关状态

         [bit6]:      = 1,表示端口为输入板卡的端口

                          = 0,表示端口为输出板卡的端口

         [bit5~0]:保留未使用

Flag:         = 1,表示OSD开启

                  = 0,表示OSD关闭

OutB->MainB->PC:

格式:7B 7B 87 Port Ctrl Flag CS 7D 7D

Port:端口号

Ctrl: [bit7]:      = 1,表示查询OSD开关状态

                          = 0,表示设置OSD开关状态

         [bit6]:      = 1,表示端口为输入板卡的端口

                          = 0,表示端口为输出板卡的端口

         [bit5~0]:保留未使用

Flag:         = 1,表示OSD开启

                  = 0,表示OSD关闭

CmdIndex = 0x88(OSD预设信息)

PC->MainB->OutB:

格式:7B 7B 88 03 Port Ctrl Id CS 7D 7D

Port:端口号

Ctrl: [bit7]:      = 1,表示读取OSD预存信息

                          = 0,表示存储OSD预存信息

         [bit6]:      = 1,表示端口为输入板卡的端口

                          = 0,表示端口为输出板卡的端口

         [bit5~0]:保留未使用,默认写0

Id:表示预设id编号,如果该号码已经被存储了,则覆盖之前的该预设号码的存储内容

OutB->MainB->PC:

格式:7B 7B 88 03 Port Ctrl Id CS 7D 7D

Port:端口号

Ctrl: [bit7]:      = 1,表示读取OSD预存信息

                          = 0,表示存储OSD预存信息

         [bit6]:      = 1,表示端口为输入板卡的端口

                          = 0,表示端口为输出板卡的端口

         [bit5~0]:保留未使用,默认写0

Id:表示预设id编号,如果该号码已经被存储了,则覆盖之前的该预设号码的存储内容

CmdIndex = 0x89(OSD尺寸信息)

PC->MainB->OutB:

格式:7B 7B 89 03 Port Ctrl Width Height CS 7D 7D

Port:端口号

Ctrl: [bit7]:      = 1,表示查询OSD尺寸

                          = 0,表示设置OSD尺寸

         [bit6]:      = 1,表示端口为输入板卡的端口

                          = 0,表示端口为输出板卡的端口

         [bit5~0]:保留未使用,默认写0

Width:OSD宽度,单位是16个像素, 应确保Width*16小于等于1920

Height:OSD的高度,单位是字体行数

OutB->MainB->PC:

格式:7B 7B 89 03 Port Ctrl Width Height CS 7D 7D

Port:端口号

Ctrl: [bit7]:      = 1,表示查询OSD尺寸

                          = 0,表示设置OSD尺寸

         [bit6]:      = 1,表示端口为输入板卡的端口

                          = 0,表示端口为输出板卡的端口

         [bit5~0]:保留未使用,默认写0

Width:OSD宽度,单位是16个像素, 应确保Width*16小于等于1920

Height:OSD的高度,单位是字体行数


CmdIndex = 0xAA(恢复工厂设置)

PC->MainB:

格式:7B 7B AA 02 01 01 9E 7D 7D

MainB->OutB/InB:

格式:7B 7B AA 02 Addr Ctrl CS 7D 7D

Addr:目标板卡地址,0xFF所有输入板或者所有输出板,输入板还是输出板由Ctrl的bit6决定

Ctrl: [bit7]:      = 1,表示读取

                = 0,表示设置

[bit6]:      = 1,表示输入板卡

                   = 0,表示输出板卡


CmdIndex = 0xFF(错误指令-部分有)

OutB/InB/keyB->MainB->PC或者MainB->PC:

格式:7B 7B FF 03 Port Ctrl OptType CS 7D 7D

Port:端口号

Ctrl:操作码

OptType:操作类型


①   若发送命令成功处理,则设置命令的返回数据与发送的数据相同,查询命令的返回数据与查询内容相关

②   若发送命令处理失败,则统一返回命令码0xFF,命令体长度为3个字节,命令体内容为发送命令的目标地址/端口号+命令码+操作类型(操作类型为设置-0x00或查询-0x01


CmdIndex = 0xB0(信号类型或端子类型)

Note:插卡机箱中,输入板卡的输出端子类型和输出板卡的输入端子类型恒为HDMI.

格式:7B 7B B0 04 Port Ctrl SignalType BoardType CS 7D 7D

Port:端口号

Ctrl: [bit7]:      = 1,表示查询端子类型

                          = 0,表示设置端子类型

         [bit6]:      = 1,表示端口为输入板卡的端口

                          = 0,表示端口为输出板卡的端口

         [bit5]:      = 1,表示操作的是输入端子类型

                          = 0,表示操作的是输出端子类型

         [bit4~0]:保留未使用,默认写0

SignalType:表示端子类型索引,这个似程序而定

BoardType:表示板卡类型,设置不了板卡类型,常为查询时返回(不一定都用到,要用时再判断).


目前端子类型定义索引如下:

//信号类型/端子类型

typedef enum _OUTPUT_TYPE_

{

         EM_OUTPUT_TYPE_FIBER    = 0 , // = 0

         EM_OUTPUT_TYPE_SDI          , // = 1

         EM_OUTPUT_TYPE_HDBST        , // = 2

         EM_OUTPUT_TYPE_DVI          , // = 3

         EM_OUTPUT_TYPE_CVBS         , // = 4

         EM_OUTPUT_TYPE_YPbPr        , // = 5

         EM_OUTPUT_TYPE_VGA          , // = 6

         EM_OUTPUT_TYPE_HDMI         , // = 7

    EM_OUTPUT_TYPE_DIRECTHDMI   , // = 8

    EM_OUTPUT_TYPE_UHDHDMI      , // = 9

    EM_OUTPUT_TYPE_UHDDVI       , // = 10

    EM_OUTPUT_TYPE_UHDHDMI14    , // = 11

    EM_OUTPUT_TYPE_UHDHDMI22    , // = 12

         EM_OUTPUT_TYPE_MAX          ,

}EM_OUTPUT_TYPE;

CmdIndex = 0xB1(分辨率)

格式:7B 7B B1 03 Port Ctrl ResolutionIndex CS 7D 7D

Port:端口号

Ctrl: [bit7]:      = 1,表示查询分辨率信息

                          = 0,表示设置分辨率信息

         [bit6]:      = 1,表示端口为输入板卡的端口

                          = 0,表示端口为输出板卡的端口

         [bit5]:      = 1,表示操作的是输入分辨率(bit6=1,bit5=1,则表示输入板卡的输入端分辨率)

                          = 0,表示操作的是输出分辨率(bit6=1,bit5=0,则表示输出板卡的输出端分辨率)

         [bit4~0]:保留未使用,默认为0

ResolutionIndex:分辨率索引

CmdIndex = 0xB6(仅用于描述输入板卡输入分辨率)

格式:7B 7B B6 08 Port Ctrl HresH HresL VresH VresL PorI Frequency CS 7D 7D

Port:端口号

Ctrl: [bit7]:      = 1,表示查询分辨率

                          = 0,表示设置分辨率

         [bit6]:      = 1,表示端口为输入板卡的端口

                          = 0,表示端口为输出板卡的端口

         [bit5]:      = 1,表示操作的是输入分辨率

                          = 0,表示操作的是输出分辨率

         [bit4~0]:保留未使用,默认写0

HresH:图像水平分辨率的高8,水平分辨率由高8位和低8位值计算得出.

HresL:图像水平分辨率的低8,水平分辨率由高8位和低8位值计算得出.

VresH:图像垂直分辨率的高8,垂直分辨率由高8位和低8位值计算得出.

VresL:图像垂直分辨率的低8,垂直分辨率由高8位和低8位值计算得出.

PorI:         = 1,表示逐行扫描方式(progressive)

                  = 0,表示隔行扫描方式(interlaced)

Frequency:表示屏幕刷新率

CmdIndex = 0xB7(查询输出板卡专用-端子类型和分辨率)

格式:7B 7B B7 ValidLen Port Ctrl Format{1,2} CS 7D 7D

ValidLen:有效长度为2+ Format{1,2}结构的长度.

Port:端口号

Ctrl: [bit7]:      = 1,表示查询端子类型和分辨率

                          = 0,表示设置端子类型和分辨率

         [bit6]:      = 1,表示端口为输入板卡的端口,且描述的是输入板卡

                          = 0,表示端口为输出板卡的端口,且描述的是输出板卡

         [bit5]:      = 1,表示Format{1,2}选择为格式2

                          = 0,表示Format{1,2}选择为格式1

         [bit4~0]:保留未使用,默认写0

①   ctrlbit5 = 0,使用格式1解析

格式1: 7B 7B B7 08 Port Ctrl DataVaild InType OutType InRes OutRes BoardType CS 7D 7D

DataVaild:       [bit7~4]:保留未使用,默认写0

                          [bit3]:      = 1,表示InType数据有效

                                            = 0,表示InType数据无效(无效数据不解析)

                          [bit2]:      = 1,表示OutType数据有效

                                            = 0,表示OutType数据无效(无效数据不解析)

                          [bit1]:      = 1,表示InRes数据有效

                                            = 0,表示InRes数据无效(无效数据不解析)

                          [bit0]:      = 1,表示OutRes数据有效

                                            = 0,表示OutRes数据无效(无效数据不解析)

InType:输入端子类型索引或输入信号类型索引

OutType:输出端子类型索引或输出信号类型索引

InRes:输入分辨率索引

OutRes:输出分辨率索引

BoardType:板卡类型索引,Ctrlbit6决定描述的是输入板卡类型还是输出板卡类型

②   ctrlbit5 = 1,使用格式2解析

格式2: 7B 7B B7 07 Port Ctrl HresH HresL VresH VresL PorI_ Frequency CS 7D 7D

HresH:图像水平分辨率的高8,水平分辨率由高8位和低8位值计算得出.

HresL:图像水平分辨率的低8,水平分辨率由高8位和低8位值计算得出.

VresH:图像垂直分辨率的高8,垂直分辨率由高8位和低8位值计算得出.

VresL:图像垂直分辨率的低8,垂直分辨率由高8位和低8位值计算得出.

PorI_ Frequency:    [bit7]:      = 1,表示逐行扫描方式(progressive)

                                                     = 0,表示隔行扫描方式(interlaced)

                                   [bit6~0]:表示屏幕刷新率(取值范围0~0x7F)

CmdIndex = 0xB2(图像颜色信息)

格式:7B 7B B2 03 Port Ctrl Value CS 7D 7D

Port:端口号

Ctrl: [bit7]:      = 1,表示查询图像颜色信息

                          = 0,表示设置图像颜色信息

         [bit6]:      = 1,表示端口为输入板卡的端口

                          = 0,表示端口为输出板卡的端口

         [bit5~4]:  = 00,表示加1

                          = 01,表示减1

= 10,表示绝对值

= 11,表示恢复出厂设置

         [bit3~0]: = 0000,表示操作亮度

                          = 0001,表示操作对比度

                          = 0010,表示操作饱和度

                          = 0011,表示操作锐度

                          = 0100,表示操作色调

                          = 0101,表示操作R-Gain

                          = 0110,表示操作G-Gain

                          = 0111,表示操作B-Gain

                          = 1000,表示操作R-Offset

                          = 1001,表示操作G-Offset

                          = 1010,表示操作B-Offset

Value:表示Ctrlbit3~0所选择的操作内容的值

CmdIndex = 0xB3(图像位置信息)

格式:7B 7B B3 03 Port Ctrl Value CS 7D 7D

Port:端口号

Ctrl: [bit7]:      = 1,表示查询图像颜色信息

                          = 0,表示设置图像颜色信息

         [bit6]:      = 1,表示端口为输入板卡的端口

                          = 0,表示端口为输出板卡的端口

         [bit5~4]:  = 00,表示加1

                          = 01,表示减1

= 10,表示绝对值

= 11,表示恢复出厂设置

         [bit3~0]: = 0000,表示操作HPostion

                          = 0001,表示操作VPostion

                          = 0010,表示操作HSize

                          = 0011,表示操作Vsize

Value:表示Ctrlbit3~0所选择的操作内容的值

CmdIndex = 0xB4(图像冻结-用于输出无缝切换)

格式:7B 7B B4 VaildLen Port Ctrl DataS CS 7D 7D

VaildLen:最大有效长度为(2+MaxOut/8),MaxOut为矩阵可配置的最大输出端口数

Port:端口号,此为0xFF,表示所有输出端口

Ctrl: [bit7]:      = 1,表示查询

                          = 0,表示设置

         [bit6]:      = 1,表示端口为输入板卡的端口

                          = 0,表示端口为输出板卡的端口

         [bit5~0]:保留未使用,默认写0

DataS:由单个或多个字节组成,总共1+(MaxPortid/8)字节, MaxPortid最小为0, MaxPortid=0~7分别表示端口1~ 8.DataS所表示的字节组中的第一个字节的bit7~bit0分别表示输出端口1~8是否需要冻结(对应bit位为1表示需要冻结,否则,正常输出不冻结),假如有第二个字节,则第一个字节的bit7~bit0分别表示输出端口1~8是否需要冻结(对应bit位为1表示需要冻结,否则,正常输出不冻结),其它以此类推.

举例场景:

eg1)16x16的机箱,切换输出端口9的输入信号源输入1,则主板发送0xB4指令给输出板卡,发送的指令如下:

7B 7B B4 04 FF 00 00 80 CS 7D 7D(CS校验和就不列举了,按照前文可以自行计算)

eg2)16x16的机箱,切换输出端口6的输入信号源输入2,则主板发送0xB4指令给输出板卡,发送的指令如下:

7B 7B B4 04 FF 00 04 00 CS 7D 7D(CS校验和就不列举了,按照前文可以自行计算)

eg3)8x8的机箱,切换输出端口6的输入信号源输入2,则主板发送0xB4指令给输出板卡,发送的指令如下:

7B 7B B4 03 FF 00 04 CS 7D 7D(CS校验和就不列举了,按照前文可以自行计算)

CmdIndex = 0xB8(EDID信息)

格式:7B 7B B8 13 Port Ctrl Offset VaildEdidDatas CS 7D 7D

Port:端口号

Ctrl: [bit7]:      = 1,表示读取EDID信息

                          = 0,表示设置EDID信息

         [bit6]:      = 1,表示端口为输入板卡的端口

                          = 0,表示端口为输出板卡的端口

         [bit5~0]:保留未使用

Offset: 表示VaildEdidDatas 所代表的EDID内容在整个EDID中的偏移量

VaildEdidDatas:表示部分EDID的内容,共有(0x13 – 3) = 0x10个字节

Note:

①   输入板卡只可以设置EDID,读取EDID则返回错误

②   输出板卡只可以读取EDID,设置EDID则返回错误

CmdIndex = 0x45(输入冗余)

PC->MainB:

格式:7B 7B 45 0C Addr Ctrl IB1 IB2 … IB10 CS 7D 7D

Addr:目标板卡地址(如果是主板和按键板,此位填0)

Ctrl: [bit7]:      = 1,表示查询输入冗余

                          = 0,表示设置输入冗余

         [bit6~4]:  = 100,表示目标板卡为输入板

                          = 011,表示目标板卡为输出板

                          = 010,表示目标板卡为按键板

                          = 111,表示目标板卡为主板

         [bit3~0]:保留未使用,默认写0

IB1 IB2 … IB10:总共10个字节,其中IB1bit 0-7分别表示输入端口1-8是否设置输入冗余 (=1表示设置,=0表示不设置),IB2bit 0-7分别表示输入端口9-16是否设置输入冗余,以此类推, IB10bit 0-7分别表示输入端口73-80是否设置输入冗余

举例:(只能相邻2个奇偶端口可以设置-比如1-2,3-4,5-6。。。。)

1)      PC设置输入板输入口34做输入冗余功能

Send :7B 7B 45 0C 00 70 0C 00 00 00 00 00 00 00 00 00 xx 7D 7D

Recv: 7B 7B 45 0C 00 70 0C 00 00 00 00 00 00 00 00 00 xx 7D 7D

2)      PC取消输入板输入口34做输入冗余功能(正常矩阵)

Send :7B 7B 45 0C 00 70 00 00 00 00 00 00 00 00 00 00 xx 7D 7D

Recv: 7B 7B 45 0C 00 70 00 00 00 00 00 00 00 00 00 00 xx 7D 7D

3)      PC查询输入冗余功能设置情况

Send :7B 7B 45 0C 00 F0 00 00 00 00 00 00 00 00 00 00 xx 7D 7D

Recv: 7B 7B 45 0C 00 F0 00 00 00 00 00 00 00 00 00 00 xx 7D 7D

MainB->PC:

格式:7B 7B 45 0C Addr Ctrl IB1 IB2 … IB10 CS 7D 7D

Addr:目标板卡地址(如果是主板和按键板,此位填0)

Ctrl: [bit7]:      = 1,表示查询输入冗余

                          = 0,表示设置输入冗余

         [bit6~4]:  = 100,表示目标板卡为输入板

                          = 011,表示目标板卡为输出板

                          = 010,表示目标板卡为按键板

                          = 111,表示目标板卡为主板

         [bit3~0]:保留未使用,默认写0

IB1 IB2 … IB10:总共10个字节,其中IB1bit 0-7分别表示输入端口1-8是否设置输入冗余 (=1表示设置,=0表示不设置),IB2bit 0-7分别表示输入端口9-16是否设置输入冗余,以此类推, IB10bit 0-7分别表示输入端口73-80是否设置输入冗余

CmdIndex = 0x46(输入输出卡槽状态)

PC->MainB:

格式:7B 7B 46 06 Addr Ctrl OC2 OC1 IC2 IC1 CS 7D 7D

Addr:目标板卡地址(如果是主板和按键板,此位填0)

Ctrl: [bit7]:      = 1,表示查询输入冗余

                          = 0,表示设置输入冗余

         [bit6~4]:  = 100,表示目标板卡为输入板

                          = 011,表示目标板卡为输出板

                          = 010,表示目标板卡为按键板

                          = 111,表示目标板卡为主板

         [bit3~0]:保留未使用,默认写0

OC2:此bytebit 0-7分别表示输出卡槽9-16的卡槽板卡插入状态(=1表示已插卡,=0表示未插卡)

OC1:此bytebit 0-7分别表示输出卡槽1-8的卡槽板卡插入状态(=1表示已插卡,=0表示未插卡)

IC2:此bytebit 0-7分别表示输入卡槽9-16的卡槽板卡插入状态(=1表示已插卡,=0表示未插卡)

IC1:此bytebit 0-7分别表示输入卡槽1-8的卡槽板卡插入状态(=1表示已插卡,=0表示未插卡)

举例:

PC查询输入输出插槽状态-假如输入输出全插满了(8x8矩阵)

Send :7B 7B 46 06 00 F0 00 00 00 00 xx 7D 7D

Recv: 7B 7B 46 06 00 F0 00 0F 00 0F xx 7D 7D

PC查询输入输出插槽状态-假如输入输出全插满了(16x16矩阵)

Send :7B 7B 46 06 00 F0 00 00 00 00 xx 7D 7D

Recv: 7B 7B 46 06 00 F0 00 FF 00 FF xx 7D 7D

MainB->PC:

格式:7B 7B 46 06 Addr Ctrl OC2 OC1 IC2 IC1 CS 7D 7D

Addr:目标板卡地址(如果是主板和按键板,此位填0)

Ctrl: [bit7]:      = 1,表示查询输入冗余

                          = 0,表示设置输入冗余

         [bit6~4]:  = 100,表示目标板卡为输入板

                          = 011,表示目标板卡为输出板

                          = 010,表示目标板卡为按键板

                          = 111,表示目标板卡为主板

         [bit3~0]:保留未使用,默认写0

OC2:此bytebit 0-7分别表示输出卡槽9-16的卡槽板卡插入状态(=1表示已插卡,=0表示未插卡)

OC1:此bytebit 0-7分别表示输出卡槽1-8的卡槽板卡插入状态(=1表示已插卡,=0表示未插卡)

IC2:此bytebit 0-7分别表示输入卡槽9-16的卡槽板卡插入状态(=1表示已插卡,=0表示未插卡)

IC1:此bytebit 0-7分别表示输入卡槽1-8的卡槽板卡插入状态(=1表示已插卡,=0表示未插卡)

CmdIndex = 0x49(功能开关和系统设置)

PC->MainB:

格式:7B 7B 49 04 Addr Ctrl FuncCmd OnOff CS 7D 7D

Addr:目标板卡地址(如果是主板和按键板,此位填0)

Ctrl: [bit7]:      = 1,表示查询

                          = 0,表示设置

         [bit6~4]:  = 100,表示目标板卡为输入板

                          = 011,表示目标板卡为输出板

                          = 010,表示目标板卡为按键板

                          = 111,表示目标板卡为主板

         [bit3~0]:保留未使用,默认写0

///////////////////////////////////////////////////////////////////////////////////////////////////////////

FuncCmd = 0x01,表示输入绑定设置

OnOff:                      = 0x01,表示输入绑定打开

= 0x00,表示输入绑定关闭

///////////////////////////////////////////////////////////////////////////////////////////////////////////

FuncCmd = 0x02,表示向上汇报设置

OnOff:                      = 0x01,表示向上汇报打开

= 0x00,表示向上汇报关闭

///////////////////////////////////////////////////////////////////////////////////////////////////////////

FuncCmd = 0x03,表示冻结显示设置

OnOff:                      = 0x01,表示冻结打开

= 0x00,表示冻结关闭

///////////////////////////////////////////////////////////////////////////////////////////////////////////

FuncCmd = 0x04,表示红外开关设置

OnOff:                      = 0x01,表示红外打开

= 0x00,表示红外关闭

///////////////////////////////////////////////////////////////////////////////////////////////////////////

FuncCmd = 0x05,表示音频关闭开关设置

OnOff:                      = 0x01,表示音频关闭

= 0x00,表示音频打开

///////////////////////////////////////////////////////////////////////////////////////////////////////////

举例:其它例子以此类推即可

EG1:

打开主板上输入绑定功能开关

Send :7B 7B 49 04 00 70 01 01 99 7D 7D

Recv: 7B 7B 49 04 00 70 01 01 99 7D 7D

关闭主板上输入绑定功能开关

Send :7B 7B 49 04 00 70 01 00 99 7D 7D

Recv: 7B 7B 49 04 00 70 01 00 99 7D 7D

EG2:

打开主板上向上反馈功能开关

Send :7B 7B 49 04 00 70 02 01 99 7D 7D

Recv: 7B 7B 49 04 00 70 02 01 99 7D 7D

关闭主板上向上反馈功能开关

Send :7B 7B 49 04 00 70 02 00 99 7D 7D

Recv: 7B 7B 49 04 00 70 02 00 99 7D 7D

EG3:

输出端口2显示画面冻结

Send :7B 7B 49 04 01 30 03 01 99 7D 7D

Recv: 7B 7B 49 04 01 30 03 01 CS 7D 7D

输出端口2显示画面解冻(正常显示)

Send :7B 7B 49 04 01 30 03 00 99 7D 7D

Recv: 7B 7B 49 04 01 30 03 00 CS 7D 7D

EG4:

打开按键板上红外指令处理

Send :7B 7B 49 04 00 20 04 01 CS 7D 7D

Recv: 7B 7B 49 04 00 20 04 01 CS 7D 7D

关闭按键板上红外指令处理

Send :7B 7B 49 04 00 20 04 00 CS 7D 7D

Recv: 7B 7B 49 04 00 20 04 00 CS 7D 7D

EG5:

输出端口1打开音频开关

Send :7B 7B 49 04 00 30 05 01 CS 7D 7D

Recv: 7B 7B 49 04 00 30 05 01 CS 7D 7D

输出端口1关闭音频开关

Send :7B 7B 49 04 00 30 05 00 CS 7D 7D

Recv: 7B 7B 49 04 00 30 05 00 CS 7D 7D

MainB->PC:

格式:7B 7B 49 04 Addr Ctrl FuncCmd OnOff CS 7D 7D

Addr:目标板卡地址(如果是主板和按键板,此位填0)

Ctrl: [bit7]:      = 1,表示查询输入冗余

                          = 0,表示设置输入冗余

         [bit6~4]:  = 100,表示目标板卡为输入板

                          = 011,表示目标板卡为输出板

                          = 010,表示目标板卡为按键板

                          = 111,表示目标板卡为主板

         [bit3~0]:保留未使用,默认写0

///////////////////////////////////////////////////////////////////////////////////////////////////////////

FuncCmd = 0x01,表示输入绑定设置

OnOff:                      = 0x01,表示输入绑定打开

= 0x00,表示输入绑定关闭

///////////////////////////////////////////////////////////////////////////////////////////////////////////

FuncCmd = 0x02,表示向上汇报设置

OnOff:                      = 0x01,表示向上汇报打开

= 0x00,表示向上汇报关闭

///////////////////////////////////////////////////////////////////////////////////////////////////////////


CmdIndex = 0xBC(端口状态变化)

MainB->InB/OutB:

格式:7B 7B BC 03 Addr Ctrl SignalStatus CS 7D 7D

Addr:目标板卡地址(如果是主板和按键板,此位填0)

Ctrl: [bit7]:      = 1,表示查询输入冗余

                          = 0,表示设置输入冗余

         [bit6~4]:  = 100,表示目标板卡为输入板

                          = 011,表示目标板卡为输出板

                          = 010,表示目标板卡为按键板

                          = 111,表示目标板卡为主板

         [bit3~0]:保留未使用,默认写0

SignalStatus:  = 1,表示有信号

                          = 0,表示无信号

举例:

1)      当输入需要汇报信号状态时,Main Board发送给所有输入板询问状态变化(Main->INPUT)

MainBoard Send :7B 7B BC 03 FF C0 FF xx 7D 7D

2)      当输入端口2有信号,并且需要汇报信号状态时(Main<-INPUT)

MainBoard Recv: 7B 7B BC 03 02 C0 01 xx 7D 7D

InB/OutB->MainB:

格式:7B 7B BC 03 Addr Ctrl SignalStatus CS 7D 7D

Addr:目标板卡地址(如果是主板和按键板,此位填0)

Ctrl: [bit7]:      = 1,表示查询输入冗余

                          = 0,表示设置输入冗余

         [bit6~4]:  = 100,表示目标板卡为输入板

                          = 011,表示目标板卡为输出板

                          = 010,表示目标板卡为按键板

                          = 111,表示目标板卡为主板

         [bit3~0]:保留未使用,默认写0

SignalStatus:  = 1,表示有信号

                          = 0,表示无信号

CmdIndex = 0xBD(输出分辨率模式)

PC->MainB->InB/OutB:

格式:7B 7B BD 03 Addr Ctrl ResMode CS 7D 7D

Addr:目标板卡地址(如果是主板和按键板,此位填0)

Ctrl: [bit7]:      = 1,表示查询输入冗余

                          = 0,表示设置输入冗余

         [bit6~4]:  = 100,表示目标板卡为输入板

                          = 011,表示目标板卡为输出板

                          = 010,表示目标板卡为按键板

                          = 111,表示目标板卡为主板

         [bit3~0]:保留未使用,默认写0

ResMode:       = 1,表示User模式(输出分辨率可限定分辨率范围内自由设置)

                          = 0,表示Auto模式(输出分辨率自动跟随输入分辨率,输出分辨率=输入分辨率)

举例:

1)      设置SDI输出口1分辨率模式为auto(输出跟随输入)时,指令发送

PC Send: 7B 7B BD 03 00 10 00 xx 7D 7D

InB/OutB->MainB->PC:

格式:7B 7B BD 03 Addr Ctrl ResMode CS 7D 7D

Addr:目标板卡地址(如果是主板和按键板,此位填0)

Ctrl: [bit7]:      = 1,表示查询输入冗余

                          = 0,表示设置输入冗余

         [bit6~4]:  = 100,表示目标板卡为输入板

                          = 011,表示目标板卡为输出板

                          = 010,表示目标板卡为按键板

                          = 111,表示目标板卡为主板

         [bit3~0]:保留未使用,默认写0

ResMode:       = 1,表示User模式(输出分辨率可限定分辨率范围内自由设置)

                          = 0,表示Auto模式(输出分辨率自动跟随输入分辨率,输出分辨率=输入分辨率)

CmdIndex = 0xD7(输入无信号时输出工作模式)

PC->MainB->InB/OutB:

格式:7B 7B D7 03 Port Ctrl OutMode CS 7D 7D

Port:端口号

Ctrl: [bit7]:      = 1,表示查询输出模式

                          = 0,表示设置输出模式

         [bit6]:      = 1,表示端口为输入板卡的端口

                          = 0,表示端口为输出板卡的端口

         [bit5]:      = 1,表示输入端工作模式

                          = 0,表示输出端工作模式

         [bit4~0]:保留未使用,默认写0

①   Ctrl = 0x40,表示输入板卡输入端无信号时输出端工作模式,模式有三种

OutMode:       = 0,输出显示无信号提示画面

                          = 1,输出黑屏

                          = 2,关闭输出

②   Ctrl = 0x00,表示输出板卡输入端无信号时输出端工作模式,模式有三种

OutMode:       = 0,输出黑屏

                           = 1,输出蓝屏

                          = 2,关闭输出

InB/OutB->MainB->PC:

格式:7B 7B D7 03 Port Ctrl OutMode CS 7D 7D

Port:端口号

Ctrl: [bit7]:      = 1,表示查询输出模式

                          = 0,表示设置输出模式

         [bit6]:      = 1,表示端口为输入板卡的端口

                          = 0,表示端口为输出板卡的端口

         [bit5]:      = 1,表示输入端工作模式

                          = 0,表示输出端工作模式

         [bit4~0]:保留未使用,默认写0

①   Ctrl = 0x40,表示输入板卡输入端无信号时输出端工作模式,模式有三种

OutMode:       = 0,输出显示无信号提示画面

                          = 1,输出黑屏

                          = 2,关闭输出

②   Ctrl = 0x00,表示输出板卡输入端无信号时输出端工作模式,模式有三种

OutMode:       = 0,输出黑屏

                          = 1,输出蓝屏

                          = 2,关闭输出

CmdIndex = 0xD8(测试模式)

PC->MainB->InB/OutB:

格式:7B 7B D8 03 Port Ctrl ModeOnOff/ModeSelect CS 7D 7D

Port:端口号

Ctrl: [bit7]:      = 1,表示查询输出模式

                          = 0,表示设置输出模式

         [bit6]:      = 1,表示端口为输入板卡的端口

                          = 0,表示端口为输出板卡的端口

         [bit5~4]: 保留未使用,默认写0

         [bit3~0]:  = 0000,表示操作测试模式开关, ModeOnOff/ModeSelect中选择ModeOnOff

                          = 0001,表示操作测试模式选择, ModeOnOff/ModeSelect中选择ModeSelect

ModeOnOff([bit3~0]:     = 0000):   = 1,表示打开测试模式

                           = 0,表示关闭测试模式(默认为关闭)

ModeSelect([bit3~0]:     = 0001): 只有测试测试开关打开时才生效,表示测试图选项

举例:

EG1:设置输出口2的测试模式打开,并显示测试图编号2

Send1:7B 7B D8 03 01 00 01 99 7D 7D(打开测试模式,打开时默认是黑屏测试图,编号0)

Recv1: 7B 7B D8 03 01 00 01 CS 7D 7D

Send2:7B 7B D8 03 01 01 02 99 7D 7D(设置测试图为编号2的测试图)

Recv2: 7B 7B D8 03 01 01 02 CS 7D 7D

EG2:设置输出口2的测试模式关闭

Send1:7B 7B D8 03 01 00 00 99 7D 7D(关闭测试模式)

Recv1: 7B 7B D8 03 01 00 00 CS 7D 7D

InB/OutB->MainB->PC:

格式:7B 7B D8 03 Port Ctrl ModeOnOff/ModeSelect CS 7D 7D

Port:端口号

Ctrl: [bit7]:      = 1,表示查询输出模式

                           = 0,表示设置输出模式

         [bit6]:      = 1,表示端口为输入板卡的端口

                          = 0,表示端口为输出板卡的端口

         [bit5~4]: 保留未使用,默认写0

         [bit3~0]:  = 0000,表示操作测试模式开关, ModeOnOff/ModeSelect中选择ModeOnOff

                          = 0001,表示操作测试模式选择, ModeOnOff/ModeSelect中选择ModeSelect

ModeOnOff([bit3~0]:     = 0000):   = 1,表示打开测试模式

                          = 0,表示关闭测试模式(默认为关闭)

ModeSelect([bit3~0]:     = 0001): 只有测试测试开关打开时才生效,表示测试图选项

CmdIndex = 0x76(debug模式开关)

PC->MainB->InB/OutB:

格式:7B 7B 76 03 Port Ctrl OnOff CS 7D 7D

Port:端口号

Ctrl: [bit7]:      = 1,表示查询分辨率信息

                          = 0,表示设置分辨率信息

         [bit6]:      = 1,表示端口为输入板卡的端口

                          = 0,表示端口为输出板卡的端口

OnOff:     = 1,表示打开debug模式

                  = 0,表示关闭debug模式

InB/OutB->MainB->PC:

格式:7B 7B 76 03 Port Ctrl OnOff CS 7D 7D

Port:端口号

Ctrl: [bit7]:      = 1,表示查询分辨率信息

                          = 0,表示设置分辨率信息

         [bit6]:      = 1,表示端口为输入板卡的端口

                          = 0,表示端口为输出板卡的端口

OnOff:     = 1,表示打开debug模式

                  = 0,表示关闭debug模式

CmdIndex = 0xFE(更新程序)

PC->MainB->InB/OutB/KeyB或PC->MainB:

格式:

7B 7B FE VaildLen BoardSel Port AllPackH AllPackL CurPackH CurPackL UpdateDataS CS 7D 7D

VaildLen:大小为6+ UpdateDataS所表示的一串数据的长度,VaildLen最大为(6+128) = 0x86

BoardSel: = 0,表示操作的是主板

                  = 1,表示操作的是按键板

                  = 2,表示操作的是输出板

                  = 3,表示操作的是输入板(V56板卡不支持)

Port:BoardSel = 2BoardSel = 3,分别表示输出端口号或输入端口号,其它情况填0

AllPackH:传输总包数的高8, 传输总包数高低8位计算可得总包数

AllPackL:传输总包数的低8, 传输总包数高低8位计算可得总包数

CurPackH:当前传输包数序号高8,当前传输包数序号高低8位计算可得当前传输包数序号

CurPackL:当前传输包数序号低8,当前传输包数序号高低8位计算可得当前传输包数序号

UpdateDataS:表示整个程序中的拆分数据,最大为128字节组成,每次传输128字节,最后一个传输包不满128字节时, UpdateDataS就由剩下字节组成结束传输

InB/OutB/KeyB->MainB->PC或MainB->PC:

格式:

7B 7B FE 06 BoardSel Port AllPackH AllPackL CurPackH CurPackL CS 7D 7D

BoardSel: = 0,表示操作的是主板

                  = 1,表示操作的是按键板

                  = 2,表示操作的是输出板

                  = 3,表示操作的是输入板(V56板卡不支持)

Port:BoardSel = 2BoardSel = 3,分别表示输出端口号或输入端口号,其它情况填0

AllPackH:传输总包数的高8, 传输总包数高低8位计算可得总包数

AllPackL:传输总包数的低8, 传输总包数高低8位计算可得总包数

CurPackH:当前传输包数序号高8,当前传输包数序号高低8位计算可得当前传输包数序号

CurPackL:当前传输包数序号低8,当前传输包数序号高低8位计算可得当前传输包数序号

为客户服务是格芬存在的唯一理由
客户需求是格芬发展的原动力
:广州市番禺区市莲路240号百众创意园3栋
:18520481137,18688118080微信同号
:020-34702140转808
地址:广州市番禺区市莲路新桥段百众创意园三栋 电话:020-34702140
广州格芬电子科技有限公司 All Rights Reserved 粤ICP备2021023507号