コード例 #1
0
        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);
        }
コード例 #2
0
        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
            };
        }