1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- #pragma once
- enum CMDOPT {
- CMDOPT_None = 0,
- CMDOPT_Get = 1,
- CMDOPT_Set = 2
- };
- typedef struct __CMDPARAM__ {
- std::string name; // 命令描述;
- std::string head; // 命令头;
- std::string cmd; // 命令码;
- std::string param; // 命令码参数;
- // 命令属性类型:
- // 0=None,只返回一段数据包;
- // 1=Get,返回一段或两段数据包(成功时返回2段,失败时返回1段);
- // 2=Set,返回一段或两段数据包(成功时返回1段,失败时返回1段);
- int nOption;
- bool returnParam; // 命令码是否多参数;
- int cmd_wait_time; // 两条串口指令间隔时间;
- int read_wait_time; // 写完串口后,等待多久读;
- byte _rtnCode; // 与head对应的;
- byte _rtnStatus; // 返回码:0A表示正常,0E、0F表示异常;
- std::string _rtnData; // 实际返回的数据:剥掉头尾、长度、CRC等内容;
- std::string _rtnError; // 出错描述;
- std::string _rtnContext; // 串口读取的内容:ReadFile的内容;
- std::string _cmdContext; // 串口写的内容:要WriteFile的内容;
- void UpdateRtnCode() {
- if (!_tcsicmp(_T("AA"), head.substr(0,2).c_str())) { // 调试用命令代码引导码;
- _rtnCode = 0xAB;
- }
- else if (!_tcsicmp(_T("AC"), head.substr(0,2).c_str())) { // 软件配屏参数调整命令代码引导码;
- _rtnCode = 0xAD;
- }
- else if (!_tcsicmp(_T("AE"), head.substr(0,2).c_str())) { // 保留命令发送类型引导码;
- _rtnCode = 0xAF;
- }
- }
- __CMDPARAM__& operator=(const __CMDPARAM__& cls) {
- if (this != &cls) {
- name = cls.name;
- head = cls.head;
- cmd = cls.cmd;
- param = cls.param;
- nOption = cls.nOption;
- returnParam = cls.returnParam;
- cmd_wait_time = cls.cmd_wait_time;
- read_wait_time = cls.read_wait_time;
- _rtnCode = cls._rtnCode;
- _rtnStatus = cls._rtnStatus;
- _rtnData = cls._rtnData;
- _rtnError = cls._rtnError;
- _rtnContext = cls._rtnContext;
- _cmdContext = cls._cmdContext;
- }
- return *this;
- }
- void Clean() {
- //_rtnCode = 0;
- _rtnStatus = 0x0E;
- #if _MSC_VER >= 1200 && _MSC_VER < 1500
- _rtnData = "";
- _rtnError = "";
- _rtnContext = "";
- _cmdContext = "";
- #elif _MSC_VER >= 1500
- _rtnData.clear();
- _rtnError.clear();
- _rtnContext.clear();
- _cmdContext.clear();
- #endif
- }
- __CMDPARAM__() {
- _rtnCode = 0;
- _rtnStatus = 0;
- nOption = 0;
- returnParam = false;
- cmd_wait_time = 100;
- read_wait_time = 100;
- }
- } CommandParam, * pCommandParam;
|