본문 바로가기

김탱 개발자/C/C++

VC++ 시리얼 통신(RS232) 소스 (링크)

이미 클래스화 되어있는 시리얼통신소스는 인터넷에 널려있지만 직접 타이핑해보고 싶었다.

전체는 이해하기 힘들지만 이렇게 따라 쓰다보면 언젠간 이해되는 날이 오겠지..


시리얼통신 강좌(1)

시리얼통신 강좌(2)

위 강좌에서 생성자에서 변수와 함수에대한 선언문은 따로 적어놓지 않았다.. 

그래서 헤더파일을 따로 적어놓는다. (나중에 볼때 편하게)


#pragma once


#define MAXBUF         50000

#define InBufSize 50000

#define OutBufSize 50000

#define WM_MYRECEIVE WM_USER+1

#define WM_MYCLOSE WM_USER+2


// CKTY_Comm 명령 대상입니다.


class CKTY_Comm : public CCmdTarget

{

DECLARE_DYNAMIC(CKTY_Comm)


public:

CKTY_Comm(CString port, CString baudrate, CString parity, CString databit, CString stopbit);

virtual ~CKTY_Comm();


protected:

DECLARE_MESSAGE_MAP()

public:

CString m_sComPort;

CString m_sBaudRate;

CString m_sParity;

CString m_sDataBit;

CString m_sStopBit;

bool m_bFlowChk;

bool m_bIsOpenned;

int m_nLength;

char m_sInBuf[MAXBUF*2];

CEvent * m_pEvent;


HWND m_hWnd;

HANDLE m_hComDev;


OVERLAPPED m_OLR, m_OLW;



BOOL Create(HWND hWnd);

void ResetSerial();

BOOL Send(LPCTSTR outbuf, int len);

int Receive(LPSTR inbuf, int len);

void Close();

void HandleClose();

void Clear();

};