간단한 질문입니다. - 캐리어의 상태는 포트의 라인을 감지 가져옵니다SerialPort 클래스에 RIHolding 속성이없는 이유는 무엇입니까?
CDHolding
: 닷넷SerialPort
클래스는 직렬 입력 라인을 얻기 위해 다음과 같은 속성이 있습니다.CtsHolding
- Clear to Send 라인의 상태를 가져옵니다.DsrHolding
- 데이터 세트 준비 (DSR) 신호의 상태를 가져옵니다.
참고 RIHolding
가 없습니다.
또한 PinChanged
이벤트가 있습니다. 그 다음 멤버를 갖는 SerialPinChange
ENUM 값을 제공하고, 는 링 하나 포함 않습니다
CtsChanged
- 전송하도록 클리어 (CTS) 신호 상태 ...DsrChanged
-THE 데이터 변경 ... 준비 (DSR) 신호가 상태를 변경CDChanged
설정 - 캐리어 검출 (CD) 신호가 상태를 변경 ...Ring
이 - 링 표시가 검출되었다.
Break
- 입력에 끊어짐이 감지되었습니다.
제 질문은 왜 RIHolding
속성이 없습니까? 우리가 내부 SerialStream
클래스를 보면
, 우리는 CDHolding
, CtsHolding
및 DsrHolding
모두는 Win32 GetCommModemStatus
함수를 호출에 의해 구현되는 것을 알 수있다.
MS_CTS_ON
0x0010
CTS (송신 가능) 신호가있다 : 그의lpModemStat
출력 값은 다음 중 하나이다.MS_DSR_ON
0x0020
DSR (데이터 세트 준비 완료) 신호가 켜져 있습니다.MS_RING_ON
0x0040
링 표시기 신호가 켜져 있습니다.MS_RLSD_ON
0x0080
RLSD (receive-line-signal-detect) 신호가 켜져 있습니다. (이CDHolding
에 매핑)
그래서,이 탈락 한 이유는 단지 비트 6에서 보이는 RIHolding
속성을 추가 할 사소한했을 것 같다?
그러나 예를 들어 GUI에서 표시하려고하는 경우 400 ms는 충분한 시간입니다. –
* 이유에 대한 설명을 해 주셔서 감사합니다. 그래도 그것에 대해 더 행복하게하지는 않습니다 :-) –
많은 구현에서 RI 신호는 하드웨어 인터럽트를 생성하므로 폴링 프로세스가 필요 없습니다. –