-
- Дурак штоле? - Alex B.(12.12.2017 08:18)
- Согласна с вашей формулировкой :), но все-таки хотела бы знать, как любители HID'а передают в компьютер данные, скажем типа того, что АЦП выдает. Какой девайс они при этом эмулируют и как принимают эти данные? Мышь и джойстик нельзя - тогда на Ксения(103 знак., 12.12.2017 02:31)
- Если не заставлять HID притворяться мышкой или клавиатурой - то будет виден как просто "USB устройство ввода". Дальше вы его открываете средствами WinAPI и работаете спокойно. Я же выкладывал сюда сорцы? - LightElf_(12.12.2017 23:36, )
- Вот там - LightElf(12.12.2017 23:40, ссылка)
- Ты в упор не видишь разницу между универсальным ПО для некой абстрактной системы частично соответствующей IEEE Std 1003.1-2008, например, и ПО для конкретной версии windows? Первое переносится на широкий класс платформ, на ту же windows, а второй fk0(660 знак., 12.12.2017 23:54, ссылка)
- Перечитай первый пост топика. Где ты там вообще увидел универсальное ПО для абстрактной системы? Там речь о железке, с которой надо чуток данных скинуть на комп максимально безгеморройным способом. О совместимости с HP-UX на MIPS64 речь не идет. - LightElf(13.12.2017 00:01)
- HID в общем случае не предназначен для передачи файлов. А OBEX, например, предназначен. И еще огромное количество протоколов работающих поверх последовательного интерфейса. От X-modem до PPP и TCP с FTP поверх. Причем здесь HP-UX? Ты на андроид fk0(9 знак., 13.12.2017 00:06)
- Там (в начале данного топика) речь идет о компе, а не о смартфоне. Потому глюки андроидов побоку. - LightElf(13.12.2017 00:14)
- Я более 5-и лет назад купил ноут пластмассовый. В Ашане (или Окее, вроде в Окее) у входа стояла корзина, и там эти ноуты насыпаны были. И ценник низкий. Я и купил. Так там андроид был. Правда я потом убунту поставил. - fk0(13.12.2017 00:18)
- И на нем Generic HID устройства не работали? Или работали? Вообще эта тема довольно странно выглядит. Как Google умудрился настолько криво реализовать спецификацию HID, что там что-то не работает? - LightElf(13.12.2017 00:27)
- На нем win32 api никогда не работало и не заработает никогда. - fk0(13.12.2017 00:33)
- Какое отношение имеет спецификация HID к win32 api? Туча HID устройств (в том числе кастомных) прекрасно работает с андроидом. Соответственно вариантов ровно три: LightElf(346 знак., 13.12.2017 09:38 - 09:51, ссылка, youtube)
- Такая, что у автора программа под windows only. - fk0(13.12.2017 12:41)
- Через что они в linux нормально работают, через hiddev? - fk0(13.12.2017 12:40, ссылка)
- По твоей ссылке - вполне приемлемый API, хотя и переусложненный слегонца. - LightElf(13.12.2017 17:07)
- Какое отношение имеет спецификация HID к win32 api? Туча HID устройств (в том числе кастомных) прекрасно работает с андроидом. Соответственно вариантов ровно три: LightElf(346 знак., 13.12.2017 09:38 - 09:51, ссылка, youtube)
- На нем win32 api никогда не работало и не заработает никогда. - fk0(13.12.2017 00:33)
- И на нем Generic HID устройства не работали? Или работали? Вообще эта тема довольно странно выглядит. Как Google умудрился настолько криво реализовать спецификацию HID, что там что-то не работает? - LightElf(13.12.2017 00:27)
- Я более 5-и лет назад купил ноут пластмассовый. В Ашане (или Окее, вроде в Окее) у входа стояла корзина, и там эти ноуты насыпаны были. И ценник низкий. Я и купил. Так там андроид был. Правда я потом убунту поставил. - fk0(13.12.2017 00:18)
- Там (в начале данного топика) речь идет о компе, а не о смартфоне. Потому глюки андроидов побоку. - LightElf(13.12.2017 00:14)
- HID в общем случае не предназначен для передачи файлов. А OBEX, например, предназначен. И еще огромное количество протоколов работающих поверх последовательного интерфейса. От X-modem до PPP и TCP с FTP поверх. Причем здесь HP-UX? Ты на андроид fk0(9 знак., 13.12.2017 00:06)
- Перечитай первый пост топика. Где ты там вообще увидел универсальное ПО для абстрактной системы? Там речь о железке, с которой надо чуток данных скинуть на комп максимально безгеморройным способом. О совместимости с HP-UX на MIPS64 речь не идет. - LightElf(13.12.2017 00:01)
- Ты в упор не видишь разницу между универсальным ПО для некой абстрактной системы частично соответствующей IEEE Std 1003.1-2008, например, и ПО для конкретной версии windows? Первое переносится на широкий класс платформ, на ту же windows, а второй fk0(660 знак., 12.12.2017 23:54, ссылка)
- Вот там - LightElf(12.12.2017 23:40, ссылка)
- Есть такая хрень называется HID consumer control. Но к ней надо свою прогу рисовать для приёма и очень многие андроиды не знают что это такое. - ASDFS(12.12.2017 12:20)
- Варианты-то есть, но все это дерьмецом попахивает. Ну вроде как подключение к ЛПТ лет 15-20 тому назад, и дальше самодельный протокол с bitbanging'ом. Куда сейчас такое подключишь? Что характерно, печать байтиков на принтер через тот же USB-LPT fk0(64 знак., 12.12.2017 02:38)
- Плевать мне на протокол, мне важно знать, как стандартными средствами (а не самописными библиотеками от дяди Васи) эти данные можно принять, как простой поток байт, не взирая на их форматную организацию. CDC-девайс это позволяет стандартно делать, Ксения(56 знак., 12.12.2017 02:47)
- стандартными средствами вы через ком файл не передадите понадобится либо терминалка либо самописная программа. через hid открываете устройство и читаете репорты, потом по 64 байта складываете в файл. если хочется "совсем стандартно" реализуете MSD 3m(9 знак., 12.12.2017 09:40)
- спасибо, не знаете ли такой момент, можно ли в еепром микроконтроллера держать файловую систему чтобы не подцеплять внешнюю память и SDCARD всякие? - stm32msk(12.12.2017 19:49)
- Конечно можно, только осторожно чтобы ресурс перезаписи не скончался. - ASDFS(12.12.2017 20:31)
- спасибо, не знаете ли такой момент, можно ли в еепром микроконтроллера держать файловую систему чтобы не подцеплять внешнюю память и SDCARD всякие? - stm32msk(12.12.2017 19:49)
- HID придуман не для потоков данных (используйте MSD или RNDIS для этого), а для коротких пакетов-сообщений, типа "нажата кнопка 2", "температура 40град" и т.д. И команд типа "зажечь светодиод", "включить вентилятор". Вместо "библиотек от дяди LightElf(71 знак., 12.12.2017 09:03)
- НИКАК и в этом основная проблема. Верней даже две. Первая проблема тут концептуальная: COM-порт это ПОТОК ДАННЫХ в двух направлениях, хотя может быть и в одном. HID -- это куча всякой требухи и обмен пакетами в реальном времени (поэтому HID не fk0(598 знак., 12.12.2017 02:58 - 03:01, ссылка)
- стандартными средствами вы через ком файл не передадите понадобится либо терминалка либо самописная программа. через hid открываете устройство и читаете репорты, потом по 64 байта складываете в файл. если хочется "совсем стандартно" реализуете MSD 3m(9 знак., 12.12.2017 09:40)
- Плевать мне на протокол, мне важно знать, как стандартными средствами (а не самописными библиотеками от дяди Васи) эти данные можно принять, как простой поток байт, не взирая на их форматную организацию. CDC-девайс это позволяет стандартно делать, Ксения(56 знак., 12.12.2017 02:47)
- Если не заставлять HID притворяться мышкой или клавиатурой - то будет виден как просто "USB устройство ввода". Дальше вы его открываете средствами WinAPI и работаете спокойно. Я же выкладывал сюда сорцы? - LightElf_(12.12.2017 23:36, )
- CDC да. но тогда мне бы аргументов что не так с хидом чтобы я мог ТЗ поменять условно говоря - stm32msk(12.12.2017 02:23)
- Не знаю, как там в линуксе, а в винде с хидом всё путём. Не слушайте людей, которые не умеют его готовить. - йцукен(12.12.2017 10:10)
- спасибо! да я в общем не против послушать, уважаемый fk0 мне привел пример с LPT, у меня такой осциллограф был который просто невозможно стало использовать, хотя переходники USB-LPT были испробованы - stm32msk(12.12.2017 19:46)
- Причина, по которой на USB в принципе невозможно сделать полноценную эмуляцию LPT, известна, но к теме разговора имеет косвенное отношение. - йцукен(12.12.2017 23:42)
- Очень даже прямое! Ну вот LightElf ниже сам же и отвечает. Интерфейс передачи данных, хоть последовательный, хоть параллельный -- можно сделать на USB. А нестандарный bit banging -- нельзя. LPT же работает по определенному протоколу, тоже ожидает fk0(384 знак., 12.12.2017 23:59)
- Да уж, исключительно на USB - LightElf(13.12.2017 00:05, ссылка)
- Да я не прав. Может HID не так уж и плох. Сильно лучше, чем bitbang на lpt 20 лет назад. Я просто хочу сказать, что интерфейс ориентированный на ПОТОК данных, а не на встречный обмен посылками, в любом случае более универсальный. Завтра вместо fk0(520 знак., 13.12.2017 00:12)
- Каждому овощу свой огород. - LightElf(13.12.2017 00:19)
- Твой любимые виндомороны даже сделать не могут, чтоб ссылки работали. - fk0(13.12.2017 00:07)
- Да я не прав. Может HID не так уж и плох. Сильно лучше, чем bitbang на lpt 20 лет назад. Я просто хочу сказать, что интерфейс ориентированный на ПОТОК данных, а не на встречный обмен посылками, в любом случае более универсальный. Завтра вместо fk0(520 знак., 13.12.2017 00:12)
- Да уж, исключительно на USB - LightElf(13.12.2017 00:05, ссылка)
- Полноценную эмуляцию COM-порта тоже нельзя сделать на USB. - LightElf(12.12.2017 23:49)
- Очень даже прямое! Ну вот LightElf ниже сам же и отвечает. Интерфейс передачи данных, хоть последовательный, хоть параллельный -- можно сделать на USB. А нестандарный bit banging -- нельзя. LPT же работает по определенному протоколу, тоже ожидает fk0(384 знак., 12.12.2017 23:59)
- Причина, по которой на USB в принципе невозможно сделать полноценную эмуляцию LPT, известна, но к теме разговора имеет косвенное отношение. - йцукен(12.12.2017 23:42)
- спасибо! да я в общем не против послушать, уважаемый fk0 мне привел пример с LPT, у меня такой осциллограф был который просто невозможно стало использовать, хотя переходники USB-LPT были испробованы - stm32msk(12.12.2017 19:46)
- Покури решения прежде, чем ТЗ менять. Evgeny_CD(175 знак., 12.12.2017 02:27)
- спасибо! изучаю - stm32msk(12.12.2017 02:33)
- То, что нет стандартного способа на уровне ОС. Самодельный драйвер, который не подойдет к следующей версии операционки. Нельзя удлинить (over RS232, ethernet, etc). Да там миллион причин. - fk0(12.12.2017 02:25)
- так HID он же стандартнее не придумаешь, и драйвера нету. или имеется в виду либа dll которая может быть несовместима со следующей версией операционки? не спорю, но я не вкурил в ситуацию здесь. stm32msk(101 знак., 12.12.2017 02:31)
- Если он такой стандартный, то чего ж нельзя сделать fopen() на /dev/hid и начать читать данные, как для компорта? А нужны какие-то длл, рутовые права и много других странностей. Фактически bitbanging на уровне параллельного порта, только fk0(246 знак., 12.12.2017 02:35)
- Для работы с COM-портом под линукс тоже нужны расширенные права, что абсолютно логично. Через 10 лет сами персональные компьютеры могут исчезнуть, так как для фейспуков и одноглазников они не нужны. Удобные интерфейсы точно все порежут, как, Экспериментатор(261 знак., 12.12.2017 13:09, )
- Под виндами именно так и делается - открываешь устройство и читаешь себе из него все подряд. DLL и рутовые права не нужны. Лечите ваших линуксов. - LightElf(12.12.2017 09:10)
- и еще, ну в текущей логике я буду разрабатывать девайс c АБВГД и USB+HID останется как и компорт остался, если софт сможет запуститься на условном Windows_XXX - stm32msk(12.12.2017 03:00)
- уважаю компорт. но тут в текущих требованиях - отсутствие драйвера который нужно скачивать и ставить (или на диске передавать...) stm32msk(105 знак., 12.12.2017 02:56, картинка)
- А волшебную библиотеку устанавливать не надо будто? Ну так и драйвер так же приложишь. - fk0(12.12.2017 03:02)
- там отдельные заморочки типа админских прав и так далее... да, софт я конечно передаю как экзешник и этот HID.dll или что там, это факт. - stm32msk(12.12.2017 03:05)
- Будто с DLL и ее зависимостями нет заморочек, как и с админскими правами для "сырого" доступа. Просто ты делаешь порядочное дерьмо и подкладываешь хорошую свинью тем, кто будет запускать твой прибор через 10 лет. Ну как LPT в свое время. Тот же fk0(284 знак., 12.12.2017 03:07)
- вообще могу предположить что USB HID постигнет судьба PS/2, но мне трудо представить что условно говоря USB CDC будет работать на той же винде а USB HID не будет потому что в стандарт USB решили поддерживать не полностью, как-то так - stm32msk(12.12.2017 03:19)
- HID бывает не только USB, еще как минимум Bluetooth и I2C. Он нас всех переживет. - LightElf(12.12.2017 09:12)
- смотрите вот я думаю все что нужно от HID это ловить раз в миллисекунду посылки в <=64 байта. это железный стандарт который обязаны соблюдать производители. дальше вопрос такой что DLL ничего волшебного не дергает а собирает в кучу эти пакетики stm32msk(187 знак., 12.12.2017 03:14)
- Не слушайте фанатика, делайте HID. У нас нормально все работает под винду, мак и линкус без волшебных библиотек. Прога на Qt написана. Alex B.(125 знак., 12.12.2017 08:23)
- Ты вот свою прогу виндовую в линуксе, в wine запусти. Ну или линуксовую в "недоубунте" из 10-й винды. Не заработает же? А с компортом заработала бы. И с будущими операционками так же будет. И я уже сказал: в файл не записать, по сети или модему fk0(134 знак., 12.12.2017 23:38)
- Я, конечно, не агнец, но до такого извращения не додумался. В файл не записать, по сети не передать — пещы ещо. - Alex B.(13.12.2017 15:02)
- Хм, что мешает в wine/wsl доточить поддержку HID устройств? Логика работы HID-устройств от OS мало зависит. API скорее всего мапится 1:1 - LightElf(13.12.2017 09:49)
- +1 Отлично работает искаропки под любой OS без драйверов и волшебных DLL. - LightElf(12.12.2017 09:14)
- Ты вот свою прогу виндовую в линуксе, в wine запусти. Ну или линуксовую в "недоубунте" из 10-й винды. Не заработает же? А с компортом заработала бы. И с будущими операционками так же будет. И я уже сказал: в файл не записать, по сети или модему fk0(134 знак., 12.12.2017 23:38)
- Не слушайте фанатика, делайте HID. У нас нормально все работает под винду, мак и линкус без волшебных библиотек. Прога на Qt написана. Alex B.(125 знак., 12.12.2017 08:23)
- вообще могу предположить что USB HID постигнет судьба PS/2, но мне трудо представить что условно говоря USB CDC будет работать на той же винде а USB HID не будет потому что в стандарт USB решили поддерживать не полностью, как-то так - stm32msk(12.12.2017 03:19)
- Будто с DLL и ее зависимостями нет заморочек, как и с админскими правами для "сырого" доступа. Просто ты делаешь порядочное дерьмо и подкладываешь хорошую свинью тем, кто будет запускать твой прибор через 10 лет. Ну как LPT в свое время. Тот же fk0(284 знак., 12.12.2017 03:07)
- там отдельные заморочки типа админских прав и так далее... да, софт я конечно передаю как экзешник и этот HID.dll или что там, это факт. - stm32msk(12.12.2017 03:05)
- => - Ксения(12.12.2017 03:00, ссылка)
- А подпись микрософта там есть? Я когда-то использовал CDC от Atmel, а потом микрософт помимо вид и пид начал требовать еще и подписи драйвера, после чего мой интерес к USB угас. Эту шину придумали для выкачивания денег, а не для надежной работы. - Экспериментатор(12.12.2017 12:55, )
- Чем хорош HID - драйвер приходит с виндой. Вопреки широко распространённому мнению, драйвер CDC, приходящий с виндой, тоже вполне рабочий по крайней мере начиная с семёрки. - йцукен(12.12.2017 13:09)
- Он что, так и называется HID, без конкретизации? Что-то мне не верится в это. По моему мнению HID - это только протокол, а сами устройства так никогда не называют. И если драйверы для HID "приходит с виндой", но должны иметь какие-то Ксения(583 знак., 12.12.2017 21:35)
- Мыши, клавиатуры, тачпады ОС знает и транслирует на соответствующий уровень. А самодельный HID -- не знает и только позволяет вручную с ним тыкаться. И через эти тычки теперь нужно сделать протокол передачи потока данных. Вместо того, чтобы fk0(9 знак., 12.12.2017 23:40)
- Помните, когда Полифем спросил у Одиссея, как его зовут, Одиссей ответил "Никто". Позже, когда у Полифема спрашивали, кто его обидел, тот так и отвечал - "Никто". Короче, тут такая же фигня. Кем должно представляться HID-устройство? Никем. HID йцукен(835 знак., 12.12.2017 23:34)
- В том же дескрипторе есть поле Usage, которое требуется заполнять. Если я пропишу: Ксения(539 знак., 13.12.2017 03:09)
- Диапазон FF00-FFFF стандартно определен как Vendor-defined usage. - LightElf(13.12.2017 11:50)
- Не знаю. Я не отвечаю ни на 9-й вопрос, ни на предыдущие 8. У меня есть готовый дескриптор, добытый в незапамятные времена в интернетах. Я его копирую из проекта в проект, чего и вам советую. йцукен(713 знак., 13.12.2017 11:40)
- Про Вин98 ты круто загнул. Помнится и в 2000-й с USB-клавиатурой все плохо было. А в линуксе тех времен вообще почти что никак. - fk0(12.12.2017 23:41)
- В 95 и начальном релизе 98 поддержка USB вообще была больная, даже для флешек нужно было дрова ставить. Но начиная с 98 SP какой-то, забыл за давностью лет, HID работал нормально. А вот usbser.sys был дырявый долго. Про висту не скажу, не йцукен(48 знак., 12.12.2017 23:48)
- У меня давно клавиатуры Dialog Invest, и до XP они никогда нормально не работали. - fk0(13.12.2017 00:01, картинка)
- В 95 и начальном релизе 98 поддержка USB вообще была больная, даже для флешек нужно было дрова ставить. Но начиная с 98 SP какой-то, забыл за давностью лет, HID работал нормально. А вот usbser.sys был дырявый долго. Про висту не скажу, не йцукен(48 знак., 12.12.2017 23:48)
- В том же дескрипторе есть поле Usage, которое требуется заполнять. Если я пропишу: Ксения(539 знак., 13.12.2017 03:09)
- Он что, так и называется HID, без конкретизации? Что-то мне не верится в это. По моему мнению HID - это только протокол, а сами устройства так никогда не называют. И если драйверы для HID "приходит с виндой", но должны иметь какие-то Ксения(583 знак., 12.12.2017 21:35)
- есть, я использую этот драйвер. Норм работает в хр, 7, 10 - 0men(12.12.2017 13:04)
- Чем хорош HID - драйвер приходит с виндой. Вопреки широко распространённому мнению, драйвер CDC, приходящий с виндой, тоже вполне рабочий по крайней мере начиная с семёрки. - йцукен(12.12.2017 13:09)
- нет-нет у меня эта штука есть и я ее ставил и даже потом вычищал из системы для чистоты эксперимента, у меня-то что угодно запуститься, я хочу чтобы клиент ничего не скачивал - stm32msk(12.12.2017 03:02)
- Если нужно, чтобы воткнул и прочитал - то MSD или RNDIS. В первом случае появится диск с файликом (содержимое которого можно генерировать автоматически на лету), во втором - web-страничка. - LightElf(12.12.2017 23:48)
- Если хочется обновить файлик -- пляски с бубном обеспечены (ОС закеширует). А в случае с RNDIS сеть нужно, видимо, руками поднимать. Зато потом само. - fk0(13.12.2017 00:02)
- В вендах с RNDIS все просто: девайс воткнул, винда поставила драйвер, девайс изобразил из себя сразу и сетевуху и сервер, отдал по DHCP винде IP, назначил себя гейтвеем для данного интерфейса и на любой HTTP запрос выдает заранее заготовленную LightElf(58 знак., 13.12.2017 00:10)
- А винда от каждого встречного таблицу маршрутизации меняет и на каждом интерфейсе без спроса DHCP запускает (из чего может последовать смена маршрутизации)? Решето дырявое же в плане безопасности. Линукс вот так не делает. Там вручную ifconfig и fk0(36 знак., 13.12.2017 00:16)
- Если есть физический доступ к компу (возможность втыкать девайсы) - то говорить о решете бессмысленно. - LightElf(13.12.2017 00:25)
- BTW совершенно забыли же Media Transfer Protocol (MTP) -- а он именно для этого и создан! - fk0(13.12.2017 00:24, ссылка)
- А винда от каждого встречного таблицу маршрутизации меняет и на каждом интерфейсе без спроса DHCP запускает (из чего может последовать смена маршрутизации)? Решето дырявое же в плане безопасности. Линукс вот так не делает. Там вручную ifconfig и fk0(36 знак., 13.12.2017 00:16)
- В вендах с RNDIS все просто: девайс воткнул, винда поставила драйвер, девайс изобразил из себя сразу и сетевуху и сервер, отдал по DHCP винде IP, назначил себя гейтвеем для данного интерфейса и на любой HTTP запрос выдает заранее заготовленную LightElf(58 знак., 13.12.2017 00:10)
- Если хочется обновить файлик -- пляски с бубном обеспечены (ОС закеширует). А в случае с RNDIS сеть нужно, видимо, руками поднимать. Зато потом само. - fk0(13.12.2017 00:02)
- Если нужно, чтобы воткнул и прочитал - то MSD или RNDIS. В первом случае появится диск с файликом (содержимое которого можно генерировать автоматически на лету), во втором - web-страничка. - LightElf(12.12.2017 23:48)
- А подпись микрософта там есть? Я когда-то использовал CDC от Atmel, а потом микрософт помимо вид и пид начал требовать еще и подписи драйвера, после чего мой интерес к USB угас. Эту шину придумали для выкачивания денег, а не для надежной работы. - Экспериментатор(12.12.2017 12:55, )
- А волшебную библиотеку устанавливать не надо будто? Ну так и драйвер так же приложишь. - fk0(12.12.2017 03:02)
- Если он такой стандартный, то чего ж нельзя сделать fopen() на /dev/hid и начать читать данные, как для компорта? А нужны какие-то длл, рутовые права и много других странностей. Фактически bitbanging на уровне параллельного порта, только fk0(246 знак., 12.12.2017 02:35)
- так HID он же стандартнее не придумаешь, и драйвера нету. или имеется в виду либа dll которая может быть несовместима со следующей версией операционки? не спорю, но я не вкурил в ситуацию здесь. stm32msk(101 знак., 12.12.2017 02:31)
- Не знаю, как там в линуксе, а в винде с хидом всё путём. Не слушайте людей, которые не умеют его готовить. - йцукен(12.12.2017 10:10)