Como obter um caminho de dispositivo USB por seu idVendor e idProduct? [fechadas]

0

Agora posso obter o idVendor e o idProduct de um dispositivo USB. Como usá-los para obter o caminho como /dev/ttyACM0 ou /dev/ttyUSB0 ? A próxima função precisa desse caminho em vez de seu idVendor e idProduct.

Aviso: por codificação, não por comando.

    
por Jeff 20.02.2017 / 10:43

1 resposta

1

Você geralmente faz o contrário: escreve uma regra udev específica para um determinado fornecedor / produto que cria um link simbólico conhecido que você pode usar na sua "próxima função". Google para muitos tutoriais como tal regra parece.

Ou você escreve seu aplicativo de maneira que possa passar o caminho para o dispositivo como um argumento.

É possível percorrer o caminho do dispositivo em /sys/devices para trás e verificar em cada etapa se esse é um dispositivo usb e tem um fornecedor / produto específico. Isso é o que, por exemplo udevadm info -a /dev/ttyUSB0 faz. Você precisa fazer dessa forma, porque não precisa ser um dispositivo USB, pode ser qualquer coisa.

Se você tiver para fazê-lo "codificando, não por comando", veja a fonte de udevadm e copie o que ela fizer. Este será um esforço não trivial, e não pode ser muito simplificado, então eu realmente sugiro fazer isso de maneira diferente.

    
por 20.02.2017 / 13:29