Простейший код HID. Везде только слова, мыши и джойстики...

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Re: Простейший код HID. Везде только слова, мыши и джойстики

Сообщение PB_EXPERT »

так прога hidtool.exe работает отлично. а вот с длл еще никак.
Я же скрин на 8-мой странице темы выкладывал, где видно что DLLка работает как надо.


В архиве прога для компа, работающая с этим проектом.
Вложения
hid_data_1.rar
(16.24 КБ) 520 скачиваний
Реклама
Аватара пользователя
demson
IT KT
Сообщения: 1309
Зарегистрирован: Пн авг 25, 2008 08:49:33
Контактная информация:

Re: Простейший код HID. Везде только слова, мыши и джойстики

Сообщение demson »

прога работает :)
так сейчас еще проверю все размерности.
в спорах рождается ИСТИНА [AND] flud.
Реклама
Аватара пользователя
urry
Сверлит текстолит когтями
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница
Контактная информация:

Re: Простейший код HID. Везде только слова, мыши и джойстики

Сообщение urry »

PB_EXPERT, Вы большой молодец. Действительно, что главное не инструмент, а умение им работать. Сейчас вклеиваю вашу длл в прогу на Си.
А я уже было, откровенно говоря, плюнул на vusb.
Аватара пользователя
demson
IT KT
Сообщения: 1309
Зарегистрирован: Пн авг 25, 2008 08:49:33
Контактная информация:

Re: Простейший код HID. Везде только слова, мыши и джойстики

Сообщение demson »

Присоединяюсь PB_EXPERT работа, проделанная тобой поражает. В скоре все будут пользоваться этой библиотекой, как единственной легкодоступной и работающей.

только меня кто нибудь пиннните в правильное направление. :)
никак не получается принять с устройства данные. Вот уж точно в 3х строчках заблудился. :?
прикладываю проект студии.
и код соответственно

Код: Выделить всё

    Public Declare Function HID_OpenDevice Lib "HID_Lib_PB.dll" (ByVal PID As Integer, ByVal VID As Integer, ByVal VersionNumber As Integer, ByVal Index As Integer) As Long
    Public Declare Function HID_GetFeature Lib "HID_Lib_PB.dll" (ByVal Handle As Long, ByRef buffer() As Byte, ByVal LenBuffer As Long) As Long
    Public Declare Function HID_SetFeature Lib "HID_Lib_PB.dll" (ByVal Handle As Long, ByRef buffer() As Byte, ByVal LenBuffer As Long) As Long
    Public Declare Function HID_CloseDevice Lib "HID_Lib_PB.dll" (ByVal Handle As Long) As Integer

Код: Выделить всё

        Dim vid As Integer = 5824
        Dim pid As Integer = 1503


        Dim ver As Integer = -1
        Dim ind As Integer = 0
        Dim Handle, res As Long

        Handle = HID_OpenDevice(pid, vid, ver, ind)
        Dim Buffer(128) As Byte 'от нуля = 129 

        res = HID_GetFeature(Handle, Buffer, Buffer.Length) ' Buffer.Length=129
res =468339417392611328
длина Buffer становится равной 1
Вложения
WindowsApplication1.zip
(77.22 КБ) 434 скачивания
в спорах рождается ИСТИНА [AND] flud.
Реклама
Эиком - электронные компоненты и радиодетали
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Re: Простейший код HID. Везде только слова, мыши и джойстики

Сообщение PB_EXPERT »

главное не инструмент
От инструмента тоже многое зависит. :)
Просто многие считают что "нормальные" проги можно писать только на Си, или в крайнем случае, на дельфи, но при этом забывают что бейсик, это только название языка, а возможности зависят от компилятора и имеющихся библиотек.
Последний раз редактировалось PB_EXPERT Пн апр 19, 2010 15:06:59, всего редактировалось 1 раз.
Реклама
Аватара пользователя
demson
IT KT
Сообщения: 1309
Зарегистрирован: Пн авг 25, 2008 08:49:33
Контактная информация:

Re: Простейший код HID. Везде только слова, мыши и джойстики

Сообщение demson »

на всякий случай. HID_GetFeature вернет Long ?
в спорах рождается ИСТИНА [AND] flud.
Реклама
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Re: Простейший код HID. Везде только слова, мыши и джойстики

Сообщение PB_EXPERT »

demson писал(а):на всякий случай. HID_GetFeature вернет Long ?
Да.
Все функции возвращают Long (4 байта).
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Re: Простейший код HID. Везде только слова, мыши и джойстики

Сообщение PB_EXPERT »

demson писал(а):
только меня кто нибудь пиннните в правильное направление. :)
никак не получается принять с устройства данные.
Во вложении рабочий проект на VB.NET :)

Как оказалось,типы переменных в VB6 и VB.NET немного отличаются, скажем в VB6, Long это 4 байта, а в VB.NET это 8 байт, вот и глюки! Заменил Long на Integer, а Integer на Short.
Мелкомягкие как всегда перемудрили (Висту вспоминать не будем :))) )

Далее, почему-то при передаче указателя на массив (ByRef) были глюки, но стоило заменить на ByVal, как всё заработало. :shock:
Мистика! Ведь нужен именно указатель на массив!


Что касается этой ошибки.
Не удается загрузить DLL "HID_Lib_PB.dll": Не найден указанный модуль. (Исключение из HRESULT: 0x8007007E)
Причина проста - в папке с исполняемым файлом не было HID_Lib_PB.dll.
Когда скопировал в System32, то естественно что заработало.
DLLка подключена к проекту, но в её свойствах, запрещено её копировать в папку с исполняемым файлом. Это тоже исправил, поэтому DLLку из System32 можно удалить.
Вложения
WindowsApplication_2.rar
(123.36 КБ) 433 скачивания
Radan
Мучитель микросхем
Сообщения: 465
Зарегистрирован: Ср июн 21, 2006 08:24:32
Откуда: Лисичанск
Контактная информация:

Re: Простейший код HID. Везде только слова, мыши и джойстики

Сообщение Radan »

Пробую переделать пример термометра Баскома - http://purebasic.mybb.ru/viewtopic.php?id=46.

Dim vid As Short = 43690 ' &HAAAA
Dim pid As Short = 61188 ' &HEF04

При указанных vid и pid и типе Short будет ошибка, т.к. он не больше 32000 (2^16).
Если в декларации функций библиотеки ставлю Integer для vid и pid , он возвращает массив из нулей.


В чём может быть проблема?
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Re: Простейший код HID. Везде только слова, мыши и джойстики

Сообщение PB_EXPERT »

Radan писал(а):Пробую переделать пример термометра Баскома - http://purebasic.mybb.ru/viewtopic.php?id=46.

Dim vid As Short = 43690 ' &HAAAA
Dim pid As Short = 61188 ' &HEF04

При указанных vid и pid и типе Short будет ошибка, т.к. он не больше 32000 (2^16).
Если в декларации функций библиотеки ставлю Integer для vid и pid , он возвращает массив из нулей.


В чём может быть проблема?
В место Short можно использовать Char
Char - символьный тип. Для хранения переменной отводиться 2 байта. В качестве значения переменной обычно применяются символы, так как используются теперь 2 байта. Разработчики могут применять символы Unicode.
Тот термометр использует конечную точку INPUT, поэтому следует использовать функцию HID_ReadDevice в место HID_GetFeature.
Аватара пользователя
urry
Сверлит текстолит когтями
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница
Контактная информация:

Re: Простейший код HID. Везде только слова, мыши и джойстики

Сообщение urry »

Может, все -таки давить в одну точку и пытаться унифицировать класс ???
Я как бы возьму на себя сторону контроллера, PB_EXPERT - сторону приложения ?
И на хид-дата сделать ?
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Re: Простейший код HID. Везде только слова, мыши и джойстики

Сообщение PB_EXPERT »

Тогда нужно добавить 2 точки - входную и выходную.
А пример для компа напишу без проблем. :)
Radan
Мучитель микросхем
Сообщения: 465
Зарегистрирован: Ср июн 21, 2006 08:24:32
Откуда: Лисичанск
Контактная информация:

Re: Простейший код HID. Везде только слова, мыши и джойстики

Сообщение Radan »

Перекомпилил и залил прошивку с такими же вид и пид как в WindowsApplication_2. Попробовал на другом приложении, термометр работает. Вышеуказаннsй пример вылетает с ошибкой: "Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена." Что-то не так...
WindowsApplication_3.rar
(66.29 КБ) 346 скачиваний
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Re: Простейший код HID. Везде только слова, мыши и джойстики

Сообщение PB_EXPERT »

Radan писал(а):Перекомпилил и залил прошивку с такими же вид и пид как в WindowsApplication_2. Попробовал на другом приложении, термометр работает. Вышеуказаннsй пример вылетает с ошибкой: "Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена." Что-то не так...
Странно, у меня никакой ошибки нет.
Зачем было использовать PID и VID не такие как в термометре? Ведь работать не будет!
Подправил проект.
PID = $EF04
VID = $AAAA
Вложения
WindowsApplication_4.rar
(129.62 КБ) 395 скачиваний
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Re: Простейший код HID. Везде только слова, мыши и джойстики

Сообщение PB_EXPERT »

Кто пробовал запускать проект VB.NET?
Он работает или нет?
Radan
Мучитель микросхем
Сообщения: 465
Зарегистрирован: Ср июн 21, 2006 08:24:32
Откуда: Лисичанск
Контактная информация:

Re: Простейший код HID. Везде только слова, мыши и джойстики

Сообщение Radan »

Я смогу попробовать только завтра, сегодня после работы в гости иду...
PID и VID я и в прошивке термометра менял, и в проекте VB.NET, т.е. ставил одинаковые. На другой библиотеке с новыми и старыми PID и VID пробовал, термометр работал. Как всегда проблема в какой-то мелочи, если никто не победит до выходных, постараюсь плотненько занятся.
Radan
Мучитель микросхем
Сообщения: 465
Зарегистрирован: Ср июн 21, 2006 08:24:32
Откуда: Лисичанск
Контактная информация:

Re: Простейший код HID. Везде только слова, мыши и джойстики

Сообщение Radan »

Спешу во первых, поблагодарить Петра за библиотеку, и во вторых, сообщить, что библиотека работает с VBNET!
Кое что добавил и получился вполне работоспособный пример на вышеуказанный термометр.
WindowsApplication_5.rar
(68.35 КБ) 403 скачивания
K_o_T
Родился
Сообщения: 4
Зарегистрирован: Ср авг 11, 2010 11:00:39

Re: Простейший код HID. Везде только слова, мыши и джойстики

Сообщение K_o_T »

Приветствую всех!
Возможно не туда (если что перенаправьте) , но я уже просто не знаю что делать и в чем искать причину!
Уже несколько месяцев пользую проект "hid-data" подкоректировав его под свои нужды в связке с Delphi. И все шло норм, Но после очередной поездки на работу с платой этой - врубаю а ЮСБ пишет "Устройство не опознано" Как так? ПереПрозвонил по 20 раз уже все. Обрывов нет, коротких тоже... Ради интереса позаливал разные варианты прошивок и из "hid-custom-rq" и разные модификации "hid-data" - Все равно не опознано! Но прошивается без ошибок (тоесть с кварцом и кондерами я так понял все в норме) и если прописать "DDRB = 0xFF;" между "DBG1(0x00, 0, 0);" и "odDebugInit();" то светятся диоды как и положено. НО ЮСБ "не опознано". Подтолкните плз в какую сторону рыть... уже 3-й день над девайсом этим сижу...
K_o_T
Родился
Сообщения: 4
Зарегистрирован: Ср авг 11, 2010 11:00:39

Re: Простейший код HID. Везде только слова, мыши и джойстики

Сообщение K_o_T »

Пробовал с 3-мя компами (2 ХР и 1 Win7) одно и тоже... Делал на диодах (прозвонил - не пробитые): Изображение
И кстати замерял напругу - такое впечатление что ни R1 ни R2 нет... (тоесть между выводом USB1 и PD2 = USB1 и USB3 = 4,93 В) а (между выводом USB4 и PD4 = USB4 и USB2 = 2,97 В) Но при этом резюки исправно показывают 68 Ом. А между PD2 и PD4 так же как и между USB2 и USB3 = 2,95 В.
Radan
Мучитель микросхем
Сообщения: 465
Зарегистрирован: Ср июн 21, 2006 08:24:32
Откуда: Лисичанск
Контактная информация:

Re: Простейший код HID. Везде только слова, мыши и джойстики

Сообщение Radan »

Прозвоните кабель на обрыв и КЗ, также попробуйте поменять контроллер, может быть проблема с входными пинами.
Ответить

Вернуться в «Периферия»