add LICENSE. Signed-off-by: xueb 12975517+xuekok@user.noreply.gitee.com
add LICENSE.
Signed-off-by: xueb 12975517+xuekok@user.noreply.gitee.com
本程序用于星脑单机中GPU系统的数传数据管理,主要功能包括:根据指令生成数传数据、根据指令清理缓存文件、自身遥测数据管理、自身日志管理。
运行环境:(适用于但不局限于此环境) 硬件: NVidia Jetson Orin NX 16GB 软件: Ubuntu 22.04, JetPack6.0(L4T 36.3.0),GCC 11.4.0, Python 3.10.12
BuildDownloadFile/ |--- readme.md #说明文件 |--- src/ #源码 |--- systemd/ #用于生成服务启动管理 |--- makeDebPKG/ #用于生成debian安装包
帧格式配置文件用于生成不同格式的数传帧数据,使用json格式描述。
第一个键名为帧协议名称,其对应的对象必须包含:帧描述description,帧大小frameSize和字段数组fields。其中:
- 帧描述:用于描述该帧用途及说明; - 帧大小:用于表示该帧结构占用的字节数; - 字段数据:用于表示帧结构内部各个字段。
例如,某个帧格式配置文件,帧名称为:frameProtocolM302,其中包含:帧描述,帧大小896字节,字段数组若干,如下所示:
{ "frameProtocolM302": { "description": "Used For Sat M302", "frameSize": 896, "fields": [......] } }
每个字段Field,其对应的对象必须包含以下4个内容:字段名称name,字段描述description,字段类型type和字段大小size。其中:
- 字段名称:用户描述该字段的名字,必须填写; - 字段描述:用于描述该字段用途及说明; - 字段类型:用于描述该字段的类型,有:固定数值类型,输入数据类型,校验类型; - 字段大小:用于表示该字段占用的字节数。
对于不同类型的字段所包含的键和对象也不同,其中:
- 固定数值类型FixedValue:该类型的字段所包含的键还有:数据data,一般用于帧结构中的固定数据标识,例如:帧头同步字,帧数据类型等; - 输入数据类型InputData:该类型的字段不包含其他键,一般用于帧结构中需要动态输入的数据,例如:帧有效数据; - 校验类型Check:该类型的字段所包含的键还有:校验范围domain,校验算法algorithm。 校验范围为数组类型,里面包含需要校验的字段名称。 校验算法支持:checksum8,checksum16,checksum32,CRC16-IBM校验算法。
例如,某固定数值类型字段,该字段为同步字字段,如下所示:
{ "name": "syncWord", "description": "同步字", "type":"FixedValue", "size": 4, "data":"0x1ACFFC1D" }
例如,某校验类型字段,该字段为校验字段,需校验dataType和valideData字段,使用算法checksum8,如下所示:
{ "name": "check", "description": "校验", "type": "Check", "size": 1, "domain":["dataType", "valideData"], "algorithm": "checksum8" }
输入的遥控指令文件为json格式,需从指定目录:程序指令读取目录读取遥控指令,读取后删除该文件。
文件内容包含:节点号Node,指令类型Type,数据Data,其中: 节点号Node:数值类型,表示指令的目标节点号; 指令类型Type:数值类型,表示指令的类型,0x20:表示开始数传任务,0x21:表示清理数传任务缓存数据; 数据Data:字符串类型,表示指令的具体内容,根据不同的指令类型填写不同的指令数据。
输入的帧格式配置文件为json格式,可从程序的配置文件中读取指定文件。如果指定的帧结构配置文件不存在,则程序会创建一个默认的配置文件:defaultFrameStrcut.json。
程序输出的待数传文件为一个二进制文件,扩展名为:bin,里面包含若干个数传数据帧,数传数据帧格式根据输入的帧格式配置文件确定,保存至指定目录:数传文件存放目录。
输出文件命名格式:DLFile_FIX_PNX_Time.bin,其中: FIX表示:FileID编号,例如:文件ID编号为5,填写为:FI5; PNX表示:数据包数量,例如:数据包数量为7574,填写为:PN7574; Time表示:文件创建时刻,格式为:yyyyMMdd-hhmmss,例如:填写为:20260311-030612。
程序在运行的时候,以固定时间间隔保存自身的状态数据,以供地面和星务判断本程序的状态。遥测数据文件为json格式,文件名固定为:TM_DL.json,保存至指定目录:程序遥测存放目录。该遥测文件内容包含:待下传文件数量和待下传文件总大小。
文件默认部署目录如下:
执行程序部署目录:/opt/SatService/BuildDownloadFile 程序日志存放目录:/var/opt/SatService/BuildDownloadFile/log 数传文件存放目录:/var/opt/SatService/DLFile/TDFile 程序指令读取目录:/var/opt/SatService/DLFile/TC 程序遥测存放目录:/var/run/SatService/DLFile/TM
在makeDebPKG目录内,运行命令:./makeDeb.sh,在上一级目录下生成deb安装包:BuildDownloadFile-SDS3_x.x.x_arm64.deb如需更改软件版本号,则根据版本管理规则,更改文件:makeDeb.sh内的VERSION字段如需更改软件平台号,则根据版本管理规则,更改文件:makeDeb.sh内的PLATFORM字段
Debian安装包文件名格式:包名_版本_平台.deb包名:BuildDownloadFile-SDS3版本:x.x.x平台:arm64、amd64例如:BuildDownloadFile-SDS3_1.0.0_arm64.deb
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
概述
本程序用于星脑单机中GPU系统的数传数据管理,主要功能包括:根据指令生成数传数据、根据指令清理缓存文件、自身遥测数据管理、自身日志管理。
1.代码结构
2.帧格式配置文件
帧格式配置文件用于生成不同格式的数传帧数据,使用json格式描述。
2.1 帧说明
第一个键名为帧协议名称,其对应的对象必须包含:帧描述description,帧大小frameSize和字段数组fields。其中:
例如,某个帧格式配置文件,帧名称为:frameProtocolM302,其中包含:帧描述,帧大小896字节,字段数组若干,如下所示:
2.2 字段说明
每个字段Field,其对应的对象必须包含以下4个内容:字段名称name,字段描述description,字段类型type和字段大小size。其中:
对于不同类型的字段所包含的键和对象也不同,其中:
例如,某固定数值类型字段,该字段为同步字字段,如下所示:
例如,某校验类型字段,该字段为校验字段,需校验dataType和valideData字段,使用算法checksum8,如下所示:
3.程序输入
3.1 遥控指令文件
输入的遥控指令文件为json格式,需从指定目录:程序指令读取目录读取遥控指令,读取后删除该文件。
3.2 帧格式配置文件
输入的帧格式配置文件为json格式,可从程序的配置文件中读取指定文件。如果指定的帧结构配置文件不存在,则程序会创建一个默认的配置文件:defaultFrameStrcut.json。
4.程序输出
4.1数传数据文件
程序输出的待数传文件为一个二进制文件,扩展名为:bin,里面包含若干个数传数据帧,数传数据帧格式根据输入的帧格式配置文件确定,保存至指定目录:数传文件存放目录。
4.2遥测数据文件
程序在运行的时候,以固定时间间隔保存自身的状态数据,以供地面和星务判断本程序的状态。
遥测数据文件为json格式,文件名固定为:TM_DL.json,保存至指定目录:程序遥测存放目录。
该遥测文件内容包含:待下传文件数量和待下传文件总大小。
5.文件部署目录
文件默认部署目录如下:
6.Debian安装包
6.1.制作安装包
在makeDebPKG目录内,运行命令:./makeDeb.sh,在上一级目录下生成deb安装包:BuildDownloadFile-SDS3_x.x.x_arm64.deb
如需更改软件版本号,则根据版本管理规则,更改文件:makeDeb.sh内的VERSION字段
如需更改软件平台号,则根据版本管理规则,更改文件:makeDeb.sh内的PLATFORM字段
6.2.安装包格式说明
Debian安装包文件名格式:包名_版本_平台.deb
包名:BuildDownloadFile-SDS3
版本:x.x.x
平台:arm64、amd64
例如:BuildDownloadFile-SDS3_1.0.0_arm64.deb