Как да чета стойност от просто USB устройство?

Имам изключително просто USB устройство. Няма осигурен драйвер и инструкциите са да отворите редактор и да управлявате устройството (нека не бъркаме проблема, като обсъждаме устройството), за да видите резултата.

Разбира се, ако отворя Notepad в Windows и манипулирам устройството, в Notepad се появява текстов низ.

Добре, изглежда, че пише на stdin. Сега бих искал да напиша програма на Delphi, която да вземе този вход и да действа според него ...

Как най-добре да го направя?

Формата изглежда не получава събития KeyDown/KeyUp/KeyPress. Жалко, тъй като ще позволи на устройството да ме „прекъсне“. Но може би трябва да анкетирам? От време на време (колко често?) мога да се опитам да прочета от stdin - но какво ще стане, ако няма нищо за четене?

Надявам се, че го обясних ясно. Някакъв съвет?


Актуализация: опа, моя грешка - не получавах събития KeyDown/KeyUp/KeyPress, защото забравих да настроя KeyPreview на формуляра на True. Но възлагам въпроса на Грег, защото той се опита да помогне и защото HID изглежда интересно. Благодаря, Грег.


person Mawg says reinstate Monica    schedule 16.07.2011    source източник
comment
Ако отворя Notepad и манипулирам устройствата, в Notepad се появява текстов низ. Имате предвид, че отваряте файл на устройството с помощта на диалоговия прозорец за отваряне на файл и съдържанието на файла, показано в бележника, е низът, който искате? Моля, бъдете по-точни. Ако случаят е такъв, просто отворете TFileStream на името на устройството и го прочетете.   -  person mj2008    schedule 16.07.2011
comment
Мисля, че най-доброто, което можете да направите, е да прочетете документацията на USB устройството.   -  person kludg    schedule 16.07.2011


Отговори (1)


Изглежда, че вашето устройство използва HID (Human Interface Device) USB клас и действа като клавиатура. И така, ще четете от клавиатурата точно както бихте направили обикновено, ще манипулирате устройството по какъвто и да е подходящ начин (сканирайте баркод, каквото и да е) и натисканията на клавишите ще се показват, сякаш са напечатани.

person Greg Hewgill    schedule 16.07.2011
comment
+1 Благодаря, звучи добре. Ще потърся компонент на Delphi HID или пример за изходен код. - person Mawg says reinstate Monica; 16.07.2011
comment
Въпреки че на пръв поглед към HID се чудя дали не е излишно за това приложение - просто четене от клавиатурата? Във всеки случай ще прочета повече за HID, тъй като изглежда интересно. Благодаря. - person Mawg says reinstate Monica; 16.07.2011
comment
опа, моя грешка - не получавах събития KeyDown/KeyUp/KeyPress, защото забравих да настроя KeyPreview на формуляра на True. Но награждавам въпроса вместо вас, защото се опитахте да помогнете и защото HID изглежда интересно. Благодаря. - person Mawg says reinstate Monica; 16.07.2011