private void Form1_Load(object sender, EventArgs e) { //_comPort = new SerialPort("COM1", 9600, Parity.Even, 8, StopBits.One); _comPort = new SerialPort(serialPortPreset, serialPortBaudratePreset, serialPortParityPreset, 8, serialPortStopbitsPreset); _comPort.Open(); _comPort.DiscardInBuffer(); myModbusRtuInterface = new ModbusRtuInterface(_comPort); //myModbusMaster = new ModbusMaster(myModbusRtuInterface); myModbusMaster = new RoSchmiModbusMaster(myModbusRtuInterface); //myModbusMaster.NewSerialDataRecieved += new EventHandler<ReceivedDataEventArgs>(_spManager_NewSerialDataRecieved); myModbusMaster.NewSerialDataRecieved += myModbusMaster_NewSerialDataRecieved; textBoxComPort.Text = serialPortPreset; textBoxAddress.Text = slaveAddressPreset; textBoxCoilAddress.Text = "0000"; textBoxCoilAddressRead.Text = "0000"; textBoxHoldingRegsRead.Text = "0000"; textBoxInputRegsRead.Text = "0000"; textBoxRegWriteValue.Text = "0000"; textBoxRegisterAddress.Text = "0000"; textBoxHoldingRegsWrite.Text = "0000"; textBoxRegValue_00.Text = "0000"; textBoxRegValue_01.Text = "0000"; textBoxRegValue_02.Text = "0000"; textBoxRegValue_03.Text = "0000"; }
static void StartSlave() { //SLAVE var slavePort = GHIElectronics.TinyCLR.Devices.Uart.UartController.FromName (GHIElectronics.TinyCLR.Pins.SC20260.UartPort.Uart5); var setting = new UartSetting() { BaudRate = 19200, DataBits = 8, Parity = UartParity.None, StopBits = UartStopBitCount.One, Handshaking = UartHandshake.None, }; slavePort.SetActiveSettings(setting); slavePort.Enable(); //new SerialPort("COM1", 19200, Parity.None, 8, StopBits.One); var RtuInterface = new ModbusRtuInterface(slavePort, 19200, 8, UartStopBitCount.One, UartParity.None); Debug.WriteLine("rtu open:" + RtuInterface.isOpen + ", rtu connection:" + RtuInterface.IsConnectionOk); byte ModbusID = 5; slave = new ModbusSlave(RtuInterface, ModbusID); slave.CoilsChanged += Slave_CoilsChanged; slave.RegistersChanged += Slave_RegistersChanged; // // Init the SLAVE REGISTERS // initSlave(); // // Start the slave now // slave.Start(); Debug.WriteLine("running:" + slave.IsRunning); }