Преглед изворни кода

返回的二段数据大小,实际上要等于计算出来的大小;
1、但如果有脏数据,实际大小 > 计算大小;
2、缺少数据,实际大小 < 计算大小;
3、无脏数据也无缺少,实际大小=计算大小;

sat23 пре 4 година
родитељ
комит
1cfefd4c01
1 измењених фајлова са 5 додато и 2 уклоњено
  1. 5 2
      TCLCommand/TCLCommand/Command.cpp

+ 5 - 2
TCLCommand/TCLCommand/Command.cpp

@@ -378,10 +378,13 @@ bool TCLCommand::TheSecondPart(CommandParam& cmdPara, std::string data)
 #endif
         }
 
-#if 0
+#if 1
         // 计算出的长度,必等于包长;// 如果包含有其他非包数据,会判断异常;
-        if (nPackageLen != data.size())
+        if (nPacketLen > data.size())
+        {
+            cmdPara._rtnError = utils::_dprintf(_T("[%s] 返回的数据长度错误, 计算:%d > 实际:%d"), __FUNCTION__, nPacketLen, data.size());
             return false;
+        }
 #endif
 
         if (_tcsicmp(cmdPara.code.c_str(), utils::ByteToChars((byte)data[nDataPos] - 1).c_str()) != 0) {