Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: программирование USB устройств  (Прочитано 1299 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн light_finder

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
программирование USB устройств
« : 02 Декабря 2015, 20:09:00 »
День добрый.

Пишу программу для взаимодействия с неким прибором по USB, использую libusb.
...
int r = libusb_control_transfer(dev_handle, 16, 0x9,0x200,1, data, 8, 0);
    if(r>0)
              cout<<r<<"bytes wrote"<<endl;
    else
        cout<<"Write Error"<<endl;
    int numBytes=0;   

    unsigned char read[8];   
   
    r = libusb_interrupt_transfer(dev_handle,0x81,read,sizeof(read),&numBytes,0);
    cout << "read returned "<<r<< " \n"<< numBytes << " bytes read"<<endl;
...
Запись в порт отрабатывает без ошибок. Проблема с чтением. Функция libusb_interrupt_transfer возвращает -9, т.е. pipe error, Wireshark показывает статус операции - broken pipe.

Форматы команд верные, так как с точно такими же параметрами все работает на винде. Вообще изначально писал на джаве с использованием usb4java. Один и тот же код работает на винде и не работает в убунте, и ошибка та же. Куда копать, ребят, подскажите пжлст ?

shura1

  • Гость
Re: программирование USB устройств
« Ответ #1 : 02 Декабря 2015, 20:15:30 »
В порядке мозгового штурма - может права? То есть от root попробовать скомпилированный экзешник запустить?

Оффлайн light_finder

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: программирование USB устройств
« Ответ #2 : 02 Декабря 2015, 21:29:21 »
я уже запускаю из-под рута, так как в ином случае он даже девайс не открывает

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: программирование USB устройств
« Ответ #3 : 02 Декабря 2015, 21:37:03 »
light_finder, права на устройства какие?
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн light_finder

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: программирование USB устройств
« Ответ #4 : 02 Декабря 2015, 23:07:44 »
alsoijw ну я их не менял, стандартные наверное, а как посмотреть?)

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: программирование USB устройств
« Ответ #5 : 03 Декабря 2015, 00:12:52 »
А вот это хороший вопрос. Если это блочное устройство то тогда ls -l путь\ к\ устройствуКое что ещё нарыл, но моего английского не хватает
Цитировать
https://en.wikipedia.org/wiki/Broken_pipe
a condition in programming (also known in POSIX as EPIPE error code and SIGPIPE signal), when a process requests an output to pipe or socket, which was closed by peer
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн light_finder

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: программирование USB устройств
« Ответ #6 : 03 Декабря 2015, 10:27:31 »
А вот это хороший вопрос. Если это блочное устройство то тогда ls -l путь\ к\ устройствуКое что ещё нарыл, но моего английского не хватает
а усб это блочное устройство?
Цитировать
https://en.wikipedia.org/wiki/Broken_pipe
a condition in programming (also known in POSIX as EPIPE error code and SIGPIPE signal), when a process requests an output to pipe or socket, which was closed by peer
тут написано что ошибка возникает, когда процесс запрашивает вывод в пайп или сокет, который был закрыт пиром. Но это как-то все общие слова) это и так понятно)

 

Страница сгенерирована за 0.111 секунд. Запросов: 25.