Sfoglia il codice sorgente

添加注释,并修正串口取用户数据的范围,使用协议包返回的长度-数据起始-2。

jianfeng1.wang 2 anni fa
parent
commit
72d90f6cd3
1 ha cambiato i file con 32 aggiunte e 2 eliminazioni
  1. 32 2
      FactoryTool_CShare/IO/SerialCMD.cs

+ 32 - 2
FactoryTool_CShare/IO/SerialCMD.cs

@@ -2731,6 +2731,16 @@ namespace MOKA_Factory_Tools
             return false;
         }
 
+        /// <summary>
+        /// 把FE当作数据的一部分进行解析;
+        /// </summary>
+        /// <param name="Comport"></param>
+        /// <param name="CMDID"></param>
+        /// <param name="reallyLength">实际接收到的串口数据长度</param>
+        /// <param name="receive2Data">接收到的数据(注:不包含ACK内容)</param>
+        /// <param name="dataLen">整个协议包的数据长度(注:正常接收是等于reallyLength,小于reallyLength的话可能接收了部分异常数据,大于reallyLength表示未接收完)</param>
+        /// <param name="dataIndex">用户数据的取值起始值(注:除掉头+长度+命令码)</param>
+        /// <returns></returns>
         private static bool ParseDataFEIsLen(SerialPort Comport, ref byte[] CMDID, ref int reallyLength, ref byte[] receive2Data, out int dataLen, out int dataIndex)
         {
             dataLen = 0;
@@ -2794,6 +2804,16 @@ namespace MOKA_Factory_Tools
             return true;
         }
 
+        /// <summary>
+        /// 把FE当作长度标记进行解析;
+        /// </summary>
+        /// <param name="Comport"></param>
+        /// <param name="CMDID"></param>
+        /// <param name="reallyLength">实际接收到的串口数据长度</param>
+        /// <param name="receive2Data">接收到的数据(注:不包含ACK内容)</param>
+        /// <param name="dataLen">整个协议包的数据长度(注:正常接收是等于reallyLength,小于reallyLength的话可能接收了部分异常数据,大于reallyLength表示未接收完)</param>
+        /// <param name="dataIndex">用户数据的取值起始值(注:除掉头+长度+命令码)</param>
+        /// <returns></returns>
         private static bool ParseDataFEIsMark(SerialPort Comport, ref byte[] CMDID, ref int reallyLength, ref byte[] receive2Data, out int dataLen, out int dataIndex)
         {
             dataLen = 0;
@@ -2870,6 +2890,16 @@ namespace MOKA_Factory_Tools
             return true;
         }
 
+        /// <summary>
+        /// 没有FE字节的数据解析;
+        /// </summary>
+        /// <param name="Comport"></param>
+        /// <param name="CMDID"></param>
+        /// <param name="reallyLength">实际接收到的串口数据长度</param>
+        /// <param name="receive2Data">接收到的数据(注:不包含ACK内容)</param>
+        /// <param name="dataLen">整个协议包的数据长度(注:正常接收是等于reallyLength,小于reallyLength的话可能接收了部分异常数据,大于reallyLength表示未接收完)</param>
+        /// <param name="dataIndex">用户数据的取值起始值(注:除掉头+长度+命令码)</param>
+        /// <returns></returns>
         private static bool ParseDataWithoutFE(SerialPort Comport, ref byte[] CMDID, ref int reallyLength, ref byte[] receive2Data, out int dataLen, out int dataIndex)
         {
             dataLen = 0;
@@ -3118,8 +3148,8 @@ namespace MOKA_Factory_Tools
                         }
                     }
 
-                    data = receive2Data.Skip(dataIndex).Take(reallyLength - dataIndex - 2).ToArray();
-                    Log.WriteInfoLog("Receive Data:" + SerialInit.ByteToHex(result.Take(5).ToArray()) + SerialInit.ByteToHex(receive2Data.Take(dataLen).ToArray()));
+                    data = receive2Data.Skip(dataIndex).Take(dataLen - dataIndex - 2).ToArray();
+                    Log.WriteInfoLog("Receive Data:" + SerialInit.ByteToHex(result.Take(5).ToArray()) + SerialInit.ByteToHex(receive2Data.ToArray()));
                     Thread.Sleep(NextCommandWaitTime);
                     return true;
                 }