TT12-MCU/applications/ttmsg/ttmsg.h
murmur bde51765d0 移植工程到新PCB
ttmsg.c 基本工作,但是遇到malloc内存后地址被篡改的问题,未定位。
2023-05-23 14:59:35 +08:00

103 lines
2.6 KiB
C
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.

/*
* Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2023-04-21 murmur the first version
*/
#ifndef APPLICATIONS_TTMSG_TTMSG_H_
#define APPLICATIONS_TTMSG_TTMSG_H_
#include <rtthread.h>
//#include <stdio.h>
//#include <stdlib.h>
//#include <stdint.h>
//#include <string.h>
//#include "posix/string.h"
#include <dfs_file.h>
#define FRAME_DATA_LEN_MAX 180
#define STR_LEN_MAX 30
/*
typedef enum{
//
//加密低2位
CRY_NONE=0,
CRY_AES,
CRY_RSA,
//压缩次高2位
COMP_NONE=(0<<2),
COMP_QUICK_LZ=(1<<2),//压缩率中等demo约1/0.62,资源占用少
COMP_FAST_LZ=(2<<2),
COMP_LZMA=(3<<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),
//
}fopt_e;
*/
//控制字,总两字节
//加密低2位
#define CRY_NONE 0
#define CRY_AES 1
#define CRY_RSA 2
//压缩次高2位
#define COMP_NONE (0<<2)
#define COMP_FAST_LZ (1<<2)//压缩率中等demo约1/0.62,资源占用少
#define COMP_QUICK_LZ (2<<2)
#define COMP_LZMA (3<<2)//压缩率可能最高,样例报错还未定位,猜测是内存不足
//数据类型子类随CTRL_MODE不同而不同共3位8种
#define MODE_0 (0<<4)
#define MODE_1 (1<<4)
// 。。。
#define MODE_7 (7<<4)
//数据类型,最高位
#define CTRL_MODE (0<<7)
#define DATA_MODE (1<<7)
//#pragma pack(1)
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;
//rt_uint8_t packMsg(MSG *p_msg, rt_uint8_t *din, rt_uint8_t len, rt_uint8_t *dout);
#endif /* APPLICATIONS_TTMSG_TTMSG_H_ */