[TestMethod] // Handling Request on Server public void WriteSingleCoilPDU_LifeCycle() { var RandomGen = new Random(); int Address = RandomGen.Next(MinAddress, MaxAddress); var Value = (RandomGen.Next(2) != 0); var Server = new BaseModbusServer(); Server.AddCoil(Address); var ClientPDU = new WriteSingleCoilPDU(Address, Value); var Request = ClientPDU.BuildRequest(); var ServerPDU = new WriteSingleCoilPDU(); var ReqStatus = ServerPDU.CheckRequest(Request); Assert.AreEqual(Status.OK, ReqStatus, "Recognition Error"); Assert.AreEqual(Address, ServerPDU.StartingAddress, "Whong Address recognition in CheckRequest"); ServerPDU.Handle(Server); Assert.AreEqual(Value, ServerPDU.Value, "Whong Address recognition in CheckRequest"); ClientPDU.CheckResponse(ServerPDU.BuildResponse()); Assert.AreEqual(Value, ClientPDU.Value, "Whong Address recognition in CheckRequest"); }
[TestMethod] // Oficial Example public void WriteSingleCoilPDU_DocSampleReq() { var PDU = new WriteSingleCoilPDU(172, true); var ExpectedReq = new byte[] { 0x05, // Function Code 0x00, // Starting Address Hi 0xAC, // Starting Address Lo 0xFF, // Quantity of Inputs Hi 0x00, // Quantity of Inputs Lo }; var ActualReq = PDU.BuildRequest(); CollectionAssert.AreEqual(ExpectedReq, ActualReq, "Wrong Request"); }