![]() |
|
![]() ![]() ![]() |
|
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
Ты используешь версию библиотеки 1.0. Она несовместима с 0.1, которая у тебя установлена в системе. Тебе необходимо установить пакет libusb-1.0.0-dev. А библиотеку задавать так: LIBS += -lusb-1.0
|
|||
|
||||
tzirechnoy |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 1 Всего: 16 |
Как раз на следующей страницэ указано, где взять пример, который можэт просканировать все устройства и прочитать их дескрипторы (включая vid/pic/class/etc )
Как несложно заметить, в примере -- usb_init(), а не libusb_init(). Впрочем, действительно есть у libusb такая проблема: приличный developers guide -- под libusb-0.1, а сейчас типа стабильная версия -- libusb-1.0 Я бы для начала посоветовал именно на -0.1 и разрабатывать -- ну, она вполне работает, притом написано под неё большэ и кода и документацыи. Да, в Debian они присутствуют обе, -0.1 -- под именем просто libusb, а -1.0 -- под именем libusb-1.0 и libusb-1.0-0-dev. И собирать под -1.0 надо с -lusb-1.0 |
||||
|
|||||
ISerg1986 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 12.1.2014 Репутация: нет Всего: нет |
Спасибо, bsa за ваш ответ. Правда я это уже сделал раньше. Кроме того, до установки libusb-1.0.0-dev, мне пришлось поудалять всё, установленное из репозиториев. А я считал, что лучше всё ставить оттуда. Теперь команда libusb_init(NULL); не выдаёт ошибки. |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
|
|||
|
||||
ISerg1986 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 12.1.2014 Репутация: нет Всего: нет |
Ну не знаю. Я всё поставил - ничего не работало. Всё удалил, поставил вручную - заработало. Правда теперь не знаю что делать. ![]() В примере приводят вот такой код
А это мой код
У меня посылка составляет 64 байта. EP_IN=0x00 -точка входа, но я не уверен т.к. до конца не понимаю что это &ret - непонятно что это Пишет ошибку &ret was not declared in this scope. Смотрю функцию libusb_interrupt_transfer (libusb_device_handle *dev_handle, unsigned char endpoint, unsigned char *data, int lenght, int actual_lenght, unsigned int timeout) Понимаю это так Смотрю функцию libusb_interrupt_transfer (экземпляр(обработчик?) устройства, конечная точка чтения,размер читаемого буфера, размер данных, размер данных, период повторения чтения(пауза?) ) |
||||
|
|||||
tzirechnoy |
|
||||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 1 Всего: 16 |
Прочитайте описание протокола USB. Да, это очень тяжёлое чтение довольно глупого документа -- но без этого достаточно безсмысленно пытаться самому написать обмен по USB -- хоть в драйвере хоть в устройстве. Кстати, насколько я помню, вроде бы endpoint 0 зарезервировано для control transfers. И почему-то input/output endpoints начинаются с 1 (хотя вроде ничего не мешает и по 0 передать interrupt transfer).
Так ret должна быть твоей переменной. Вообще, это очевидно для сишника: всё, что не описано как константы, переменные или функцыи библиотеки -- это твои переменные.
Нет, Вы в корне неправильно понимаете, а как правильно -- описано в документацыи. Кстати, у Вас опечатка дажэ при копировании прототипа функцыи. |
||||||
|
|||||||
ISerg1986 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 12.1.2014 Репутация: нет Всего: нет |
Оставил эту функцию (libusb_interrupt_transfer) пока в покое. Не всё понимаю - трогать пока не буду
![]() А в этой libusb_open_device_with_vid_pid(NULL, DEV_VID, DEV_PID); ошибиться уже сложно. Пытаюсь найти (открыть) устройство, зная его VID и PID. ![]() ![]() Мой код
Результат - программа завершилась с кодом 1. То есть return 1 - не видит устройство. VID 0x0483, PID 0x3748 - вроде правильные. В линуксе устройство видно. Других ошибок нет. Вывод компилятора -всё ок Process /usr/bin/make exited normaly. Я правильно указал VID и PID? Это сообщение отредактировал(а) ISerg1986 - 26.1.2014, 20:19 |
|||
|
||||
kuzulis |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 5.9.2007 Репутация: нет Всего: 1 |
А ты сначала проверь что возвращает libusb_init(), затем посмотри исходники утилиты QStLink (о которой ты писал на другом форуме), проверь права доступа и пр. Если ничего не выйдет - значит не судьба, брось это.
![]() |
|||
|
||||
ISerg1986 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 12.1.2014 Репутация: нет Всего: нет |
Посмотрю, хотя странно всё это. Я уже систему переустановил - Линукс Дебиан последней версии, поставил только необходимые пакеты. QT из репозитория. Всё "чистое", по инструкции -а не работает ![]() Можно, но это в крайнем случае. В самом крайнем есть рабочий(? поверю на слово) проект для eclipse, но ведь тут речь про QT? Проверял. Я и так дал пользователю привилегии рута, и через судо запускал. Похоже, что дело не в правах. Так не интересно. Надо довести эксперимент до логического финала. |
|||
|
||||
tzirechnoy |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 1 Всего: 16 |
УМВР -- ну, после того, как удалил обе ссылки на mainwindow, который Вы не привели. В смысле -- возвращает 2.
Так что проверяйте детали: что запускаете от рута, что собирается именно ваш проект, что он вообще пересобирается (удалите бинарник), что вы код возврата правильно читаете. |
|||
|
||||
ISerg1986 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 12.1.2014 Репутация: нет Всего: нет |
Похоже, понял в чём дело. Я не правильно указал VID и PID. Заместо 0х там был другой символ - не русская х, а что-то другое(?). Дело в кодировке.
Заработало. Код завершения 0. Но выдаёт странные ошибки в Aplication Output во время работы т.к. непонятно что происходит. А именно - неизвестно, что это за "точка" EP_IN 0x81 и какое у меня должно быть её значение. ![]() Код
|
|||
|
||||
ISerg1986 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 12.1.2014 Репутация: нет Всего: нет |
Переподключил устройство - нашлось ещё несколько usb
![]() Пытаюсь подключится к 0xffff 0xbad Выдаёт ошибку permission denied. Нет прав доступа к устройству. Причём к 002 033. Добавил правила ATTRS{idVendor}=="ffff", ATTRS{idProduct}=="0bad", MODE="0666" и ещё одно ATTRS{idVendor}=="002", ATTRS{idProduct}=="0bad", MODE="0666" Сделал reload rules - ошибка не исчезла. ![]() Это сообщение отредактировал(а) ISerg1986 - 27.1.2014, 16:51 |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
ISerg1986, как у тебя с английским? Что в переводе на русский значит слово "bad"?
![]() |
|||
|
||||
ISerg1986 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 12.1.2014 Репутация: нет Всего: нет |
С отличием школа+институт+спецподготовка 4 года+технический английский ![]() Тут bad оно 0xbad т.е обозначение в шестнадцатеричной системе PID устройства. Его так задал мне программист платы. Шина 002 устройство 033 VID 0xffff PID 0xbad. Никакого криминала ![]() Сейчас "грешу" на виртуалку. Похоже что система блокирует порты. Устройство подключено к Windows 7 а там VMWare c Linux. Буду покупать отдельный компьютер подешовке т.к. нужно исключить все глюки и ошибки. А так - что ни система, то новые ошибки. А код то один и тот-же. |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |