Beispiel #1
0
        private void timer2_Tick(object sender, EventArgs e)
        {
            timer2.Stop();
            //if()progressBarCounter++;
            if (serialPort1.BytesToRead - 3 > HartProtocol.GetCommandDataLength(HartProtocol.lastCommand))
            {
                answerTimedOut = false;
                incomingMessageProcessor();// HartProtocol.GetCommandDataLength(HartProtocol.lastCommand)) incomingMessageProcessor();
                if ((ReadDataCRCOk) && (templateSelected == 1))
                {
                    devicesArr[HartProtocol.SlaveAddress].address          = Convert.ToByte(HartProtocol.SlaveAddress);
                    devicesArr[HartProtocol.SlaveAddress].devType          = Convert.ToByte((Convert.ToByte(HartProtocol.DevTypeCode) & 0x10) >> 4);
                    devicesArr[HartProtocol.SlaveAddress].devName          = "ДВСТ-" + Convert.ToString(Convert.ToByte(HartProtocol.DevTypeCode) & 0x0f);
                    devicesArr[HartProtocol.SlaveAddress].serialNum        = HartProtocol.DevSerialNumber;
                    devicesArr[HartProtocol.SlaveAddress].firmwareRevision = Convert.ToByte(HartProtocol.SoftwareRev);
                    devicesArr[HartProtocol.SlaveAddress].enabled          = true;
                    ListViewItem newItem;
                    if ((devicesArr[HartProtocol.SlaveAddress].enabled) && (templateArrIndex % 2 != 0))
                    {
                        devicesArr[HartProtocol.SlaveAddress].setValues(devicesArr[HartProtocol.SlaveAddress].devType);

                        //newItem.SubItems.Add(devicesArr[i].address.ToString());
                        //newItem.SubItems.Add(devicesArr[i].devName);
                        //newItem.SubItems.Add(devices.firmware.bootloader.ToString());
                        //newItem.SubItems.Add(devicesArr[i].serialNum.ToString());
                        //newItem.SubItems.Add(devicesArr[i].firmwareRevision.ToString());
                        newItem = new ListViewItem(devicesArr[HartProtocol.SlaveAddress].devs);
                        listView1.Items.Add(newItem);
                    }
                }
                if ((ReadDataCRCOk) && (templateSelected == 2))
                {
                    //CRCErrorsCounter++;
                    //this.label3.Text = "Ошибок приёма:" + CRCErrorsCounter.ToString();
                    if (progressBarCounter > toolStripProgressBar1.Value)
                    {
                        toolStripProgressBar1.Value++;
                    }
                }
            }
            else
            {
                //ReadBytesLastCycle = serialPort1.BytesToRead;
                answerTimedOut = true;

                textBox3.AppendText(DateTime.Now.ToString() + "  таймаут ответа от устройства по адресу " + Convert.ToString(HartProtocol.SlaveAddress) + "\r\n");
                //timer2.Start();
            }
            if ((templateArrIndex % 2 != 0) && (templateArr[templateArrIndex] <= 0x10))
            {
                // if (templateArr[templateArrIndex] == 0x00)
                if (lastSearchAddress != HartProtocol.SlaveAddress)
                {
                    HartProtocol.SlaveAddress++;
                    //progressBarCounter++;
                    toolStripProgressBar1.Value++;
                }
            }
        }
Beispiel #2
0
        private void timer4_Tick(object sender, EventArgs e)
        {
            timer4.Stop();

            if (serialPort1.BytesToRead - 3 > HartProtocol.GetCommandDataLength(HartProtocol.lastCommand))
            {
                answerTimedOut = false;
                incomingMessageProcessor();// HartProtocol.GetCommandDataLength(HartProtocol.lastCommand)) incomingMessageProcessor();
                if ((ReadDataCRCOk) && (HartProtocol.lastCommand == 19))
                {
                    textBox3.AppendText("Установлен серийный номер" + numericUpDown3.Value.ToString() + "\r\n");
                    devicesArr[HartProtocol.SlaveAddress].serialNum = Convert.ToInt32(numericUpDown3.Value);
                    ListViewItem newItem;
                    listView1.Items.RemoveAt(0);//вообще нужно поменять для выбранного индекса.
                    devicesArr[HartProtocol.SlaveAddress].setValues(devicesArr[HartProtocol.SlaveAddress].devType);
                    newItem = new ListViewItem(devicesArr[HartProtocol.SlaveAddress].devs);
                    listView1.Items.Add(newItem);
                }
                if ((ReadDataCRCOk) && (HartProtocol.lastCommand == 6))
                {
                    textBox3.AppendText("Изменен адрес устройства на " + numericUpDown2.Value.ToString() + "\r\n");
                    devicesArr[HartProtocol.SlaveAddress].address = Convert.ToByte(numericUpDown2.Value);
                    ListViewItem newItem;
                    listView1.Items.RemoveAt(0);//вообще нужно поменять для выбранного индекса.
                    devicesArr[HartProtocol.SlaveAddress].setValues(devicesArr[HartProtocol.SlaveAddress].devType);
                    newItem = new ListViewItem(devicesArr[HartProtocol.SlaveAddress].devs);
                    listView1.Items.Add(newItem);
                }
            }
            else
            {
                //ReadBytesLastCycle = serialPort1.BytesToRead;
                answerTimedOut = true;

                textBox3.AppendText(DateTime.Now.ToString() + "  таймаут ответа от устройства по адресу " + Convert.ToString(HartProtocol.SlaveAddress) + "\r\n");
                //timer2.Start();
            }
        }