Страница 1 из 1

Компонент TJvHidDeviceController из JVCL

Добавлено: Ср ноя 28, 2012 02:19:35
____Eugene____
Пытаюсь соединить мк с пк со стороны мк решил воспользоваться V-USB со стороны пк Компоненом TJvHidDeviceController писать решил на делфи

можит кто знает где найти подробное описание как роботать с TJvHidDeviceController
желательно на русском, в поисковике толком нечего не нашел

из тогочто нарыл Примеры работы с V-USB

но там много непонятного например для чтения с устройства процедура
procedure TMForm.btReadClick(Sender: TObject);
begin
if Dev=nil then exit; //Я так понимаю проверка описателя
fillchar(Raw,length(RAW),0); //?
Raw[0]:=0; //ReportID //зачем перед чтением обнулять то что сечас заполнит девайс
res:=Dev.GetFeature(Raw,Dev.Caps.FeatureReportByteLength); //Dev.Caps.FeatureReportByteLength ???
if not res then ShowMessage(SysErrorMessage(GetLastError))
else LB.Items.Append('Read data');
end;

Re: Компонент TJvHidDeviceController из JVCL

Добавлено: Ср ноя 28, 2012 07:31:28
vem566
____Eugene____ писал(а):fillchar(Raw,length(RAW),0); //?
Raw[0]:=0; //ReportID //зачем перед чтением обнулять то что сечас заполнит девайс
А если не заполнит? Ошибка чтения, например.
Raw определен как массив 0..128 байт. Фактически 129.
Функция fillchar заполняет массив Raw нулями но не весь, а количество, которое вернет функция length. А она вернет значение 128, т. к. эта функция не "видит" нулевой байт и начинает свой счет с 1-го. Таким образом нулевой байт массива останется не известно каким. Поэтому принудительно и сознательно обнуляется нулевой байт Raw[0]:=0;
____Eugene____ писал(а):res:=Dev.GetFeature(Raw,Dev.Caps.FeatureReportByteLength); //Dev.Caps.FeatureReportByteLength ???
Функцию Caps.FeatureReportByteLength нужно смотреть в описании класса TJvHidDevice из библиотеки JVCL. Если начал пробовать, значит библиотека у тебя есть. У неё открытый код.

Re: Компонент TJvHidDeviceController из JVCL

Добавлено: Пт дек 07, 2012 13:29:14
mr_smit
Вот тут http://radiokot.ru/circuit/digital/pcmod/16/ исходник на Delphi для работы с HID. Брал его за основу в своё время. Всё работало. А вообше там же есть к этому компоненту примеры в комплекте. Запускаете и сразу видите свою USB мышь в списке обнаруженных устройств (как пример)