目录

概述

本程序用于星脑单机中GPU系统的数传数据管理,主要功能包括:根据指令生成数传数据、根据指令清理缓存文件、自身遥测数据管理、自身日志管理。

运行环境:(适用于但不局限于此环境)
硬件: NVidia Jetson Orin NX 16GB
软件: Ubuntu 22.04, JetPack6.0(L4T 36.3.0),GCC 11.4.0, Python 3.10.12

1.代码结构

BuildDownloadFile/
    |--- readme.md     #说明文件
    |--- src/          #源码
    |--- systemd/      #用于生成服务启动管理
    |--- makeDebPKG/   #用于生成debian安装包

2.帧格式配置文件

帧格式配置文件用于生成不同格式的数传帧数据,使用json格式描述。

2.1 帧说明

第一个键名为帧协议名称,其对应的对象必须包含:帧描述description,帧大小frameSize和字段数组fields。其中:

- 帧描述:用于描述该帧用途及说明;  
- 帧大小:用于表示该帧结构占用的字节数;  
- 字段数据:用于表示帧结构内部各个字段。  

例如,某个帧格式配置文件,帧名称为:frameProtocolM302,其中包含:帧描述,帧大小896字节,字段数组若干,如下所示:

{
    "frameProtocolM302": 
    {
        "description": "Used For Sat M302",
        "frameSize": 896,
        "fields": [......]
    }
}

2.2 字段说明

每个字段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"
    }

3.程序输入

3.1 遥控指令文件

输入的遥控指令文件为json格式,需从指定目录:程序指令读取目录读取遥控指令,读取后删除该文件。

文件内容包含:节点号Node,指令类型Type,数据Data,其中:  
节点号Node:数值类型,表示指令的目标节点号;  
指令类型Type:数值类型,表示指令的类型,0x20:表示开始数传任务,0x21:表示清理数传任务缓存数据;  
数据Data:字符串类型,表示指令的具体内容,根据不同的指令类型填写不同的指令数据。

3.2 帧格式配置文件

输入的帧格式配置文件为json格式,可从程序的配置文件中读取指定文件。如果指定的帧结构配置文件不存在,则程序会创建一个默认的配置文件:defaultFrameStrcut.json。

4.程序输出

4.1数传数据文件

程序输出的待数传文件为一个二进制文件,扩展名为:bin,里面包含若干个数传数据帧,数传数据帧格式根据输入的帧格式配置文件确定,保存至指定目录:数传文件存放目录。

输出文件命名格式:DLFile_FIX_PNX_Time.bin,其中:
FIX表示:FileID编号,例如:文件ID编号为5,填写为:FI5;
PNX表示:数据包数量,例如:数据包数量为7574,填写为:PN7574;
Time表示:文件创建时刻,格式为:yyyyMMdd-hhmmss,例如:填写为:20260311-030612。

4.2遥测数据文件

程序在运行的时候,以固定时间间隔保存自身的状态数据,以供地面和星务判断本程序的状态。
遥测数据文件为json格式,文件名固定为:TM_DL.json,保存至指定目录:程序遥测存放目录。
该遥测文件内容包含:待下传文件数量和待下传文件总大小。

5.文件部署目录

文件默认部署目录如下:

执行程序部署目录:/opt/SatService/BuildDownloadFile
程序日志存放目录:/var/opt/SatService/BuildDownloadFile/log
数传文件存放目录:/var/opt/SatService/DLFile/TDFile
程序指令读取目录:/var/opt/SatService/DLFile/TC
程序遥测存放目录:/var/run/SatService/DLFile/TM

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

关于

本程序用于星脑单机中GPU系统的数传数据管理,主要功能包括:根据指令生成数传数据、根据指令清理缓存文件、自身遥测数据管理、自身日志管理。

87.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号