/// <summary> /// 分析USW响应包 /// </summary> private static void AnalyzeUSW_resp(List <USW_Recv> comList, int packageNum) { Console.ForegroundColor = ConsoleColor.Red; for (int i = 0; i < packageNum; i++) { USW_Recv usw = comList.FindLast(p => p.packageNum[0] == i); if (usw == null) { Console.WriteLine("USW Response Package Lost[{0}]", i); } else { if (usw.response[0] != 0) { Console.WriteLine("USW Response Package ERROR Code [{1}], in [{0}]", i, usw.response[0]); } } } Console.ResetColor(); Console.WriteLine("Analyzed USW Response Packages Done! Total count : {0}\n", comList.Count); }
/// <summary> /// 从串口文件中取到所有的有效升级数据包和响应包 /// </summary> /// <param name="file">文件路径和文件名</param> /// <param name="fileType">文件类型 0 为bin文件 1 为文本文件</param> private void GetPackageList(string file, int fileType) { byte[] fff; if (fileType == 0) { FileUtility.GetDataFromBinFile(file, out fff); } else if (fileType == 1) { FileUtility.GetDataFormTxtFile(file, out fff); } else { return; } for (int i = 0; i < fff.Length; i++) { if (fff[i] == 'S' && fff[i + 1] == 'S' && fff[i + 2] == 'W') { var ssws = new SSW_Send(ByteUtility.GetSubByte(fff, i, 25)); if (ssws.isValid) { this.sswSendList.Add(ssws); } else { var sswr = new SSW_Recv(ByteUtility.GetSubByte(fff, i, 9)); if (sswr.isValid) { this.sswRecvList.Add(sswr); } } } else if (fff[i] == 'U' && fff[i + 1] == 'S' && fff[i + 2] == 'W') { var usws = new USW_Send(ByteUtility.GetSubByte(fff, i, 523)); if (usws.isValid) { this.uswSendList.Add(usws); } else { var uswr = new USW_Recv(ByteUtility.GetSubByte(fff, i, 10)); if (uswr.isValid) { this.uswRecvList.Add(uswr); } } } else if (fff[i] == 'Q' && fff[i + 1] == 'S' && fff[i + 2] == 'W') { var qsws = new QSW_Send(ByteUtility.GetSubByte(fff, i, 8)); if (qsws.isValid) { this.qswSendList.Add(qsws); } else { var qswr = new QSW_Recv(ByteUtility.GetSubByte(fff, i, 32)); if (qswr.isValid) { this.qswRecvList.Add(qswr); } } } } }