일단 시리얼 통신에 대한 모듈도 작성 하셔야할 것이고, 그후에 전송 받은 데이터를 파싱하면 되는데.. 현재 01002C00344D 라는 값에 들어왔다고 하면, 그 값에 대한 의미 또한 파악을 해야하겠지요?? 그리고 나서는 단순한 문자열에 대한 토큰 처리입니다. 하시는 말씀으로 보아, 프로그래밍은 많이 해보지 않으신듯 합니다..^^;; Delphi나 vb로 할경우 아주 쉽게 시리얼 통신이 가능합니다.. 해당 컴포넌트가 다 제공되기 때문입니다. Delphi의 경우에는 CPort와 같은 라이브러리를 다운 받으셔서 설치하시고 코딩하면 되고.. 일반적으로 그냥 순수 win32 api를 이용하셔서 하면.. 다음과 같은 절차에 따라서 코딩하시면 됩니다.
1. CreateFile 함수로 로 COM1포트를 오픈한다. hFile = CreateFile("COM1",GENERIC_READ | GENERIC_WRITE,0, 0,OPEN_EXISTING, 0, 0 ); 통신 디바이스의 현재 dcb 설정을 얻어온다.(참고사항) GetCommState(hFile , &dcb); // 현재 설정을 가져오는 것입니다. 2. 하드웨어에 대한 설정과 초기화를 합니다. SetCommState(hFile , &dcb); 3. 지정 통신에 대한 읽기 쓰기 타임아웃 설정합니다. COMMTIMEOUTS cTimeout; // 설정 값 셋팅 ..... .... SetCommTimeouts(hFile, &cTimeout); 4. WriteFile과 ReadFile로 통신.. 6. 받은 데이터에 대한 문자열 토큰 처리 및 기타 동작 처리.
위와 같은 형태로 통신이 가능합니다. Serial 통신에 대한 예제는 그냥 검색해보셔도 많이 나오고... Devpia나 codeproject나 codeguru에서도 수두룩 하게 나옵니다. 참고 바랍니다.
이 댓글을..
2008.08.15 01:01:29
m4dnut
아.. 그리고.. 일반적은 RS-232C 통신이 아니라.. 즉 제가 말씀 드리는 것은.. 시리얼통신 케이블이 RX,TX,GROUND 라인만 써서 배선이 되지 않고(대다수의 경우에는 RX,TX,GROUND 3개의 라인만 사용) 제어비트와 제어신호 또한 처리를 해야한다면, 그런 속성에 대한 값들도 셋팅을 해주셔아합니다..^^;; 그부분은 msdn 참조하세요!! 그리고 시리얼 통신시에 포트에서 들어오는 데이터를 캡쳐하거나 감시하는 유틸중에 PPA라는 프로그램이 있습니다. 패킷을 확인하고 분석 하실때에 이것으로 데이터 받으셔서 분석해보시면 되겠네요..^^
일단 시리얼 통신에 대한 모듈도 작성 하셔야할 것이고, 그후에 전송 받은 데이터를 파싱하면 되는데..
현재 01002C00344D 라는 값에 들어왔다고 하면, 그 값에 대한 의미 또한 파악을 해야하겠지요??
그리고 나서는 단순한 문자열에 대한 토큰 처리입니다.
하시는 말씀으로 보아, 프로그래밍은 많이 해보지 않으신듯 합니다..^^;;
Delphi나 vb로 할경우 아주 쉽게 시리얼 통신이 가능합니다.. 해당 컴포넌트가 다 제공되기 때문입니다.
Delphi의 경우에는 CPort와 같은 라이브러리를 다운 받으셔서 설치하시고 코딩하면 되고..
일반적으로 그냥 순수 win32 api를 이용하셔서 하면.. 다음과 같은 절차에 따라서 코딩하시면 됩니다.
1. CreateFile 함수로 로 COM1포트를 오픈한다.
hFile = CreateFile("COM1",GENERIC_READ | GENERIC_WRITE,0, 0,OPEN_EXISTING, 0, 0 );
통신 디바이스의 현재 dcb 설정을 얻어온다.(참고사항)
GetCommState(hFile , &dcb); // 현재 설정을 가져오는 것입니다.
2. 하드웨어에 대한 설정과 초기화를 합니다.
SetCommState(hFile , &dcb);
3. 지정 통신에 대한 읽기 쓰기 타임아웃 설정합니다.
COMMTIMEOUTS cTimeout;
// 설정 값 셋팅
.....
....
SetCommTimeouts(hFile, &cTimeout);
4. WriteFile과 ReadFile로 통신..
6. 받은 데이터에 대한 문자열 토큰 처리 및 기타 동작 처리.
위와 같은 형태로 통신이 가능합니다.
Serial 통신에 대한 예제는 그냥 검색해보셔도 많이 나오고...
Devpia나 codeproject나 codeguru에서도 수두룩 하게 나옵니다. 참고 바랍니다.