У меня была неудачная задача тестирования потокового кода, и они - определенно самые твердые тесты, которые я когда-либо писал.
При записи моих тестов, я использовал комбинацию делегатов и событий. В основном это - все об использовании PropertyNotifyChanged
события с WaitCallback
или некоторый ConditionalWaiter
, который опрашивает.
я не уверен, было ли это лучшим подходом, но он удался для меня.
libusb должен работать для вас .. кроссплатформенный, пользователь- инструменты Space USB.
В зависимости от ваших проектов электроники , возможно, вам нужен микроконтроллер USB.
Вот одно из моих любимых USB-устройств, которые делают такие вещи (сервоуправление, управление двигателем, светодиоды, аналоговый / цифровой ввод / вывод и т. д.) ) phidgets.com
Кросс-платформенный, отлично. Например, установив положение сервопривода на полпути, я мог бы позвонить водителю:
servo1.setPosition(50);
Легко, как пирог.
Удачи!
Вы можете попробовать WinUSB для Windows ( http://msdn.microsoft.com/en-us/library/aa476426.aspx ) Работа с драйвером USB для Windows в пользовательском режиме - начиная с Vista? (фу) Я никогда этим не пользовался, и он не будет работать на linux: P Зачем вообще нужен кроссплатфомр? Что касается libusb для Windows, я не уверен, поддерживает ли он все типы передачи. (в зависимости от версии) Для работы устройства вы можете использовать AVRUSB ( http://www.obdev.at/products/vusb/index.html ) Вам нужен только процессор avr и несколько действительно простых дополнительных аппаратных средств.