TT12-MCU/applications/软件工作流程.md
murmur 8cb31be86b 配置文件初步建立
看门狗不工作
待更新cfg中ini_puts和ini_gets函数为ini_putl和ini_getl
2023-06-01 10:23:08 +08:00

95 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 接收:
## 透传数据
4k缓存串口收数据快满时转存为文件文件名由`时间戳+1字节随机码`组成随机码防止RTC意外复位后产生的时间错乱。
例`“rxlog/2023_05_05/2023_05_05_10_59_23_123”`。
## 转发指令
## 状态采集
天通状态及定位数据编码规则如下:
```c
// 第1节为高3位分别为sim、rw和jh其余位为xhxh值若大于31则为3131=b0001 1111
// 第2-5字节为经度。114.410050= 0xF2 0xD1 0xE4 0x42
// 第6-9字节为纬度。30.426840= 0x2B 0x6A 0xF3 0x41
// 第10字节为高度只保留整数。-31.5= 0x0A
```
例`有卡已入网已鉴权信号6纬度30.426840, 经度114.410050, 高度-31.5`
编码为`0xE6 0xF2 0xD1 0xE4 0x42 0x2B 0x6A 0xF3 0x41 0x0A`
时戳编码为6字节
```c
年月日时分秒各一个字节表示, 年取后两位(202323
```
# 压缩:
采用fastlz算法对数据文件文件进行压缩算法项可配置。
# 加密:
从用AES-256算法对压缩后文件进行加密算法项可配置。
# 分包:
加密后文件需要进行分包切片每切片数据大小不超过180字节。
# 打包:
切片数据按帧协议进行打包,协议如下:
```c
typedef struct{
//帧头
//格式是TT厂家确定的厂家不变则不会变13字节
rt_uint8_t fstart[4];//
rt_uint8_t fnum[2] ;
rt_uint8_t fbak[2] ;
rt_uint8_t ftype[2] ;//固定位0x7021
rt_uint8_t fdlen[2] ;//总数据长度从ccid开始计算
rt_uint8_t fcrc[1] ;//
//数据体,部分自定义
//目标终端前4字节必须为CCID厂家定义
rt_uint8_t ftccid[4] ;//
//数据体自定义部分,格式如下
rt_uint8_t findex[7] ;//唯一ID号索引号年月日时分秒+1字节随机码 年取后两位2023即23随机码为防止RTC复位后时间错乱
rt_uint8_t fcfg[1] ;//数据类型|压缩方式|加密方式
rt_uint8_t fcurpiece[1];//当前分片数
rt_uint8_t fallpiece[1];//总分片数
rt_uint8_t fdata[];//当前分片数据,为待发数据
}MSG;
```
## 配置项
fcfg为配置项长1字节为**数据类型**、**压缩方式**、**加密方式**对应控制字的和。
```c
//加密低2位
CRY_NONE=0,
CRY_AES,
CRY_RSA,
//压缩次高2位
COMP_NONE=(0<<2),
COMP_QUICK_LZ=(1<<2),//压缩率中等demo约1/0.62,资源占用少
COMP_LZMA=(2<<2),//压缩率可能最高,样例报错还未定位,猜测是内存不足
//数据类型子类随CTRL_MODE不同而不同共3位8种
MODE_0=(0<<4),
MODE_1=(1<<4),
// 。。。
MODE_7=(1<<4),
//数据类型,最高位
CTRL_MODE=(0<<7),
DATA_MODE=(1<<7),
```
# 发送:
与天通设备进行通信,将打包后数据依次送出。
## 发送逻辑
### 软件条件
待发数据大小累计超minSizeToSend的设置值
sendInterval设置值到达
### 硬件条件
TT连续5个周期为激活状态且信号强度不低于5
# 配置文件
系统信息采用ini文件记录各项功能参数及信息。
配置文件分为两大部分,可调参数部分和统计信息部分。前者可通过网络下发,后者只读。
## 下发配置
下发配置文件仅含需要更改的参数。