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个字节组成,由CmdHead、CmdIndex、ValidLen、ValidData和CmdTail数据相加取低位1个字节构成CheckSum,当然为了方便特殊情况下可以手动发指令不需要计算校验和,当CheckSum为一些特殊的值时,可以跳过校验,直接解析有效数据,比如CheckSum = 0x99。
CmdTail:
由2个字节组成, CmdTail = 7D 7D ( 或 ‘}’ ‘}’ )。
特殊词:
PC:指上层统称,可以是PC-tool,串口工具,网页等任何给底层发数据的非底层一方。
MainB:指主板卡
SubB:指子板卡(除主板卡外其它板卡,包含输入板、输出板、按键板)
InB:指输入板卡
OutB:指输出板卡
KeyB:指按键板卡
CS:指校验和,CS和CheckSum是一个意思
写在前面注意事项:
① MainB发到InB/OutB可能做了Addr或Port的处理,具体需要根据具体代码分析,协议不能描述到所有细节处理
② InB/OutB发到MainB可能协议头7B 7B修改成了7B 3C,MainB发送到PC可能又把7B 3C改成7B 7B,这些协议中不会描述到,需要根据代码了解其中转换变化
格式: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
格式:7B 7B 11 ValidOutNum Out1Inx Out2Inx … OutnInx CS 7D 7D
(详情见CmdIndex = 0x11)
格式: 7B 7B 12 01 00 CS 7D 7D
格式: 7B 7B 11 ValidOutNum Out1Inx Out2Inx … OutnInx CS 7D 7D
ValidOutNum:有效的输出端口个数n,当你配置矩阵为4(输入)x6(输出)时, ValidOutNum = 6,以此类推。
Out1Inx Out2Inx … OutnInx:共ValidOutNum个字节, Out1Inx代表输出端口1对应的输入端口,其余以此类推。OutnInx代表最后一个输出端口n对应的输入端口
格式: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到所有输出
格式: 7B 7B 11 ValidOutNum Out1Inx Out2Inx … OutnInx CS 7D 7D
(详情见CmdIndex = 0x11)
格式:7B 7B 95 03 Mode ValidOutSum ValidInSum CS 7D 7D
Mode: = 0表示读取,
= 1表示设置;
ValidOutSum:有效输出端口数
ValidInSum:有效输入端口数
① 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:有效输入端口数
格式: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,表示读取输入板卡软件版本
格式: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.
格式: 7B 7B 02 01 ModeIndex CS 7D 7D
ModeIndex:模式id或模式索引,从0开始,表示模式1
格式: 7B 7B 02 01 ModeIndex CS 7D 7D
ModeIndex:模式id或模式索引,从0开始,表示模式1
格式: 7B 7B 03 01 ModeIndex CS 7D 7D
ModeIndex:模式id或模式索引,从0开始,表示模式1
格式: 7B 7B 11 ValidOutNum Out1Inx Out2Inx … OutnInx CS 7D 7D
(详情见CmdIndex = 0x11)
格式:7B 7B 90 09 Addr Ctrl Line Column P Q SyncLock Adjust Routing CS 7D 7D
(详情见CmdIndex = 0x90)
格式:7B 7B 93 ValidLen ValidData CS 7D 7D
(详情见CmdIndex = 0x93)
格式: 7B 7B 97 01 ModeIndex CS 7D 7D
ModeIndex:模式id或模式索引,从0开始,表示模式1
格式: 7B 7B 97 01 ModeIndex CS 7D 7D
ModeIndex:模式id或模式索引,从0开始,表示模式1
格式: 7B 7B 98 01 ModeIndex CS 7D 7D
ModeIndex:模式id或模式索引,从0开始,表示模式1
格式: 7B 7B 11 ValidOutNum Out1Inx Out2Inx … OutnInx CS 7D 7D
(详情见CmdIndex = 0x11)
格式:7B 7B 90 09 Addr Ctrl Line Column P Q SyncLock Adjust Routing CS 7D 7D
(详情见CmdIndex = 0x90)
格式: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)映射的输入端口
格式: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相同)
格式: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,表示取消同步锁定.
格式: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
格式: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结构的数据.
格式: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,表示关闭背景色透明
格式: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,表示关闭背景色透明
格式: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时有效)
格式: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时有效)
格式: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、其他值保留使用
格式: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、其他值保留使用
格式: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:RGB中Red的值,配合Ctrl[bit1]的值计算
Gval:RGB中Green的值,配合Ctrl[bit1]的值计算
Bval:RGB中Blue的值,配合Ctrl[bit1]的值计算
格式: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:RGB中Red的值,配合Ctrl[bit1]的值计算
Gval:RGB中Green的值,配合Ctrl[bit1]的值计算
Bval:RGB中Blue的值,配合Ctrl[bit1]的值计算
格式: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指令时,Ctrl的bit3需要为1;需要发送两条0x84指令时,第一条指令的Ctrl的bit3需要为0,第2条指令的Ctrl的bit3需要为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模式时,年月日时分秒前面的字的字节个数,用于在一行上面左右移动其显示的位置(补充空白)。
格式: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指令时,Ctrl的bit3需要为1;需要发送两条0x84指令时,第一条指令的Ctrl的bit3需要为0,第2条指令的Ctrl的bit3需要为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模式时,年月日时分秒前面的字的字节个数,用于在一行上面左右移动其显示的位置(补充空白)。
格式:7B 7B 85 ValidLen Port Ctrl Line Column StringS CS 7D 7D
ValidLen:有效长度为4+N字节,其中N为StringS所表示一系列编码数据的长度
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为空
格式:7B 7B 85 ValidLen Port Ctrl Line Column StringS CS 7D 7D
ValidLen:有效长度为4+N字节,其中N为StringS所表示一系列编码数据的长度
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为空
格式:7B 7B 86 03 Port Ctrl OpaqueVal CS 7D 7D
Port:端口号
Ctrl: [bit7]: = 1,表示查询OSD不透明度的值
= 0,表示设置OSD不透明度的值
[bit6]: = 1,表示端口为输入板卡的端口
= 0,表示端口为输出板卡的端口
[bit5~0]:保留未使用
OpaqueVal: 不透明度的值
格式:7B 7B 86 03 Port Ctrl OpaqueVal CS 7D 7D
Port:端口号
Ctrl: [bit7]: = 1,表示查询OSD不透明度的值
= 0,表示设置OSD不透明度的值
[bit6]: = 1,表示端口为输入板卡的端口
= 0,表示端口为输出板卡的端口
[bit5~0]:保留未使用
OpaqueVal: 不透明度的值
格式: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关闭
格式: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关闭
格式: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编号,如果该号码已经被存储了,则覆盖之前的该预设号码的存储内容
格式: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编号,如果该号码已经被存储了,则覆盖之前的该预设号码的存储内容
格式: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的高度,单位是字体行数
格式: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的高度,单位是字体行数
格式:7B 7B AA 02 01 01 9E 7D 7D
格式:7B 7B AA 02 Addr Ctrl CS 7D 7D
Addr:目标板卡地址,0xFF所有输入板或者所有输出板,输入板还是输出板由Ctrl的bit6决定
Ctrl: [bit7]: = 1,表示读取
= 0,表示设置
[bit6]: = 1,表示输入板卡
= 0,表示输出板卡
格式:7B 7B FF 03 Port Ctrl OptType CS 7D 7D
Port:端口号
Ctrl:操作码
OptType:操作类型
① 若发送命令成功处理,则设置命令的返回数据与发送的数据相同,查询命令的返回数据与查询内容相关
② 若发送命令处理失败,则统一返回命令码0xFF,命令体长度为3个字节,命令体内容为发送命令的目标地址/端口号+命令码+操作类型(操作类型为设置-0x00或查询-0x01)
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;
格式: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:分辨率索引
格式: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:表示屏幕刷新率
格式: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
① 当ctrl的bit5 = 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:板卡类型索引,Ctrl的bit6决定描述的是输入板卡类型还是输出板卡类型
② 当ctrl的bit5 = 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)
格式: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:表示Ctrl的bit3~0所选择的操作内容的值
格式: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:表示Ctrl的bit3~0所选择的操作内容的值
格式: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校验和就不列举了,按照前文可以自行计算)
格式: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则返回错误
格式: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个字节,其中IB1的bit 0-7分别表示输入端口1-8是否设置输入冗余 (=1表示设置,=0表示不设置),IB2的bit 0-7分别表示输入端口9-16是否设置输入冗余,以此类推, IB10的bit 0-7分别表示输入端口73-80是否设置输入冗余
举例:(只能相邻2个奇偶端口可以设置-比如1-2,3-4,5-6。。。。)
1) PC设置输入板输入口3和4做输入冗余功能
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取消输入板输入口3和4做输入冗余功能(正常矩阵)
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
格式: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个字节,其中IB1的bit 0-7分别表示输入端口1-8是否设置输入冗余 (=1表示设置,=0表示不设置),IB2的bit 0-7分别表示输入端口9-16是否设置输入冗余,以此类推, IB10的bit 0-7分别表示输入端口73-80是否设置输入冗余
格式: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:此byte的bit 0-7分别表示输出卡槽9-16的卡槽板卡插入状态(=1表示已插卡,=0表示未插卡)
OC1:此byte的bit 0-7分别表示输出卡槽1-8的卡槽板卡插入状态(=1表示已插卡,=0表示未插卡)
IC2:此byte的bit 0-7分别表示输入卡槽9-16的卡槽板卡插入状态(=1表示已插卡,=0表示未插卡)
IC1:此byte的bit 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
格式: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:此byte的bit 0-7分别表示输出卡槽9-16的卡槽板卡插入状态(=1表示已插卡,=0表示未插卡)
OC1:此byte的bit 0-7分别表示输出卡槽1-8的卡槽板卡插入状态(=1表示已插卡,=0表示未插卡)
IC2:此byte的bit 0-7分别表示输入卡槽9-16的卡槽板卡插入状态(=1表示已插卡,=0表示未插卡)
IC1:此byte的bit 0-7分别表示输入卡槽1-8的卡槽板卡插入状态(=1表示已插卡,=0表示未插卡)
格式: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
格式: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,表示向上汇报关闭
///////////////////////////////////////////////////////////////////////////////////////////////////////////
格式: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
格式: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,表示无信号
格式: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
格式: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模式(输出分辨率自动跟随输入分辨率,输出分辨率=输入分辨率)
格式: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,关闭输出
格式: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,关闭输出
格式: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
格式: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): 只有测试测试开关打开时才生效,表示测试图选项
格式:7B 7B 76 03 Port Ctrl OnOff CS 7D 7D
Port:端口号
Ctrl: [bit7]: = 1,表示查询分辨率信息
= 0,表示设置分辨率信息
[bit6]: = 1,表示端口为输入板卡的端口
= 0,表示端口为输出板卡的端口
OnOff: = 1,表示打开debug模式
= 0,表示关闭debug模式
格式:7B 7B 76 03 Port Ctrl OnOff CS 7D 7D
Port:端口号
Ctrl: [bit7]: = 1,表示查询分辨率信息
= 0,表示设置分辨率信息
[bit6]: = 1,表示端口为输入板卡的端口
= 0,表示端口为输出板卡的端口
OnOff: = 1,表示打开debug模式
= 0,表示关闭debug模式
格式:
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 = 2或BoardSel = 3时,分别表示输出端口号或输入端口号,其它情况填0
AllPackH:传输总包数的高8位, 传输总包数高低8位计算可得总包数
AllPackL:传输总包数的低8位, 传输总包数高低8位计算可得总包数
CurPackH:当前传输包数序号高8位,当前传输包数序号高低8位计算可得当前传输包数序号
CurPackL:当前传输包数序号低8位,当前传输包数序号高低8位计算可得当前传输包数序号
UpdateDataS:表示整个程序中的拆分数据,最大为128字节组成,每次传输128字节,最后一个传输包不满128字节时, UpdateDataS就由剩下字节组成结束传输
格式:
7B 7B FE 06 BoardSel Port AllPackH AllPackL CurPackH CurPackL CS 7D 7D
BoardSel: = 0,表示操作的是主板
= 1,表示操作的是按键板
= 2,表示操作的是输出板
= 3,表示操作的是输入板(V56板卡不支持)
Port:当BoardSel = 2或BoardSel = 3时,分别表示输出端口号或输入端口号,其它情况填0
AllPackH:传输总包数的高8位, 传输总包数高低8位计算可得总包数
AllPackL:传输总包数的低8位, 传输总包数高低8位计算可得总包数
CurPackH:当前传输包数序号高8位,当前传输包数序号高低8位计算可得当前传输包数序号
CurPackL:当前传输包数序号低8位,当前传输包数序号高低8位计算可得当前传输包数序号