public void PresetMultipleRegsRequest() { byte slaveAddress = 1; Function function = Function.PresetMultipleRegs; ushort address = 0x0002; ushort[] values = { TestClass.CoilOn, TestClass.CoilOff, 0x7777 }; byte[] ethalon = { slaveAddress , (byte)function , Helper.Hi(address) , Helper.Lo(address) , Helper.Hi((ushort)values.Length) , Helper.Lo((ushort)values.Length) , (byte)(values.Length * 2) , Helper.Hi(values[0]) , Helper.Lo(values[0]) , Helper.Hi(values[1]) , Helper.Lo(values[1]) , Helper.Hi(values[2]) , Helper.Lo(values[2]) }; TestClass test = TestClass.CreateWriteRequest(slaveAddress, function, address, values); Assert.IsTrue(ethalon.SequenceEqual(test.Bytes)); }
public void ReadExceptionStatusRequest() { byte slaveAddress = 1; Function function = Function.ReadExceptionStatus; byte[] ethalon = { slaveAddress, (byte)function }; TestClass test = TestClass.CreateReadRequest(slaveAddress, function); Assert.IsTrue(ethalon.SequenceEqual(test.Bytes)); }
public void FetchCommEventLogRequest() { byte slaveAddress = 1; Function function = Function.FetchCommEventLog; byte[] ethalon = { slaveAddress, (byte)function }; TestClass test = TestClass.CreateReadRequest(slaveAddress, function); Assert.IsTrue(ethalon.SequenceEqual(test.Bytes)); }
public void BadResponse() { byte slaveAddress = 1; Function function = Function.ReadCoilStatus; ExceptionCode code = ExceptionCode.IllegalFunction; byte[] ethalon = { slaveAddress , (byte)(0x80 | (byte)function) , (byte)code }; TestClass test = TestClass.CreateBadResponse(slaveAddress, function, code); Assert.IsTrue(ethalon.SequenceEqual(test.Bytes)); }
public void FetchCommEventCtrResponse() { byte slaveAddress = 1; Function function = Function.FetchCommEventCtr; ushort[] data = { 0x2233, 0x4455 }; byte[] ethalon = { slaveAddress , (byte)function , 0x22, 0x33, 0x44, 0x55 }; TestClass test = TestClass.CreateResponse(slaveAddress, function, data); Assert.IsTrue(ethalon.SequenceEqual(test.Bytes)); }
public void ReadExceptionStatusResponse() { byte slaveAddress = 1; Function function = Function.ReadExceptionStatus; ushort data = 0x2233; byte[] ethalon = { slaveAddress , (byte)function , 0x22, 0x33 }; TestClass test = TestClass.CreateResponse(slaveAddress, function, data); Assert.IsTrue(ethalon.SequenceEqual(test.Bytes)); }
public void ReadCoilStatusResponse() { byte slaveAddress = 1; Function function = Function.ReadCoilStatus; ushort[] data = { TestClass.CoilOn, TestClass.CoilOff, 0x7777 }; byte[] ethalon = { slaveAddress , (byte)function , 1 , 5 }; TestClass test = TestClass.CreateResponse(slaveAddress, function, data); Assert.IsTrue(ethalon.SequenceEqual(test.Bytes)); }
public void ReadInputRegistersResponse() { byte slaveAddress = 1; Function function = Function.ReadInputRegisters; ushort[] data = { 0x2233, 0x4455, 0x6677 }; byte[] ethalon = { slaveAddress , (byte)function , 6 , 0x22, 0x33, 0x44, 0x55, 0x66, 0x77 }; TestClass test = TestClass.CreateResponse(slaveAddress, function, data); Assert.IsTrue(ethalon.SequenceEqual(test.Bytes)); }
public void ReadCoilStatusRequest() { byte slaveAddress = 1; Function function = Function.ReadCoilStatus; ushort address = 0x0002; ushort coilCount = 0x0004; byte[] ethalon = { slaveAddress , (byte)function , Helper.Hi(address) , Helper.Lo(address) , Helper.Hi(coilCount) , Helper.Lo(coilCount) }; TestClass test = TestClass.CreateReadRequest(slaveAddress, function, address, coilCount); Assert.IsTrue(ethalon.SequenceEqual(test.Bytes)); }
public void PresetSingleRegisterResponse() { byte slaveAddress = 1; Function function = Function.PresetSingleRegister; ushort address = 0x2233; ushort count = 0x4455; byte[] ethalon = { slaveAddress , (byte)function , Helper.Hi(address) , Helper.Lo(address) , Helper.Hi(count) , Helper.Lo(count) }; TestClass test = TestClass.CreateResponse(slaveAddress, function, address, count); Assert.IsTrue(ethalon.SequenceEqual(test.Bytes)); }
public void PresetSingleRegisterRequest() { byte slaveAddress = 1; Function function = Function.PresetSingleRegister; ushort address = 0x0002; ushort value = 0x0003; byte[] ethalon = { slaveAddress , (byte)function , Helper.Hi(address) , Helper.Lo(address) , Helper.Hi(value) , Helper.Lo(value) }; TestClass test = TestClass.CreateWriteRequest(slaveAddress, function, address, value); Assert.IsTrue(ethalon.SequenceEqual(test.Bytes)); }
public void DiagnosticRequest() { byte slaveAddress = 1; Function function = Function.Diagnostic; ushort subfunction = 0x0002; ushort data = 0x0004; byte[] ethalon = { slaveAddress , (byte)function , Helper.Hi(subfunction) , Helper.Lo(subfunction) , Helper.Hi(data) , Helper.Lo(data) }; TestClass test = TestClass.CreateReadRequest(slaveAddress, function, subfunction, data); Assert.IsTrue(ethalon.SequenceEqual(test.Bytes)); }
public void ReadHoldingRegistersRequest() { byte slaveAddress = 1; Function function = Function.ReadHoldingRegisters; ushort address = 0x0002; ushort regCount = 0x0004; byte[] ethalon = { slaveAddress , (byte)function , Helper.Hi(address) , Helper.Lo(address) , Helper.Hi(regCount) , Helper.Lo(regCount) }; TestClass test = TestClass.CreateReadRequest(slaveAddress, function, address, regCount); Assert.IsTrue(ethalon.SequenceEqual(test.Bytes)); }
public void ForceMultipleCoilsResponse() { byte slaveAddress = 1; Function function = Function.ForceMultipleCoils; ushort address = 0x2233; // no check for coil count ushort count = 0x4455; byte[] ethalon = { slaveAddress , (byte)function , Helper.Hi(address) , Helper.Lo(address) , Helper.Hi(count) , Helper.Lo(count) }; TestClass test = TestClass.CreateResponse(slaveAddress, function, address, count); Assert.IsTrue(ethalon.SequenceEqual(test.Bytes)); }
public void ForceMultipleCoilsRequest() { byte slaveAddress = 1; Function function = Function.ForceMultipleCoils; ushort address = 0x0002; ushort[] values = { TestClass.CoilOn, TestClass.CoilOff, 0x7777 }; byte[] ethalon = { slaveAddress , (byte)function , Helper.Hi(address) , Helper.Lo(address) , Helper.Hi(3) , Helper.Lo(3) , 1 , 0x05 }; TestClass test = TestClass.CreateWriteRequest(slaveAddress, function, address, values); Assert.IsTrue(ethalon.SequenceEqual(test.Bytes)); }
public void ForceSingleCoilRequest() { byte slaveAddress = 1; Function function = Function.ForceSingleCoil; ushort address = 0x0002; /// no check for coil value ushort[] values = { TestClass.CoilOn, TestClass.CoilOff, 0x7777 }; foreach (var value in values) { byte[] ethalon = { slaveAddress , (byte)function , Helper.Hi(address) , Helper.Lo(address) , Helper.Hi(value) , Helper.Lo(value) }; TestClass test = TestClass.CreateWriteRequest(slaveAddress, function, address, value); Assert.IsTrue(ethalon.SequenceEqual(test.Bytes)); } }