/// <summary> /// 将指定的数据保存为Hex数据行 /// </summary> /// <param name="val"></param> /// <returns></returns> public string[] SaveHexLine(byte[] val) { List <string> hexFile = new List <string>(); //---保存数据记录行 hexFile.AddRange(this.SaveHexLine(val, 16, 0)); //---添加数据结束行 hexFile.Add(CHexLine.ToHexLineEndOfFileRecord()); //---返回结果 return(hexFile.ToArray()); }
/// <summary> /// 将指定的数据保存为Hex文件 /// </summary> /// <param name="val">数据</param> /// <param name="num">每行字节数</param> /// <param name="addr">存储起始地址</param> /// <param name="isHighFirst">true---给定的数据是高位在前,false---给定的数据是地位在前</param> /// <returns></returns> public string SaveHexFile(byte[] val, int num = 16, long addr = 0, bool isHighFirst = false) { string _return = ""; //---如果给定的数据是高位在前,需要将数据转换为低位在前,Hex文件默认是低位在前高位在后的格式 if (isHighFirst == true) { } //---获取数据行 string[] hexLineTemp = this.SaveHexLine(val, num, addr); //---校验数据记录行数据保存的记过 if ((hexLineTemp == null) || (hexLineTemp.Length == 0) || (hexLineTemp.Length == 1)) { this.defaultLogMessage = "转存Hex文件错误"; return(null); } //---数据记录行的信息 if ((this.defaultCHexLine != null) || (this.defaultCHexLine.Count > 0)) { //---清零操作 this.defaultCHexLine.Clear(); } else { this.defaultCHexLine = new List <CHexLine>(); } //---填充数据行 for (int i = 0; i < hexLineTemp.Length; i++) { //---每行数据创建一个对象 CHexLine readHexLine = new CHexLine(hexLineTemp[i]); //---判断数据的读取是否有效 if (readHexLine.IsOK) { this.defaultCHexLine.Add(readHexLine); _return += hexLineTemp[i]; } else { this.defaultLogMessage = "Hex转存发生错误,错误提示" + readHexLine.LogMessage; break; } } //---保存为数据行,数据结束行 _return += CHexLine.ToHexLineEndOfFileRecord(); //---返回Hex文件记录 return(_return); }
/// <summary> /// 将指定的数据保存为Hex文件 /// </summary> /// <param name="val"></param> /// <returns></returns> public string SaveHexFile(byte[] val) { List <string> hexFile = new List <string>(); //---保存数据记录行 hexFile.AddRange(this.SaveHexLine(val, 16, 0)); //---添加数据结束行 hexFile.Add(CHexLine.ToHexLineEndOfFileRecord()); string _return = ""; foreach (string str in hexFile) { _return += str; } return(_return); }