public void Send(int address, MessageType messageType, byte[] message) { byte[] header = NecDisplaySocket.CreateHeader(address, messageType, message.Length); byte[] packet = new byte[7 + message.Length]; Array.Copy(header, packet, header.Length); Array.Copy(message, 0, packet, header.Length, message.Length); int chk = 0; for (int i = 1; i < packet.Length; i++) { chk = chk ^ packet[i]; } byte[] finalPacket = new byte[packet.Length + 2]; Array.Copy(packet, finalPacket, packet.Length); finalPacket[packet.Length] = (byte)chk; finalPacket[packet.Length + 1] = 0x0D; #if DEBUG //CrestronConsole.Print("NEC Tx: "); //Tools.PrintBytes(finalPacket, finalPacket.Length); #endif _comPort.Send(finalPacket, finalPacket.Length); }
public NecDisplay(string name, string address, int displayId) : base(name) { var inputs = new List <DisplayDeviceInput> { DisplayDeviceInput.VGA, DisplayDeviceInput.DVI, DisplayDeviceInput.DVI2, DisplayDeviceInput.DisplayPort, DisplayDeviceInput.DisplayPort2, DisplayDeviceInput.HDMI1, DisplayDeviceInput.HDMI2, DisplayDeviceInput.HDMI3, DisplayDeviceInput.HDMI4 }; _availableInputs = new ReadOnlyCollection <DisplayDeviceInput>(inputs); _displayId = displayId; _socket = new NecDisplaySocket(address); _socket.StatusChanged += SocketOnStatusChanged; _socket.ReceivedData += SocketOnReceivedData; AudioLevels = new AudioLevelCollection { this }; }