public class Header { public static byte command = 0x03; public static byte[] uName = new byte[] { 0x20, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x01, 0x01, 0x00 }; public static byte[] password = new byte[] { 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x00 }; public static byte desc; public static byte param = 0x00; public static byte[] seq = new byte[2];
// desc = 0x01; // change relay // desc = 0x04; // query output
public static byte[] getChangeRelayHeader(byte[] _seq) { desc = 0x01; // change relay status
_seq[0] += Convert.ToByte(1);
seq[0] = _seq[0]; seq[1] = _seq[1];
List<byte> byteList = new List<byte>(); byteList.Add(command); byteList.AddRange(uName); byteList.AddRange(password); byteList.Add(desc); byteList.Add(param); byteList.AddRange(seq);
return byteList.ToArray(); }
public static byte[] getQueryRelayHeader(byte[] _seq) { desc = 0x04; // query relay output status
_seq[0] += Convert.ToByte(1);
seq[0] = _seq[0]; seq[1] = _seq[1];
List<byte> byteList = new List<byte>(); byteList.Add(command); byteList.AddRange(uName); byteList.AddRange(password); byteList.Add(desc); byteList.Add(param); byteList.AddRange(seq);
return byteList.ToArray(); } }
}
// concat header and payload then send /
byte[] headerBytes = Header.getChangeRelayHeader(seq);
byte[] payloadByte = Payload.getControlPayload(_channel, onOff); // channel, status IEnumerable<byte> bytesSent = headerBytes.Concat(payloadByte); // concat header and payload byte[] bs = bytesSent.ToArray();
socket.Send(bs, 0, 49, SocketFlags.None);
/
//byte[] header = { 0x03, // command
// 0x20, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //user U 55 len = 23 // 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x01, 0x01, 0x00, // 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, // passwd P 50 len = 19 // 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x00, // 0x01, // desc 0x01 // 0x00, // param // 0x00, 0x00 // seq // };