/// <summary> /// 传入hex文件所有行数据 /// hexStringList为Hex字符串直接显示的集合 /// </summary> public DataSource.HexStringListClass ConvertStringToHexString(string[] allLines) { DataSource.HexStringListClass hexStringList = new DataSource.HexStringListClass(); hexStringList.HexStringCollection = new System.Collections.ObjectModel.ObservableCollection <DataSource.HexString>(); //文字复制 for (int i = 0; i < allLines.Length; i++) { hexStringList.HexStringCollection.Add(new DataSource.HexString { No = i, Text = allLines[i] }); } return(hexStringList); }
/// <summary> /// 将hex字符串解析显示 /// </summary> private void RefreshShowHexFile(ref DataSource.HexStringListClass hexStringList) { lvHexString.SelectionChanged -= lvHexString_SelectionChanged; dgMsg1.SelectionChanged -= dgMsg1_SelectionChanged; m_AddrDataList1.AddrDataCollection.Clear(); m_SearchAddrDataList1.AddrDataCollection.Clear(); m_AddrDataList1 = m_CommonFunc.HexStringToDataList(hexStringList); //转换为数据列表 //m_AddrDataList1 = m_CommonFunc.InsertSkipToDataList(ref m_AddrDataList1); //插入跳过的地址 //复制一份,用作筛选显示 m_CommonFunc.AddrDataListClassCopy(ref m_AddrDataList1, ref m_SearchAddrDataList1); //指定显示的源 lvHexString.ItemsSource = m_HexStringList.HexStringCollection; dgMsg1.ItemsSource = m_SearchAddrDataList1.AddrDataCollection; lbFilter1.Content = m_SearchAddrDataList1.AddrDataCollection.Count; dgMsg1.SelectionChanged += dgMsg1_SelectionChanged; lvHexString.SelectionChanged += lvHexString_SelectionChanged; }
public ChangeHexString(Point location, Size size, int changeRow, ref DataSource.AddrDataListClass dataList, ref DataSource.HexStringListClass hexList) { InitializeComponent(); this.Left = location.X + (size.Width - this.Width) / 2; this.Top = location.Y + (size.Height - this.Height) / 2; m_DataList = dataList; m_HexList = hexList; cbDataLength.ItemsSource = new string[] { "4", "8", "12", "16" }; cbDataLength.SelectedIndex = 3; cbDataType.ItemsSource = new string[] { "数据记录(0x00)", "文件记录结束(0x01)", "线性地址(0x04)" }; cbDataType.SelectedIndex = 0; tbChangeRow.CurrentValue = changeRow; m_TmpDataList.AddrDataCollection = new System.Collections.ObjectModel.ObservableCollection <DataSource.AddrData>(); dgMsg1.ItemsSource = m_TmpDataList.AddrDataCollection; }
/// <summary> /// 传入hex文件所有行数据 /// dataList为解析后的数据的集合 /// </summary> public DataSource.AddrDataListClass HexStringToDataList(DataSource.HexStringListClass hexStringList) { DataSource.AddrDataListClass dataList = new DataSource.AddrDataListClass(); dataList.AddrDataCollection = new System.Collections.ObjectModel.ObservableCollection <DataSource.AddrData>(); string[] allLines = new string[hexStringList.HexStringCollection.Count]; for (int i = 0; i < allLines.Length; i++) { allLines[i] = hexStringList.HexStringCollection[i].Text; } NXPHexParse microchipHexParse = new NXPHexParse(); List <NXPHexParse.HexParseDataOneAddrStruct> lsDataList = microchipHexParse.GetDataFromNxpINHX32(ref allLines); for (int i = 0; i < lsDataList.Count; i++) { string remark = string.Empty; System.Windows.Media.Brush warnningColor = System.Windows.Media.Brushes.Transparent; if (lsDataList[i].checkSumError) { remark = "CheckSum Error "; warnningColor = System.Windows.Media.Brushes.LightCyan; } if (lsDataList[i].lengthError) { remark += "Length Error"; warnningColor = System.Windows.Media.Brushes.LightPink; } //lineNum默认不能为0,否则后面可能出错,-1表示没有这行,为插入值 dataList.AddrDataCollection.Add(PacakOneAddrData(lsDataList[i])); } return(dataList); }