4.18、正计时节目
以给定sFORMAT形式显示正计时;
请求:
SF | CTRL | DES | SRC | TID | CMD | WID | REV | STYLE | FORMAT |
2字节 | 2字节 | 2字节 | 2字节 | 2字节 | 2字节 | 2字节 | 2字节 | 4字节 | 4字节 |
OFFSET | FLAG | TIME | CNT | sFORMAT | CRC | EF |
4字节 | 4字节 | 16字节 | 2字节 | 2~256字节 | 2字节 | 2字节 |
CMD:请求命令,0x031A;
WID:分区编号,有效值从0x0001开始,小于或等于字库卡能支持的最大分区数目;
REV:节目标识,用于单分区多节目。
位15-8:节目编号,同分区中具有唯一性,值越小播放顺序越靠前,有效范围0~63;
位 7-0:保留,始终为0;
STYLE:节目样式;
位31-4:保留,始终为0;
位 3:是否按队列加载,仅永久节目有效,为0表示立即,为1表示按队列顺序加载;
位 2:加载时是否擦除分区,为0表示不擦除,为1表示擦除;
位 1:节目属性,为0表示临时节目,为1表示永久节目;
位 0:保留,始终为0;
FORMAT:文本显示格式;
位31-20:保留,始终为0;
位19- 16:颜色(注:0000表示使用系统当前颜色;1000为黑色)
位18:蓝色;
位17:绿色;
位16:红色;
位15- 8:字体ID;有效值为0-254;为0时使用当前字体ID;
位 7- 6:水平对齐HALIGN
00:左对齐;
01:水平居中对齐;
10:右对齐;
位 5- 4:
00:上对齐;
01:垂直居中对齐;
10:下对齐;
位 3:保留,始终为0;
位 2:wordbreak,自动换行,为0,不自动换行,为1,自动换行;
位 1:单行文本; 0表示多行文本,1表示单行文本;
位 0:高级文本,0表示普通文本,1表示高级文本;保留,始终为0;
(注:FORMAT属性说明,主要注意两类,单行文本和多行文本
1、单行文本时:
忽略wordbreak自动换行设置,无论是自动换行或是手动在命令中添加换行符’\n’,均忽略,不作换行处理,
2、 多行文本时:
根据设置不作限制,自动换行和手动换行可同时支持;
但是若文本显示所需区域超过当前限制区域,建议做如下处理:
1、 若为单行文本,建议不要设置水平居中;其他可任意搭配;
2、 若为多行文本,若使用了自动换行,建议不要使用垂直居中对齐;若无自动换行,建议不要使用任何居中对齐方式;
使用时若遇到上面情况,可参照上面说明使用,否则为了整体显示效果,系统会自行裁剪部分数据;
OFFSET:时间偏移,单位秒,可用于实现多时区时间显示,有符号数值。
FLAG:控制信息
位31-1:保留,必须为0;
位 0:参考时间类型,为0表示TIME为绝对时间,为1表示TIME为相对当前的时间;
TIME:表示起始时间(从何时开始计时),其类型由FLAG的位0决定。当FLAG的位0为1时, TIME中只有wDay、wHour、wMinute、wSecond有效,参考的时间点为加载时的时间和这四个值所表示的时间之和((wDay*86400)+(wHour*3600)+ (wMinute*60)+ wSecond)。
TIME{
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
}
wYear:年
wMonth:月,有效值为1-12;
wDayOfWeek:星期,保留值,始终为0
wDay:日,有效值为1-31;
wHour:时,有效值为0-23;
wMinute:分,有效值为0-59;
wSecond:秒,有效值为0-59;
wMilliseconds:毫秒,保留值,始终为0;
CNT:sFORMAT所占字节数;
sFORMAT:时间格式化字符串;不能包含0x00;(注意,下面描述中注意大小写的形式)
日:%D,总的天数;
时:%H或%h, %H为总的时钟数,有几位就显示几位; %h为当前天中的时钟数,不足两位数的时钟,前面补零;
分:%M或%m;%M为总的分钟数,有几位就显示几位;%m为当前小时中的分钟数,不足两位数的分钟,前面补零;
秒:%S或%s;%S为总的秒钟数,有几位就显示几位;%s为当前分钟中的秒数,不足两位数的秒钟,前面补零;
换行符为’\n’,即0x0A;水平制表符’\t’,即0x09,显示为4个ASCII空格符;
回应:
SF | CTRL | DES | SRC | TID | CMD | RES | CRC | EF | |
2字节 | 2字节 | 2字节 | 2字节 | 2字节 | 2字节 | 2字节 | 2字节 | 2字节 |
CMD:回应命令,0x831A;
RES:操作结果,0表示成功,其他表示失败,可查看附件1种错误代码。
备注:注意控制信息(FLAG)的设置,若设置为相对当前时间(即FLAG = 0x0001),那么可用于临时计时、计算运行时间等用途。
例1:
请求命令:(FLAG为0,为绝对时间,正计时从2015年11月20日00时00分00秒开始计时。显示格式为“%D天%h时%m分%s秒”)
AA A5 3E 00 FF FF 00 00 B0 A1 1A 03 01 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 DF 07 0B 00 00 00 14 00 00 00 00 00 00 00 00 00 10 00 25 44 cc ec 25 68 ca b1 25 6d b7 d6 25 73 c3 eb 00 00 5A 55
回应命令:
AA A5 0A 08 00 00 01 01 B0 A1 1A 83 00 00 3C 15 5A 55
例2:
请求命令:(FLAG为1,为相对当前时间,正计时从00日00时00分30秒后开始计时。显示格式为“%D天%h时%m分%s秒”)
AA A5 3E 00 FF FF 00 00 B0 A1 1A 03 01 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1E 00 00 00 10 00 25 44 cc ec 25 68 ca b1 25 6d b7 d6 25 73 c3 eb 00 00 5A 55
回应命令:
AA A5 0A 08 00 00 01 01 B0 A1 1A 83 00 00 3C 15 5A 55