TT12-MCU/applications/软件工作流程.md
CSSC-WORK\murmur a436e04622 更新mem和malloc相关函数为rt_,确保内存使用对齐
修复TTIsReady 等函数bug, 解决TIMEOUT关闭无法关机的问题
屏蔽rtc更新的相关代码,避免死机
添加 RS_485.c,实现电量读取
cfg参数调整为5分钟关机,1分钟上报位置。测试ok,等待外场挂机测试。
2023-08-31 16:12:44 +08:00

105 lines
3.8 KiB
Markdown
Raw Permalink 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),
```
# 发送:
与TT设备进行通信将打包后数据依次送出。
## 发送逻辑
先依次检查发送条件满足条件后开始发送发送完毕后关闭TT设备
## 发送条件
### 软件条件
需求条件1待发数据大小累计超minSizeToSend的设置值
需求条件2sendInterval设置值到达
以上任意条件满足则进入硬件条件检查
### 硬件条件
需求条件1TT连续5个周期为激活状态且信号强度不低于5。
软件条件满足后TT上电MaxWaitTime内不达标则断电重启并重试MaxRetryCnt如仍不成功则等待下次发送
# 配置文件
系统信息采用ini文件记录各项功能参数及信息。
配置文件分为两大部分,可调参数部分和统计信息部分。前者可通过网络下发,后者只读。
## 下发配置
下发配置文件仅含需要更改的参数。
# 超时关机机制
超时机制优先级较低,开启需具备以下几个条件:
- TT激活
- 不在开窗区间(自动或手动)
开启后收到有效数据来源含TT和串口非心跳包数据会重置超时时间