/// <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); }
/// <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; }
/// <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; }