1)软件架构设计
2)数据结构设计
数据缓存,包含接收和发送缓存,接收到最后一个字符的控制器运行时间,用来做字符间超时来判断一个报文是否接收完成
typedef struct _tagRecDataPack{
uint32 _recSec; // 数据接收到的秒
uint16 _recMSec; // 数据接收到的毫秒
uint8 _pBufRead[256];
uint8 _pBufSend[256];
uint8 _iReadedLen;
uint8 _isReadFullPack;
uint8 _iByteWantSend;
}RecDataPack;
数据配置存储在EEPROM里面,设计了EEPROMdata结构来存储
typedef struct _eepromdata
{
BYTE slaveraddr; // 从站地址
BYTE baud_1; // 0:9600; 1:1200; 2:2400; 3:4800; 4:9600; 5:19200; 6:38400; 7:57600; 8:115200
BYTE check_1; // 0,1,2,3,4 0:none, 1:odd,2:evt,3:0,4:1
BYTE databit_1; // 5,7,8
BYTE stopbit_1; // 0->1; 1->1.5; 2->2
BYTE baud_2; // 0:9600; 1:1200; 2:2400; 3:4800; 4:9600; 5:19200; 6:38400; 7:57600; 8:115200
BYTE check_2; // 0,1,2,3,4 0:none, 1:odd,2:evt,3:0,4:1
BYTE stopbit_2; // 0->1; 1->1.5; 2->2
BYTE databit_2; // 5,7,8
BYTE baud_3;
BYTE check_3; // 0,1,2,3,4 0:none, 1:odd,2:evt,3:0,4:1
BYTE stopbit_3; // 0->1; 1->1.5; 2->2
BYTE databit_3; // 5,7,8
BYTE baud_4;
BYTE check_4; // 0,1,2,3,4 0:none, 1:odd,2:evt,3:0,4:1
BYTE stopbit_4; // 0->1; 1->1.5; 2->2
BYTE databit_4; // 5,7,8
}EPPROOMData;
extern RecDataPack gg_pRecPacksCom1; // 全局的读取发送缓存,在main模块初始化
extern RecDataPack gg_pRecPacksCom2; // 全局的读取发送缓存,在main模块初始化
extern RecDataPack gg_pRecPacksCom3; // 全局的读取发送缓存,在main模块初始化
extern RecDataPack gg_pRecPacksCom4; // 全局的读取发送缓存,在main模块初始化
extern EPPROOMData gg_eeproom; // 全局的配置函数,在main模块里面初始化
extern uint8 gg_CmdMap[]; // 全局命令对象数组,使用查表扫描法来做,操作只会置位1,main函数执行
#endif
标签:缓存,STC15,工控网,uint8,gg,extern,BYTE,main,工控 From: https://www.cnblogs.com/gwwdq/p/17065284.html