Example #1
0
        public void ErrorSerializeTcpTest()
        {
            string      expected = "00-05-00-00-00-03-0A-81-02";
            ModbusError error    = ModbusError.Create(10, 5, 0, 1, ModbusErrorCode.IllegalDataAddress);
            string      jstring  = JsonConvert.SerializeObject(error);
            ModbusError error2   = JsonConvert.DeserializeObject <ModbusError>(jstring);
            string      actual   = System.BitConverter.ToString(error2.Encode());

            Assert.AreEqual(expected, actual);
        }
Example #2
0
        public void ErrorConvertToTcpTest()
        {
            string      expected = "00-05-00-00-00-03-0A-81-02";
            ModbusError error    = ModbusError.Create(10, 1, ModbusErrorCode.IllegalDataAddress);

            byte[] msg    = error.ConvertToTcp(10, 5, 0);
            string actual = System.BitConverter.ToString(msg);

            Assert.AreEqual(expected, actual);
        }
Example #3
0
        public void ErrorRtuTest()
        {
            string      expected = "0A-81-02-B0-53";
            ModbusError error    = ModbusError.Create(10, 1, ModbusErrorCode.IllegalDataAddress);

            byte[] msg    = error.Encode();
            string actual = System.BitConverter.ToString(msg);

            Assert.AreEqual(expected, actual);
        }
Example #4
0
 /// <summary>
 /// 关闭串口
 /// </summary>
 public void CloseSerialPort()
 {
     try
     {
         serialPort.Close();
         IsOpen = serialPort.IsOpen;
     }
     catch (Exception)
     {
         errorCode = ModbusError.CloseFailed;
     }
 }
Example #5
0
 /// <summary>
 /// 打开串口
 /// </summary>
 public void OpenSerialPort()
 {
     try
     {
         serialPort.Open();
         IsOpen = serialPort.IsOpen;
     }
     catch (Exception)
     {
         errorCode = ModbusError.OpenFailed;
     }
 }
Example #6
0
        internal ModbusError SendReadCommand <T>(ModbusRequest request, out T responseType) where T : class, IModbusResponse
        {
            byte[] data         = request.GetPDU();
            var    responseData = SendReadCommand(data);
            var    response     = new ModbusResponse(responseData);

            if (response.ExceptionCode > 0)
            {
                var err = new ModbusError(response.ExceptionCode);
                responseType = null;
                return(err);
            }
            else
            {
                responseType = (T)Activator.CreateInstance(typeof(T), response);
                return(null);
            }
        }