델파이 직렬 통신 프로그래밍의 기본 아이디어는 무엇입니까?

Delphi 를 사용하여 직렬 통신 소프트웨어를 개발하는 데는 일반적으로 두 가지 방법이 있습니다. 하나는 Windows 의 통신 API 함수를 사용하는 것이고, 다른 하나는 Microsoft 의 MSComm 컨트롤을 사용하는 것입니다. API 를 사용하여 직렬 통신 프로그램을 작성하는 것은 비교적 복잡하며 많은 통신 지식이 필요합니다. 그것의 장점은 기능이 더 강하고, 응용이 더 광범위하며, 복잡한 저급 통신 프로그램을 작성하는 데 더 적합하다는 것이다. 그러나 MSComm 컨트롤을 사용하는 것은 비교적 간단하며 직렬 통신과 밀접한 관련이 있는 속성과 이벤트를 풍부하게 갖추고 있으며 직렬 포트에 대한 다양한 작업을 제공합니다. 1.MSComm 컨트롤 (1)CommPort 의 주요 속성 및 이벤트: 직렬 번호를 설정하거나 반환합니다. 기본값은 1 입니다. (2) 설정: "전송 속도, 체크 비트, 데이터 비트, 정지 비트" 형식으로 직렬 통신 매개변수를 설정하거나 반환합니다. 예: MSComm 1. 설정: =' 9600, n, 8, 1' (3) Portopen: 직렬 포트를 켜거나 끕니다. MSComm 1 형식입니다. Portopen: = {true | false} (4) in 버퍼 크기: set 또는. (5)InBufferCount: 수신 버퍼에서 읽을 바이트 수를 반환합니다. 이 속성을 0 으로 설정하여 지울 수 있습니다. (6)RThreshold: 이 속성은 수신 버퍼의 바이트 수가 이 값에 도달하거나 초과할 때 ComEvReceive 코드가 있는 OnComm 이벤트를 생성하는 임계값입니다. (7)SThreshold: 이 속성은 전송 버퍼의 바이트 수가 이 값보다 작을 때 ComEvSend 코드가 있는 OnComm 이벤트를 생성하는 임계값입니다. (8)InputLen: 수신 버퍼에 입력된 읽기 바이트 수를 설정하거나 반환합니다. 이 속성을 0 으로 설정하면 Input 이 전체 버퍼의 내용을 읽습니다. (9) 입력: 수신 버퍼에서 문자 문자열을 읽습니다. (10)OutBufferSize: 전송 버퍼의 크기를 설정하거나 반환합니다. 기본값은 5 12 바이트입니다. (11) outbuffercount: 전송 버퍼에서 전송 대기 중인 바이트 수를 반환합니다. 이 속성을 0 으로 설정하여 지울 수 있습니다. (12) 출력: 전송 버퍼로 문자열을 보냅니다. 통신 중 오류나 이벤트가 발생하면 OnComm 이벤트가 트리거되고 Comm event 속성 코드를 통해 오류 유형이 반영되며 통신 프로그램 설계에서 속성 값에 따라 다른 작업을 수행할 수 있습니다. CommEvent 속성의 값과 그 의미는 다음과 같습니다. (1)ComEvSend: 값 1, 전송 버퍼의 내용이 SThreshold 에서 지정한 값보다 작습니다. (2)ComEvReceive: 값 2, 수신 버퍼의 문자 수가 RThreshold 에 지정된 값에 도달합니다. (3)ComEvFrame: 값이 1004 이고 하드웨어에서 프레임 오류를 감지했습니다. (4)ComEvRxOver: 값은 1008 로 수신 버퍼 오버플로를 나타냅니다. (5)ComEvTxFull: 값 10 10, 전송 버퍼 오버플로. (6)comevxparity: 값 1009, 패리티 오류. (7)ComEvEOF: 값 7, 수신된 데이터에 파일 끝 (ASCII 코드 26) 문자가 나타납니다. 둘째, 프로그램 예제는 Delphi3.0 의 MSComm 컨트롤을 사용할 수 없습니다. 작성자는 Delphi5.0 을 사용하고 MSComm 컨트롤은 VB 의 OCX 컨트롤입니다. 먼저 델파이에 추가하고, 메뉴 구성 요소 → ActiveX 컨트롤 가져오기를 선택하고, ActiveX 가져오기 페이지에서 Microsoft Comm Control 을 선택하고, 설치를 클릭하여 설치해야 합니다. 설치 후 ActiveX 팔레트에 MSComm 아이콘이 나타나 사용할 수 있습니다. MSComm 컨트롤의 입력 및 출력 속성은 객체 관리자에 표시되지 않지만 여전히 존재한다는 점에 유의해야 합니다. 이 두 속성의 유형은 OleVariant(Ole 일반 변수) 입니다. 다음은 실제 필요에 따라 개선할 수 있는 수신기 (주요 부분) 의 예입니다. 양식에 Memo 컨트롤을 배치하여 수신된 데이터를 표시합니다. Combobox 1 통신 매개변수 선택 (속성 값 설정), Combobox2 직렬 포트 선택 (CommPort 속성 값), 버튼 1 을 눌러 데이터 수신 시작, 버튼 2 를 눌러 데이터 수신을 중지합니다. 과정