STC51 STC15开发工控网关-工控主机-附录A-软件设计

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

 

posted @ 2023-01-23 16:37  吉瓦吴老师  阅读(39)  评论(0编辑  收藏  举报