Ejemplo n.º 1
0
 private void ComPortOnSerialDataReceived(IComPortDevice device, ComPortSerialDataEventArgs args)
 {
     foreach (var b in args.SerialData.ToByteArray())
     {
         RxQueue.Enqueue(b);
     }
 }
Ejemplo n.º 2
0
        private void ComPortOnSerialDataReceived(IComPortDevice receivingComPort, ComPortSerialDataEventArgs args)
        {
            var bytes = args.SerialData.ToByteArray();

#if DEBUG
            //Debug.WriteWarn("Lg Serial Rx");
            //Tools.PrintBytes(bytes, 0, bytes.Length, true);
#endif
            foreach (var b in bytes)
            {
                _rxQueue.Enqueue(b);
            }
#if DEBUG
            //Debug.WriteWarn("Bytes in queue", _rxQueue.Count.ToString());
#endif
            if (_rxThread != null && _rxThread.ThreadState == Thread.eThreadStates.ThreadRunning)
            {
                return;
            }

            _rxThread = new Thread(ReceiveBufferProcess, null)
            {
                Priority = Thread.eThreadPriority.UberPriority,
                Name     = string.Format("LG Display ComPort - Rx Handler")
            };
        }
Ejemplo n.º 3
0
        internal ChristieComPortHandler(IComPortDevice comPort)
        {
            _comPort = comPort;

            var port = _comPort as CrestronDevice;

            if (port != null && !port.Registered)
            {
                var result = port.Register();
                if (result != eDeviceRegistrationUnRegistrationResponse.Success)
                {
                    CloudLog.Error("Could not register {0}, {1}", port, result);
                }
            }

            _comPort.SetComPortSpec(new ComPort.ComPortSpec()
            {
                BaudRate          = ComPort.eComBaudRates.ComspecBaudRate115200,
                DataBits          = ComPort.eComDataBits.ComspecDataBits8,
                StopBits          = ComPort.eComStopBits.ComspecStopBits1,
                Parity            = ComPort.eComParityType.ComspecParityNone,
                Protocol          = ComPort.eComProtocolType.ComspecProtocolRS232,
                ReportCTSChanges  = false,
                HardwareHandShake = ComPort.eComHardwareHandshakeType.ComspecHardwareHandshakeNone,
                SoftwareHandshake = ComPort.eComSoftwareHandshakeType.ComspecSoftwareHandshakeNone,
            });

            _bytes     = new byte[1000];
            _byteIndex = 0;

            _comPort.SerialDataReceived += ComPortOnSerialDataReceived;
        }
Ejemplo n.º 4
0
        public NecComPortHandler(IComPortDevice comPort)
        {
            _comPort = comPort;
            RxQueue  = new CrestronQueue <byte>(1000);

            var port = _comPort as ComPort;

            if (port != null)
            {
                if (!port.Registered)
                {
                    if (port.Register() != eDeviceRegistrationUnRegistrationResponse.Success)
                    {
                        ErrorLog.Error("Could not register com port {0}", _comPort.ID);
                    }
                }
            }

            var spec = new ComPort.ComPortSpec()
            {
                BaudRate          = ComPort.eComBaudRates.ComspecBaudRate9600,
                DataBits          = ComPort.eComDataBits.ComspecDataBits8,
                Parity            = ComPort.eComParityType.ComspecParityNone,
                StopBits          = ComPort.eComStopBits.ComspecStopBits1,
                Protocol          = ComPort.eComProtocolType.ComspecProtocolRS232,
                HardwareHandShake = ComPort.eComHardwareHandshakeType.ComspecHardwareHandshakeNone,
                SoftwareHandshake = ComPort.eComSoftwareHandshakeType.ComspecSoftwareHandshakeNone,
                ReportCTSChanges  = false
            };


            _comPort.SetComPortSpec(spec);
        }
Ejemplo n.º 5
0
        public SamsungDisplayComPortHandler(IComPortDevice comPort)
        {
            _comPort = comPort;
            _rxQueue = new CrestronQueue <byte>(1000);

            CrestronEnvironment.ProgramStatusEventHandler += type =>
            {
                if (type == eProgramStatusEventType.Stopping)
                {
                    _programStopping = true;

                    if (_txThread != null && _txThread.ThreadState == Thread.eThreadStates.ThreadRunning)
                    {
                        _txQueue.Enqueue(null);
                    }

                    if (_rxThread != null && _rxThread.ThreadState == Thread.eThreadStates.ThreadRunning)
                    {
                        _rxQueue.Enqueue(0x00);
                    }
                }
            };

            _txQueue = new CrestronQueue <byte[]>(50);
        }
Ejemplo n.º 6
0
        private void PortOnSerialDataReceived(IComPortDevice device, ComPortSerialDataEventArgs args)
        {
            var bytes = Encoding.ASCII.GetBytes(args.SerialData);

#if DEBUG
            //Debug.WriteSuccess("Codec Rx Enqueue", Tools.GetBytesAsReadableString(bytes, 0, bytes.Length, true));
#endif
            _rxQueue.Enqueue(bytes);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Send bytes to the serial port to prevent issues with encoding of non ascii strings
        /// </summary>
        /// <param name="port">ComPort to extend</param>
        /// <param name="bytes">Byte array to send</param>
        /// <param name="count">Count of bytes from array</param>
        public static void Send(this IComPortDevice port, byte[] bytes, int count)
        {
            var str = string.Empty;

            for (var i = 0; i < count; i++)
            {
                str = str + (char)bytes[i];
            }
            port.Send(str);
        }
Ejemplo n.º 8
0
 public SmartBoard(string name, IComPortDevice comPort)
     : base(name)
 {
     _comHandler = new SmartBoardComPortHandler(comPort);
     _comHandler.ReceivedString += ComHandlerOnReceivedString;
     _volumeLevel = new SmartBoardVolume(this);
     AudioLevels  = new AudioLevelCollection()
     {
         _volumeLevel
     };
 }
Ejemplo n.º 9
0
 public PolycomGroupSeriesCodec(SystemBase system, IComPortDevice comPort)
 {
     _system             = system;
     _port               = new ComPortHandler(comPort);
     _port.DataReceived += OnReceive;
     Calls               = new Calls(this);
     Calls.CallChanged  += Calls_CallChanged;
     Microphones         = new Microphones(this);
     Cameras             = new Cameras(this);
     AddressBook         = new AddressBook(this);
     Meetings            = new CalendarMeetings(this);
 }
Ejemplo n.º 10
0
        public FaMotorController(IComPortDevice comPort)
        {
            _comPort = comPort;

            if (comPort is ComPort)
            {
                var result = ((ComPort)comPort).Register();
                if (result != eDeviceRegistrationUnRegistrationResponse.Success)
                {
                    CloudLog.Error("Could not register comport \"{0}\" for {1}", comPort.ToString(), GetType().Name);
                }
            }

            comPort.SetComPortSpec(ComSpec);
        }
Ejemplo n.º 11
0
 public ChristieGS800(string name, IComPortDevice comPort)
     : base(name)
 {
     _serialPort = new ChristieComPortHandler(comPort);
     _serialPort.ReceivedData += OnReceivedData;
     _availableInputs          = new ReadOnlyCollection <DisplayDeviceInput>(
         new List <DisplayDeviceInput>
     {
         DisplayDeviceInput.HDMI1,
         DisplayDeviceInput.HDMI2,
         DisplayDeviceInput.DVI,
         DisplayDeviceInput.SDI,
         DisplayDeviceInput.VGA,
         DisplayDeviceInput.HDBaseT
     });
 }
Ejemplo n.º 12
0
        public SurfaceHubDisplay(string name, IComPortDevice comPort) : base(name)
        {
            CrestronEnvironment.ProgramStatusEventHandler += type =>
            {
                _programStopping = type == eProgramStatusEventType.Stopping;
            };

            _comPort = comPort;
            var port = _comPort as ComPort;

            if (port != null)
            {
                port.Register();
            }
            _comPort.SetComPortSpec(_portSpec);
            _comPort.SerialDataReceived += ComPortOnSerialDataReceived;
        }
Ejemplo n.º 13
0
        public LgComPortHandler(IComPortDevice comPort)
        {
            CrestronEnvironment.ProgramStatusEventHandler += type =>
            {
                _programStopping = type == eProgramStatusEventType.Stopping;
            };

            _comPort = comPort;
            var port = _comPort as ComPort;

            if (port != null)
            {
                port.Register();
            }
            _comPort.SetComPortSpec(_spec);
            _comPort.SerialDataReceived += ComPortOnSerialDataReceived;
        }
Ejemplo n.º 14
0
        private void ComPortOnSerialDataReceived(IComPortDevice device, ComPortSerialDataEventArgs args)
        {
            var bytes = args.SerialData.ToByteArray();

#if DEBUG
            Debug.WriteWarn("Surface Hub Rx");
            Tools.PrintBytes(bytes, 0, bytes.Length, true);
#endif
            foreach (var b in bytes)
            {
                _rxQueue.Enqueue(b);
            }
#if DEBUG
            Debug.WriteWarn("Bytes in queue", _rxQueue.Count.ToString());
#endif

            DeviceCommunicating = true;

            if (_commsTimeOutTimer == null)
            {
                _commsTimeOutTimer = new CTimer(specific =>
                {
                    DeviceCommunicating = false;
                }, 60000);
            }
            else
            {
                _commsTimeOutTimer.Reset(60000);
            }

            if (_rxThread != null && _rxThread.ThreadState == Thread.eThreadStates.ThreadRunning)
            {
                return;
            }

            _rxThread = new Thread(ReceiveBufferProcess, null)
            {
                Priority = Thread.eThreadPriority.UberPriority,
                Name     = string.Format("LG Display ComPort - Rx Handler")
            };
        }
Ejemplo n.º 15
0
        public SmartBoardComPortHandler(IComPortDevice comPort)
        {
            CrestronEnvironment.ProgramStatusEventHandler += type =>
            {
                _programStopping = type == eProgramStatusEventType.Stopping;
                if (_rxThread != null && _rxThread.ThreadState == Thread.eThreadStates.ThreadRunning)
                {
                    _rxQueue.Enqueue(0x00);
                }
            };

            _comPort = comPort;

            var port = _comPort as CrestronDevice;

            if (port != null && !port.Registered)
            {
                var result = port.Register();
                if (result != eDeviceRegistrationUnRegistrationResponse.Success)
                {
                    CloudLog.Error("Could not register {0}, {1}", port, result);
                }
            }

            _comPort.SetComPortSpec(new ComPort.ComPortSpec()
            {
                BaudRate          = ComPort.eComBaudRates.ComspecBaudRate19200,
                DataBits          = ComPort.eComDataBits.ComspecDataBits8,
                StopBits          = ComPort.eComStopBits.ComspecStopBits1,
                Parity            = ComPort.eComParityType.ComspecParityNone,
                Protocol          = ComPort.eComProtocolType.ComspecProtocolRS232,
                ReportCTSChanges  = false,
                HardwareHandShake = ComPort.eComHardwareHandshakeType.ComspecHardwareHandshakeNone,
                SoftwareHandshake = ComPort.eComSoftwareHandshakeType.ComspecSoftwareHandshakeNone,
            });

            _comPort.SerialDataReceived += PortOnSerialDataReceived;
        }
Ejemplo n.º 16
0
        private void PortOnSerialDataReceived(IComPortDevice device, ComPortSerialDataEventArgs args)
        {
            var bytes = args.SerialData.ToByteArray();

#if false
            Debug.WriteWarn("Smart Serial Rx", Tools.PrintBytes(bytes, 0, bytes.Length, true));
#endif
            foreach (var b in bytes)
            {
                _rxQueue.Enqueue(b);
            }

            if (_rxThread != null && _rxThread.ThreadState == Thread.eThreadStates.ThreadRunning)
            {
                return;
            }

            _rxThread = new Thread(ReceiveBufferProcess, null)
            {
                Priority = Thread.eThreadPriority.UberPriority,
                Name     = string.Format("SmartBoard ComPort - Rx Handler")
            };
        }
Ejemplo n.º 17
0
        public ComPortHandler(IComPortDevice comPort)
        {
            _bytes   = new byte[10000];
            _port    = comPort;
            _rxQueue = new CrestronQueue <byte[]>();

            var cp = _port as ComPort;

            if (cp != null && !cp.Registered)
            {
                var result = cp.Register();
                if (result != eDeviceRegistrationUnRegistrationResponse.Success)
                {
                    CloudLog.Warn("Registering comport for {0} result: {1}", GetType().Name, result);
                }
            }

            try
            {
                var spec = new ComPort.ComPortSpec()
                {
                    BaudRate          = ComPort.eComBaudRates.ComspecBaudRate38400,
                    DataBits          = ComPort.eComDataBits.ComspecDataBits8,
                    StopBits          = ComPort.eComStopBits.ComspecStopBits1,
                    Parity            = ComPort.eComParityType.ComspecParityNone,
                    HardwareHandShake = ComPort.eComHardwareHandshakeType.ComspecHardwareHandshakeNone,
                    SoftwareHandshake = ComPort.eComSoftwareHandshakeType.ComspecSoftwareHandshakeNone,
                    Protocol          = ComPort.eComProtocolType.ComspecProtocolRS232,
                    ReportCTSChanges  = false
                };
                _port.SetComPortSpec(spec);
            }
            catch (Exception e)
            {
                CloudLog.Error("Error could not set comport spec for {0}, {1}", GetType().Name, e.Message);
            }
        }
Ejemplo n.º 18
0
        private void ComPortOnSerialDataReceived(IComPortDevice device, ComPortSerialDataEventArgs args)
        {
            var bytes = Encoding.ASCII.GetBytes(args.SerialData);

            foreach (var b in bytes)
            {
                _bytes[_byteIndex] = b;

                if (_bytes[_byteIndex] != ')')
                {
                    _byteIndex++;
                }
                else
                {
                    _byteIndex++;
                    var data = Encoding.ASCII.GetString(_bytes, 0, _byteIndex);
#if DEBUG
                    Debug.WriteSuccess("Projector Rx", data);
#endif
                    OnReceivedData(data);
                    _byteIndex = 0;
                }
            }
        }
Ejemplo n.º 19
0
 private void PortOnSerialDataReceived(IComPortDevice device, ComPortSerialDataEventArgs args)
 {
     OnReceivedString(args.SerialData);
 }
Ejemplo n.º 20
0
 public EpsonProjector(string name, IComPortDevice comPort) : base(name)
 {
     _comPort = new ComPortHandler(comPort);
     _comPort.ReceivedString += ComPortOnReceivedString;
 }
Ejemplo n.º 21
0
        /// <summary>
        /// Send a byte to the serial port to prevent issues with encoding of non ascii strings
        /// </summary>
        /// <param name="port">ComPort to extend</param>
        /// <param name="b">Byte to send</param>
        public static void Send(this IComPortDevice port, byte b)
        {
            var str = string.Empty + (char)b;

            port.Send(str);
        }