1. 概述

1.1 主要功能

本文主要叙述与下位机文件管理相关的内容,支持图片、视频、配置文件、字体等文件的下发、回读以及删除;支持图片、视频、配置文件、字体等文件列表的回读。

 

相关的API:

 

GetFiles . 从当前设备获取文件列表.

  DeleteFiles. 从当前设备删除文件.

    GetAllFontInfo . 获得字体信息。

1.2 下发一个文件的流程

 

说明

A、 上位机和下位机建立好连接以及协商好传输协议版本后就可以进行文件传输了。

B、 首先上位机发送文件开始传输请求(kFileStartAsk给下位机,通知下位机将要传输一个文件了。

C、 下位机将反馈信息(kFileStartAnswer )发送给上位机,如果出错,上位机应该检查错误码并中断传输;否则上位机就可以发送文件内容(kFileContentAsk)给下位机了;

D、 如果下位机在接收上位机发送的文件内容时出错,那么下位机会发送错误码给上位机,上位机在此过程中接收到错误码时应检查错误码并中断传输;

E、 如果上位机在发送完文件内容后,未接收到下位机的错误码反馈,那么上位机应发送文件结束传输请求(kFileEndAsk)给下位机,下位机检查文件传输结果后,将检查的信息反馈(kFileEndAnswer)给上位机;

F、 至此完成一个文件的一次下发操作。

1.3 回读一个文件的流程

 

说明

A、 上位机和下位机建立好连接以及协商好传输协议版本后就可以进行文件回读了。

B、 首先上位机发送回读文件开始传输请求给下位机,通知下位机将要回读一个文件了。

C、 如果下位机找到了对应的文件,那么下位机会将对应文件的基本信息反馈给上位机。

D、 如果下位机未找到对应的文件,那么下位机将反馈错误码给上位机。

E、 上位机接收到错误码的反馈信息后应该检查错误码并中断数据传输。

F、 上位机接收到下位机反馈的回读文件的基本信息后,发送确认回读信息给下位机,下位机将开始发送文件内容给上位机。

G、 如果上位机在接收文件内容出错,那么上位机可以发送错误码给下位机,终止下位机的文件内容传输。

H、 如果下位机在发送完文件内容后,未接收到上位机的错误码反馈,那么下位机会发送文件结束传输请求给上位机,上位机检查文件传输结果后,将检查信息反馈给下位机。

I、 至此完成一个文件的一次回读操作。

 

1. 数据包定义

2.1 文件下发

A、 文件开始传输请求

字段

长度(Len)

命令(Cmd)

MD5

文件大小

文件类型

文件名

字节数

2字节

2字节

33字节

8字节

2字节

2-256字节

取值

Len

kFileStartAsk

md5

size

type

name

/** 字段说明

 * 1. Len = 2 + 2 + 33 + 8 + 2 + nameLen;

 * 2. md5表示待下发文件的md5, md5值中的a-f字符使用小写字母, 例如: "239a1b2d06d959aca2676bd0103e60e0"

 * 3. size表示文件大小 (单位: 字节)

 * 4. type取值范围{0(图片), 1(视频), 2(字体), 3(固件), 4(基本配置参数), 5(FPG配置参数)  9(节目模板布局)  128(临时图片文件) 129(临时视频文件) (临时图片文件总大小不能大于10m)

 * 5. name表示文件名, 在节目编辑、文件管理使用时, 用来定位文件, 因此用户需要保证该文件名的唯一性.文件名末尾需要添加\0.

*/

 

A、 文件开始传输应答

字段

长度(Len)

命令(Cmd)

错误码

已存在大小

字节数

2字节

2字节

2字节

8字节

取值

8

kFileStartAnswer

status

existSize

/** 字段说明

 * 1. status表示反馈的错误码 错误代码 参考ErrorCode

 * 2. 如果status为非kSuccess, 上位机应检查错误码并中断传输

 * 3. 如果statuskSuccess, 此时existSize生效

 * 4. existSize表示文件在下位机存储的大小; 如果文件不存在时, 该值为0

 */

 

A、 文件内容传输请求

字段

长度(Len)

命令(Cmd)

文件内容

字节数

2字节

2字节

1-(9*1024-4)字节

取值

Len

kFileContentAsk

data

 

A、 文件结束传输请求

字段

长度(Len)

命令(Cmd)

字节数

2字节

2字节

取值

4

kFileEndAsk

 

A、 文件结束传输应答

字段

长度(Len)

命令(Cmd)

错误码

字节数

2字节

2字节

2字节

取值

6

kFileEndAnswer

status

/** 字段说明

 * 1. status表示反馈的错误码, 错误代码 参考ErrorCode

 */

 

2.1 文件回读

A、 回读文件传输请求

字段

长度(Len)

命令(Cmd)

文件名

字节数

2字节

2字节

2-256字节

取值

Len

kReadFileAsk

name

B、 文件基本信息应答

字段

长度(Len)

命令(Cmd)

错误码

MD5

文件大小

文件类型

字节数

2字节

2字节

2字节

33字节

8字节

2字节

取值

49

kReadFileAnswer

status

md5

size

type

 

** 字段说明

 * 1. status表示错误码, 参考ErrorCode

 * 2. md5表示待下发文件的md5, md5值中的a-f字符使用小写字母, 例如: "239a1b2d06d959aca2676bd0103e60e0"

 * 3. size表示文件大小 (单位: 字节)

 * 4. type取值范围{0(图片), 1(视频), 2(字体), 3(固件), 4(基本配

C、 文件基本信息确认

D、 文件内容传输请求

E、 文件结束传输请求

F、 文件结束传输应答