BX-5K/6K通讯协议用户版本

Version list

Version Dte Author Comment,Description
1.0 2020-06-19 chenjd Markdown化的第一版
1.1 2020-06-23 chenjd 增加继电器配置命令
增加设置外部继电器状态
1.2 2020-06-24 chenjd 继电器配置命令修改为一个bit控制一个继电器
1.3 2020-09-11 chenjd 1、修改查询字符附加信息命令为 A2 11避免和设置外部继电器状态命令冲突。
2、删除查询字符附加信息命令字库文件长度和整个文件的CRC值
1.4 2021-02-28 caiss 1.按照实际情况修改字库卡支持的节目及动态区域个数;
2.修正字库卡协议在转到Markdown时遗漏,错写的一些字节及描述;
3.完善部分命令示例说明,修改相应错漏;
4.增加小语种调用相关转义;
5.增加部分关于5代字库卡和6代字库卡的差异化描述;

1. 快速开发导读

如果你想尽快开发出一个能简单控制的软件,建议按以下流程阅读协议,并进行软件开发。

  1. 阅读《BX-5K 5MK 控制器二次开发及使用说明书》,学习如何通过自带软件使用控制卡。如果都还不会正确使用本控制卡,谈何二次开发?所以这一步是必须的,开发中遇到的绝大多数问题都能在本文档及使用说明书中找到答案。注意说明书中的“二次开发必读入门指导”一章。
  2. 阅读协议说明,熟悉协议的相关规定。
  3. 阅读标准通讯格式章节,熟悉协议的结构、格式。由于协议采用了分层的方式,并对各个层次分开描述,建议用户将协议各层串联起来看,以形成一个整体认识。
  4. 如果只开发实时信息刷新功能,请阅读发送实时显示信息和区域数据格式两个章节,其他命令可以不看,第 5、7 点可以略过。
  5. 阅读节目文件定义章节,该部分对节目的分类,节目文件格式的定义进行了说明,并附有一个多分区节目文件实例,建议详细阅读这部分,能够修改或制作自己的节目文件。
  6. 阅读图文区内容编辑章节,该部分教你编辑自己的节目内容,掌握编辑方法后你可以编辑自己的节目内容并制作节目文件。
  7. 阅读开始写文件命令和写文件命令,掌握节目文件的发送,特别要注意文件单包发送和多包发送的区别,如果需要连续发送多个节目文件,还需阅读写多文件命令和结束写多文件命令。
  8. 完成以上 7 点,你已经可以编辑并发布自己的节目文件了,如果想对控制器进行更灵活的控制,可以阅读命令定义里的其他命令定义,以实现更多功能。

2. 概述

2.1 功能描述

类型:单/双/三色屏。

扫描方式:1/4,1/8,1/16 扫,用命令可以修改。

标准字库:16/24/32 点阵字库,以及非8像素点倍数的字库。

数据类型:字库方式。

播放方式:节目顺序播放/定长播放可选。

通讯方式:RS232/TTL、RS485/TTL、GPRS,波特率 9600/57600可设,波特率自适应。

外部闪存:512Kbyte/1Mbyte/2Mbyte/4Mbyte可选。

节目个数:32 个,6代字库卡单个节目最多支持10个字库区,5代字库卡最多支持8个字库区。

动态区域个数:6代字库卡5 个动态区(5代字库卡8个),1 个特殊动态区。

动态区刷新率:>=1s。

2.2 通讯方式

  1. RS232/485 波特率 :9600/57600, 无校验, 8 位数据, 1 停止位。
  2. GPRS/RF 波特率 :9600/57600, 无校验, 8 位数据, 1 停止位。
  3. Ethernet TCP/IP:10/100M

2.3 术语和缩略语

名称 说明
MSB 高位字节(Most Significant Byte)
LSB 低位字节(Least Significant Byte )
CRC16 16 位的 CRC 校验,校验算法参考附录
CHK CRC 校验值

2.4 协议说明

  • 本文档中十六进制数据表示为 0x??,如 0x7E。
  • 本文档中涉及到的多字节参数,均以先低字节(LSB)后高字节(MSB)顺序发送,但是对于文件名和控制器名称等字符串参数,发送时按顺序发送,如“P123”则先发送‘P’,最后发送‘3’。
  • 本文档中提及的数据长度,如无特别说明,皆是以字节(byte)为单位。
  • 本文档中提及的时间相关的参数均采用 BCD 码。
  • 本文档中提及的颜色属性,均用 1Byte 来表示,其中,Bit0 表示红,bit1 表示绿,bit2 表示蓝,对于每一个 Bit,0 表示灭,1 表示亮。
  • 本文档中所有偏移量、块地址等参数如无特殊说明,均以 0 开始计算。
  • 本文档中区域的坐标定义按照左上角为坐标原点。横、纵坐标分别向右、向下延伸。
  • 本文档中提及的“读取”和“写入”都是指上位机对控制器的动作。
  • 本文档中提及的保留字全部默认发送 0x00。

3. 标准通讯格式

协议结构如下:

帧头 包头数据 数据域 包校验 帧尾
0xA5(8byte) (14byte) (Nbyte) (2byte) 0X5A(1byte)

以下为协议中各项数据的说明:

  1. 帧头由 8 个字节的0xA5组成,帧尾由一个字节的0x5A组成。帧头采用8个帧头,是为了防止0xA5丢失导致数据接收错误。在接收数据时,只要接收到一个0xA5就可认为接收到了帧头,然后等待下一个不是0xA5的数据,该数据为该帧的第一个有效数据。
  2. 包头数据包含本包数据的一些属性,其定义参考包头数据格式定义。
  3. 数据域为用户协议层数据,参考数据域定义
  4. 包校验为包头数据和数据域的校验值(CRC16 校验算法参考附录)。

3.1 协议的分层

协议采用分层模式,分为协议层和物理传输层两层,其中数据域属于协议层数据。物理传输层又分为PHY0和PHY1两层,其中PHY1层数据结构如下:

包头数据 数据域 包校验
14byte Nbyte 2byte

PHY1 层实现数据域的封包操作,它为数据域增加包头,并计算包数据的校验值。 PHY0 层数据结构为:

帧头 PHY1层数据 帧尾
8byte Nbyte 1byte

PHY0层为PHY1层数据增加帧头和帧尾,并对PHY1层数据进行转义(参考字符转义)。

3.2 数据流向

在发送端,协议层数据先提交到 PHY1 层,对数据域进行封包操作。然后 PHY1 层报数据提交到PHY0层,对PHY1层数据进行字符转义并增加帧头帧尾,最后数据经过物理底层发送出去。 在接收端,控制器将物理底层接收到的数据发送到PHY0层,PHY0层去除帧头帧尾,并对数据进行反转义,然后将数据提交到PHY1层。PHY1层将判断包数据的正确性,并去除包头和包校验值,向协议层提交有用数据。

3.3 字符转义

  • 封帧中遇到0xA5,则将之转义为0xA6,0x02,如遇到0xA6,则将之转义为0xA6,0x01。
  • 封帧中遇到0x5A,则将之转义为0x5B,0x02,如遇到0x5B,则将之转义为0x5B,0x01。
  • 解帧过程如果遇到连续两个字节为0xA6,0x02,则反转义为 0xA5。
  • 解帧过程如果遇到连续两个字节为0xA6,0x01,则反转义为 0xA6。
  • 解帧过程如果遇到连续两个字节为0x5B,0x02,则反转义为 0x5A。
  • 解帧过程如果遇到连续两个字节为0x5B,0x01,则反转义为 0x5B。 注意:封帧过程中,所涉及校验的数据皆是转义之前的数据,所涉及的数据长度皆是转义之前的数据长度。

4. 包头数据格式

包头数据包含数据来源和流向,以及设备类型和协议版本等信息,它与数据域、包校验一起组成PHY1层数据包。

参数 数据长度 默认值 描述
屏地址(DstAddr ) 2 0x0001 屏地址。
在 PHY 层,广播地址定义如下:
0xFFFF为广播地址1,此种模式下,控制器不返回数据,其可用于广播校时等命令。
0xFFFE为广播地址2,此种模式主要用于广播设置屏参,控制器需返回数据。在返回的数据帧中,地址也应为0XFFFE。
0x8000~0xDFFF地址为保留地址,对于物理层类型为TCP/IP或GPRS这种不需要处理DstAddr的,可将其目标地址设置为这个范围中的一个,默认设置地址为0x8000。
源地址(SrcAddr) 2 0x8000 源地址,几个特殊地址定义如下:
PC客户端软件从 0x8000开始,范围为
0x8000——0xDFFF,用来代表不同客户端软件;
0xE000——0xFFFE为保留地址。
保留(Reserved) 3 0x00 此处保留。
条码选项(BarCode Option) 1 0x00 当该字节的BIT0为1时,需要发送接下来的16字节BarCode,这么做是为了便于在线设置控制器IP.反之,当该字节的BIT0为0时,不需要发送接下来的16字节BarCode.(该字节仅限6K/6K-YY/6K&4G),其他类型控制卡请设置为0)
注意
1. 只有设置IP命令需要将该字节的BIT0设置为1;
2. 上位机需要通过网络搜索命令来获取当前局域网内所有控制卡的BarCode
条码(BarCode) 16 注意:16字节的条码在生产时由生产部门烧写进控制器,控制器 APP 需要在程序中读取出该 16 字节条码,当BarCode Option 字节的 BIT0 为 1 时,与上位机下发的条码值进行比较,如果完全相同,则接受该数据包,否则丢弃。(仅限6K/6K-YY/6K&4G适用)
校验模式(CheckMode) 1 0x00 校验值共两个字节,
当该字节为0时,采用CRC16方式;
当该字节为1时,采用和校验的方式,仅保留最低位两个字节,采用小端模式;
当该字节为2时(仅6K/6K-YY适用)),无校验,校验字节可以为任意值;
显示模式(DisplayMode) 1 0x00 0x00:普通模式,动态区与节目可同时显示,但各区域不可重叠。
0x01:动态模式,优先显示动态区,无动态区则显示节目,动态区与节目区可重叠。
注:特殊动态区不支持动态模式。
设备类型(DeviceType) 1 0x51 用于区分网络中不同的设备类型,定义如下:
0xFE——通配符
0x51——BX-5K1
0x58——BX-5K2
0x53——BX-5MK2
0x54——BX-5MK1
0x61——BX-6K1 与5K1 (0x51)兼容
0x62——BX-6K2 与5MK1 (0x54) 兼容
0x63——BX-6K3 与5K2,5MK2 (0x53/0x58)兼容
0x64——BX-6K1-YY
0x65——BX-6K2-YY
0x66——BX-6K3-YY
0x67——BX-6K1&4G
0x68——BX-6K2&4G
0x69——BX-6K4
协议版本号(ProtocolVersion) 1 0x02 协议版本号,用于区分控制卡使用的协议
数据域长度(DataLen) 2 0x00 数据域的长度(不包括帧头、帧尾、帧校验和包头)。

命令示例1: a5 a5 a5 a5 a5 a5 a5 a5 fe ff 00 80 00 00 00 00 00 00 fe 02 2c 00 a3 06 01 00 00 00 01 23 00 00 00 80 00 00 80 80 20 00 00 00 00 0a 00 00 00 00 02 01 01 00 02 0a 08 00 00 00 bb b6 d3 ad b9 e2 c1 d9 3c 49 5a 示例1中为动态命令,加粗部分数据为包头数据,控制卡型号此处使用通配符(0xfe)代替,屏号也用通配符(0xfe 0xff)代替,解析如下表所示;

参数 数据 描述
屏地址 FE FF 通配符(低位在前)
源地址 00 80 源地址(低位在前)
保留字节 00 00 00 保留字节
是否有条码 00 无条码
校验模式 00 选用CRC16校验
显示模式 00 普通模式
设备类型 FE 通配符
协议版本号 02 协议版本号
数据域长度 2C 00 数据域长度(低位在前)

5. 数据域定义

5.1 请求与答复

信息(Message)可分为请求(Request)和答复(Response)两种,请求是指从上位机到控制器(LED Controller)的信息,答复是指从控制器到上位机的回复。所有的数据通讯必须由上位机来发起。通讯过程中广播通讯控制器不回复,点对点通讯时可配置控制器是否回复,配置为不回复的通讯必须采用单包模式(参考单包发送和分包发送)。配置为有回复的通讯,如果在超时时间(TimeoutValue)之内没有收到回复,上位机将产生超时错误(Timeout Error)。

5.1.1 请求信息

请求信息是PC机软件到控制器的信息,其格式如下:

参数 数据长度 默认值 描述
CmdGroup 1 命令分组编号
Cmd 1 命令编号
Response 1 是否要求控制器回复。
0x01——控制器必须回复
0x02——控制器不必回复。
Reserved 2 0 保留
Data N 发送的数据

命令示例2: a5 a5 a5 a5 a5 a5 a5 a5 fe ff 00 80 00 00 00 00 00 00 fe 02 2c 00 a3 06 01 00 00 00 01 23 00 00 00 80 00 00 80 80 20 00 00 00 00 0a 00 00 00 00 02 01 01 00 02 0a 08 00 00 00 bb b6 d3 ad b9 e2 c1 d9 3c 49 5a 命令示例2为动态节目更新命令。控制卡型号:6K3, 屏大小为128*32,显示内容:欢迎光临,具体解析见下表。

参数 数据 描述
命令分组 A3 命令分组编号
命令编号 06 命令编号
控制器是否回复 01 需要回复
保留字节 00 00 保留字节
删除区域个数 00 删除区域
更新区域个数 01 更新区域
区域数据长度 00 23 区域数据长度
区域类型 00 区域类型
X坐标 8000 x轴坐标0(像素为单位)
Y坐标 0000 y轴坐标0(像素为单位)
区域宽度 8080 区域宽度为128(像素为单位)
区域高度 0020 区域高度为32(像素为单位)
动态区编号 00 动态区编号0
行间距 00 行间距为0
动态区运行模式 00 普通模式
动态区超时时间 00 0A 超时时间10秒
是否使能语音 00 不使能语音
扩展位个数 00 默认0
字体对齐方式 00 左对齐
是否单行显示 02 多行显示
是否自动换行 01 手动换行
显示方式 01 静止显示
退出方式 00 自动循环显示
显示速度 02 速度02
停留时间 0A 停留时间10秒
显示数据长度 00000008 数据长度8个字节
显示数据 BB B6 D3 AD B9 E2 C1 D9 显示内容数据

5.1.2 答复信息

答复信息为控制器到 PC 机软件的信息,其格式如下:

参数 数据长度 默认值 描述
CmdGroup 1 命令分组编号
Cmd 1 命令编号
CmdError 1 命令处理状态
Reserved 2 0 保留
Data N 发送的数据

命令示例3:

A5 A5 A5 A5 A5 A5 A5 A5 A5 00 80 FE FF 00 00 00 00 00 00 FE 02 05 00 A0 00 00 00 00 14 AC 5A

命令3为控制卡接收正确命令时返回的ACK,具体分析见下表。

参数 数据 描述
命令分组 A0 命令分组编号
命令编号 00 命令编号
控制器是否回复 00 命令处理状态
保留字节 00 00 2个保留字节
CRC检验 14 AC CRC16检验

5.1.3 单包发送和分包发送

由于控制器数据接收缓存为 1024byte,所以当数据域数据大小大于1024byte时采用分包发送,小于1024byte时采用单包发送。采用分包发送时控制器可以不回复,但是这种做法不推荐,因为无法保证数据的正确接收。无论采用单包发送还是分包发送,在写文件命令前,必须先发送开始写文件命令(参考写文件命令)。

6. 错误状态CmdError

编号 名称 描述
0 ERR_NO No Error
1 ERR_OUTOFGROUP Command Group Error
2 ERR_NOCMD Command Not Found
3 ERR_BUSY The Controller is busy now
4 ERR_MEMORYVOLUME Out of the Memory Volume
5 ERR_CHECKSUM CRC16 Checksum Error
6 ERR_FILENOTEXIST File Not Exist
7 ERR_FLASH Flash Access Error
8 ERR_FILE_DOWNLOAD File Download Error
9 ERR_FILE_NAME Filename Error
10 ERR_FILE_TYPE File type Error
11 ERR_FILE_CRC16 File CRC16 Error
12 ERR_FONT_NOT_EXIST Font Library Not Exist
13 ERR_FIRMWARE_TYPE Firmware Type Error (Check the controller type)
14 ERR_DATE_TIME_FORMAT Date Time format error
15 ERR_FILE_EXIST File Exist for File overwrite
16 ERR_FILE_BLOCK_NUM File block number error

7. ACK和NACK

ACK 和 NACK 常用于不需要返回额外数据的命令,比如PING命令时,设置命令需返回,则控制器返回ACK,表明控制器在线。

7.1 ACK

参数 数据长度 默认值 描述
CmdGroup 1 0xA0 命令分组编号
Cmd 1 0x00 命令编号
CmdError 1 命令处理状态
Reserved 2 0 保留

命令示例4:

A5 A5 A5 A5 A5 A5 A5 A5 A5 00 80 FE FF 00 00 00 00 00 00 FE 02 05 00 A0 00 00 00 00 14 AC 5A

命令4即为控制卡返回的ACK,一般命令设置了控制卡需回复且发送命令正确时,控制卡会回复ACK。

7.2 NACK

参数 数据长度 默认值 描述
CmdGroup 1 0xA0 命令分组编号
Cmd 1 0x01 命令编号
CmdError 1 命令处理状态
Reserved 2 0 保留

命令示例5:

A5 A5 A5 A5 A5 A5 A5 A5 A5 00 80 FE FF 00 00 00 00 00 00 FE 02 05 00 A0 01 05 00 00 05 51 5A

命令5即为控制卡返回的NACK,此时根据命令处理状态位的值,对应错误状态值表来检查发送命令,如此ACK处理状态位为0x05,对应的是CRC16校验错误;

参数 数据 描述
命令分组 A0 命令分组编号
命令编号 01 命令编号
控制器是否回复 05 命令处理状态
保留字节 00 00 2个保留字节

8. 命令定义

8.1 发送节目文件

注意:节目文件因掉电不丢失,存储在Flash中,Flash擦写寿命有限制,故不适合频繁更新的情况。

8.1.1 开始写文件

参数 header 2 默认值 描述
CmdGroup 1 0XA1 命令分组编号
Cmd 1 0x05 命令编号
Response 1 0x01 是否要求控制器回复
0x01——控制器必须回复
0x02——控制器不必回复。
Reserved 2 0 保留
OverWrite 1 文件覆盖方式:
0x00——若文件系统中已经存在该文件,则不再下发该文件,返回 ERR_FILE_EXIST状态。
0x01——若文件系统中已经存在该文件,则直接覆盖该文件。
FileName 4 文件名,参考节目文件格式
FileLength 4 文件长度,参考节目文件格式

控制器接收到开始写文件命令后,首先检查文件系统剩余容量,若剩余容量不足,则返回ERR_MEMORYVOLUME 状态。返回值为 ACK 或 NACK。

命令示例6:

A5 A5 A5 A5 A5 A5 A5 A5 FE FF 00 80 00 00 00 00 00 00 FE 02 0E 00 A1 05 01 00 00 01 50 30 30 30 47 00 00 00 48 14 5A

控制卡型号与屏号均设置为通配符,待发送节目名为P000,节目数据长度为0x47。

参数 数据 描述
命令分组 A1 命令分组编号
命令编号 05 命令编号
控制器是否回复 01 需要回复
保留字节 00 00 2个保留字节
文件覆盖方式 01 如果已经存在,直接覆盖
文件名 50 30 30 30 节目名
文件长度 47 00 00 00 文件长度(低位在前)

8.1.2 写文件

在发送该命令前请先发送开始写文件命令,以判断是否有足够空间存储该文件。该命令用于发送文件数据到控制器,如果文件大小不超出控制器接收缓冲区(6代字库卡最大为1024Byte,5代字库卡最大为512Byte)的大小,可以单包发送。如果已经超出接收缓冲区大小,则必须分包发送,分包大小可以自行定义。

参数 数据长度 默认值 描述
CmdGroup 1 0XA1 命令分组编号
Cmd 1 0x06 命令编号
Response 1 0x01 是否要求控制器回复:
0x01——控制器必须回复
0x02——控制器不必回复。
Reserved 2 0 保留
FileName 4 文件名,参考节目文件格式
LastBlockFlag 1 0x00 用于标志是否最后一包
0x00——不是最后一包
0x01——最后一包。
BlockNum 2 包号,如果是单包发送,则默认为 0x00。
BlockLen 2 包长,若是单包发送,此处为文件长度。
BlockAddr 4 本包数据在文件中的起始位置,如果是单包发送,此处默认为 0。
Data N 文件包数据,参考节目文件格式

控制器接收完最后一个Block后,需对整个文件进行CRC16校验,如校验错误则返回ERR_FILE_CRC16错误。控制器接收完一个文件后,如校验出现错误(ERR_FILE_CRC16,ERR_FIRMWARE_TYPE),控制器会自动删除此文件。如 BlockAddr 出错,即 BlockAddr 不连续则返回ERR_FILE_BLOCK_NUM 错误状态和即将要写的块地址。返回值为:

参数 数据长度 默认值 描述
CmdGroup 1 0xA1 命令分组编号
Cmd 1 0x06 命令编号
CmdError 1 命令处理状态
Reserved 2 0 保留
BlockAddr 4 包地址,如果当前包成功接收则返回下一包的文件地址,否则返回当前包的文件地址。

命令示例7:

A5 A5 A5 A5 A5 A5 A5 A5 FE FF 00 80 00 00 00 00 00 00 FE 02 59 00 A1 06 01 00 00 50 30 30 30 01 00 00 47 00 00 00 00 00 00 50 30 30 30 47 00 00 00 FF 00 00 01 FF FF FF FF FF FF FF FF 01 00 00 01 2C 00 00 00 00 00 80 00 00 80 80 20 00 FF 00 00 00 00 00 00 00 02 02 02 00 0A 0A 0D 00 00 00 BB B6 D3 AD B9 E2 C1 D9 4F 6E 62 6F 6E 0F 18 EC F0 5A

相应写命令发送后,控制卡返回ACK后,发送命令7。命令7为发送的节目1的内容,节目名为P000。具体分析见下表。

参数 数据 描述
命令分组 A1 命令分组编号
命令编号 06 命令编号
控制器是否回复 01 需要回复
保留字节 00 00 2个保留字节
文件名 50303030 文件名
是否最后一包 01 最后一包
包号 00 00 包号
包长 47 00 包长(低位在前)
包位置 00 00 00 00 包位置默认为0
数据 00 50 30 30 30 47 00 00 00 FF 00 00 01 FF FF FF FF FF FF FF FF 01 00 00 01 2C 00 00 00 00 00 80 00 00 80 80 20 00 FF 00 00 00 00 00 00 00 02 02 02 00 0A 0A 0D 00 00 00 BB B6 D3 AD B9 E2 C1 D9 4F 6E 62 6F 6E 0F 18 文件包数据,参考节目文件格式

8.1.3 写多文件命令

参数 数据长度 默认值 描述
CmdGroup 1 0XA1 命令分组编号
Cmd 1 0x07 命令编号
Response 1 0x01 是否要求控制器回复
0x01——控制器必须回复
0x02——控制器不必回复。
Reserved 2 0 保留

在连续发送多个文件时,可以先发送写多文件命令,此时屏幕关闭,等待接收文件,在所有文件发送完毕后发送结束写多文件命令。结束等待。

8.1.4 结束写多文件命令

参数 数据长度 默认值 描述
CmdGroup 1 0XA1 命令分组编号
Cmd 1 0x08 命令编号
Response 1 0x01 是否要求控制器回复
0x01——控制器必须回复
0x02——控制器不必回复。
Reserved 2 0x00 保留

8.1.5 写客户信息

参数 数据长度 默认值 描述
CmdGroup 1 0XA1 命令分组编号
Cmd 1 0x09 命令编号
Response 1 0x01 是否要求控制器回复
0x01——控制器必须回复
0x02——控制器不必回复
Reserved 2 0x00 保留
OverWrite 1 文件覆盖方式:
0x00——若文件系统中已经存在该文件,则不再下发该文件,返回 ERR_FILE_EXIST 状态。
0x01——若文件系统中已经存在该文件,则直接覆盖该文件。
ClientMsg 16 客户信息用 16 个字符表示且全部用 ASCII 表示,如: XRY,前三个字符使用 ASCII,后面 13 个字符使用 NULL 的 ASCII

8.1.6 读取文件信息命令

参数 数据长度 默认值 描述
CmdGroup 1 0XA1 命令分组编号
Cmd 1 0x0A 命令编号
Response 1 0x01 是否要求控制器回复
0x01——控制器必须回复
0x02——控制器不必回复
Reserved 2 0x00 保留
DataLen 2 0x04 数据长度
FileName 4 文件名

8.1.7 返回文件信息命令

参数 数据长度 默认值 描述
CmdGroup 1 0XA1 命令分组编号
Cmd 1 0x8A 命令编号
Response 1 0x00 命令处理状态
Reserved 2 0x00 保留字节
DataLen 2 0x0C 文件长度
FileName 4 文件名
FileSize 4 文件长度
FileCrc 2 文件校验

如果请求读的文件不存在,则返回 ERR_FILENOTEXIST 错误。

8.1.8 读取文件内容命令

参数 数据长度 默认值 描述
CmdGroup 1 0XA1 命令分组编号
Cmd 1 0x0B 命令编号
Response 1 0x01 是否要求控制器回复
0x01——控制器必须回复
0x02——控制器不必回复
Reserved 2 0x00 保留
DataLen 2 0x08 文件长度
FileName 4 文件名
BlockOffset 4 0x00 数据块偏移量

8.1.9 返回文件内容命令

参数 数据长度 默认值 描述
CmdGroup 1 0XA1 命令分组编号
Cmd 1 0x8B 命令编号
Response 1 0x00 是否要求控制器回复
0x01——控制器必须回复
0x02——控制器不必回复
Reserved 2 0x00 保留
DataLen 2 N+9 数据长度
LastBlockFlag 1 是否为最后一个Block
FileName 4 文件名
BlockOffset 4 数据包偏移量
BlockData N 数据

8.2 发送实时显示信息

8.2.1 发送实时显示区域数据

控制卡支持 5 个动态区,每个动态区数据量不能超过1024byte(5K为8个动态区,单个动态区容量最大为512byte),可以单独更新一个动态区,也可同时更新所有动态区。实时显示信息不能掉电保存,但可以无限次更新。

参数 数据长度 默认值 描述
CmdGroup 1 0XA3 命令分组编号
Cmd 1 0x06 命令编号
Response 1 0x01 是否要求控制器回复。
0x01——控制器必须回复
0x02——控制器不必回复
ProcessMode 1 0x00 当该字节为 0 时,收到动态信息后不再进行清区域和初始化区域的操作,
当该字节为 1 时,收到动态信息后需要进行清区域和初始化区域的操作。
Reserved 1 0x00 保留
DeleteAreaNum 1 要删除的区域个数
注意:如果该值为0xFF,则删除所有动态区数据。如果该值为 0x00,则不删除区域。
DeleteAreaId N 需要删除的区域ID号
如果要删除的区域个数(DeleteAreaNum)为 0,则该项不发送(N=0)。
AreaNum 1 区域个数,本次更新的区域个数
AreaDataLen0 2 区域 0 数据长度
AreaData0 N 区域 0 数据,其数据格式请参考区域数据格式
...... ...... ...... ......
AreaDataLenN 2 区域N数据长度
AreaDataN N 区域 N 数据,其数据格式请参考区域数据格式

返回 ACK 或 NACK。

命令示例8: a5 a5 a5 a5 a5 a5 a5 a5 fe ff 00 80 00 00 00 00 00 00 fe 02 2c 00 a3 06 01 00 00 00 01 23 00 00 00 80 00 00 80 80 20 00 00 00 00 0a 00 00 00 00 02 01 01 00 02 0a 08 00 00 00 bb b6 d3 ad b9 e2 c1 d9 3c 49 5a 命令8是更新动态区命令,屏幕大小128*32,显示内容:欢迎光临。

参数 数据 描述
命令分组 A3 命令分组编号
命令编号 06 命令编号
控制器是否回复 01 需要回复
操作模式 00 不清区域
保留字节 00 保留字节
删除区域个数 00 删除区域个数
更新区域个数 01 更新区域个数
区域数据长度 23 00 区域0数据长度(低位在前)
区域类型 00 00 80 00 00 80 80 20 00 00 00 00 0a 00 00 00 00 02 01 01 00 02 0a 08 00 00 00 bb b6 d3 ad b9 e2 c1 d9 区域0数据

8.3 BX-5K2 、BX-5MK 专属命令

8.3.1 设置特殊应用动态区

控制器只支持一个特殊应用动态区,该区支持点阵和编码两种数据类型,当数据类型配置为编码格式时,区域支持数据分页循环播放和单独更新某页数据;当配置为点阵格式时,区域只支持数据单页显示,如果点阵信息大于1024byte,则必须分包发送。该区域的数据容量为16Kbyte(8192 个汉字)。

参数 数据长度 默认值 描述
CmdGroup 1 0xA4 命令分组编号
Cmd 1 0x01 命令编号
Response 1 0x01 是否要求控制器回复
0x01——控制器必须回复
0x02——控制器不必回复
Reserved 2 0 保留
AreaX 2 区域 X 坐标,以字节(8 个像素点)为单位
AreaY 2 区域 Y 坐标,以像素点为单位
AreaW 2 区域宽度,以字节(8 个像素点)为单位
AreaH 2 区域高度,以像素点为单位
DataType 1 数据类型,
0— 编码格式
1— 点阵格式
Pagetotal 1 0 区域数据总页数,注意,数据类型为点阵格式时总页数强制为 0。
RunState 1 动态区运行模式
0—动态区数据循环显示
1—动态区数据显示完成后静止显示最后一页数据
2—动态区数据循环显示,超过设定时间后数据仍未更新时删除动态区信息。
Timeout 2 动态区数据超时时间,单位为秒
SingleLine 1 0x02 是否单行显示
0x01——单行显示
0x02——多行显示,注意,点阵格式下该参数无效,默认为 0。
Lines_sizes 1 行间距,注意,点阵格式下该参数无效,默认为 0。
NewLine 1 是否自动换行
0x01——不自动换行,显示数据在换行时必须插入换行符。
0x02——自动换行,显示内容不需要换行符,但是只能使用统一的中文字体和英文字体注意,点阵格式下该参数无效,默认为 0。
StayTime 2 显示停留时间,单位为0.5s注意,点阵格式下该参数无效,默认为 0。
Reserved 6 0 保留值

返回 ACK 或 NACK。

实例: A5 A5 A5 A5 A5 A5 A5 A5 01 00 00 80 00 00 00 00 00 00 FE 02 1D 00 A4 01 01 00 00 28 00 00 00 08 00 40 00 00 01 00 02 00 02 00 02 0A 00 00 00 00 00 00 00 FD C0 5A

8.3.2 发送分页数据

当动态区数据类型配置为编码类型时,选择该命令更新页数据。每页数据大小为(16kbyte)除以总页数且不能大于 1024byte。循环播放每页数据。

参数 header 2 header 2 header 2
CmdGroup 1 0XA4 命令分组编号
Cmd 1 0x02 命令编号
Response 1 0x01 是否要求控制器回复。
0x01——控制器必须回复
0x02——控制器不必回复。
Reserved 2 0 保留
PageNum 1 页号,页号从 0 开始递增,不能大于总页数。
PageDataLen 2 页数据长度
PageData N 页数据,参考图文内容编辑

返回 ACK 或 NACK。

实例:(数据为 www.onbonbx.com)

A5 A5 A5 A5 A5 A5 A5 A5 01 00 00 80 00 00 00 00 00 00 FE 02 17 00 A4 02 01 00 00 00 0F 00 77 77 77 2E 6F 6E 62 6F 6E 62 78 2E 63 6F 6D 68 B5 5A

8.3.3 删除页数据

如果特殊应用动态区使用分页显示数据的方式,则可以使用删除页数据来单独删除某一页数据。

参数 数据长度 默认值 描述
CmdGroup 1 0XA4 命令分组编号
Cmd 1 0x09 命令编号
Response 1 0x01 是否要求控制器回复
0x01——控制器必须回复
0x02——控制器不必回复
Reserved 2 0 保留
PageLog 1 需要删除的页号

返回 ACK 或 NACK。

实例:

A5 A5 A5 A5 A5 A5 A5 A5 01 00 00 80 00 00 00 00 00 00 FE 02 06 00 A4 09 01 00 00 00 65 9C 5A

8.3.4 发送点阵信息

当动态区数据类型配置为点阵类型时,选择该命令更新页数据。点阵信息长度不能大于 16Kbyte,大于1024byte时必须分包发送。接收信息时,屏幕静止显示之前数据。点阵信息需用户自己生成。

参数 数据长度 默认值 描述
CmdGroup 1 0XA4 命令分组编号
Cmd 1 0x03 命令编号
Response 1 0x01 是否要求控制器回复
0x01——控制器必须回复
0x02——控制器不必回复
Reserved 2 0 保留
BlockFlag 1 0 是否最后一包,0— 不是最后一包,1— 最后一包
BlockAddr 2 包地址,即把点阵信息分成若干包后每包的基址
BlockData N 包数据,点阵信息分割而得

返回 ACK 或 NACK。

实例:

A5 A5 A5 A5 A5 A5 A5 A5 01 00 00 80 00 00 00 00 00 00 FE 02 08 02 A4 03 01 00 00 01 00 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FD 00 FF 00 FF 00 FC 00 FF 00 80 00 3F 00 FF 00 F0 00 07 00 FF 00 FE 00 7F 00 02 02 FF 80 FF 00 E0 00 00 00 7F 00 FF 00 9F 00 29 28 FF 00 FF 00 C0 00 02 00 7F 00 FF 00 CF 00 03 00 FF 00 FF 00 80 00 0E 00 7F 00 FF 00 E7 00 28 28 3F 00 FF 00 00 00 18 18 3F 00 FF 00 F0 00 00 00 7F 00 FE 00 FF EF F8 F8 3F 00 FF 00 FC 00 01 00 FF 00 FF 01 FE FF F8 F8 3F 00 FF 00 F8 00 03 00 FF 00 FF 01 FF FF F8 E8 7F 00 FF 00 F0 00 1F 00 FF 00 FE 00 1F 1F F0 F0 FF 00 FF 00 C0 00 8D 00 FF 00 FC 00 01 01 D0 D0 FF 00 FC 00 01 00 C7 00 FF 00 FC 00 00 00 01 00 FF 00 FC 00 61 00 A7 00 FF 00 FC 00 60 00 01 00 FF 00 FC 00 EF 20 FD 00 FF 00 FC 00 E0 00 03 00 FF 00 FD 01 8F 00 F7 00 FF 00 FC 00 85 00 07 00 FF 00 FC 00 0F 00 FF 00 FF 00 FC 00 07 00 9F 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 F5 00 9F 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FD 08 9F 80 FF 00 FF 00 F2 02 CF 00 FF 00 FF 00 F8 08 9F 80 FF 00 FF 00 FF 0F 57 50 FF 00 FF 00 FF 00 FF 80 FF 00 FF 00 FF 00 DF C0 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 EF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 DF 00 DF 00 DB 02 FF 00 FF 00 FF 00 FF 00 FF 00 C8 00 52 52 52 12 BF 80 FF 00 FF 00 FF 00 FF 00 DA 1A DB DB 52 52 C3 80 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 2E 8B 5A

8.3.5 删除特殊应用动态区

该命令只有 BX-5MK 支持,其他控制器不支持该命令。

参数 数据长度 默认值 描述
CmdGroup 1 0XA4 命令分组编号
Cmd 1 0x04 命令编号
Response 1 0x01 是否要求控制器回复。0x01——控制器必须回复,0x02——控制器不必回复
Reserved 2 0 保留

返回 ACK 或 NACK。

实例:

A5 A5 A5 A5 A5 A5 A5 A5 01 00 00 80 00 00 00 00 00 00 FE 02 05 00 A4 04 01 00 00 E1 C8 5A

8.3.6 设置IP地址

TCP 端口号,默认值为 5005,UDP端口号为5007。BX-5MK系列只支持单机直连和固定 IP 模式。

参数 数据长度 默认值 描述
CmdGroup 1 0XA4 命令分组编号
Cmd 1 0x05 命令编号
Response 1 0x01 是否要求控制器回复。
0x01——控制器必须回复
0x02——控制器不必回复
Reserved 2 0 保留
ConnnectMode 1 控制器连接模式:
0x00–单机直连(PC与控制器直接连接)
0x01 – 自动获取 IP(DHCP)
0x02 – 手动设置 IP(Static IP)
0x03 – 服务器模式(动态 IP)
Static IP Settings Static IP Settings Static IP Settings Static IP Settings
IPAddress 4 IP 地址
SubnetMask 4 子网掩码
Gateway 4 默认网关
Port 2 端口号
Server Mode Settings Server Mode Settings Server Mode Settings Server Mode Settings
ServerMode 1 服务器模式是否使能,
1 – 使能,0 – 禁止
ServerIPAddress 4 服务器 IP 地址
ServerPort 2 服务器,端口号
ServerAccessPassword 8 服务器访问密码
HeartBeatInterval 2 心跳时间间隔(单位:秒)
NetID 12 控制器网络 ID

实例:

A5 A5 A5 A5 A5 A5 A5 A5 FE FF 00 80 00 00 00 00 00 00 FE 02 31 00 A4 05 01 00 00 02 C0 A8 00 EB FF FF FF 00 C0 A8 00 01 8D 13 00 C0 A8 00 01 71 17 30 30 30 30 30 30 30 30 14 00 42 58 2D 4E 45 54 30 30 30 30 30 16 90 5A

8.3.7 设置MAC地址

参数 数据长度 默认值 描述
CmdGroup 1 0XA4 命令分组编号
Cmd 1 0x06 命令编号
Response 1 0x01 是否要求控制器回复。
0x01——控制器必须回复
0x02——控制器不必回复。
Reserved 2 0 保留
MAC 6 控制器MAC地址

实例:

A5 A5 A5 A5 A5 A5 A5 A5 FE FF 00 80 00 00 00 00 00 00 FE 02 0B 00 A4 06 01 00 00 00 FF FE 83 A8 56 1C 2C 5A

8.3.8 网络搜索

返回网络心跳。

参数 数据长度 默认值 描述
CmdGroup 1 0XA4 命令分组编号
Cmd 1 0x07 命令编号
Response 1 0x01 是否要求控制器回复。
0x01——控制器必须回复
0x02——控制器不必回复
Reserved 2 0 保留

8.3.9 网络心跳

参数 数据长度 默认值 描述
CmdGroup 1 0XA4 命令分组编号
Cmd 1 0x08 命令编号
Response 1 0x01 是否要求控制器回复。
0x01——控制器必须回复,
0x02——控制器不必回复
Reserved 2 0 保留
Status 2 控制器状态
Error 2 错误状态寄存器
IP 4 控制器 IP 地址
SubNetMask 4 子网掩码
Gate 4 网关
Port 2 端口号
Mac 6 MAC地址
NetID 12 控制器网络 ID

8.4 查询控制器状态

参数 数据长度 默认值 描述
CmdGroup 1 0XA1 命令分组编号
Cmd 1 0x02 命令编号
Response 1 0x01 是否要求控制器回复
0x01——控制器必须回复
0x02——控制器不必回复
若为广播通讯,此值固定为 0x02,即控制器不回复。
Reserved 2 数据长度

命令回复:

参数 数据长度 默认值 描述
CmdGroup 1 0xA1 命令分组编号
Cmd 1 0x02 命令编号
CmdError 1 命令处理状态
Reserved 2 保留
OnOff 1 0x02 控制器开关机状态,
0x01——开机
0x02——关机
Brightness 1 控制器当前亮度
SystemTime 8 控制器时间,格式如下(时间表示均采用BCD码):年(2)+月(1)+日(1)+星期(1)+时(1)+分(1)+秒(1)注:1. 年采用两个字节表示,如 2011 年表示为0x20,0x11。2. 星期用 1~7 来表示,其中 7 表示星期日
ProgramNUM 1 控制器中节目个数
FileName 4 当前播放的节目文件名
SpecialDynaArea 1 特殊动态区标志(BX-5K1不支持此项),
0—不存在特殊动态区,1—存在特殊动态区
PageNum 1 特殊动态区总页数,如果不存在特殊动态区,该项为0(BX-5K1不支持此项)
DynaAreaNum 1 动态区个数
DynaAreaID N 动态区 ID号,如果动态区个数为0,该项不发送。
BarCode 16 条码
CustomId 12 用户自定义网络 ID,服务器模式下为客户自定义的值,普通模式下均为 0

8.5 格式化

参数 数据长度 默认值 描述
CmdGroup 1 0XA1 命令分组编号
Cmd 1 0x00 命令编号
Response 1 0x01 是否要求控制器回复
0x01——控制器必须回复
0x02——控制器不必回复。
Reserved 2 0 保留

格式化命令会删除控制器中的所有文件,包括节目文件和字库文件,如果只希望删除节目文件而保留字库文件,该命令需慎用。命令回复为 ACK 或 NACK。

实例:

A5 A5 A5 A5 A5 A5 A5 A5 01 00 00 80 00 00 00 00 00 00 FE 02 05 00 A1 00 01 00 00 2C F8 5A

8.6 删除文件

参数 数据长度 默认值 描述
CmdGroup 1 0XA1 命令分组编号
Cmd 1 0x01 命令编号
Response 1 0x01 是否要求控制器回复。
0x01——控制器必须回复
0x02——控制器不必回复
Reserved 2 0 保留
FileNumber 2 需要删除文件总数,如果该值为0则删除所有节目文件,后面的文件名数据不发送。
FileName1 4 文件名 1
FileName2 4 文件名 2
...... ...... ...... ......
FileNameN 4 文件名 N

删除文件命令可以删除控制器中任意文件,包括节目文件和字库文件。如果需要删除所有的节目文件,则将 FileNumber 置为 0 即可。命令回复为 ACK 或 NACK。

8.7 PING 命令

参数 数据长度 默认值 描述
CmdGroup 1 0XA2 命令分组编号
Cmd 1 0x00 命令编号
Response 1 0x01 是否要求控制器回复
0x01——控制器必须回复
0x02——控制器不必回复
Reserved 2 保留

返回值为 ACK 或 NACK。

PING 命令实例:

A5 A5 A5 A5 A5 A5 A5 A5 01 00 00 80 00 00 00 00 00 00 FE 02 05 00 A2 00 01 00 00 68 F8 5A

8.8 波特率自适应

对于当前的控制器,只支持9600bps和57600bps两种波特率。所以,对于波特率自适应,我们这里采用简单的轮询模式。其过程如下: 1. 上位机使用 9600 波特率向控制器发出 Ping 命令。 2. 如上位机在 2S 内收到正确的回复,则说明控制器的波特率即为 9600 。 3. 如上位机 2S 内没有收到正确的回复信息,则改用 57600 重复 1,2 。 4. 如上位机在 2S 内收到正确的回复,则说明控制器的波特率为 57600 。 5. 如上位机 2S 内没有收到正确的回复信息,则重复1,2,3,4 。 6. 如 1,2,3,4仍失败,则说明通讯失败,此时需提醒客户检查通讯线路。

8.9 系统复位命令

参数 数据长度 默认值 描述
CmdGroup 1 0XA2 命令分组编号
Cmd 1 0x01 命令编号
Response 1 0x01 是否要求控制器回复
0x01——控制器必须回复
0x02——控制器不必回复
Reserved 2 0 保留

控制器接接收到系统复位命令后,擦除除Firmware文件外的所有数据文件,然后复位 CPU。命令返回ACK 或 NACK。

8.10 系统时间校正命令

参数 数据长度 默认值 描述
CmdGroup 1 0XA2 命令分组编号
Cmd 1 0x03 命令编号
Response 1 0x01 是否要求控制器回复
0x01——控制器必须回复
0x02——控制器不必回复
Reserved 2 0 保留
SystemTime 8 8 控制器时间,发送顺序如下(时间表示均采用BCD码):年(2)+月(1)+日(1) +时(1)+分(1)+秒(1) +星期(1)。注:年采用两个字节表示,如 2011 年表示为0x20,0x11。先发送低位字节,后发送高位字节。星期用 1~7 来表示,其中 7 表示星期日

返回 ACK 或 NACK。

校时命令实例:

A5 A5 A5 A5 A5 A5 A5 A5 01 00 00 80 00 00 00 00 00 00 FE 02 0D 00 A2 03 01 08 00 13 20 01 25 11 17 26 05 B0 3F 5A

8.11 设置屏 ID

参数 数据长度 默认值 描述
CmdGroup 1 0XA2 命令分组编号
Cmd 1 0x06 命令编号
Response 1 0x01 是否要求控制器回复
0x01——控制器必须回复
0x02——控制器不必回复
Reserved 2 0 保留
保留 2 屏 ID,由两个字节组成,范围为 0x0000—0x7FFF

返回 ACK 或 NACK。设置屏ID时必需采用广播模式(见包头数据格式中目标地址的说明)。

8.12 读取屏 ID

参数 数据长度 默认值 描述
CmdGroup 1 0XA2 命令分组编号
Cmd 1 0x07 命令编号
Response 1 0x01 是否要求控制器回复
0x01——控制器必须回复
0x02——控制器不必回复
Reserved 2 0 保留

读取屏 ID 时必需采用广播模式(见包头数据格式中目标地址的说明)。

返回值:

参数 数据长度 默认值 描述
CmdGroup 1 0XA2 命令分组编号
Cmd 1 0x07 命令编号
CmdError 1 命令处理状态
Reserved 2 0 保留
ScreenID 2 屏 ID

8.13 强制开关机

参数 数据长度 默认值 描述
CmdGroup 1 0XA3 命令分组编号
Cmd 1 0x00 命令编号
Response 1 0x01 是否要求控制器回复
0x01——控制器必须回复
0x02——控制器不必回复
Reserved 2 0 保留
OnOffFlag 1 开关状态
0x01——开机
0x02——关机

返回 ACK 或 NACK。强制开关机命令的优先级高于定时开关机。如果发送强制开机命令,则在下一个定时开关机关机时段前都为开机状态,如果发送强制关机命令,则在下一个定时开关机开机时段前都为关机状态。

8.14 定时开关机

参数 数据长度 默认值 描述
CmdGroup 1 0XA3 命令分组编号
Cmd 1 0x01 命令编号
Response 1 0x01 是否要求控制器回复
0x01——控制器必须回复
0x02——控制器不必回复
Reserved 2 0 保留
TimerNum 1 定时器组数(最大只支持 3 组)
Timer1On 2 第一组定时开机时间,BCD码表示,格式如下:时(1)+分(1)
Timer1Off 2 第一组定时关机时间,BCD码表示,格式如下:时(1)+分(1)
...... ...... ...... ......
Timer(n) On 2 第n组定时关机时间,BCD码表示,格式如下:时(1)+分(1)
Timer(n) Off 2 第n组定时关机时间,BCD码表示,格式如下:时(1)+分(1)

返回 ACK 或 NACK。定时开关机一旦设置,则一直有效直到取消定时开关机为止。

注意!关机时间一定要比开机时间大,不支持跨天设置。时间的发送顺序为先发小时后发分钟

8.15 取消定时开关机

参数 数据长度 默认值 描述
CmdGroup 1 0XA3 命令分组编号
Cmd 1 0x08 命令编号
Response 1 0x01 是否要求控制器回复。
0x01——控制器必须回复
0x02——控制器不必回复
Reserved 2 0 保留

返回 ACK 或 NACK。

8.16 清屏

参数 数据长度 默认值 描述
CmdGroup 1 0XA3 命令分组编号
Cmd 1 0x10 命令编号
Response 1 0x01 是否要求控制器回复。
0x01——控制器必须回复
0x02——控制器不必回复
Reserved 2 0 保留

返回 ACK 或 NACK。

8.17 设置亮度

该命令包含强制设置亮度和定时设置亮度功能。

参数 数据长度 默认值 描述
CmdGroup 1 0XA3 命令分组编号
Cmd 1 0x02 命令编号
Response 1 0x01 是否要求控制器回复。
0x01——控制器必须回复
0x02——控制器不必回复
Reserved 2 0 保留
BrightnessType 1 亮度调节方式:
0x01——强制调节亮度,
0x02——定时调节亮度;
注:若设置为强制调节方式,则 BrightnessValue 不必发送;若设置为定时调节方式,则 CurrentBrightness 默认为 0
CurrentBrightness 1 当前亮度,强制调节亮度时有效。亮度值为 0-15 共 16 级。亮度值为 15 时亮度最高
BrightnessValue 48 亮度值列表,用于定时调亮,把一天分为48个时段,每 30 分钟为一个时段,此处 48 个字节为每个时段对应的亮度值

返回 ACK 或 NACK。

8.18 锁定 / 解锁节目

被锁定的节目将一直播放直至解锁,该命令常用于节目的的选择播放。

参数 数据长度 默认值 描述
CmdGroup 1 0XA3 命令分组编号
Cmd 1 0x04 命令编号
Response 1 0x01 是否要求控制器回复。
0x01——控制器必须回复,
0x02——控制器不必回复
Reserved 2 0 保留
StoreMode 1 0x00 锁定状态保存方式:0x00——掉电不保存,0x01——掉电保存
LockFlag 1 0x00 锁定状态:0x00——解锁状态,0x01——锁定状态
ProgramFileName 4 节目文件名

如果需锁定的节目不存在,则返回 ERR_FILENOTEXIST 错误状态,返回 ACK或NACK。 命令实例(掉电不保存): 锁定节目0:A5 A5 A5 A5 A5 A5 A5 A5 01 00 00 80 00 00 00 00 00 00 FE 02 0B 00 A3 04 01 00 00 00 01 50 30 30 30 C2 40 5A

解锁节目0:A5 A5 A5 A5 A5 A5 A5 A5 01 00 00 80 00 00 00 00 00 00 FE 02 0B 00 A3 04 01 00 00 00 00 50 30 30 30 FF 80 5A

8.19 设置是否显示轮播信息命令

参数 数据长度 默认值 描述
CmdGroup 1 0XA2 命令分组编号
Cmd 1 0x08 命令编号
Response 1 0x01 是否要求控制器回复。
0x01——控制器必须回复
0x02——控制器不必回复
Reserved 2 0 保留
IsDispInfo 1 是否显示轮播信息
0x00——显示轮播信息
0x01——不显示轮播信息

返回 ACK 或 NACK。

命令实例:

不显示轮播信息命令:

A5 A5 A5 A5 A5 A5 A5 A5 FE FF 00 80 FF 00 00 00 00 00 FE 02 06 00 A2 08 01 00 00 01 BC 51 5A

显示轮播信息命令:

A5 A5 A5 A5 A5 A5 A5 A5 FE FF 00 80 FF 00 00 00 00 00 FE 02 06 00 A2 08 01 00 00 00 7D 91 5A

8.20 查询字库信息命令

参数 数据长度 默认值 描述
CmdGroup 1 0XA2 命令分组编号
Cmd 1 0x09 命令编号
Response 1 0x01 是否要求控制器回复。
0x01——控制器必须回复,
0x02——控制器不必回复
Reserved 2 0 保留

实例:

查询字库信息命令:

A5 A5 A5 A5 A5 A5 A5 A5 FE FF 00 80 FF 00 00 00 00 00 FE 02 05 00 A2 09 01 00 00 F0 00 5A

返回值:

参数 数据长度 默认值 描述
CmdGroup 1 0XA2 命令分组编号
Cmd 1 0x09 命令编号
CmdError 1 命令处理状态
FontNum 1 字库总个数
Font1Type 1 字库 1 类型:0x00——英文,0x01——中文
Font1Width 1 字库 1 中字模宽度,单位为像素点
Font1Height 1 字库 1 中字模高度,单位为像素点
...... ...... ...... ......
FontNType 1 字库 N 类型:0x00——英文,0x01——中文
FontNWidth 1 字库 N 中字模宽度,单位为像素点
FontNHeight 1 字库 N 中字模高度,单位为像素点

8.21 参数回读命令

参数 数据长度 默认值 描述
CmdGroup 1 0XA2 命令分组编号
Cmd 1 0x0A 命令编号
Response 1 0x01 是否要求控制器回复。
0x01——控制器必须回复
0x02——控制器不必回复
Reserved 2 0 保留

返回值:

参数 数据长度 默认值 描述
CmdGroup 1 0xA2 命令分组编号
Cmd 1 0x0A 命令编号
CmdError 1 命令处理状态
Reserved 2 保留
Address 2 0x0001 屏地址。在PHY层,广播地址定义如下:0xFFFF为广播地址1,此种模式下,控制器不返回数据,其可用于广播校时等命令。0xFFFE为广播地址2,此种模式主要用于广播设置屏参,控制器需返回数据。在返回的数据帧中,地址也应为0XFFFE。0x8000~0xDFFF地址为保留地址,对于物理层类型为TCP/IP或GPRS这种不需要处理DstAddr的,可将其目标地址设置为这个范围中的一个,默认设置地址为 0x8000。
DeviceType 1 用于区分网络中不同的设备类型,定义如下:0x51——BX-5K1,0x58——BX-5K2,0x53——BX-5MK2,0x54——BX-5MK1
Baudrate 1 波特率,0x00 – 保持原有波特率丌变,0x01 – 强制设置为9600,0x02 – 强制设置为57600
ScreenWidth 2 屏幕宽度
ScreenHeight 2 屏幕高度
Color 1 屏型:0x01——单色,0x02——双色
DA 1 数据极性,0x00 ——数据低有效,0x01 ——数据高有效
OE 1 OE极性:0x00 ——OE低有效,0x01—— OE高有效
FreqPar 1 CLK分频倍数
RowOrder 1 行顺序
MirrorMode 1 镜像属性:0x00 ——无镜像,0x01 ——镜像
OEAngle 1 OE 提前角
ScanMode 1 0x10 几扫:0x10 – 1/16 扫,0x08 – 1/8 扫,0x04 –1/4扫,0x02–1/2扫,0x01 – 静态扫描
ScanConfNum 1 扫描配置编号上位机软件需要对扫描方式编号,以方便回读
LatticeMode 1 0x10 点阵模式0:R+G模式;1:G+R模式
Reserved 7 保留字节

8.22 客户信息回读命令

参数 数据长度 默认值 描述
CmdGroup 1 0XA2 命令分组编号
Cmd 1 0x0B 命令编号
Response 1 0x01 是否要求控制器回复。
0x01——控制器必须回复
0x02——控制器不必回复
Reserved 2 0 保留

返回值:

参数 数据长度 默认值 描述
CmdGroup 1 0xA2 命令分组编号
Cmd 1 0x0B 命令编号
CmdError 1 命令处理状态
ClientMsg 16 客户信息用 16 个字符表示且全部用 ASCII 表示,如: XRY,前三个字符使用 ASCII,后面 13 个字符使用 NULL 的 ASCII

8.23 设置提示信息

参数 数据长度 默认值 描述
CmdGroup 1 0XA2 命令分组编号
Cmd 1 0x0C 命令编号
Response 1 0x01 是否要求控制器回复。0x01——控制器必须回复,0x02——控制器不必回复
Reserved 2 0 保留
InfoNum 2 提示信息个数
Info0Offset 4 第一个提示信息偏移量
... ... ... ...
InfoNOffset 4 第N个提示信息偏移量
Info0Data N 第1个提示信息数据
InfoNData N 第N个提示信息数据

返回值: ACK 或 NACK。

数据格式:

参数 数据长度 默认值 描述
字节宽度 1 W
像素宽度 1
像素高度 1 H
数据 W*H 1-0ff,0-on

8.24 删除提示信息

参数 数据长度 默认值 描述
CmdGroup 1 0XA2 命令分组编号
Cmd 1 0x0D 命令编号
Response 1 0x01 是否要求控制器回复。0x01——控制器必须回复,0x02——控制器不必回复
Reserved 2 0 保留
DelInfoNum 1 1 删除所有自定义提示信息

返回值: ACK 或 NACK。

8.25 添加语音信息

参数 数据长度 默认值 描述
CmdGroup 1 0XA2 命令分组编号
Cmd 1 0x0E 命令编号
Response 1 0x01 是否要求控制器回复。
0x01——控制器必须回复,
0x02——控制器不必回复
Reserved 8 0 保留
StoreFlag 1 0x01 该值为 1 表示需要存储到 FLASH 中,掉电信息不丢失;该值为 0 表示不需要存储到 FLASH 中,掉电信息丢失
SoundPerson 1 0x00 发音人,该值范围是 0-5,共 6 种选择,默认为 0
SoundVolum 1 0x05 音量该值范围是 0~10,共 11 种, 0 表示静音该值默认为 5
SoundSpeed 1 0x05 语速该值范围是 0~10,共 11 种,该值默认为 5
SoundDataMode 1 0x00 SoundData 的编码格式:该值意义如下:
0X00 GB2312;
0X01 GBK;
0X02 BIG5;
0X03 UNICODE
SoundReplayTimes 4 0x00000000 重播次数,该值为 0,表示播放 1 次该值为 1,表示播放 2 次......该值为 0xffffffff,表示播放无限次, 该值默认为 0;
SoundReplayDelay 4 0x00000000 重播时间间隔,该值表示两次播放语音的时间间隔,单位为 10ms,该值默认为 0;
SoundReservedParaLen 1 0x00 语音参数保留长度
SoundReservedPara N 语音参数保留参数当 SoundReservedParaLen 为 0 时不发送该部分参数
SoundDataLen 4 语音数据长度
SoundData N 语音数据

返回值: ACK 或 NACK。

注意:该命令对所有节目均有效,主要适用于所有节目均需要播放相同的语音信息情况下,客户不需要对每个节目重复设置语音信息;或者客户发送临时语音信息,便于频繁更新语音信息。播放某个节目时,如果该节目内有语音区,同时又发送了该命令,则以该命令为准进行播放,也就是说,该命令的优先级高于节目自带语音信息。

8.26 继电器配置命令

参数 数据长度 默认值 描述
CmdGroup 1 0XA2 命令分组编号
Cmd 1 0x0F 命令编号
Response 1 0x01 是否要求控制器回复。
0x01——控制器必须回复
0x02——控制器不必回复
Reserved 8 0 保留
StoreFlag 1 0x01 该值为 1 表示需要存储到 FLASH 中,掉电信息不丢失;
该值为 0 表示不需要存储到 FLASH 中,掉电信息丢失
Relayconf 1 0x00 继电器配置,一个bit控制一个继电器,每个bit对应点击前关系,后面新板子会有板载继电器
0 -开关机, 包括强制开关机和定时开关 机。
1-自定义,和 8.27 的设置外部继电器状 态关联。

返回值: ACK 或 NACK。

注: 配置为开关机时,关机时保持继电器断开达到断开屏幕电源目的

8.27 设置外部继电器状态

参数 数据长度 默认值 描述
CmdGroup 1 0XA2 命令分组编号
Cmd 1 0x10 命令编号
Response 1 0x01 是否要求控制器回复。
0x01——控制器必须回复
0x02——控制器不必回复
Reserved 8 0 保留
RelayStatus 1 0x01 Bit1 用来控制继电器管脚,进而控制继 电器,此处采用 Bit1 是为了与外部信号 选节目管脚的定义顺序保持一致,便于 之后扩展多路继电器
当该位为 1 时,表示继电器管脚控制的 继电器闭合
当该位为 0 时,表示继电器管脚控制的 继电器断开

由于 MCU 管脚驱动能力较弱,不能直接 驱动继电器,可以采用如下链接的继电器
购买继电器链接

返回值: ACK 或 NACK。

8.28 查询字库附加信息命令

参数 数据长度 默认值 描述
CmdGroup 1 0XA2 命令分组编号
Cmd 1 0x11 命令编号
Response 1 0x01 是否要求控制器回复。0x01——控制器必须回复,0x02——控制器不必回复
Reserved 2 0 保留

返回值:

参数 数据长度 默认值 描述
CmdGroup 1 0XA2 命令分组编号
Cmd 1 0x11 命令编号
CmdError 1 命令处理状态
FontNum 1 字库总个数
NumOfFontPara 1 每个字库参数信息长度
FileName 4 OXXX 字库1文件名第一个字节O为中英文字库标志,定义:
E——英文字库;
O——中文字库;
K——其余外文
后面三个字节(XXX)为文件编号,ASCII码表示文件名为字符串,发送按顺序发送,如“F123”则先发送‘F’,最后发送‘3’。
FontWidth 1 字库1中字模宽度,单位为像素点
FontHeight 1 字库1中字模高度,单位为像素点
Language CRC 2 字库1从Extended parameter length到 Revolving font 这10个参数的CRC校验,用于分辨新旧命令
Revolving font 1 0x00 字库1字体是否旋转,没有旋转为0x00,顺时针旋转90°为0x01,顺时针旋转180°为0x02,顺时针旋转270°为0x03
Font tilt 1 0x00 字库1字体外形,0x00表示常规,0x01表示倾斜
Font bold 1 0x00 字库1字体外形,0x00表示常规,0x01表示加粗
Underline 1 0x00 字库1下划线,0x00表示没有下划线,0x01表示有下划线
Font file format version number 1 0x01 字库1字库文件版本号 .0x00为老固件,0x01为新固件
Language type 1 字库1语言类型,
英文为0,
中文为1,
韩文为2,
法语为3,
德语为4,
俄语为5,
日语为6,
越南语为7,
剩余部分待添加
Font type 2 字库1字体类型,
宋体为0(0x0000),
楷体为1(0x0001),
黑体为2(0x0002),
仿宋为3(0x0003),
微软雅黑为4(0x0004),
后续支持其他的,上位机定义好告知后增加
LibData length 4 字库1字库点阵文件的长度
Font file generation time 8 字库文件生成时间.与版本时间格式保持一致都是8个字节
Extended parameter length 1 0x12 字库1扩展参数长度,以字节为单位,决定扩展参数个数
FontEncode 1 0x00 字库1字库编码格式。
0x01:GB2312编码,
0x02:GBK编码,
英文字库使用默认值 0x00
...... ...... ...... ......
NumOfFontPara 1 每个字库参数信息长度
FileName 4 OXXX 字库N文件名第一个字节O为中英文字库标志,定义:
E——英文字库;
O——中文字库;
K——其余外文
后面三个字节(XXX)为文件编号,ASCII码表示文件名为字符串,发送按顺序发送,如“F123”则先发送‘F’,最后发送‘3’。
FontWidth 1 字库N中字模宽度,单位为像素点
FontHeight 1 字库N中字模高度,单位为像素点
Language CRC 2 字库N从Extended parameter length到 Revolving font 这10个参数的CRC校验,用于分辨新旧命令
Revolving font 1 0x00 字库N字体是否旋转,
没有旋转为0x00,
顺时针旋转90°为0x01,
顺时针旋转180°为0x02,
顺时针旋转270°为0x03
Font tilt 1 0x00 字库N字体外形,0x00表示常规,0x01表示倾斜
Font bold 1 0x00 字库N字体外形,0x00表示常规,0x01表示加粗
Underline 1 0x00 字库N下划线,0x00表示没有下划线,0x01表示有下划线
Font file format version number 1 0x01 字库N字库文件版本号 .0x00为老固件,0x01为新固件
Language type 1 字库N语言类型,
英文为0,
中文为1,
韩文为2,
法语为3,
德语为4,
俄语为5,
日语为6,
越语为7,
剩余部分待添加
Font type 2 字库N字体类型,
宋体为0(0x0000),
楷体为1(0x0001),
黑体为2(0x0002),
仿宋为3(0x0003),
微软雅黑为4(0x0004),
后续支持其他的,上位机定义好告知后增加
LibData length 4 字库N字库点阵文件的长度
Font file generation time 8 字库N文件生成时间.与版本时间格式保持一致都是8个字节
Extended parameter length 1 0x12 字库N扩展参数长度,以字节为单位,决定扩展参数个数
FontEncode 1 0x00 字库N字库编码格式。0x01:GB2312编码,0x02:GBK编码,英文字库使用默认值 0x00

8.29 配置多个外部继电器

参数 数据长度 默认值 描述
CmdGroup 1 0xA2 命令组
Cmd 1 0x12 命令编号
Response 1 0x01 是否要求控制器回复。
0x01——控制器必须回复
0x02——控制器不必回复数据长度
Relaynum 1 0x10 继电器数量
RelayStatus1 1 0x01 板载继电器;板载继电器上电默认闭合 为1时,表示继电器闭合(如果不是板载继电器,就输出1) 为0时,表示继电器断开(如果不是板载继电器,就输出0)由于MCU管脚驱动能力较弱,不能直接驱动继电器,可以采用如下链接的继电器购买继电器链接
RelayStatus2 1 0x01 管脚EXP01;上电默认低电平 为1时,表示继电器闭合(如果不是板载继电器,就输出1)为0时,表示继电器断开(如果不是板载继电器,就输出0)
RelayStatus3 1 0x01 管脚EXP02 ; 上电默认低电平 为1时,表示继电器闭合(如果不是板载继电器,就输出1)为0时,表示继电器断开(如果不是板载继电器,就输出0)
RelayStatus4 1 0x01 为1时,表示继电器闭合(如果不是板载继电器,就输出1)为0时,表示继电器断开(如果不是板载继电器,就输出0)
RelayStatus5 1 0x01 为1时,表示继电器闭合(如果不是板载继电器,就输出1)为0时,表示继电器断开(如果不是板载继电器,就输出0)
RelayStatus6 1 0x01 为1时,表示继电器闭合(如果不是板载继电器,就输出1)为0时,表示继电器断开(如果不是板载继电器,就输出0)
RelayStatus7 1 0x02 为1时,表示继电器闭合(如果不是板载继电器,就输出1)为0时,表示继电器断开(如果不是板载继电器,就输出0)
RelayStatus8 1 0x02 为1时,表示继电器闭合(如果不是板载继电器,就输出1)为0时,表示继电器断开(如果不是板载继电器,就输出0)
RelayStatus9 1 0x02 为1时,表示继电器闭合(如果不是板载继电器,就输出1)为0时,表示继电器断开(如果不是板载继电器,就输出0)
RelayStatus10 1 0x02 为1时,表示继电器闭合(如果不是板载继电器,就输出1)为0时,表示继电器断开(如果不是板载继电器,就输出0)
…… …… …… ……

实例:

配置多个外部继电器:

A5 A5 A5 A5 A5 A5 A5 A5 FE FF 00 80 FF 00 00 00 00 00 FE 02 06 00 A2 12 01 03 00 01 00 FF FF 5A

9. 节目文件格式定义

参数 数据长度 默认值 描述
FileType 1 0x00 文件类型
FileName 4 PXXX 文件名XXX为文件编号,ASCII码表示文件名为字符串,发送按顺序发送,如“P123”则先发送‘P’,最后发送‘3’。开机 LOGO 文件名为“LOGO”。
FileLen 4 文件长度
Priority 1 0x00 节目播放优先级
DisplayType 2 节目播放方式,0——顺序播放,其他——定长播放的时间,单位为秒
PlayTimes 1 节目重复播放次数
ProgramLife 8 节目生命周期,发送顺序为:起始年(2)+起始月(1)+起始日(1)+结束年(2)+结束月(1)+结束日(1)注:1. 时间均采用 BCD 码的方式2. 年范围为 0x1900—0x2099,0xffff 为永久有效,先发送 LSB,后发送 MSB
ProgramWeek 1 节目的星期属性
1. Bit0 为 1 表示一周中的每一天都播放。
2. Bit0 为 0 时,需判断 bit1-bit7 的来决定每天播放,bit1-bit7依次表示周一到周日。
3.比特为0表示禁止播放,为 1 表示播放。
ProgramTime 1 定时节目位 0 非定时,注:为 0 时则播放时段组数设置为 0
PlayPeriodGrpNum 1 节目播放时段组数,最多支持一组,当为 0 时 PlayPeriodSetting
PlayPeriodSetting0 6 播放组0,发送顺序为:起始小时(1)+起始分钟(1)+起始秒(1)+结束小时(1)+结束分钟(1)+结束秒(1)
AreaNum 1 区域个数
AreaDataLen0 4 区域 0 数据长度
AreaData0 N 区域 0 数据,其数据格式请参考区域数据格式(9.1节)
...... ...... ...... ......
AreaDataLenN 4 区域 N 数据长度
AreaDataN N 区域 N 数据,其数据格式请参考区域数据格式(9.1节)
CHK 2 整个节目文件的 CRC16 校验值(从 FileType 到 AreaDataN),此校验值不可被忽略。

9.1 区域数据格式

参数 数据长度 默认值 描述
AreaType 1 0x00 区域类型
AreaX 2 区域 X 坐标,
高字节最高位为 1 时,表示以像素点为单位
高字节最高位为 0时,表示以字节(8 个像素点)为单位
AreaY 2 区域 Y 坐标,以像素点为单位
AreaWidth 2 区域宽度,
高字节最高位为 1 时,表示以像素点为单位
高字节最高位为 0 时,表示以字节(8 个像素点)为单位
AreaHeight 2 区域高度,以像素点为单位
DynamicAreaLoc 1 0xFF 动态区域编号,注意:该参数只对动态区有效,其他区域为默认值,动态区必须统一编号,编号从 0 开始递增。
Lines_sizes 1 行间距
RunMode 1 动态区运行模式:
0—动态区数据循环显示
1—动态区数据显示完成后静止显示最后一页数据
2— 动态区数据循环显示,超过设定时间后数据仍未更新时删除动态区信息。
Timeout 2 动态区数据超时时间,单位为秒
SoundMode 1 是否使能语音播放
0 表示不使能语音
1 表示播放下文中 Data 部分内容
2 表示播放下文中 SoundData 部分内容
SoundPerson/Repeat
Times(仅对支持语音播放控制卡有效)
1 0 Bit0- Bit3 发音人,0~5,共 6 种。
Bit4- Bit7 播放次数,0~15,共 16 种。
当 SoundMode不为0时才发送该字节,否则不发送
SoundVolume(仅对支持语音播放控制卡有效) 1 5 音量,0~10,共11种,0表示静音。
当SoundMode不为0时才发送该字节,否则不发送
SoundSpeed(仅对支持语音播放控制卡有效) 1 5 语速,0~10,共 10 种。
当 SoundMode 不为 0 时才发送该字节,否则不发送
SoundDataLen(仅对支持语音播放控制卡有效) 4 当 SoundMode 为 2 时,才发送该部分内容。表示 SoundData部分数据长度
SoundData(仅对支持语音播放控制卡有效) N 当 SoundMode为2时,才发送该部分内容,否则不发送,具体格式请参考下文中 Data 的格式
ExtendParaLen 1 N 拓展位个数,如: 0x0A,则拓展位为 10 位(该值默认为0,仅对支持新版字库的控制卡固件有效)
TypeSetting 1 0x00 排 版 方 式 ( 上 下 左 右 有 优 先 级 )
当 ExtendParaLen > 0,才发送该字节,否则不发送
0:表示先从左往右,再从上往下
1:表示先从右往左,再从上往下
2:表示先从上往下,再从左往右
3:表示先从上往下,再从右往左
Font_sizes 1 字间距 ,当 ExtendParaLen > 1时才发送,字间距,像素点为单位
Reserved N-1 0x00 拓展保留位,当 ExtendParaLen > 1,才发送,否则不发送根据 ExtendParaLen 数值大小确定长度
TextAlignment 1 0x00 字体对齐方式,
Bit1 Bit0:
0 0-----左对齐(左右默认)
0 1-----右对齐(左右)
1 0-----居中对齐(左右)
Bit3 Bit2:
0 0-----上对齐(上下默认)
0 1-----下对齐(上下)
1 0-----居中对齐(上下)
SingleLine 1 0x02 是否单行显示
0x01——单行显示
0x02——多行显示
NewLine 1 是否自动换行
0x01——不自动换行,显示数据在换行时必须插入换行符
0x02——自动换行,显示内容不需要换行符,但是只能使用统一的中文字体和英文字体
DisplayMode 1 显示方式,其定义如下:
0x01——静止显示
0x02——快速打出
0x03——向左移动
0x04——向右移动
0x05——向上移动
0x06——向下移动
ExitMode 1 0x00 退出方式
Speed 1 显示速度,定义如下:
0x00——最快
0x01——
......
0x18 ——最慢
StayTime 1 显示特技停留时间,单位为 0.5s
DataLen 4 数据长度(包括换行,颜色等转义参数)
Data N 显示数据,即用户需显示的内容,包括所有特殊字符(请参考“图文区内容编辑”一章)

命令示例9:

A5 A5 A5 A5 A5 A5 A5 A5 FE FF 00 80 00 00 00 00 00 00 FE 02 59 00 A1 06 01 00 00 50 30 30 30 01 00 00 47 00 00 00 00 00 00 50 30 30 30 47 00 00 00 FF 00 00 01 FF FF FF FF FF FF FF FF 01 00 00 01 2C 00 00 00 00 00 80 00 00 80 80 20 00 FF 00 00 00 00 00 00 00 02 02 02 00 0A 0A 0D 00 00 00 BB B6 D3 AD B9 E2 C1 D9 4F 6E 62 6F 6E 0F 18 EC F0 5A

命令9发送,控制卡型号为6K3,屏幕大小为128X32,手动换行,多行显示,显示内容:“欢迎光临Onbon”,字体大小中文16X16,英文8X16,命令解析见下表。

参数 数据 描述
命令分组 A1 命令分组编号
命令编号 06 命令编号
控制器是否回复 01 需要回复
保留字节 00 00 2个保留字节
文件名 50 30 30 30 文件名
是否最后一包 01 是否最后一包
包号 00 00 包号
包长 47 00 包长(低位在前)
数据包位置 00000000 包位置
文件类型 00 文件类型
文件名 50 30 30 30 文件名
文件长度 47000000 文件长度(低位在前)
节目优先级 FF 节目播放优先级
节目播放方式 0000 节目播放方式
节目重复播放次数 01 节目重复播放次数
节目生命周期 FF FF FF FF FF FF FF FF 节目生命周期
节目星期属性 01 节目星期属性
定时节目位 00 非定时节目
节目播放时段组数 00 节目播放时段组数
区域个数 01 区域个数
区域数据长度 2C 00 00 00 区域数据长度(低位在前)
区域类型 00 区域类型
X坐标 80 00 坐标0(高字节在前,以像素点为单位)
Y坐标 00 00 坐标0
区域宽度 80 80 区域宽度128,以像素点为单位
区域高度 00 20 区域高度32,以像素点为单位
区域编号 FF 区域编号
行间距 00 行间距
区运行模式 00 区运行模式
区超时时间 0000 超时时间
是否使能语音 00 是否使能语音
扩展位个数 00 扩展位个数
字体对齐方式 00 左对齐
是否单行显示 02 多行显示
是否自动换行 02 自动换行
显示方式 02 快速打出
退出方式 00 退出方式
显示速度 0A 显示速度
停留时间 0A 停留时间
显示数据长度 0D 00 00 00 显示数据长度(低位在前)
显示数据 BB B6 D3 AD B9 E2 C1 D9 4F 6E 62 6F 6E 欢迎光临Onbon
文件数据CRC校验 0F 18 整个节目文件的 CRC16 校验值(从 FileType 到AreaDataN)
CRC校验 EC F0 整条命令的CRC16校验

9.2 多分区节目文件实例分析

命令示例10:

A5 A5 A5 A5 A5 A5 A5 A5 01 00 00 80 00 00 00 00 00 00 63 02 77 00 A1 06 01 00 00 50 30 30 30 01 00 00 65 00 00 00 00 00 00 50 30 30 30 65 00 00 00 FF 00 00 01 FF FF FF FF FF FF FF FF 01 00 00 02 27 00 00 00 00 00 80 00 00 80 80 10 00 FF 00 00 00 00 00 00 00 02 02 03 00 0A 0A 08 00 00 00 BB B6 D3 AD B9 E2 C1 D9 23 00 00 00 00 00 80 10 00 80 80 10 00 FF 00 00 00 00 00 00 00 02 02 03 00 0A 0A 04 00 00 00 31 32 33 34 8A EC F7 4C 5A

控制卡型号为6K3,屏大小128X32,手动换行,多行显示,区域1,起始坐标(0,0),区域大小为(128,16),显示内容:“欢迎光临”,区域2,起始坐标(0,16),区域大小为(128,16),显示内容:“1234”,字体为中文16X16,英文8X16。(本实例仅展示命令里各数据格式及其含义)

参数 数据 描述
命令分组 A1 命令分组编号
命令编号 06 命令编号
控制器是否回复 01 需要回复
保留字节 00 00 2个保留字节
文件名 50303030 文件名
是否最后一包 01 是否最后一包
包号 00 00 包号
包长 65 00 包长
包位置 00000000 包位置
文件类型 00 文件类型
文件名 50303030 文件名
文件长度 6500 文件长度(低位在前)
节目优先级 FF 节目优先级
节目播放方式 0000 播放方式
节目重复播放次数 01 播放次数
节目生命周期 FF FF FF FF FF FF FF FF 生命周期
节目星期属性 01 节目星期属性
定时节目位 00 定时节目位
节目播放时段组数 00 节目播放时段组数
区域个数 02 区域个数
区域0数据长度 27 00 00 00 区域0数据长度(低位在前)
区域类型 00 区域0类型
X坐标 80 00 坐标0(高字节在前,像素点为单位)
Y坐标 00 00 坐标0
区域宽度 80 80 区域0宽度128,像素点为单位
区域高度 00 10 区域0高度16,像素点为单位
区域编号 FF 区域编号
行间距 00 行间距
区域运行模式 00 区运行模式
区域超时时间 0000 超时时间
是否使能语音 00 不使能语音
扩展位个数 00 扩展位个数
字体对齐方式 00 字体对齐方式
是否单行显示 02 多行显示
是否自动换行 02 自动换行
显示方式 03 向左移动
退出方式 00 退出方式
显示速度 0A 显示速度
停留时间 0A 停留时间
显示数据长度 08 00 00 00 显示数据长度(低位在前)
显示数据 BB B6 D3 AD B9 E2 C1 D9 欢迎光临
区域1数据长度 23 00 00 00 区域1数据长度(低位在前)
区域类型 00 区域1类型
X坐标 80 00 区域1的X坐标(高字节在前,像素点为单位)
Y坐标 00 10 区域1的Y坐标
区域宽度 80 80 区域1宽度128,像素点为单位
区域高度 00 10 区域1高度16,像素点为单位
区域编号 FF 区域1编号
行间距 00 行间距
区域运行模式 00 区域运行模式
区域超时时间 0000 超时时间
是否使能语音 00 不使能语音
扩展位个数 00 扩展位个数
字体对齐方式 00 字体对齐方式
是否单行显示 02 多行显示
是否自动换行 02 自动换行
显示方式 03 向左移动
退出方式 00 退出方式
显示速度 0A 显示速度
停留时间 0A 停留时间
显示数据长度 04 00 00 00 显示数据长度(低位在前)
显示数据 31 32 33 34 1234
CRC校验 8A EC 文件数据的CRC16校验

10. 其他文件格式

10.1 控制器参数配置文件

参数 数据长度 默认值 描述
FileType 1 0x01 文件类型
FileName 4 CXXX 文件名XXX为文件编号,从0开始文件名为字符串,发送按顺序发送,如“C123”则先发送‘C’,最后发送‘3’。
FileLen 4 文件长度
ControlName 8 LEDCON01 控制器名称,控制器名为字符串,发送时按先后顺序发送
Address 2 0x0001 控制器地址,控制器出厂默认地址为0x0001(0x0000地址将保留),控制除了对发送给自身地址的数据包进行处理外,还需对广播数据包进行处理。在PHY层,广播地址定义如下:0xffff为广播地址1,此种模式下,控制器不返回数据,其可用于广播校时等命令。0xfffe为广播地址2,此种模式主要用于广播设置屏参,控制器需返回数据。在返回的数据帧中,地址也应为0xfffe
Baudrate 1 0x00 波特率
0x00 – 保持原有波特率不变
0x01 – 强制设置为9600
0x02 – 强制设置为57600
0x03 – 强制设置为2400
0x04 – 强制设置为 4800
0x05 – 强制设置为 19200
0x06 – 强制设置为 115200
ScreenWith 2 屏幕宽度
ScreenHeight 2 屏幕高度
Color 1 显示屏颜色定义,单色时为1,双色时为3,三色时为7
MirrorMode 1 0 镜像属性
0x00 ——无镜像
0x01 ——镜像
OE 1 OE极性
0x00 ——OE低有效
0x01—— OE高有效
DA 1 数据极性
0x00 ——数据低有效
0x01 ——数据高有效
RowOrder 1 行顺序
FreqPar 1 CLK分频倍数
OEWidth 1 OE宽度
OEAngle 1 OE提前角
FaultProcessMode 1 0 控制器的错误处理模式,0x00–自动处理,0x01–手动处理(此模式仅供调试人员使用)
CommTimeout 1 0x02 通讯超时时间,单位秒,串口—2秒,GPRS—30秒
RunMode 1 0 控制器运行模式
0x00 – 正常模式
0x01 – 调试模式,输出信息到终端
LogMode 1 日志模式
0x00–无日志
0x01–记录控制器错误
0x02–记录控制器错误和上位机对控制器的所有操作
TipLanguage 1 0x00 0 表示上位机软件是中文版,底层固件在显示提示信息时需调用内置的中文提示信息;
1 表示上位机软件是英文版,底层固件在显示提示信息时需调用内置的英文提示信息;
255表示上位机软件是其他语言版,底层固件在显示提示信息时需调用自定义提示信息;
LatticeMode 1 0x00 点阵模式,0:R+G模式;1:G+R模式
Reverse 6 0x00 保留
CHK 2 整个文件的 CRC16 校验值

10.2 字库文件

参数 数据长度 默认值 描述
FileType 1 0x04 文件类型
FileName 4 OXXX 文件名第一个字节O为中英文字库标志,定义:
E——英文字库;
O——中文字库;
K——其余外文
后面三个字节(XXX)为文件编号,ASCII码表示文件名为字符串,发送按顺序发送,如“F123”则先发送‘F’,最后发送‘3’。
FileLen 4 文件长度
FontWidth 1 字体宽度
FontHeight 1 字体高度
LibData N 标准的字库数据格式
Extended parCRC 2 字库N从Extended parameter length到 Revolving font 这10个参数的CRC校验,用于分辨新旧命令
Revolving font 1 0x00 字库N字体是否旋转,
没有旋转为0x00,
顺时针旋转90°为0x01,
顺时针旋转180°为0x02,
顺时针旋转270°为0x03
Font tilt 1 0x00 字库N字体外形,0x00表示常规,0x01表示倾斜
Font bold 1 0x00 字库N字体外形,0x00表示常规,0x01表示加粗
Underline 1 0x00 字库N下划线,0x00表示没有下划线,0x01表示有下划线
Font file format version number 1 0x01 字库N字库文件版本号 .0x00为老固件,0x01为新固件
Language type 1 字库N语言类型,
英文为0,
中文为1,
韩文为2,
法语为3,
德语为4,
俄语为5,
日语为6,
越语为7,
剩余部分待添加
Font type 2 字库N字体类型,
宋体为0(0x0000),
楷体为1(0x0001),
黑体为2(0x0002),
仿宋为3(0x0003),
微软雅黑为4(0x0004),
后续支持其他的,上位机定义好告知后增加
LibData length 4 字库N字库点阵文件的长度
Font file generation time 8 字库N文件生成时间
Extended parameter length 1 0x16 字库N扩展参数长度,以字节为单位,决定扩展参数个数
备注:
不包括自身,从Font file generation time到Extended parCRC
FontEncode 1 0x00 字库编码格式。0x01:GB2312编码,0x02:GBK编码,英文字库使用默认值 0x00
CHK 2 整个文件的 CRC16 校验值

10.3 图库文件

参数 数据长度 默认值 描述
FileType 1 0x04 文件类型
FileName 4 TXXX 文件名XXX为文件编号,ASCII码表示文件名为字符串,发送按顺序发送,如“T123”则先发送‘T’,最后发送‘3’。
FileLen 4 文件长度
LibData N 图库数据,参考 bitmap structure V1.1.doc 文档
CHK 2 整个文件的 CRC16 校验值

11. 图文区内容编辑

字库卡由于采用字符编码的方式,可以忽略不同区域类型数据的组织方式,每个区域都可以采用相同编辑的方式。编辑区域内容时将采用一些转义字符,以构成内容的显示样式。在显示文字前必须先定义文字使用的字库或图库名、文字颜色。如果文字样式没有改变,文字将按照之前设置的方式显示。在需要更改文字样式时,也要先定义文字使用的字库或图库名、文字颜色。编辑时间区时,时间参数也采用转义字符的方式,用户可以根据需要编辑出自己想要的各种显示样式。

11.1 转义字符定义

编号 转义字符 描述
1 "\FXXXX" 字库文件名,在编辑显示文字前,必须先定义文字使用哪种字库。
XXXX为文字使用的字库文件名,字库文件名的默认定义:
"X"(第一)O 表示中文,E 表示英文,K 表示外文,
O000——16点阵中文字库,
O001——24点阵中文字库,
O002——32 点阵中文字库,
E000——16点阵英文字库,
E001——24点阵英文字库,
E002——32点阵英文字库。
当为外文字库时(5代字库卡不支持下列小语种,6代字库卡较新固件已支持下列小语种),假设添加时字库名均为0,调用方式为:
FK000---法文
FK100---希伯来文
FK200---阿拉伯文
FK300---西里尔字母(俄文,蒙古文等)
FK400---日文
FK500---西班牙语
FK600---朝鲜文音节(韩文,朝鲜文)
FK700---泰文
FK800---老挝文
FK900---藏文
FKA00---缅甸文
注意:同一个区域内不允许有不同高度的字体出现。
2 "\TXXX" 图库文件名,在编辑显示图片前,必须指出图片所在的图库名。每一幅图片前都必须添加。图库文件名后紧跟图片名称,并以"丨"作为结束符,图片名最长 8 个字符。
3 "\CX" 文字颜色,"X"为颜色编码,其定义如下:
0x31——表示红色;
0x32——表示绿色;
0x33——表示黄色;
0x34——表示蓝色;
0x35——表示青色;
0x36——表示品红;
0x37——表示白色
4 "\DX" 插入日期或时间的格式,X 定义如下:'S': 秒 ,'M': 分, 'H': 时,'D': 日 ,'L': 月 ,'Y': 年, 'W':星期
5 "\WXXXX" 显示温度。
第一个”X”为温度单位,其定义如下:
‘C’:摄氏度
‘F’:华氏度

第二个”X”为数字,表示传感器类型,其定义如下:
0x0——DS18B20;
0x1——SHT11;

第三个”X”为数字,显示温度的精度,其定义如下:
‘0’:表示整数
‘1’:表示带一位小数;

例如: “\WC01”表示用 DS18B20 传感器带一位小数的摄氏度显示当前温度
6 "\n" 换行符
7 “[n?]” 设置数字处理策略:
[n0] ——自动判断;
[n1] ——数字作号码处理;
[n2] ——数字作数值处理
8 “[g?]” 合成语种设置:
[g0] ——自动判断语种;
[g1] ——阿拉伯数字、度量单位、特殊符号等合成为中文;
[g2] ——阿拉伯数字、度量单位、特殊符号等合成为英文
5 “[h?]” 设置单词发音方式:
[h0] ——自动判断单词发音方式;
[h1] ——字母发音方式;
[h2] ——单词发音方式

11.2 文本内容编辑

图文区可以插入文字、图片、时间参数数据,下面将举例说明图文区的显示样式和数据格式: “\FO000\C1 上海仰邦\FE000onbon\n\FO001\C2 欢迎你”,字串中 O000 为 16点阵中文字库名,E000 为 16 点阵英文字库名,O001为24号中文字库,\C1为红色参数,\C2为绿色参数。

值得注意的是内容开始时必须设置所使用的中文或英文字库以及文字颜色,文字将按照此规则显示直至参数改变。

另外,编辑图片时,图片名以‘|’为结束符,也即图片名中不能包含有‘|’。

例如:

“\FO001\C1 上海仰邦\T000star|ABCD”,将显示汉字“上海仰邦”、图片star、字符“ABCD”。图片名最长 8 个字符。下面给出测试指令,该测试指令需将屏参设为 256*96:

先发送开始写文件命令: A5 A5 A5 A5 A5 A5 A5 A5 01 00 00 80 00 00 00 00 00 00 FE 02 0E 00 A1 05 01 00 00 01 50 30 30 30 49 00 00 00 E2 16 5A

然后发送写文件命令,该实例分区为(192,0,64,64),显示内容为“www.onbonbx.com”:

A5 A5 A5 A5 A5 A5 A5 A5 01 00 00 80 00 00 00 00 00 00 FE 02 5B 01 00 A1 06 01 00 00 50 30 30 30 01 00 00 49 00 00 00 00 00 00 50 30 30 30 49 00 00 00 FF 00 00 01 FF FF 01 24 14 20 01 24 FF 00 00 01 2A 00 00 00 00 18 00 00 00 08 00 40 00 FF 00 00 00 00 00 00 00 02 02 01 00 00 0A 0F 00 00 00 77 77 77 2E 6F 6E 62 6F 6E 62 78 2E 63 6F 6D 52 4D 07 11 5A

11.3 时间内容编辑

通过插入时间参数的方式,客户可以编辑任意显示格式的时间,如以下字串:

“\FO000\C1 今天是\FE000\DY 年\DL 月\DD 日\n\C3\DH 时\DM 分\DS 秒”

附录

CRC校验算法

For the calculation of the CRC-16 the following polynomial is used:
X^16 + X ^15 + X^2 + 1 = (x + 1) * (X^15 + x + 1).
For this polynomial efficient calculation via a table is possible. Below the algorithm is given in C:
#define CRC(crc,byte) (((crc) >> 8 ) ^ tabel[((crc) ^ (unsigned int) (byte)) & 0XFF])
static const uint16 tabel[256] = {
0X0000, 0XC0C1, 0XC181, 0X0140, 0XC301, 0X03C0, 0X0280, 0XC241,
0XC601, 0X06C0, 0X0780, 0XC741, 0X0500, 0XC5C1, 0XC481, 0X0440,
0XCC01, 0X0CC0, 0X0D80, 0XCD41, 0X0F00, 0XCFC1, 0XCE81, 0X0E40,
0X0A00, 0XCAC1, 0XCB81, 0X0B40, 0XC901, 0X09C0, 0X0880, 0XC841,
0XD801, 0X18C0, 0X1980, 0XD941, 0X1B00, 0XDBC1, 0XDA81, 0X1A40,
0X1E00, 0XDEC1, 0XDF81, 0X1F40, 0XDD01, 0X1DC0, 0X1C80, 0XDC41,
0X1400, 0XD4C1, 0XD581, 0X1540, 0XD701, 0X17C0, 0X1680, 0XD641,
0XD201, 0X12C0, 0X1380, 0XD341, 0X1100, 0XD1C1, 0XD081, 0X1040,
0XF001, 0X30C0, 0X3180, 0XF141, 0X3300, 0XF3C1, 0XF281, 0X3240,
0X3600, 0XF6C1, 0XF781, 0X3740, 0XF501, 0X35C0, 0X3480, 0XF441,
0X3C00, 0XFCC1, 0XFD81, 0X3D40, 0XFF01, 0X3FC0, 0X3E80, 0XFE41,
0XFA01, 0X3AC0, 0X3B80, 0XFB41, 0X3900, 0XF9C1, 0XF881, 0X3840,
0X2800, 0XE8C1, 0XE981, 0X2940, 0XEB01, 0X2BC0, 0X2A80, 0XEA41,
0XEE01, 0X2EC0, 0X2F80, 0XEF41, 0X2D00, 0XEDC1, 0XEC81, 0X2C40,
0XE401, 0X24C0, 0X2580, 0XE541, 0X2700, 0XE7C1, 0XE681, 0X2640,
0X2200, 0XE2C1, 0XE381, 0X2340, 0XE101, 0X21C0, 0X2080, 0XE041,
0XA001, 0X60C0, 0X6180, 0XA141, 0X6300, 0XA3C1, 0XA281, 0X6240,
0X6600, 0XA6C1, 0XA781, 0X6740, 0XA501, 0X65C0, 0X6480, 0XA441,
0X6C00, 0XACC1, 0XAD81, 0X6D40, 0XAF01, 0X6FC0, 0X6E80, 0XAE41,
0XAA01, 0X6AC0, 0X6B80, 0XAB41, 0X6900, 0XA9C1, 0XA881, 0X6840,
0X7800, 0XB8C1, 0XB981, 0X7940, 0XBB01, 0X7BC0, 0X7A80, 0XBA41,
0XBE01, 0X7EC0, 0X7F80, 0XBF41, 0X7D00, 0XBDC1, 0XBC81, 0X7C40,
0XB401, 0X74C0, 0X7580, 0XB541, 0X7700, 0XB7C1, 0XB681, 0X7640,
0X7200, 0XB2C1, 0XB381, 0X7340, 0XB101, 0X71C0, 0X7080, 0XB041,
0X5000, 0X90C1, 0X9181, 0X5140, 0X9301, 0X53C0, 0X5280, 0X9241,
0X9601, 0X56C0, 0X5780, 0X9741, 0X5500, 0X95C1, 0X9481, 0X5440,
0X9C01, 0X5CC0, 0X5D80, 0X9D41, 0X5F00, 0X9FC1, 0X9E81, 0X5E40,
0X5A00, 0X9AC1, 0X9B81, 0X5B40, 0X9901, 0X59C0, 0X5880, 0X9841,
0X8801, 0X48C0, 0X4980, 0X8941, 0X4B00, 0X8BC1, 0X8A81, 0X4A40,
0X4E00, 0X8EC1, 0X8F81, 0X4F40, 0X8D01, 0X4DC0, 0X4C80, 0X8C41,
0X4400, 0X84C1, 0X8581, 0X4540, 0X8701, 0X47C0, 0X4680, 0X8641,
0X8201, 0X42C0, 0X4380, 0X8341, 0X4100, 0X81C1, 0X8081, 0X4040
};
unsigned short CalcCRC(uint8 *data, uint32 size)
{
uint32 i;
unsigned short crc = 0;
for (i = 0; i < size; i++) {
crc = CRC(crc, data[i]);
}
return crc;
}