//Comm.h //Rs232c¸¦ ÇϱâÀ§ÇÑ Å¬·¡½º Çì´õ //2001³â 3¿ù 26ÀÏ (ÁÖ) ¸¶ÀÌÅ©·Î ·Îº¸Æ® S/WÆÀ Á¤¿õ½Ä // #ifndef __COMM_H__ #define __COMM_H__ #define COM_MAXBLOCK 4095 #define COM_MAXPORTS 4 // Flow control flags #define FC_DTRDSR 0x01 #define FC_RTSCTS 0x02 #define FC_XONXOFF 0x04 // ascii definitions #define ASCII_BEL 0x07 #define ASCII_BS 0x08 #define ASCII_LF 0x0A #define ASCII_CR 0x0D #define ASCII_XON 0x11 #define ASCII_XOFF 0x13 #define ASCII_STX 0x02 #define ASCII_ETX 0xFE #define WM_RECEIVEDATA WM_USER+100 ///////////////////////////////////////////////////////////////////////////// // CComm window #define ZERO_MEMORY(s) ::ZeroMemory(&s, sizeof(s)) // flow control #define FC_DTRDSR 0x01 #define FC_RTSCTS 0x02 #define FC_XONXOFF 0x04 #define FC_NONE 0x00 #define ASCII_XON 0x11 #define ASCII_XOFF 0x13 // registry stuff #define CS_REGKEY_SETTINGS _T("Åë½Åȯ°æ") #define CS_REGENTRY_PORT _T("PORT") #define CS_REGENTRY_PARITY _T("PARITY") #define CS_REGENTRY_BAUD _T("BAUD") #define CS_REGENTRY_DATABITS _T("DATABITS") #define CS_REGENTRY_STOPBITS _T("STOPBITS") #define CS_REGENTRY_FLOW _T("FLOW") #pragma pack(push,1) typedef struct _TTYSTRUCT { BYTE byCommPort; // zero based port - 3 or higher implies TELNET BYTE byXonXoff; BYTE byByteSize; BYTE byFlowCtrl; BYTE byParity; BYTE byStopBits; DWORD dwBaudRate; } TTYSTRUCT, *LPTTYSTRUCT; #pragma pack(pop,1) // Åë½ÅÇÁ·ÎÅäÄÝ Table extern BYTE _nFlow[4]; // Åë½Å µ¥ÀÌŸ »çÀÌÁî Å×À̺í extern int _nDataValues[2]; // Åë½Å ¼Óµµ Table extern int _nBaudRates[12]; // Åë½Å Á¤Áö ºñÆ® Table extern BYTE _nStopBits[2]; class CComm : public CObject { DECLARE_DYNCREATE( CComm ) public: HANDLE idComDev ; //ÄÄÆ÷Æ® µð¹ÙÀ̽º ¿¬°á ÇÚµé BOOL fConnected; //ÄÄÆ÷Æ®°¡ ¿¬°áµÇ¸é 1·Î ¼³Á¤ BYTE abIn[ COM_MAXBLOCK + 1] ; //ÄÄÆ÷Æ®¿¡¼­ µé¾î¿À´Â µ¥ÀÌŸ HWND m_hwnd; //¸Þ¼¼Áö¸¦ Àü´ÞÇÒ À©µµ¿ì Ç÷¯±× BOOL bTxEmpty; // TX¿ë µ¥ÀÌÅÍ°¡ ¸ðµÎ ¼Û½Å µÇ¾úÀ» °æ¿ì TRUE·Î ÀüȯµÈ´Ù. // Construction public: CComm( ); //ÄÄÆ÷Æ®¸¦ ¿­°í ¿¬°áÀ» ½ÃµµÇÑ´Ù. BOOL OpenCommPort(LPTTYSTRUCT lpTTY); //comm Æ÷Æ®¸¦ ÇØÁ¦ÇÑ´Ù. BOOL DestroyComm(); //ÄÄÆ÷Æ®¿¡¼­ µ¥ÀÌŸ¸¦ ¹Þ´Â´Ù. int ReadCommBlock( LPSTR data, int len); //ÄÄÆ÷Æ®¿¡ µ¥ÀÌŸ¸¦ ³Ö´Â´Ù. BOOL WriteCommBlock( LPSTR data, DWORD len); //Æ÷Æ®¸¦ ¿¬°áÇÑ´Ù. BOOL SetupConnection(LPTTYSTRUCT lpTTY); //¿¬°áÀ» ÇØÁ¦ÇÑ´Ù. BOOL CloseConnection( ); //ÀÐÀº µ¥ÀÌŸ¸¦ ¹öÆÛ¿¡ ÀúÀåÇÑ´Ù. void SetReadData(LPSTR data, int nLen); //¸Þ½ÃÁö¸¦ º¸³¾ À©µµ¿ì ÇÚµéÀ» ¼³Á¤ÇÑ´Ù. void SetHwnd(HWND hwnd); void EscapeCommFunction(DWORD dwFunc) ; // Attributes public: OVERLAPPED osWrite, osRead; // Operations public: // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CComm) //}}AFX_VIRTUAL // Implementation public: virtual ~CComm(); // Generated message map functions // DECLARE_MESSAGE_MAP() protected: }; ///////////////////////////////////////////////////////////////////////////// #endif