Porta serial retornando erros aleatórios no cliente Wyse

3

Estamos testando um novo cliente Wyse (modelo Z90D7) que possui uma conexão de porta serial para um PC. Temos um cliente externo que usa um equipamento dedicado, mas o PC é o que usamos para testes. Nós executamos uma aplicação C # nos clientes via Citrix. Quando executamos o aplicativo que estamos usando em nosso antigo equipamento Wyse, tudo corre bem sem erros. No entanto, no novo equipamento, a porta serial funciona uma vez a cada 10 tentativas. Todas as outras vezes, isso me causará um erro de Excesso, um erro de Paridade ou um erro de RXOver.

Eu verifiquei através do registro que a porta é aberta e vários comandos são executados depois que ela é aberta. No entanto, os erros aleatórios acontecem antes que qualquer dado real possa ser transmitido. Eu li em vários lugares que isso poderia ser um problema de buffer, mas eu não vi nenhum post mencionando erros antes dos dados serem recebido, então não tenho certeza.

Eu também tentei usar o handshaking e maiores buffers de leitura / gravação sem sorte. Eu tentei um novo cabo e a segunda porta COM neste dispositivo, sem sorte também. Nossas configurações padrão são:

9600 baud, even parity, 8 data bits, 1 stop bit

Considerando que isso está sendo executado na Citrix, também precisamos executar os comandos net use mostrados aqui antes que qualquer coisa seja feita . Não fazer isso resultará na conexão serial sempre dizendo que está conectado e não está recebendo nenhum dado (isso também acontece no equipamento antigo). O comando exato que estamos executando (com o nome do aplicativo alterado, é claro) é:

net use com1 /DELETE
net use com2 /DELETE
net use com1: \client\com1:
net use com2: \client\com2:
start /d "D:\myapp" MyApplication.exe

Alguém que já lidou com portas seriais já ouviu falar desses três erros alternando assim? Existe alguma coisa diferente de uma porta defeituosa (ou duas portas defeituosas, em vez disso) que poderia causar isso? Estou pensando que o tamanho do buffer de hardware pode ser o problema, mas não consigo encontrar uma maneira de superar isso.

    
por Big EMPin 06.04.2018 / 20:37

1 resposta

1

Todos os erros parecem indicar que os dados não estão se movendo e em ambas as direções.

O RXOver não está esvaziando o buffer de recebimento com rapidez suficiente. Overrun é o driver da porta serial que não esvazia o buffer de envio de chip com rapidez suficiente.

Não tenho certeza se existe uma maneira de aumentar o tamanho do buffer de hardware. O buffer do Windows pode ser aumentado através da API, mas o driver pode ignorá-lo.

Eu sugiro tentar mais equipamentos para ter uma perspectiva melhor sobre o problema, talvez algum problema de compatibilidade com o seu computador de teste.

O artigo 5 problemas comuns na porta serial lista algumas possíveis razões para tais problemas:

  • Parâmetros de comunicação incorretos
    Ambos os dispositivos precisam ser configurados com os mesmos parâmetros de comunicação, que inclui taxa de transmissão, paridade, número de bits de dados e número de bits de parada.

  • Cabo serial incorreto

  • Cabos seriais ruins
  • Fiação com defeito
por 13.04.2018 / 10:17