Пример #1
0
        public LedDevice(string portName, LedDevice original)
        {
            if (portName != null)
            {
                _port = new SerialPort(portName, 115200)
                {
                    DataBits     = 8,
                    StopBits     = StopBits.One,
                    Parity       = Parity.None,
                    Encoding     = Encoding.ASCII,
                    ReadTimeout  = 3000,
                    WriteTimeout = 3000
                };

                _port.Open();
            }

            try
            {
                Write(new byte[256 * 3]);
                _port?.Write("LEDS");
                WriteByte(0);
                ReadResponse();

                Ticks.Add();
            }
            catch
            {
                _port?.Close();
                throw;
            }

            if (original != null)
            {
                _colors         = original._colors.ToArray();
                _fadeStartTime  = original._fadeStartTime;
                _fadeDuration   = original._fadeDuration;
                _fadeEndValue   = original._fadeEndValue;
                _fadeStartValue = original._fadeStartValue;
            }

            _thread = new Thread(LedDeviceThreadProc)
            {
                IsBackground = true
            };
            _thread.Start();
        }