コード例 #1
0
 /// <summary>
 /// Передача прочитанных данных в HexEditor
 /// </summary>
 /// <param name="sender"></param>
 private void CallBack(object Marker, byte[] Buffer, bool Error)
 {
     try
     {
         if (Buffer != null && Buffer.Length != 0)
         {
             this.heMemory.ChangeValues(Buffer, _readAddress, (this._changeData || (string)Marker == "memory_one"));
             this._changeData                = false;
             this.heMemory.AddressColor      = Color.DarkSlateGray;
             this.heMemory.CodeColor         = Color.FromArgb(0, 102, 0);
             this.heMemory.PresentationColor = Color.FromArgb(0, 102, 204);
         }
         else
         {
             //Установка исходного вида при ошибке чтения
             byte[] m_array;
             m_array = new byte[this.heMemory.SegmentSize];
             for (int i = 0; i < this.heMemory.SegmentSize; i++)
             {
                 m_array[i] = 0;
             }
             this.heMemory.ChangeValues(m_array, 0, true);
             this.heMemory.AddressColor      = System.Drawing.SystemColors.GrayText;
             this.heMemory.CodeColor         = System.Drawing.SystemColors.GrayText;
             this.heMemory.PresentationColor = System.Drawing.SystemColors.GrayText;
         }
     }
     catch (Exception)
     {
     }
     finally
     {
         this.bWrite.Enabled = true;
         if (!_cycleReading)
         {
             _engine.RemoveReadItem(_readAddress, _readMemory, "memory_one");
             this.bTimerRead.Enabled     = true;
             this.bRead.Enabled          = true;
             this.ddlMemoryType.Enabled  = true;
             this.tbStartAddress.Enabled = true;
             this.tbReadingSize.Enabled  = true;
             this.pbStatus.Visible       = false;
             this.pbStatus.Value         = 0;
         }
     }
 }
コード例 #2
0
        /// <summary>
        /// Остановка опросов датчиков
        /// </summary>
        private void RemoveReadItems()
        {
            //Остановка чения стандартных датчиков
            //Остановка чтения цифровых датчиков
            IList <int> m_key = _inVarsDigital.Keys;

            for (int i = 0; i < _inVarsDigital.Count; i++)
            {
                try { _engine.RemoveReadItem(_inVarsDigital[m_key[i]].Address, _inVarsDigital[m_key[i]].Memory, "DIN_" + m_key[i]); }
                catch { }
            }
            m_key = _outVarsDigital.Keys;
            for (int i = 0; i < _outVarsDigital.Count; i++)
            {
                try { _engine.RemoveReadItem(_outVarsDigital[m_key[i]].Address, _outVarsDigital[m_key[i]].Memory, "DOUT_" + m_key[i]); }
                catch {}
            }
            //Остановка чения аналоговых датчиков
            for (int i = 0; i < this.ascInputs.Length; i++)
            {
                Kontel.Relkon.Classes.ControllerVar m_var = _solution.Vars.GetVarByName(this.ascInputs[i].SensorName);
                try { _engine.RemoveReadItem(m_var.Address, m_var.Memory, this.ascInputs[i]); }
                catch {}
            }
            for (int i = 0; i < this.ascOutputs.Length; i++)
            {
                Kontel.Relkon.Classes.ControllerVar m_var = _solution.Vars.GetVarByName(this.ascOutputs[i].SensorName);
                try { _engine.RemoveReadItem(m_var.Address, m_var.Memory, this.ascOutputs[i]); }
                catch {}
            }
            //Остановка чтения остальных вкладок
            for (int i = 0; i < tpBloks.Count; i++)
            {
                TD.SandDock.TabPage tp = tpBloks[tpBloks.Keys[i]];
                if ((_deletedPage == -1 || _deletedPage != (int)(((DisplayBlock)tp.Controls[0]).bDelete.Tag)) && tp.Controls.Count > 0 /*tp.Disposing*/)
                {
                    ((DisplayBlock)tp.Controls[0]).RemoveReadItems();
                }
            }
        }
コード例 #3
0
 /// <summary>
 /// Удаление запросов на опрос процессов
 /// </summary>
 private void RemoveReadItems()
 {
     if (_IsReading)
     {
         for (int i = 0; i < this.dgProcess.Rows.Count; i++)
         {
             ProjectProcess m_p = this._solution.GetProcessByName((string)this.dgProcess.Rows[i].Cells[0].Value);
             try { _engine.RemoveReadItem(m_p.Address + 4, MemoryType.XRAM, this.dgProcess.Rows[i]); }
             catch { }
         }
         _IsReading = false;
     }
 }
コード例 #4
0
 /// <summary>
 /// Удаление переменной структуры с опроса
 /// </summary>
 /// <param name="m_row"></param>
 private void RemoveRowFromAsk(DataRow m_row)
 {
     try { _engine.RemoveReadItem((int)m_row[6], GetMemoryType(m_row[5].ToString()), m_row); }
     catch { }
 }
コード例 #5
0
        /// <summary>
        /// Событие при двойном щелчке по таблице прочитанных переменных
        /// (перенос их в дерево)
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dgVars_DoubleClick(object sender, EventArgs e)
        {
            try
            {
                if (_IsHeader)
                {
                    _IsHeader = false; return;
                }

                //Если поле не редактируемое, то переместить переменную
                if ((this.dgVars.RowCount > 0) && (this.dgVars.CurrentCell.ReadOnly == true))
                {
                    //Добавление переменной в дерево
                    String m_name = (String)this.dgVars.CurrentRow.Cells[0].Value;
                    Kontel.Relkon.Classes.ControllerVar m_newVar = _solution.Vars.GetVarByName(m_name);
                    if (m_newVar == null)
                    {
                        //если написать строку,то не отображаются переменные, которых нет в _solution, но есть в _enging
                        //иначевозникает ошибка при открытии проекта, послеоткрытия файла отладчика
                        //this.Table.Rows.Remove(this.Table.Rows[this.dgVars.CurrentRow.Index]);
                        return;
                    }
                    DataRow m_CurrentRow = (DataRow)this.Table.Rows[this.dgVars.CurrentRow.Index];
                    for (int i = 0; i < this.Table.Rows.Count; i++)
                    {
                        if ((String)this.Table.Rows[i][0] == m_name)
                        {
                            m_CurrentRow = (DataRow)this.Table.Rows[i];
                            break;
                        }
                    }

                    if (m_newVar is ControllerSystemVar)
                    {
                        this.tvVars.Nodes["sys"].Nodes.Add(m_newVar.Name);
                    }
                    else if (m_newVar is ControllerEmbeddedVar)
                    {
                        this.tvVars.Nodes["emb"].Nodes.Add(m_newVar.Name);
                    }
                    else if (m_newVar is ControllerIOVar)
                    {
                        this.tvVars.Nodes["io"].Nodes.Add(m_newVar.Name);
                    }
                    else if (m_newVar is ControllerUserVar)
                    {
                        this.tvVars.Nodes["usr"].Nodes.Add(m_newVar.Name);
                    }
                    else
                    {
                        return;
                    }

                    //Удаление переменной из списка опрашиваемых
                    if (_vars.ContainsKey((String)m_newVar.Name))
                    {
                        for (int i = 0; i < _engine.Parameters.ReadingVars.Count; i++)
                        {
                            if (_engine.Parameters.ReadingVars[i].Name == m_newVar.Name)
                            {
                                Kontel.Relkon.DebuggerParameters.VarDescription m_VarDescription = _engine.Parameters.ReadingVars[i];
                                _engine.Parameters.ReadingVars.Remove(m_VarDescription);
                            }
                        }
                        _engine.RemoveReadItem(m_newVar.Address, m_newVar.Memory, m_CurrentRow /*.ItemArray[0].ToString()*/);
                        _vars.Remove((String)m_newVar.Name);
                    }
                    //Удаление переменной из таблицы

                    this.Table.Rows.Remove(m_CurrentRow);
                }
            }
            catch (Exception ex)
            {
                Utils.ErrorMessage("dgVars_DoubleClick:" + ex.Message);
                return;
            }
        }