public static ModbusHeader FromNetworkBuffer(byte[] buffer) { var header = new ModbusHeader(); int size = Marshal.SizeOf(header); var ptr = Marshal.AllocHGlobal(size); Marshal.Copy(buffer, 0, ptr, size); header = (ModbusHeader)Marshal.PtrToStructure(ptr, header.GetType()); Marshal.FreeHGlobal(ptr); header.Length = IPAddress.NetworkToHostOrder(header.Length); header.ProtocolIdentifier = IPAddress.NetworkToHostOrder(header.ProtocolIdentifier); header.TransactionIdentifier = IPAddress.NetworkToHostOrder(header.TransactionIdentifier); return(header); }
public ModbusBase() { Header = new ModbusHeader(); }