コード例 #1
0
 public void CalculateLrcNull()
 {
     ModbusUtility.CalculateLrc(null);
     Assert.Fail();
 }
コード例 #2
0
		public void CalculateLrc()
		{
			ReadCoilsInputsRequest request = new ReadCoilsInputsRequest(Modbus.ReadCoils, 1, 1, 10);
			Assert.AreEqual(243, ModbusUtility.CalculateLrc(new byte[] { 1, 1, 0, 1, 0, 10 }));
		}
コード例 #3
0
 internal override bool ChecksumsMatch(IModbusMessage message, byte[] messageFrame)
 {
     return(ModbusUtility.CalculateLrc(message.MessageFrame) == messageFrame[messageFrame.Length - 1]);
 }
コード例 #4
0
		public void CalculateLrcEmpty()
		{
			Assert.AreEqual(0, ModbusUtility.CalculateLrc(new byte[] {}));
		}
コード例 #5
0
		public void CalculateLrc2()
		{
			//: 02 01 0000 0001 FC
			ReadCoilsInputsRequest request = new ReadCoilsInputsRequest(Modbus.ReadCoils, 2, 0, 1);			
			Assert.AreEqual(252, ModbusUtility.CalculateLrc(new byte[] { 2, 1, 0, 0, 0, 1}));
		}
コード例 #6
0
        public void CreateResponse_SlaveException()
        {
            ModbusTransport transport = new ModbusAsciiTransport(MockRepository.GenerateStub <IStreamResource>());

            byte[]         frame   = { 2, 129, 2 };
            IModbusMessage message = transport.CreateResponse <ReadCoilsInputsResponse>(frame.Concat(SequenceUtility.ToSequence(ModbusUtility.CalculateLrc(frame))).ToArray());

            Assert.IsTrue(message is SlaveExceptionResponse);
        }
コード例 #7
0
 public void CalculateLrcNull()
 {
     Assert.Throws <ArgumentNullException>(() => ModbusUtility.CalculateLrc(null));
 }
コード例 #8
0
 internal override bool ChecksumsMatch(IModbusMessage message, byte[] messageFrame) =>
 ModbusUtility.CalculateLrc(message.MessageFrame) == messageFrame[^ 1];