El puerto serie devuelve errores aleatorios en el cliente Wyse

El puerto serie devuelve errores aleatorios en el cliente Wyse

Estamos probando un cliente Wyse más nuevo (modelo Z90D7) que tiene una conexión de puerto serie a una PC. Tenemos un cliente externo que utiliza un equipo dedicado, sin embargo, la PC es lo que usamos para las pruebas. Ejecutamos una aplicación C# en los clientes a través de Citrix. Cuando ejecutamos la aplicación que estamos usando en nuestro antiguo equipo Wyse, todo funciona bien y sin errores. Sin embargo, en los equipos nuevos, el puerto serie funciona aproximadamente una vez cada 10 intentos. El resto del tiempo, me dará un error de desbordamiento, un error de paridad o un error de RXOver.

He verificado mediante el registro que el puerto se abre y que se ejecutan varios comandos después de que se abre. Sin embargo, los errores aleatorios ocurren.incluso antes de que se puedan transmitir datos reales. He leído en numerosos lugares que esto podría ser un problema de búfer, sin embargo, no he visto ninguna publicación que mencione errores antes de recibir los datos, por lo que no estoy del todo seguro.

También intenté utilizar el protocolo de enlace y buffers de lectura/escritura más grandes sin suerte. Probé un cable nuevo y el segundo puerto COM en este dispositivo, pero tampoco tuve suerte. Nuestras configuraciones predeterminadas son:

9600 baudios, paridad par, 8 bits de datos, 1 bit de parada

Dado que esto se ejecuta en Citrix, también tenemos queejecute los comandos net use que se muestran aquíantes de que se haga algo. De no hacerlo, la conexión serial siempre dirá que está conectada y no recibirá ningún dato (esto también sucede en el equipo antiguo). El comando exacto que estamos ejecutando (con el nombre de la aplicación cambiado, por supuesto) es:

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

¿Alguien que haya trabajado con puertos serie ha oído hablar alguna vez de estos tres errores que se alternan así? ¿Hay algo más que un puerto defectuoso (o más bien dos puertos defectuosos) que pueda causar esto? Estoy pensando que el tamaño del búfer del hardware podría ser el problema, pero no encuentro ninguna forma de solucionarlo.

Respuesta1

Todos los errores parecen decir que los datos no se mueven, y en ambas direcciones.

RXOver no vacía el búfer de recepción lo suficientemente rápido. Overrun es que el controlador del puerto serie no vacía el buffer de envío del chip lo suficientemente rápido.

No estoy seguro de que exista una manera de aumentar el tamaño del búfer de hardware. El búfer de Windows se puede aumentar a través de la API, pero es posible que el controlador lo ignore.

Sugiero probar más equipos para tener una mejor perspectiva del problema, tal vez algún problema de compatibilidad con su computadora de prueba.

El artículo 5 problemas comunes del puerto serie enumera algunas posibles razones para tales problemas:

  • Parámetros de comunicación incorrectos
    Ambos dispositivos deben configurarse con los mismos parámetros de comunicación, que incluyen velocidad en baudios, paridad, número de bits de datos y número de bits de parada.

  • Cable serie incorrecto

  • Cables seriales defectuosos
  • Cableado defectuoso

información relacionada