por que um daemon configuraria uma porta, então a porta não é utilizável?

1

Ubuntu 12.04 em um PC industrial AMD64 Fujitsu. Portas estão em placas PCI Shentek, o daemon "gerenciador" insmods o driver xr17v35x (usando a chamada do sistema com o comando em um buffer), em seguida, inicia os outros processos (também daemons) que usam as portas (também usando a chamada do sistema com " /etc/init.d/ start & amp; "em um buffer). Estes, por sua vez, leem seus dados de configuração fora dos arquivos, abrem as portas (por exemplo, / dev / ttyXR4) e configuram as portas usando uma string lida do arquivo de configuração e passada para stty (novamente via sistema com o comando e dados de configuração em um buffer ).

Eu vi semelhante no Debian: Eu configurei uma porta, então outra coisa (desconhecida para mim) atrapalha a porta com a taxa de transmissão errada. Naquele trabalho, eu tinha o luxo de um dispositivo que enviava de volta respostas para minhas mensagens, então se ele parasse de funcionar ou os dados voltassem parecessem distorcidos, eu poderia executar minha função Initialise () novamente. Isso evitou o problema.

Neste trabalho, eu não tenho esse luxo, tudo o que podemos dizer é da observação humana de que os dispositivos para os quais eu envio mensagens não estão fazendo o que deveriam. Eu tenho um TestRig, que é capaz de injetar uma mensagem PROCESS_RESET no daemon relevante, quando eu faço isso, ele executa a função Initialise () novamente e a operação normal é obtida.

Então, ou eu estou indo na direção errada, ou preciso descobrir o que está prejudicando as configurações da porta e desativá-la.

Alguma sugestão?

EDIT: quem está reclamando? Estou tentando descrever os sintomas e as condições sob as quais eles aparecem. As portas, a valer, são 4 off RS232 em uma placa PCI, as outras são 2 off RS485, em outra placa PCI. Eu tenho uma suspeita, mas não posso provar, que o driver xr17v35x ou algum outro componente do Linux toma sua própria decisão sobre inicializar as portas nas placas que o driver encontra, o que acontece em algum momento depois que eu tentei fazê-lo meu próprio código. Outra maneira de colocar a questão é: há alguém com experiência nesse cenário que possa me esclarecer?

    
por GEphil 21.05.2015 / 18:06

0 respostas