LINUX.ORG.RU

Помогите разобраться с оборудованием

 ,


0

1

Я в линуксе новичок, не бейте ногами.

Пишу программу для распберри пи которая должна работать с различными девайсами втыкаемыми в USB порты. Пишу на java.

Принесли мне первое устройство, назовём его условно «Весы». Втыкаю, замечаю что в системе появился порт «/dev/ttyUSB0». Отлично, беру jssc и быстренько реализую работу с этим устройством. Устройство взвешивает, результат получается, единственно что гложут сомнения - возможен конфликт имен - не каждое устройство которое определяется системой как «/dev/ttyUSB0» является весами и, возможно, не каждые весы определятся как «/dev/ttyUSB0»

Едем дальше. Принесли мне второе устройство. Назовём его «Принтер». Втыкаю - и вуаля, в системе появился порт «/dev/ttyACM0», с которым можно работать с помощью той же библиотеки. Пишу некий «драйвер», в котором реализую команды работы с принтером и все довольны. Но сомнения продолжаются - не может так хорошо всё продолжаться.

И наконец. Приносят третье устройство. Тоже «Принтер», но другой модели (VID тот же самый, PID другой). Втыкаю в дырку - появляется новое устройство в «/dev/bus/usb», но никаких новых «/dev/tty*» не обнаруживаю. Хотя на 99% уверен, что на низком уровне «Принтер1» и «Принтер2» одинаковые. Приехал я. Надо разбираться с LibUSB (он же usb4java)

Расскажите, почему такое происходит? Как система понимает, какое USB-устройство можно смонтировать на серийный порт, а какое нельзя? Почему некоторые монтируются на «/dev/ttyUSB*», некоторые на «/dev/ttyACM*», а некоторые вообще не становятся серийными портами. (Какие-то особенности в дескрипторах USB?) Есть ли возможность сделать так, чтобы и с «Принтером2» я мог бы работать, как с последовательным портом? Как-то обмануть ось? Уж очень не хочется разные библиотеки применять в рамках одной программы.

Ну или накидайте примеров работы с usb-оборудованием на java. А то все примеры, которые я видел кишат магическими константами и что-то у меня не работают.

Спасибо.


Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.