コード例 #1
0
 public void CreateSlaveException_SlaveExceptionResponse()
 {
     SlaveExceptionResponse response = new SlaveExceptionResponse(12, Modbus.ReadCoils, 1);
     SlaveException se = new SlaveException(response);
     Assert.AreEqual(String.Format("Exception of type 'Modbus.SlaveException' was thrown.\r\nFunction Code: {0}\r\nException Code: {1} - {2}",
         response.FunctionCode, response.SlaveExceptionCode, Resources.IllegalFunction), se.Message);
 }
コード例 #2
0
 public void CreateSlaveExceptionResponse()
 {
     SlaveExceptionResponse response = new SlaveExceptionResponse(11, Modbus.ReadCoils + Modbus.ExceptionOffset, 2);
     Assert.AreEqual(11, response.SlaveAddress);
     Assert.AreEqual(Modbus.ReadCoils + Modbus.ExceptionOffset, response.FunctionCode);
     Assert.AreEqual(2, response.SlaveExceptionCode);
 }
コード例 #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SlaveException"/> class.
 /// </summary>
 /// <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"></see> that holds the serialized object data about the exception being thrown.</param>
 /// <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"></see> that contains contextual information about the source or destination.</param>
 /// <exception cref="T:System.Runtime.Serialization.SerializationException">The class name is null or <see cref="P:System.Exception.HResult"></see> is zero (0). </exception>
 /// <exception cref="T:System.ArgumentNullException">The info parameter is null. </exception>
 protected SlaveException(SerializationInfo info, StreamingContext context)
     : base(info, context)
 {
     if (info != null)
     {
         _slaveExceptionResponse = new SlaveExceptionResponse(info.GetByte(SlaveAddressPropertyName), info.GetByte(FunctionCodePropertyName), info.GetByte(SlaveExceptionCodePropertyName));
     }
 }
コード例 #4
0
 public void CreateSlaveException_CustomMessageAndSlaveExceptionResponse()
 {
     SlaveExceptionResponse response = new SlaveExceptionResponse(12, Modbus.ReadCoils, 2);
     string customMessage = "custom message";
     SlaveException se = new SlaveException(customMessage, response);
     Assert.AreEqual(String.Format("{0}\r\nFunction Code: {1}\r\nException Code: {2} - {3}",
         customMessage, response.FunctionCode, response.SlaveExceptionCode, Resources.IllegalDataAddress), se.Message);
 }
コード例 #5
0
 public void CreateModbusMessageSlaveExceptionResponse()
 {
     SlaveExceptionResponse response =
         ModbusMessageFactory.CreateModbusMessage<SlaveExceptionResponse>(new byte[] {11, 129, 2});
     SlaveExceptionResponse expectedException = new SlaveExceptionResponse(11,
         Modbus.ReadCoils + Modbus.ExceptionOffset, 2);
     Assert.AreEqual(expectedException.FunctionCode, response.FunctionCode);
     Assert.AreEqual(expectedException.SlaveAddress, response.SlaveAddress);
     Assert.AreEqual(expectedException.MessageFrame, response.MessageFrame);
     Assert.AreEqual(expectedException.ProtocolDataUnit, response.ProtocolDataUnit);
 }
コード例 #6
0
 public void SlaveExceptionResponsePDU()
 {
     SlaveExceptionResponse response = new SlaveExceptionResponse(11, Modbus.ReadCoils + Modbus.ExceptionOffset,
         2);
     Assert.AreEqual(new byte[] {response.FunctionCode, response.SlaveExceptionCode}, response.ProtocolDataUnit);
 }
コード例 #7
0
 internal SlaveException(string message, SlaveExceptionResponse slaveExceptionResponse)
     : base(message)
 {
     _slaveExceptionResponse = slaveExceptionResponse;
 }
コード例 #8
0
 internal SlaveException(SlaveExceptionResponse slaveExceptionResponse)
 {
     _slaveExceptionResponse = slaveExceptionResponse;
 }