public void cannot_read_more_than_123_holding_registers() { var transport = A.Fake<IMbTransport>(); var mbmaster = new MbMaster(transport); var r = mbmaster.ReadHoldingRegisters(0, 1, 124); Assert.True(r.IsFailure); Assert.IsType<ArgumentOutOfRangeException>(r.Failure); }
private void Baudrate_Search() { byte br_lng = (byte)(br_enum.Length - 1); byte br_tmp = 5; SerialPort.BaudRate = br_enum[0]; ushort[] rBuf = null; while (rBuf == null && br_lng >= br_tmp) // перебор по br { SerialPort.BaudRate = br_enum[br_tmp]; status_line.Text = " Поиск "; try { rBuf = MbMaster.ReadHoldingRegisters((byte)address, 90, 10); } catch { ++br_tmp; } if (rBuf != null) { if ((rBuf[0] == 0x0102) && (rBuf[9] == 0x01)) { status_line.Text = " Подключен "; baudrate_label.BackColor = Color.Green; baudrate_label.Text = "Set"; databits_label.BackColor = Color.Green; databits_label.Text = "Set"; parity_label.BackColor = Color.Green; parity_label.Text = "Set"; stopbit_label.BackColor = Color.Green; stopbit_label.Text = "Set"; addr_label.BackColor = Color.Green; addr_label.Text = "Set"; Baudrate.SelectedIndex = br_tmp; checkBox1.CheckState = CheckState.Checked; br_faund = true; mod_faund = true; } } } }
private void connect_btn_Click(object sender, EventArgs e) { Connect_check(); if (IsConnected) { try { ushort[] addr = MbMaster.ReadHoldingRegisters(0x00, 0x68, 1); if (addr != null) { module_addr1.Text = addr[0].ToString(); addr_label.BackColor = Color.Green; addr_label.Text = "Set"; } } catch (Exception ex) { this.Text = (string.IsNullOrEmpty(ex.Message)) ? "Form1" : ("Form1... Error: " + ex.Message); } } }
private void Search_Click(object sender, EventArgs e) { if (!SerialPort.IsOpen) { SerialPort.Open(); } Baudrate_Search(); if (!mod_faund) { Parity_Search(); } if (!mod_faund) { Stop_Bit_Search(); } if (!mod_faund) // ваще не нашли { status_line.Text = " Не найден"; } else { baudrate_label.BackColor = Color.Green; baudrate_label.Text = "Set"; databits_label.BackColor = Color.Green; databits_label.Text = "Set"; parity_label.BackColor = Color.Green; parity_label.Text = "Set"; stopbit_label.BackColor = Color.Green; stopbit_label.Text = "Set"; addr_label.BackColor = Color.Green; addr_label.Text = "Set"; ushort[] Addr = null; try { Addr = MbMaster.ReadHoldingRegisters(1, 0x68, 1); // читаем адрес и обновляем } catch (Exception ex) { status_line.Text = " Ошибка адреса"; } if (Addr != null) { mb_packet.dev_address = (ushort)Addr[0]; module_addr1.Text = Addr[0].ToString(); addr_label.BackColor = Color.Green; addr_label.Text = "Set"; } else { module_addr1.Text = "0"; } } }
private void Connect_check() { SerialPort.BaudRate = br_enum[Baudrate.SelectedIndex]; switch (Databits.SelectedIndex) { case 0: SerialPort.DataBits = 8; break; case 1: SerialPort.DataBits = 9; break; } switch (Parity.SelectedIndex) { case 0: SerialPort.Parity = System.IO.Ports.Parity.None; break; case 1: SerialPort.Parity = System.IO.Ports.Parity.Odd; break; case 2: SerialPort.Parity = System.IO.Ports.Parity.Even; break; default: SerialPort.Parity = System.IO.Ports.Parity.None; break; } switch (Stopbit.SelectedIndex) { case 0: SerialPort.StopBits = System.IO.Ports.StopBits.One; break; case 1: SerialPort.StopBits = System.IO.Ports.StopBits.Two; break; case 2: SerialPort.StopBits = System.IO.Ports.StopBits.OnePointFive; break; default: SerialPort.StopBits = System.IO.Ports.StopBits.None; break; } status_line.Text = null; checkBox1.CheckState = CheckState.Unchecked; try { if (!SerialPort.IsOpen) { SerialPort.Open(); } //Thread read = //m_mbMaster = ModbusSerialMaster.CreateRtu(COM1); //m_mbMaster.Transport.ReadTimeout = 1000; //m_state = WorkState.Update; ushort[] tBuf = MbMaster.ReadHoldingRegisters(1, 60000, 1); ushort[] t1Buf = MbMaster.ReadHoldingRegisters(1, 60001, tBuf[0]); char[] sdff = new char[tBuf[0]]; for (int i = 0; i < tBuf[0]; i++) { sdff[i] = (char)t1Buf[i]; } string t3 = new string(sdff); if (t3 == Module) { status_line.Text = " Подключен " + Module; IsConnected = true; checkBox1.CheckState = CheckState.Checked; baudrate_label.BackColor = Color.Green; baudrate_label.Text = "Set"; databits_label.BackColor = Color.Green; databits_label.Text = "Set"; parity_label.BackColor = Color.Green; parity_label.Text = "Set"; stopbit_label.BackColor = Color.Green; stopbit_label.Text = "Set"; addr_label.BackColor = Color.Green; addr_label.Text = "Set"; } } catch (Exception ex) { status_line.Text = " Ошибка подключения"; checkBox1.CheckState = CheckState.Unchecked; MessageBox.Show(ex.Message, "Ошибка !!!", MessageBoxButtons.OK, MessageBoxIcon.Error); } //if(!COM1.IsOpen) //{ // COM1.Open(); // m_mbMaster = ModbusSerialMaster.CreateRtu(COM1); //} // rxBuf = m_mbMaster.ReadHoldingRegisters(0, 20, 1); }