Wyse 클라이언트에서 임의 오류를 반환하는 직렬 포트

Wyse 클라이언트에서 임의 오류를 반환하는 직렬 포트

PC에 대한 직렬 포트 연결이 있는 최신 Wyse 클라이언트(Z90D7 모델)를 테스트하고 있습니다. 전용 장비를 사용하는 외부 고객이 있지만 테스트에는 PC를 사용합니다. Citrix를 통해 클라이언트에서 C# 애플리케이션을 실행합니다. 기존 Wyse 장비에서 사용 중인 애플리케이션을 실행하면 모든 것이 오류 없이 잘 실행됩니다. 그러나 새 장비에서는 직렬 포트가 10번 시도마다 한 번씩 작동합니다. 다른 경우에는 오버런 오류, 패리티 오류 또는 RXOver 오류가 발생합니다.

포트가 열리고 포트가 열린 후 여러 명령이 실행되는 것을 로깅을 통해 확인했습니다. 그러나 무작위 오류가 발생합니다.실제 데이터가 전송되기 전에. 이것이 버퍼 문제일 수 있다는 내용을 여러 곳에서 읽었지만 데이터가 수신되기 전에 발생하는 오류를 언급하는 게시물을 본 적이 없기 때문에 완전히 확신할 수는 없습니다.

나는 또한 행운없이 핸드셰이킹과 더 큰 읽기/쓰기 버퍼를 사용하려고 시도했습니다. 나는 이 장치에 새 케이블과 두 번째 COM 포트를 사용해 보았으나 역시 운이 없었습니다. 기본 설정은 다음과 같습니다.

9600 보드, 짝수 패리티, 8 데이터 비트, 1 정지 비트

이것이 Citrix에서 실행되고 있다는 점을 감안할 때 우리는 또한여기에 표시된 net use 명령을 실행하세요.무슨 일이 일어나기 전에. 그렇지 않으면 직렬 연결이 항상 연결되어 있다고 말하고 데이터를 수신하지 못하게 됩니다(이는 기존 장비에서도 발생합니다). 우리가 실행 중인 정확한 명령(물론 앱 이름은 변경됨)은 다음과 같습니다.

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

직렬 포트를 다루어 본 사람이라면 세 가지 오류가 이렇게 번갈아 나타나는 것을 들어본 적이 있습니까? 이 문제를 일으킬 수 있는 결함이 있는 포트(또는 두 개의 결함이 있는 포트) 외에 다른 것이 있습니까? 하드웨어 버퍼 크기가 문제일 수 있다고 생각하지만 이를 극복할 수 있는 방법을 찾을 수 없습니다.

답변1

모든 오류는 데이터가 양방향으로 이동하지 않는다고 말하는 것 같습니다.

RXOver가 수신 버퍼를 충분히 빨리 비우지 않습니다. 오버런은 칩 전송 버퍼를 충분히 빠르게 비우지 않는 직렬 포트 드라이버입니다.

하드웨어 버퍼 크기를 늘릴 수 있는 방법이 있는지 잘 모르겠습니다. API를 통해 Windows 버퍼를 늘릴 수 있지만 드라이버는 이를 무시할 수 있습니다.

문제에 대한 더 나은 관점을 얻으려면 더 많은 장비를 사용해 보는 것이 좋습니다. 테스트 컴퓨터와의 호환성 문제일 수도 있습니다.

기사 5가지 일반적인 직렬 포트 문제 이러한 문제에 대한 몇 가지 가능한 이유를 나열합니다.

  • 잘못된 통신 매개변수
    두 장치 모두 전송 속도, 패리티, 데이터 비트 수 및 정지 비트 수를 포함하는 동일한 통신 매개변수로 설정되어야 합니다.

  • 잘못된 직렬 케이블

  • 불량 직렬 케이블
  • 잘못된 배선

관련 정보