История изменений
Исправление Stanson, (текущая версия) :
В девайсе возникает событие, которое нужно передать в запущенную на компьютере программу
Как в USB отправить информацию из девайса?
Это принципиально невозможно. Микрософт постарался участвуя в разработке USB чтобы оно было максимально черезжопным.
Фактически, USB девайс всегда поллится хостом. Девайс передаёт данные только если получил IN токен от хоста. Даже если это interrupt или isochronous. Просто в interrupt или isochronous режимах поллингом обычно занимается микруха хоста, а не система или софт. Если девайс не получит IN токен от хоста - то даже если обпередаётся, то хост его проигнорирует.
Соответственно, если твои события редкие, то используй interrupt. Если средненькой периодичности, то bulk или setup. Если это что-то очень частое - то isochronous, позволит передать несколько событий произошедших в течении одного фрейма. Теоретически, можно и bulk/setup несколько раз за фрейм запросить, но это придётся делать ручками в софте.
Исходная версия Stanson, :
В девайсе возникает событие, которое нужно передать в запущенную на компьютере программу
Это невозможно. Микрософт постарался участвуя в разработке USB чтобы оно было максимально черезжопным.
Фактически, USB девайс всегда поллится хостом. Девайс передаёт данные только если получил IN токен от хоста. Даже если это interrupt или isochronous. Просто в interrupt или isochronous режимах поллингом обычно занимается микруха хоста, а не система или софт.
Соответственно, если твои события редкие, то используй interrupt. Если средненькой периодичности, то bulk или setup. Если это что-то очень частое - то isochronous, позволит передать несколько событий произошедших в течении одного фрейма. Теоретически, можно и bulk/setup несколько раз за фрейм запросить, но это придётся делать ручками в софте.