Example #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="structure"></param>
        private void AddStructurToTable(ControllerStructVar structure)
        {
            DataRow m_row;

            m_row    = this.StructsTable.NewRow();
            m_row[0] = structure.Name;
            m_row[1] = structure.Address;
            m_row[2] = structure.Memory;
            m_row[3] = structure.Size;
            int m_addrass = structure.Address;

            this.StructsTable.Rows.Add(m_row);
            foreach (ControllerUserVar p in structure.Vars)
            {
                m_row    = this.VarsTable.NewRow();
                m_row[0] = p.Name;
                m_row[1] = structure.Name;
                m_row[2] = structure.Memory;
                m_row[3] = m_addrass + p.Address;
                m_row[4] = p.Size;
                m_row[5] = p.HasSign;
                this.VarsTable.Rows.Add(m_row);
            }
        }
Example #2
0
        /// <summary>
        /// Загрузка новых параметров
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public override void Update(ControllerProgramSolution solution, DebuggerEngine engine)
        {
            _engine = engine;
            if (solution != null)
            {
                _solution = solution;
            }
            else
            {
                _solution = ControllerProgramSolution.Create(_engine.Parameters.ProcessorType);
            }
            //Очистка значений переменных
            this.StructsTable.Rows.Clear();
            this.VarsTable.Rows.Clear();
            this.DisplayVarsTable.Rows.Clear();
            this._freeStructs = new List <ControllerStructVar>();
            this.clb_structurs.Items.Clear();

            FillStuctursTables();
            //Добваление структур, которых нет в проекте
            ControllerStructVar m_struct;
            ControllerUserVar   m_var;

            foreach (DebuggerParameters.StructDescription sd in _engine.Parameters.ReadingStructs)
            {
                bool m_fined = false;
                foreach (DataRow dr in this.StructsTable.Rows)
                {
                    if (dr[0].ToString() == sd.Name)
                    {
                        m_fined = true;
                        break;
                    }
                }
                if (m_fined)
                {
                    continue;
                }
                m_struct         = new ControllerStructVar();
                m_struct.Address = sd.Address;
                m_struct.HasSign = sd.HasSign;
                m_struct.Memory  = sd.MemoryType;
                m_struct.Name    = sd.Name;
                m_struct.Size    = sd.Size;
                foreach (DebuggerParameters.VarDescription vd in sd.Vars)
                {
                    m_var         = new ControllerUserVar();
                    m_var.Address = vd.Address;
                    m_var.HasSign = vd.HasSign;
                    m_var.Array   = false;
                    m_var.Memory  = vd.MemoryType;
                    m_var.Name    = vd.Name;
                    m_var.Size    = vd.Size;
                    m_struct.Vars.Add(m_var);
                }
                AddStructurToTable(m_struct);
            }
            FillCheckedList();
            //Выбор структур для опроса
            List <DebuggerParameters.StructDescription> readStructs = new List <DebuggerParameters.StructDescription>(_engine.Parameters.ReadingStructs);

            _engine.Parameters.ReadingStructs = new List <DebuggerParameters.StructDescription>();
            for (int i = 0; i < this.clb_structurs.Items.Count; i++)
            {
                foreach (DebuggerParameters.StructDescription sd in readStructs)
                {
                    if (this.clb_structurs.Items[i].ToString() == sd.Name)
                    {
                        //this.clb_structurs_ItemCheck(this.clb_structurs, new ItemCheckEventArgs(i, System.Windows.Forms.CheckState.Checked, System.Windows.Forms.CheckState.Unchecked));
                        this.clb_structurs.SetItemCheckState(i, CheckState.Checked);
                    }
                }
            }
        }