浏览代码

完成Demo示例。

sat23 4 年之前
父节点
当前提交
b69c7e6ba9
共有 2 个文件被更改,包括 11 次插入10 次删除
  1. 6 4
      Serail-Demo/Demo/TCLCommand.cpp
  2. 5 6
      Serail-Demo/Demo/TCLCommand.h

+ 6 - 4
Serail-Demo/Demo/TCLCommand.cpp

@@ -494,11 +494,11 @@ void TCLCommand::PackingCommand(CommandParam& cmdPara, std::string data, const i
     utils::_dprintf(_T("指令:%s = %s"), cmdPara.name.c_str(), utils::BytesToHexString((byte*)command.c_str(), command.size(), ' ').c_str());
 }
 
-void TCLCommand::ParseResultString(CommandParam& cmdPara, std::string data, const int& dataLen)
+bool TCLCommand::ParseResultString(CommandParam& cmdPara, std::string data, const int& dataLen)
 {
     // Tag:[返回头][全数据长度][返回码]<返回码子项><附加数据>[crc16]
     if (!TheFirstPart(cmdPara, data.substr(0, 5)))
-        return;
+        return false;
 
     if (cmdPara._rtnStatus != 0x0A) {
 #if _MSC_VER >= 1200 && _MSC_VER < 1500
@@ -506,7 +506,7 @@ void TCLCommand::ParseResultString(CommandParam& cmdPara, std::string data, cons
 #elif _MSC_VER >= 1500
         utils::_dprintf("[%s] 执行结果错误:%02X", __FUNCTION__, cmdPara._rtnStatus);
 #endif
-        return;
+        return false;
     }
 
     switch (cmdPara.nOption)
@@ -515,11 +515,13 @@ void TCLCommand::ParseResultString(CommandParam& cmdPara, std::string data, cons
         break;
     case CMDOPT_Get:
     case CMDOPT_Set:
-        TheSecondPart(cmdPara, data.substr(5));
+        return TheSecondPart(cmdPara, data.substr(5));
         break;
     default:
         break;
     }
+
+    return false;
 }
 
 bool TCLCommand::SendCommand(CommandParam& cmdPara)

+ 5 - 6
Serail-Demo/Demo/TCLCommand.h

@@ -104,17 +104,16 @@ public:
     bool parse_pair_key(std::string& RetValue, std::string strLine, TCHAR* lpszText);
     int parse_cmds_from_file(const TCHAR* file_name, std::vector<CommandParam>& vtCommandParams);
     void parse_cmds_from_string(std::string str, std::vector<CommandParam>& vtCommandParams);
-    bool GetCommandParams(std::string name, CommandParam& cmdPara);
 
     bool TheFirstPart(CommandParam& cmdPara, std::string data);
-    bool TheSecondPart(CommandParam& cmdPara, std::string data);
-    void PackingCommand(CommandParam& cmdPara, std::string data = "", const int& dataLen = 0);
-    void ParseResultString(CommandParam& cmdPara, std::string data, const int& dataLen);
-
-    bool SendCommand(CommandParam& cmdPara);
+    bool TheSecondPart(CommandParam& cmdPara, std::string data);    
+    bool ParseResultString(CommandParam& cmdPara, std::string data, const int& dataLen);
 public:
     void SetInternalCMDParams(DWORD dwResouceID);
     void SetExternalCMDParams(LPCTSTR lpFileName);
+    bool GetCommandParams(std::string name, CommandParam& cmdPara);
+    bool SendCommand(CommandParam& cmdPara);
+    void PackingCommand(CommandParam& cmdPara, std::string data = "", const int& dataLen = 0);
 
     bool EnterFactory();
     bool LeaveFactory();