/// <summary> /// 对比SSW数据包 /// </summary> private static void AnalyzeSSW(SSW_Send bin, List <SSW_Send> comList) { Console.ForegroundColor = ConsoleColor.Red; for (int i = 0; i < comList.Count; i++) { if (!ByteUtility.Compares(bin.body, comList[i].body)) { Console.WriteLine("SSW Package ERROR: [{0}]", i); } } Console.ResetColor(); Console.WriteLine("Analyzed SSW Packages Done! Totle 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); } } } } }