2.5、下载字库数据
下载字库数据,数据量大,须要分包发送;
请求第一帧:
SF | CTRL | DES | SRC | TID | CMD | OFFSET | FILESIZE | FID |
2字节 | 2字节 | 2字节 | 2字节 | 2字节 | 2字节 | 4字节 | 4字节 | 1字节 |
CRC | EF |
2字节 | 2字节 |
CMD:请求命令,0x0104;
OFFSET:固定值,0xFFFFFFFF,代表创建字体文件。
FILESIZE:字体文件总大小;
FID:字体ID,有效值为1-254;
请求中间帧:
SF | CTRL | DES | SRC | TID | CMD | OFFSET | SIZE | FILEDATA |
2字节 | 2字节 | 2字节 | 2字节 | 2字节 | 2字节 | 4字节 | 4字节 | 1~1200字节 |
CRC | EF |
2字节 | 2字节 |
CMD:请求命令,0x0104;
OFFSET:字体文件流偏移,=上一帧OFFSET+上一帧FILEDATA大小。
SIZE:FILEDATA所占字节数;
FILEDATA:字体文件流。
请求结束帧:
SF | CTRL | DES | SRC | TID | CMD | OFFSET | CRC32 | CRC | EF |
2字节 | 2字节 | 2字节 | 2字节 | 2字节 | 2字节 | 4字节 | 4字节 | 2字节 | 2字节 |
CMD:请求命令,0x0104;
OFFSET:为字库文件总大小。
CRC32:字库文件的CRC32校验值。
注意:CRC32值,为先计算文件总大小(4字节,先计算低字节,再计算高字节),再计算文件数据(从文件数据开始,一次计算到文件数据结束);最后再将所得校验值按位取反,即为此处所需CRC32值。
回应:(针对每次请求都有回应)
SF | CTRL | DES | SRC | TID | CMD | RES | CRC | EF |
2字节 | 2字节 | 2字节 | 2字节 | 2字节 | 2字节 | 2字节 | 2字节 | 2字节 |
CMD:回应命令,0x8104;
RES:操作结果,0表示存在,其他表示错误,可查看附件1中错误代码。
例:
该命令数据量过大,再次不作举例,可参考第六节批处理文件添加命令示例;