Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Обработка ошибки при разрыве связи

64K
25 октября 2010 года
Streamx1
1 / / 25.10.2010
Подскажите пожалуйста. Есть програмка которая обращается к другому устройству через COM порт. Но если это устройство отсоеденить от COM порта и нажать OnButton_Reading_Click, то соответственно не выполнится метод обращения ushort[] registers1 = master.ReadHoldingRegisters(slaveId, startAddress, numregisters) и программа зависнит. Как можно сделать исключение которое спасает от таких зависаний?

Если производить чтение в другом потоке, то как добавить таймер для обработки таймаута соединения?



Код:
private void OnButton_Reading_Click(object sender, EventArgs e)
        {
            try
            {
                using (SerialPort port = new SerialPort(textBox_port.Text))
                {
                    // configure serial port
                    port.BaudRate = Convert.ToInt32(this.textBox_speed.Text);
                    port.DataBits = 8;
                    port.Parity = Parity.None;
                    port.StopBits = StopBits.One;
                    port.Open();

                    // create modbus master
                    IModbusSerialMaster master = ModbusSerialMaster.CreateRtu(port);

                    byte slaveId = Convert.ToByte(textBox_adress.Text);
                    ushort startAddress = UInt16.Parse(textBox_Register.Text, NumberStyles.HexNumber);
                    ushort numregisters = 1;

                    // read registers
                    ushort[] registers1 = master.ReadHoldingRegisters(slaveId, startAddress, numregisters);

                    string Mlb1 = Convert.ToString(registers1[0]);
                    this.textBox_Reading.Text = Mlb1;


                }
            }

            catch (Exception g)
            {
                MessageBox.Show(g.Message);
            }
        }
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог