1
��L��       óôLª         ôôL│Â
      ôôL≥Â
         ôôL:
                      ôôL<
                                       õôL┬      õôL
┬         õôL,               õôL,          öôL÷      öôLü         öôLä       öôLç         öôLÎá
      öôLÓá
         ÷ôLâ³      ÷ôLç³         ÷ôL]æ       ÷ôL◆æ         ÷ôL≥á
      ÷ôL£á
         øôL D      øôL"D         øôLW       øôLW         øôLª  !   øôª         ùôLê÷  !    ùôLí÷         ùôL  !   ùôL          ùôL&ç         !    ùôL(ç          úôLÞ÷  !   úôLà÷         úôL<  !    úôL>         úôL»+    !   úôL¼+          úôL¢
  !    úôL¢
         ûôL  !   ûôL         ûôLJ*  !    ûôLM*         ûôL  !   ûôL         ûôLB
  !    ûôLD
         ýôLÞ   !    ýôLà          ýôL  !   ýôL         ýôLôLàÎ
         ÿôL¨   !    ÿôLª          ÿôL]␉  !   ÿôL◆␉         ÿôLø  !    ÿôLø         ÿôLÏ≠
      !   ÿôLÒ≠
          ôL¾#  !    ôLÁ#          ôL=Ù  !     ôL@Ù          ôL»
  !    ôL½
          ôL7»
                 !     ôL:»
                                        ôLð  !    ôLó         ôL└   !    ôL⎺          ôL'ñ  !   ôL*ñ         ôL¨¬  !    ôLª¬         ôL!Ù  !   ôL#Ù         ôL␍ò  !  

Это какой-то вывод с использованием cat /my /device /file для джойстика. Как мне точно прочитать файл устройства? Являются ли указанные выше двоичные байты? Мне просто нужно уметь определить, что это за персонажи.

Учебники / предложения будут отличными!

4 ответа4

3

Файл устройства - это просто ссылка на пространство ядра. Вывод и способ "чтения" файла устройства зависят от самого устройства. Вам нужно будет обратиться к документации для вашего драйвера (если есть) или прочитать источник, чтобы выяснить, что там написано.

Мое лучшее предположение - его двоичный файл, описанный структурой C в источнике драйвера.

1

Файлы устройств - это специальные файлы, а не текстовые файлы, как многие файлы в /proc .

Если вы просто хотите настроить свой джойстик, используйте программу пользователя, см., Например, инструкцию здесь. Ваша среда рабочего стола также может поставляться со специальным программным обеспечением для его настройки. Чтобы получить к ним прямой доступ, вам потребуется доступ к ним через их C API.

1

«Файл устройства» - это специальный узел на диске, который ссылается на код в ядре. Этот код является драйвером устройства. Когда драйвер устройства загружен, вы устанавливаете определенные функции, которые будут вызываться при вызове определенных системных вызовов (open/read/write/close/etc ...) для «файла».

Поэтому, когда вы вызываете «чтение», он вызывает определенную функцию в коде драйвера устройства. Этот код может делать что угодно в режиме ядра; в этом случае имеет смысл взять аппаратное считывание джойстика, преобразовать значения напряжения в числа и разрешить его считывание () из файла устройства.

Просто случайное предположение, я уверен, что отправляемые значения - это просто показания положения джойстика X и Y (и Z?) и некоторые настройки кнопок. Чтение как текст не будет работать, вам нужно что-то, что делает шестнадцатеричные и / или числовые дампы. Подключите джойстик, считайте значения с него и переместите джойстик вокруг, нажимая кнопки, и посмотрите, как значения меняются.

В исходном коде могут быть комментарии, указывающие, что означают значения, хотя реальный код, вероятно, вам не читается (если вы не знаете, что регистрирует оборудование и что означает протокол USB).

0

Вы должны убедиться, что скорость передачи вашего устройства эквивалентна скорости передачи вашего последовательного порта.

Проверьте скорость передачи данных:
$ stty </my/device/file

и равны скорости устройства и последовательного порта:
$ stty -F /my /device /file XXspeedXX

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .