C++ 기반의 프로그램 개발중 시리얼통신(RS-232 등) 이 필요한 경우 다양한 컴포넌트를 사용하기도 하지만, 이번에는 MS 에서 오래전에 개발하여 제공하는 OCX(COM 컴포넌트) 를 사용하는 방법에 대해 알아보겠습니다.
1. 우선 MSCOMM32.ocx 를 인터넷 검색등을 통해 구해야 합니다.
다음과 같이 OCX를 레지스트리에 등록합니다.
c:\ ... > copy mscomm32.ocx c:\windows\system32\mscomm32.ocx
c:\ ... > regsvr32 /s c:\windows\system32\mscomm32.ocx
해당 ocx 를 사용하려면 활성화( MS 사의 프로그램 개발툴이 미설치되어 있으면 사용이 불가하다고 합니다?)를 시켜주어야 하는데, 인터넷을 검색하여 보니 특정한 레지스트리 키를 만들어 생성시키면 가능하다고 합니다.
REGEDIT4
[HKEY_CLASSES_ROOT\Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905]
@ = "kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun"
위 내용을 a.reg 라는 파일로 만들고
c:\...> regedit /s a.reg
콘솔 명령을 통해 활성화가 가능합니다.
2. ocx 에서 type library 를 추출한다.
C++ 빌더 개발환경에서 typelib 등을 추출합니다. (implib.exe 유틸을 사용해도 가능)
그렇게 하면, MSCommLib_OCX.cpp / MSCommLib_TLB.cpp 등의 파일이 추출됩니다.
3. 마지막으로는 통신이 필요한 곳에서 다음과 같이 COM 오브젝트를 생성하여 사용합니다.
TMSComm* pSerial = NULL;
pSerial = new TMSComm(this);
pSerial->CommPort = 1;
pSerial->Settings = "9600,N,8,1";
pSerial->OnComm = this->OnCommEvent;
pSerial->PortOpen = true;
pSerial->Output = "YourSendMessage\r";
위에서 OnCommEvent 이벤트 핸들러는 데이타 수신시 Notify 되는 콜백함수이므로 미리 구현해 놓고 pSerial->Input 으로 수신데이타를 처리합니다.
2017년 2월 8일
피드 구독하기:
댓글 (Atom)
시리우스 라이브러리 홈페이지 오픈
현재 시리우스(Sirius) 라이브러리라는 제품을 개발하고 이를 소개하는 홈페이지를 오픈 하였습니다. 관심있는 분들의 많은 방문 요청드립니다. 앞으로 업데이트 소식및 변경사항은 스파이럴랩 홈페이지를 통해 진행할 예정입니다. 스파이럴랩 홈페이지 : h...
-
밤 문화를 좋아하신다면 현란한 레이져 쑈(laser show)를 생각할수도 있고, 철판을 자르거나, 반도체 칩 위에 순식간에 글자를 새기는 것을 보신적이 있나요? 이 원리는 레이저라는 매우 순도높은(?) 빛을 발생시키고, 이 ...
-
최근 새롭게 출시된 스캔랩(Scanlab)사의 RTC6를 소개해 드리겠습니다. 관련 메뉴얼을 파악해 본바에 따르면 다음과 같은 기술들이 변경되었네요, 1. 외형을 보면 알수있듯이 PCI express 방식과 함께 Ethernet 통신 타...
-
SCANLAB 사의 RTC 제품들을 사용해 정밀한 레이저 가공을 위해서는 필히 스캐너의 왜곡을 보정해서 사용해야 합니다. 왜곡이 발생되는 이유는 - X, Y 라는 두개의 반사거울의 각도를 돌리면 서로간의 거리가 각도에 따라 변하고, - 빛을 초점...
댓글 없음:
댓글 쓰기