예제 #1
0
        /// <summary>
        /// Создает процессы по чтению данных из USB и декодированию этих данных
        /// Все, что нужно, для обеспечения связи по USB
        /// </summary>
        /// <param name="serial">Серийный номер USB устройства, с которого нужно получать данные</param>
        /// <param name="dec">Класс декодера, который нужно использовать в приборе</param>
        /// <param name="cfg">Конфигурация драйвера USB (настройка параметров потока, буферов чтения и тд)</param>
        public Device(string serial, ProtocolUSBBase dec, USBCfg cfg)
        {
            _dec = dec;
            _cfg = cfg;
            _fThread = new FTDIThread(serial, _cfg);
            _fThread.StateChangeEvent = OnDevStateChanged;

            _dThread = new ProtocolThread(_dec, _fThread);
        }
예제 #2
0
        /// <summary>
        /// Создаем поток, ожидающий подключения устройства с серийным номером
        /// </summary>
        /// <param name="serial">Серийный номер устройства</param>
        /// <param name="cfg">Параметры USB устройства</param>
        /// <param name="bufSize">Размер кольцевого буфера</param>
        public FTDIThread(string serial, USBCfg cfg, uint bufSize = FTDI_THREAD_BUF_SIZE_BYTES_DEFAULT)
        {
            _speed = 0;
            _lastTickCount = 0;
            _dataReaded = 0;
            _terminateFlag = false;

            _cmdQueue = new Queue<byte[]>();

            _cfg    = cfg;
            BigBuf  = new BigBufferManager(bufSize);
            _ftdi   = new USBFTDI(serial, _cfg);

            _thread = new Thread(Execution);
            _thread.IsBackground = true;
        }
예제 #3
0
 /// <summary>
 /// Конструктор
 /// </summary>
 /// <param name="serial">Серийный номер</param>
 /// <param name="cfg">Конфигурация</param>
 public USBFTDI(string serial, USBCfg cfg)
 {
     _ftdi = new FTDICustom();
     _serialNumber = serial;
     _cfg = cfg;
     _maxBufferSize = 0;
     _isOpen = false;
 }