Esempio n. 1
0
        private void HandsetModbusThread()
        {
            Log.Debug("_____HandsetModbusThread__1");

            Log.Debug(String.Format("_____HandsetModbusThread___com___{0}", ModbusComNum));
            try
            {
                _modbusComInst = new SerialPort(ModbusComNum);
            }
            catch (Exception ex)
            {
                Log.Debug("____HandsetModbusThread.Show ex, BEFORE");
                System.Windows.MessageBox.Show(ex.Message);
                Log.Debug("____HandsetModbusThread.Show ex, AFTER");
                return;
            }

            using (_modbusComInst)
            {
                Log.Debug("_____HandsetModbusThread__using SerialPort COM3__BaudRate 9600 DataBits 8 Parity None StopBits One");
                _modbusComInst.BaudRate = 9600;
                _modbusComInst.DataBits = 8;
                _modbusComInst.Parity   = Parity.None;
                _modbusComInst.StopBits = StopBits.One;
                _modbusComInst.Open();

                IModbusSerialMaster master = ModbusSerialMaster.CreateRtu(_modbusComInst);
                // create modbus master
                //byte slaveId = 1;
                byte   slaveId      = 254;
                ushort startAddress = 0;
                ushort numRegisters = 2;

                bool[] bools;

                //ushort[] registers = master.ReadInputRegisters(slaveId, startAddress, numRegisters);

                while (true)
                {
                    Log.Debug("_____HandsetModbusThread__using SerialPort COM3__ while (true)_1");
                    bools = master.ReadInputs(slaveId, startAddress, numRegisters);

                    if (HandsetLeft != null && HandsetLeft.IsEnabled)
                    {
                        Log.Debug("_____HandsetModbusThread__using SerialPort COM3__ while (true)__HandsetLeft_1");

                        bool offhook = !bools[0];

                        if (offhook != HandsetLeft.IsOffHook)
                        {
                            HandsetLeft.IsOffHook = offhook;
                        }
                        Log.Debug("_____HandsetModbusThread__using SerialPort COM3__ while (true)__HandsetLeft_2");
                    }

                    if (HandsetRight != null && HandsetRight.IsEnabled)
                    {
                        Log.Debug("_____HandsetModbusThread__using SerialPort COM3__ while (true)__HandsetRight");

                        bool offhook = !bools[1];

                        if (offhook != HandsetRight.IsOffHook)
                        {
                            HandsetRight.IsOffHook = offhook;
                        }
                        Log.Debug("_____HandsetModbusThread__using SerialPort COM3__ while (true)__HandsetRight2");
                    }

                    Log.Debug("_____HandsetModbusThread__using SerialPort COM3__ while (true)_2");
                    Thread.Sleep(500);
                }
            }
            Log.Debug("_____HandsetModbusThread__1__using SerialPort COM3");
        }
Esempio n. 2
0
 public bool ReadDiscrete(byte slaveId, ushort address)
 {
     return(master.ReadInputs(slaveId, address, 1)[0]);
 }