본문 바로가기
호구지책/기타

[VB6] Microsoft Comm Control 6.0

by 하늘의흐름 2016. 10. 7.
반응형

Windows Comm Control

 

Microsoft Comm Control 6.0

MSComm 컨트롤은 직렬 포트를 통한 데이터 송신과 수신을 가능하게 하여 통신관련 프로그램을 쉽게 만들 수 있도록 해줍니다.

MSComm 컨트롤을 사용하려면 [구성요소] 대화상자에서 'Microsoft Comm Control 6.0'를 추가해야 합니다. [구성요소] 대화상자에서 선택한 화면은 다음과 같습니다.

▶ 자주 사용하는 속성

속 성

설 명

CommPort

통신 포트 번호를 반환하거나 설정한다. 값이 1이면 com1을 의미합니다.

PortOpen

통신 포트의 상태를 반환하거나 설정합니다. 또한 포트를 열거나 닫는다. True 포트가 열려 있고 False 포트가 닫혀 있다.

Input

수신 버퍼에서 문자를 반환하거나 삭제한다.

Output

문자열을 전송 버퍼에 기록한다.

Break

True 중단 신호 상태를 설정하고 False 중단 신호 상태를 해제한다.

CDHolding

반송파 검출(CD) 회선의 상태를 쿼리하여 반송파가 존재하는 지의 여부를 결정한다. CD는 모뎀에서 모뎀이 온라인인 지를 나타내기 위해 연결된 컴퓨터로 보내는 신호이다. True이면 CD 회선이 높고 False CD 회선이 낮다.

CommID

통신 장치를 구분하는 핸들을 반환한다.

InBufferCount

수신 버퍼에서 기다리고 있는 문자의 수를 반환한다.

InBufferSize

수신 버퍼의 크기를 바이트 단위로 반환하거나 설정한다.

EOFEnable

EOFEnable 속성은 입력 도중 MSComm 컨트롤이 EOF를 찾을지 결정한다. EOF 문자를 발견하면 입력이 중지되고 CommEvent 속성이 comEvEOF로 설정되면서 OnComm 이벤트가 발생한다.

InputLen

Input 속성이 수신 버퍼에서 읽는 문자의 수를 반환하거나 설정한다.

InputMode

Input 속성에서 검색하는 데이터 형식을 반환하거나 설정한다.
'0-comInputModeText'이면 Input 속성을 통해서 데이터가 텍스트로 검색되었고 '1-ComInputModeBinary'이면 Input 속성을 통해서 데이터가 이진 데이터로 검색되었다.

NullDiscard

널(Null) 문자가 포트에서 수신 버퍼로 전송되는지의 여부를 결정한다. True이면 널 문자가 포트에서 수신 버퍼로 전송되지 않고False이면 널 문자가 포트에서 수신 버퍼로 전송된다.

ParityReplace

패리티 오류가 발생했을 때 데이터 스트림에서 유효하지 않은 문자를 대체하는 문자를 반환하거나 설정한다.

OutBufferCount

전송 버퍼에서 기다리는 중인 문자의 수를 반환한다.

OutBufferSize

전송 버퍼의 크기를 바이트 단위로 반환하거나 설정한다.

RThreshold

CommEvent속성을 'comEvReceive'로 설정하고 OnComm 이벤트를 발생시키기 전에 수신할 문자의 개수를 반환하거나 설정한다.

RTSEnable

RTS(전송 요청) 회선을 활성화 시킬지를 결정한다. 데이터 전송에 대한 허가를 요청하는 RTS 신호는 컴퓨터에서 모뎀으로 보내진다. True이면 RTS 회선 활성화하고 False이면 RTS 회선 해제한다.

SThreshold

CommEvent 속성을 'comEvSend'로 설정하고 OnComm 이벤트를 발생시키기 전에 전송 버퍼에서 허용 가능한 최소 문자 개수를 반환하거나 설정한다.

Handshaking 속성은 하드웨어 초기 접속 신호 프로토콜을 반환하거나 설정합니다. '0-ComNone'이 초기값으로 되어 있습니다.

마스크

설 명

0-ComNone

초기 접속 신호 없음

1-ComXOnXOff

XON/XOFF 초기 접속 신호

2-ComRTS

RTS/CTS (전송 요청/전송 취소) 초기 접속 신호

3-ComRTSXOnXOff

RTS와 XON/XOFF 초기 접속 신호

▶ Settings 속성

Settings속성은 전송 속도, 패리티, 데이터 비트, 정지 비트를 문자열로 반환하거나 설정합니다.

MSComm1.Settings = "BBBB,P,D,S"

여기서 'BBBB'는 전송 속도, 'P'는 패리티, 'D'는 데이터 비트 수 그리고 'S'는 정지 비트 수입니다.

전송속도(BBBB)

페리티(P)

데이터비트수(D)

정지비트(S)

   110

    E 짝수

    4

     1(초기 값)

   300

    M 표시

    5

     1.5

   600

    N 없음(초기 값)

    6

     2

   1200

    O 홀수

    7


   2400

    S 공간

    8(초기 값)


   9600(초기값)




   14400




   19200




   38400




   56000




   128000




   256000




사용하는 구성요소는 한 개의 문자열로 처리하고 구분은 콤마(,)를 사용합니다. 사용 예는 다음과 같습니다.

MSComm1.Settings = "9600,N,8,1"

포트가 열릴 때 Settings속성에 넣는 값이 유효하지 않은 경우, '속성 값이 잘못되었습니다.'라는 에러 메시지가 화면에 나타납니다. 오류번호는 380입니다.

▶ CommEvent 속성

CommEvent 속성은  가장 최근의 통신 이벤트나 오류를 반환합니다.  통신 오류와 통신 이벤트는 다음과 같습니다.

종 류

속성 값

번 호

설 명

통신 이벤트

ComEvSend

1

전송 버퍼에 송신한계 숫자보다 적은 수의 문자가 있다.

ComEvReceive

2

수신한계 숫자만큼의 문자 수신. 이 이벤트는 사용자가 Input 속성을 사용하여 데이터를 수신 버퍼에서 제거할 때까지 계속 발생한다.

ComEvCTS

3

전송 취소 회선에서 변경한다.

ComEvDSR

4

DSR 회선에서 변경. 이 이벤트는 DSR이 1에서 0으로 변경될 때만 발생한다.

ComEvCD

5

CD 회선에서 변경

ComEvRing

6

호출음 검출한다. UARTs(보편적 비동기 수신기/송신기)중에 이 이벤트를 지원하지 않는 것도 있다.

ComEvEOF

7

수신된 파일 끝 문자(ASCII 문자 26)

오류

ComBreak

1001

중단 신호가 수신되었다.

ComCTSTO

1002

전송 취소 시간 초과(CTS)했다. 문자 전송 시도 중 전송 취소 회선이 시스템 지정 시간보다 낮을 때 발생한다.

ComDSRTO

1003

데이터 설정 준비(DSR) 시간 초과되었다. 문자 전송 시도 중 DSR 회선이 시스템 지정 시간보다 낮을 때 발생한다.

ComEventFrame

1004

하드웨어가 프레이밍 오류를 발생했다.

ComEventOverrun

1006

포트 오버런. 다음 문자를 읽기 전에, 이전의 문자를 하드웨어에서 읽지 않아서 문자가 손실되었다.

ComEventCDTO

1007

반송파 검출(CD) 시간 초과. 문자 전송 시도 중 CD 회선이 시스템 지정 시간보다 낮다.

ComEventRxOver

1008

수신 버퍼에 여유 공간이 없어 초과했다.

ComRxParity

1009

패리티 오류이다.

ComEventTxFull

1010

문자를 저장하려는 도중에 전송 버퍼가 꽉 찼다.

ComEventDCB

1011

포트에 대한 장치 컨트롤 블록(DSB) 검색 중 예기치 못한 오류가 발생했다.

 


 

2차 출처 : http://www.sjsoft.kr/html/hlp_MsComm.htm

원출처 : http://www.kbtech777.com/lecture/prog/vb/03control/commcont/commcont.htm

참고 : 마이크로소프트 MSDN - MSComm Control

 


반응형

'호구지책 > 기타' 카테고리의 다른 글

[윈도우] System Service Exception  (0) 2016.12.19
[OS] Windows XP USB로 설치  (0) 2016.11.04
[VB6] MSComm delay issue  (0) 2016.10.13
[VB6] MSComm 예제  (0) 2016.10.12
[기타] 택배 운송장 조회 URL  (0) 2016.08.04
[리눅스] jar 파일 실행시 오류  (0) 2016.06.09
[리눅스] 심볼릭 링크  (0) 2016.06.07
[하드웨어] RAID 설정  (0) 2016.05.30

댓글