Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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;
        }
Exemple #4
0
        /// <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);
        }