Cherry Cloud 9

COMMTIMEOUTS structure 본문

Programming/Serial Comm

COMMTIMEOUTS structure

체리구름 2017. 3. 6. 23:59
728x90
반응형

COMMTIMEOUTS structure

typedef struct _COMMTIMEOUTS {
  DWORD ReadIntervalTimeout;
  DWORD ReadTotalTimeoutMultiplier;
  DWORD ReadTotalTimeoutConstant;
  DWORD WriteTotalTimeoutMultiplier;
  DWORD WriteTotalTimeoutConstant;
} COMMTIMEOUTS, *LPCOMMTIMEOUTS;

 

통신 장치의 타임아웃에 대한 정보가 들어있다.  이 매개변수는 ReadFile, WriteFile 의 행동을 결정한다.

Members

ReadIntervalTimeout

  • 다음 통신라인의 문자가 도착하기 전까지의 최대 허용 시간 (miliseconds)

  • 시간이 초과되면 ReadFile 함수는 완료되고, buffer에 있는 데이터는 반환됨

  • 값이 0이면 time out 사용 안함

  • 값이 MAXDWORD고,  ReadTotalTimeoutConstant = ReadTotalTimeoutMultiplier = 0 이면, 이미 수신이 되었거나 수신되기 전이라도 read 함수는 즉시 반환된다.

ReadTotalTimeoutMultiplier

  • 읽기 작업 토탈 타임아웃 시간을 계산하는데 사용되는 승수(곱하는 수)  (milliseconds)

  • ReadTotalTimeoutMultiplier  x 수신하고자 하는 바이트 수

ReadTotalTimeoutConstant

  • 읽기 작업 토탈 타임아웃 시간을 계산하는데 사용되는 정수 (milliseconds)

  • Total Time Out = (ReadTotalTimeoutMultiplier  x 수신하고자 하는 바이트 수) + ReadTotalTimeoutConstant 

  • ReadTotalTimeoutMultiplier = ReadTotalTimeoutConstant = 0 이면 Total Time Out 사용 안함

WriteTotalTimeoutMultiplier

  • 쓰기 작업 토탈 타임아웃 시간을 계산하는데 사용되는 승수(곱하는 수)  (milliseconds)

  • WriteTotalTimeoutMultiplier x 송신하고자 하는 바이트 수

WriteTotalTimeoutConstant

  • 쓰기 작업 토탈 타임아웃 시간을 계산하는데 사용되는 정수 (milliseconds)

  • Total Time Out = (WriteTotalTimeoutMultiplier x 송신하고자 하는 바이트 수) + WriteTotalTimeoutConstant

  • WriteTotalTimeoutMultiplier = WriteTotalTimeoutConstant = 0 이면 Total Time Out 사용 안함

Remarks

어플리케이션에 ReadIntervalTimeout ReadTotalTimeoutMultiplierMAXDWORD 로 설정되어 있고, 
MAXDWORD > ReadTotalTimeoutConstant > 0 이면, ReadFile 함수는 다음 중 하나의 기능을 한다.

  • If there are any bytes in the input buffer, ReadFile returns immediately with the bytes in the buffer.
  • If there are no bytes in the input buffer, ReadFile waits until a byte arrives and then returns immediately.
  • If no bytes arrive within the time specified by ReadTotalTimeoutConstant, ReadFile times out.

 

참조 : https://msdn.microsoft.com/en-us/library/windows/desktop/aa363190(v=vs.85).aspx

 

 

SetCommTimeouts : 지정된 통신 장치에 모든 읽기 쓰기 작업의 타임아웃 매개변수를 설정

GetCommTimeouts : 지정된 통신 장치에 모든 읽기 쓰기 작업의 타임아웃 매개변수를 받음

 

 

 

 

728x90
반응형

'Programming > Serial Comm' 카테고리의 다른 글

SetupComm, PurgeComm Function  (0) 2017.03.07