示例#1
0
        private void VarComboBox_Leave(object sender, EventArgs e)
        {
            ComboBox Sender = (ComboBox)sender;
            int      idx    = this.VarsComboBoxes.IndexOf(Sender);                                              // индекс переменной ComboBox'а в списке DebuggerParameters.ChartVars

            DebuggerParameters.VarDescription requestedVarDesc = this.debuggerEngine.Parameters.ChartVars[idx]; // текущая опрашиваемая переменная
            if (requestedVarDesc == null || requestedVarDesc.Name != Sender.Text)
            {
                // Выбранныя в ComboBox переменная не совпадает с опрашиваемой по тому же индексу
                if (Sender.Text != "")
                {
                    // В ComboBox не пустая строка
                    ControllerVar var = this.ControllerProgramSolution.Vars.GetVarByName(Sender.Text);
                    if (var == null || var.Address == 0 && (!(var is ControllerEmbeddedVar) && !(false)) || (var is ControllerStructVar) || (var is ControllerUserVar) && ((ControllerUserVar)var).Array)
                    {
                        // В ComboBox указано несуществующее имя переменной
                        Sender.Text = requestedVarDesc == null ? "" : requestedVarDesc.Name;
                        this.plVarsView.GraphPane.CurveList[idx].Label.Text = requestedVarDesc == null ? "Нет" : requestedVarDesc.Name;
                        this.Refresh();
                        return;
                    }
                    if (requestedVarDesc != null)
                    {
                        // По этому идексу переменная уже опрашивается => удаляем опрашиваемую переменную из очереди отладчика
                        this.debuggerEngine.RemoveReadItem(requestedVarDesc.Address, requestedVarDesc.MemoryType,
                                                           this.GetVarMarker(requestedVarDesc, idx));
                    }
                    // Создаем описание новой опрашиваемой переменной
                    DebuggerParameters.VarDescription varDesc =
                        requestedVarDesc == null ? new DebuggerParameters.VarDescription() : requestedVarDesc;
                    varDesc.Address    = var.Address;
                    varDesc.HasSign    = var.HasSign;
                    varDesc.Size       = var.Size;
                    varDesc.Name       = var.Name;
                    varDesc.MemoryType = var.Memory;
                    this.debuggerEngine.Parameters.ChartVars[idx] = varDesc;
                    // Добавляем переменную в очередь отладчика
                    this.debuggerEngine.AddReadItem(varDesc.Address, varDesc.MemoryType, varDesc.Size,
                                                    this.GetVarMarker(varDesc, idx), null, new ProceedingCompleetedDelegate(this.VarReaded));
                    this.plVarsView.GraphPane.CurveList[idx].Label.Text = varDesc.Name;
                    this.Refresh();
                }
                else
                {
                    // В ComboBox указана пустая строка
                    if (requestedVarDesc != null)
                    {
                        // Если по текущему индексу переменная уже опрашивалась, то удаляем ее из очереди отладчика и его параметров
                        this.debuggerEngine.RemoveReadItem(requestedVarDesc.Address, requestedVarDesc.MemoryType,
                                                           this.GetVarMarker(requestedVarDesc, idx));
                        this.debuggerEngine.Parameters.ChartVars[idx]       = null;
                        this.plVarsView.GraphPane.CurveList[idx].Label.Text = "Нет";
                    }
                    this.Refresh();
                }
            }
        }
示例#2
0
        //private void rbTcp_CheckedChanged(object sender, EventArgs e)
        //{
        //    if (this.rbTcp.Checked)
        //        this.engine.Parameters.InterfaceProtocol ="Tcp" /*System.Net.Sockets.ProtocolType.Tcp*/;
        //}

        //private void rbUdp_CheckedChanged(object sender, EventArgs e)
        //{
        //    if (this.rbUdp.Checked)
        //        this.engine.Parameters.InterfaceProtocol ="Udp" /*System.Net.Sockets.ProtocolType.Udp*/;
        //}

        /// <summary>
        /// запись в контроллер начальных значений
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            //if (din == null || din.Count == 0) return;
            //Kontel.Relkon.DebuggerParameters.DigitalSensorDescription dsd = din[0];
            foreach (Kontel.Relkon.DebuggerParameters.DigitalSensorDescription dsd in din)
            {
                ControllerVar v = _solution.Vars.GetVarByName(dsd.Name);
                if (v != null)
                {
                    this.engine.AddWriteItem(v.Address, MemoryType.XRAM, dsd.Value, dsd.Name + "writing", null, null);
                }
            }

            foreach (Kontel.Relkon.DebuggerParameters.AnalogSensorDescription dsd in adc)
            {
                ControllerVar v = _solution.Vars.GetVarByName(dsd.Name);
                if (v != null)
                {
                    this.engine.AddWriteItem(v.Address, dsd.MemoryType, dsd.Value, dsd.Name + "writing", null, null);
                }
            }
        }