public static bool WritePacket(int DevAddr, int StartReg, int RegCount, byte[] Datas, int DataLength) { if (CommByRS232.CommPort.IsOpen == false) { MessageBox.Show("端口未打开,请先打开端口!"); return(false); } ModBusProc.CreateTxHeader(ref Modbus232, DevAddr, ModBusProc.CmdCode_Write, StartReg, RegCount, Datas, DataLength); byte[] TxBuffer = new byte[320]; int TxLength = ModBusProc.CreateTxMessage(ref Modbus232, ref TxBuffer); return(SendData(TxBuffer, TxLength, 8)); }
public static bool ReadPacket(int DevAddr, int StartReg, int RegCount, ref byte[] Datas, ref int DataLength) { if (CommByRS232.CommPort.IsOpen == false) { MessageBox.Show("端口未打开,请先打开端口!"); return(false); } bool R; ModBusProc.CreateTxHeader(ref Modbus232, DevAddr, ModBusProc.CmdCode_Read, StartReg, RegCount, Datas, 0); byte[] TxBuffer = new byte[320]; int TxLength = ModBusProc.CreateTxMessage(ref Modbus232, ref TxBuffer); R = SendData(TxBuffer, TxLength, 5 + RegCount * 2); if (R == true) { Array.Copy(Modbus232.RxMsg.DataBuffer, Datas, Modbus232.RxMsg.DataLenth); DataLength = Modbus232.RxMsg.DataLenth; } return(R); }