internal ModbusTcpSession(IModbusProtocol modbusProtocol) { _modbusProtocol = modbusProtocol; this._slaveAddress = Constants.UndefinedSlaveAddress; _transactionId = 0; State = SessionState.Unidentified; }
public ModbusRtuSession(IModbusProtocol modbusProtocol, int slaveAddress) { _modbusProtocol = modbusProtocol; this._slaveAddress = slaveAddress; State = slaveAddress != Constants.UndefinedSlaveAddress ? SessionState.Identified : SessionState.Unidentified; }
void Test(IModbusScanner scanner, IModbusProtocol protocol, IModbusCommand cmd) { const int offset = 2; var wrap = protocol.Wrap(cmd); var request = new byte[offset + wrap.RequestLength]; wrap.FillRequest(request, offset); scanner.Append(request, offset, wrap.RequestLength); Assert.AreEqual(wrap.ToString(), scanner.Scan().ToString()); }
void Test(IModbusScanner scanner, IModbusProtocol protocol) { Test(scanner, protocol, new ModbusF01ReadCoils(0x01, 0x0203, 0x0405)); Test(scanner, protocol, new ModbusF02ReadInputs(0x01, 0x0203, 0x0405)); Test(scanner, protocol, new ModbusF03ReadHoldingRegisters(0x01, 0x0203, 0x0405)); Test(scanner, protocol, new ModbusF04ReadInputRegisters(0x01, 0x0203, 0x0405)); Test(scanner, protocol, new ModbusF05WriteCoil(0x01, 0x0203, true)); Test(scanner, protocol, new ModbusF05WriteCoil(0x01, 0x0203, false)); Test(scanner, protocol, new ModbusF06WriteRegister(0x01, 0x0203, 0x0405)); Test(scanner, protocol, new ModbusF15WriteCoils(0x01, 0x0203, bo())); Test(scanner, protocol, new ModbusF15WriteCoils(0x01, 0x0203, bo(true))); Test(scanner, protocol, new ModbusF15WriteCoils(0x01, 0x0203, bo(false))); Test(scanner, protocol, new ModbusF15WriteCoils(0x01, 0x0203, bo(true, false, true, false, true, false, true))); Test(scanner, protocol, new ModbusF15WriteCoils(0x01, 0x0203, bo(true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false))); Test(scanner, protocol, new ModbusF16WriteRegisters(0x01, 0x0203, us())); Test(scanner, protocol, new ModbusF16WriteRegisters(0x01, 0x0203, us(0x0405, 0x0607, 0x0809, 0x0A0B))); Test(scanner, protocol, new ModbusF16WriteRegisters(0x01, 0x0203, us(0x0405, 0x0607, 0x0809, 0x0A0B, 0x0405, 0x0607, 0x0809, 0x0A0B, 0x0405, 0x0607, 0x0809, 0x0A0B))); }
public ModbusMaster(IModbusStream stream, IModbusProtocol protocol) { this.stream = stream; this.protocol = protocol; }
public ModbusFwdSession(IModbusProtocol modbusProtocol, Settings settings) { _modbusSession = new ModbusTcpSession(modbusProtocol, settings.ParentSlaveAddress); _settings = settings; ApplySettings(); }