Porta serial retornando erros aleatórios no cliente Wyse

Porta serial retornando erros aleatórios no cliente Wyse

Estamos testando um cliente Wyse mais recente (modelo Z90D7) que possui uma conexão de porta serial a um PC. Temos um cliente externo que utiliza um equipamento dedicado, porém o PC é o que utilizamos para testes. Executamos uma aplicação C# nos clientes via Citrix. Quando executamos o aplicativo que estamos usando em nosso antigo equipamento Wyse, tudo funciona bem e sem erros. Porém, nos novos equipamentos, a porta serial funciona aproximadamente uma vez a cada 10 tentativas. Todas as outras vezes, ocorrerá um erro de saturação, um erro de paridade ou um erro RXOver.

Verifiquei através do registro que a porta abre e vários comandos são executados após a abertura. No entanto, os erros aleatórios acontecemantes mesmo que qualquer dado real possa ser transmitido. Li em vários lugares que isso pode ser um problema de buffer, mas não vi nenhuma postagem mencionando erros que acontecem antes dos dados serem recebidos, por isso não tenho certeza.

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

9600 baud, paridade par, 8 bits de dados, 1 bit de parada

Dado que isso está rodando em Citrix, também temos queexecute os comandos net use mostrados aquiantes que qualquer coisa seja feita. Não fazer isso fará com que a conexão serial sempre diga que está conectada e não receberá nenhum dado (isso também acontece nos equipamentos antigos). 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 algo além de uma porta com defeito (ou duas portas com defeito) 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.

Responder1

Todos os erros parecem dizer 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 do 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.

Sugiro experimentar mais equipamentos para ter uma perspectiva melhor do problema, talvez algum problema de compatibilidade com seu computador de teste.

O artigo 5 problemas comuns de 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 incluem 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 defeituosa

informação relacionada