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); }
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); }
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); }
/// <summary> /// 关闭串口 /// </summary> public void CloseSerialPort() { try { serialPort.Close(); IsOpen = serialPort.IsOpen; } catch (Exception) { errorCode = ModbusError.CloseFailed; } }
/// <summary> /// 打开串口 /// </summary> public void OpenSerialPort() { try { serialPort.Open(); IsOpen = serialPort.IsOpen; } catch (Exception) { errorCode = ModbusError.OpenFailed; } }
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); } }