Como usar o Libudev para descobrir quais portas estão conectadas ao meu Usb

0

Eu fiz uma espécie de módulo. Sensores diferentes são colocados no módulo. Eu conectei o módulo ao Raspberry Pi através do conversor RS232. Estou usando o Libudev para descobrir automaticamente qual porta Pi tem o conversor RS232 usando o ID do fornecedor e o ID do produto e lendo os dados com êxito e exibindo-os no front-end. Agora, meu problema é que eu tenho dois módulos agora e ambos estão conectados com o mesmo Pi e ambos RS232 Vendor id e Product id são os mesmos. No front end, fiz uma opção para selecionar o módulo 1 ou 2. Como faço para diferenciar entre os dois conversores, exceto o ID do fornecedor e o ID do produto. Seria melhor se a solução pudesse ser fornecida através do Libudev. P.S: Atualmente o Libudev detecta a porta mais recente em que eu pluguei o conversor RS232.

    
por Usman Khan 07.11.2018 / 05:44

1 resposta

0

A maneira apropriada de fazer isso é tornar o nome do nó de dispositivo dos conversores RS232, e. /dev/ttyUSB0 , um parâmetro para sua aplicação. Via opções de linha de comando, por meio de um arquivo de configuração ou de outra forma.

Como seu aplicativo pode ser executado em alguma outra máquina, com muitos outros conversores RS232 com o mesmo fornecedor e id de produto, mas sem o módulo conectado a nenhum deles. Então será necessário para o usuário escolher quais conversores RS232 seu aplicativo deve usar, e se ele não tiver uma maneira de definir isso, seu aplicativo não funcionará em sua máquina.

Quanto à distinção automática entre dispositivos USB com o mesmo fornecedor e produto, você pode verificar o número de série (se for diferente, alguns dispositivos não têm número de série ou sempre o mesmo). Você também pode ver o caminho da porta USB ao qual os dispositivos estão conectados. Você pode usar as regras udev para criar links simbólicos com nomes conhecidos desses dispositivos e usar esses nomes como padrões para os parâmetros acima.

    
por 07.11.2018 / 08:12