Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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;
                    }
                }
            }
        }
Esempio n. 3
0
        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);
                }
            }
        }
Esempio n. 4
0
        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";
                }
            }
        }
Esempio n. 5
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);
        }