Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2017, 09:52   #1
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию как считать и записать значение из/в USB?

Такой вопрос как считать и записать значение из/в USB?

Устройство UPS
протокол USB-HID

У меня есть Usage, raport ID


Допустим считать напряжение RO
0x85, 0x0B, // Report ID (11)
0x09, 0x30, // Usage (0x30)
0xB1, 0xA2, // Feature (Data,Var,Abs,No Wrap,Linear,No Preferred State,No Null Position,Volatile)

и задать пороги R/W
0x85, 0x2D, // Report ID (45)
0x09, 0x40, // Usage (0x40)
0x16, 0xDC, 0x00, // Logical Minimum (220)
0x26, 0xF0, 0x00, // Logical Maximum (240)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 02.11.2017, 10:19   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Через библиотеку для работы с USB.
Укажите хоть операционку... На винде например есть своя, из коробки.
waleri вне форума Ответить с цитированием
Старый 02.11.2017, 11:14   #3
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Через библиотеку для работы с USB.
То что через библиотеку это и ежу понятно. Вопрос в том как конкретно.

Цитата:
Сообщение от waleri Посмотреть сообщение
Укажите хоть операционку... На винде например есть своя, из коробки.
А есть отличия? Конечная цель линукс Linux debian, но если вам проще объяснить как это сделать в виндоусе, то пусть Windows 7.
Я под виртуалкой мне кабель перебросить пару раз щёлкнуть.

Использую libusb.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 02.11.2017, 13:49   #4
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

В линуксе особо не шарю, но краткор гугление нарыло это: http://www.signal11.us/oss/hidapi/

На винде есть это: https://docs.microsoft.com/en-us/win...o-hid-concepts
waleri вне форума Ответить с цитированием
Старый 02.11.2017, 13:50   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

http://libusb.sourceforge.net/api-1.0/io.html
p51x вне форума Ответить с цитированием
Старый 02.11.2017, 17:54   #6
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Да уж. 20 лет стандарту. А по факту как будто с ним некто неработает.
Всё просто, но нигде ничего толком не описано.

Есть транспортные протоколы control interupt bulck.
Везде примеры с interupt. А нужен с control.
Так вот поверх 3 протокола input output feature.
Примеров нет. Славу богу нашёлся http://www.signal11.us/oss/hidapi/

Там есть. Ну и как вы думали где сидит напряжение? Input reaport? - а вот и неотгадали в feature reaport. Где логика?

Остался один вопрос как в линуксе открыть устройство из под юзера?
А то к ним доступ только рут имеет. Стоит ли использовать стандартный hid драйвер?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 03.11.2017, 04:24   #7
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

http://esausilva.com/2010/05/13/sett...-linux-ubuntu/

вот как настроить права для подключения андроид, для любого USB устройства все так же, только свои ID подставить.

Вам соббсно нужно

/etc/udev/rules.d/##-

файл создать, и выставить доступ к устройству для группы юзеров в нем (а нужного юзера добавить в группу), типа так

Цитата:
SUBSYSTEM=="usb", ATTR{idVendor}=="0x093A",ATTRS{devi ce}=="0x2620", MODE="0666", GROUP="plugdev"
P.S. не забывайте, что пакеты должны быть выровнены (размеры буфера), кратны, например, 512. Иначе там совсем все резко сломатся может на разных ОС. А вот что-где не помню Помню для bulk ровнял.

Последний раз редактировалось alexzk; 03.11.2017 в 04:30.
alexzk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как считать данные с файла и записать в массив? lord007 Visual C++ 0 05.05.2015 22:57
как записать в файл и считать потом из него три массива с числами racushka_n Помощь студентам 11 31.10.2010 04:43
Как записать (считать) динамическую строку в (из) файл(а)? C++ Сергей089 Помощь студентам 2 10.02.2010 22:00
Как записать данные в MySQL бузу а потом считать их SeRhy PHP 1 12.06.2009 22:15
Как побайтно считать файл и записать в другой SeRhy Общие вопросы Delphi 2 09.06.2008 21:54