»Ë»Ñ Æ÷·³
°³¹ßÀÚÆ÷·³ ÀÔ´Ï´Ù.
  • ºÏ¸¶Å© ¾ÆÀÌÄÜ

MFC ½Ã¸®¾ó Åë½Å¿¡ ´ëÇØ Áú¹®...10

  • [* ºñȸ¿ø *]
  • µî·ÏÀÏ 2018-05-10 14:49
  • Á¶È¸¼ö 2228
¾È³çÇϼ¼¿ä MFC ÀÔ¹®ÀÚÀÔ´Ï´Ù. 
½Ã¸®¾ó Åë½Å ÇÁ·Î±×·¥À» Çѹø Â¥ º¸´Â°Ô µµ¿òÀÌ ¸¹ÀÌ µÈ´ÙÇÏ¿© Çغ¸´Â ÁßÀε¥ ¾î·Æ³×¿ä...

µ¥ÀÌÅ͸¦ º¸³»´Â°Í ±îÁø µÇ´Â°Å°°Àºµ¥ 
¹Þ´Â µ¿ÀÛÀÌ µÇÁöµµ ¾Ê°í È®ÀÎÇÏ´Â ¹æ¹ýµµ Àß ¸ð¸£°Ú½À´Ï´Ù.

Åë½Å Ŭ·¡½º

// ½Ã¸®¾ó Æ÷Æ® ¿ÀÇ ÇÔ¼ö

bool CSerialComm::OpenPort(HWND hWnd)
{
// À©µµ¿ì ÇÚµé »ç¿ë, Ŭ·¡½º °´Ã¼¸¦ »ç¿ëÇϴ Ŭ·¡½º¿¡ ¸Þ½ÃÁö¸¦ Àü´ÞÇϱâ À§ÇÏ¿© Ŭ·¡½ºÀÇ ÇÚµéÀ» ÀÎÀÚ·Î ¹ÞÀ½
m_hWnd = hWnd;

  //////////////////////////////////////////////////////////////////////////////////////////
  //   CreateFile() ÇÔ¼ö
  //
  // HANDLE CreateFile(
  //    LPCTSTR lpFileName,                         : »ý¼º ¶Ç´Â ¿ÀÇÂÇÒ ÆÄÀÏÀÇ °æ·Î¿Í ÆÄÀÏÀ̸§
  //DWORD dwDesiredAccess,                      : ÆÄÀÏÁ¢±Ù¸ðµå
  //DWORD dwShareMode,                          : ÆÄÀÏÀ» °øÀ¯ÇÒÁöÀÇ ¿©ºÎ¸¦ °áÁ¤ÇÏ´Â Ç÷¡±×, 0ÀÌ¸é °øÀ¯¾ÈÇÔ
  //LPSECURITY_ATTRIBUTE lpSecurityAttributes,  : º¸¾È¼Ó¼ºÀ» ÁöÁ¤ÇÏ´Â Àμö, ÁÖ·Î NULL
  //DWORD dwCreationDispostion,                 : ÆÄÀÏ Á¸Àç¿¡ µû¸¥ Çൿ¼³Á¤
  //DWORD dwFlagsAndAttributes,                 : ÆÄÀÏÀÇ ¼Ó¼º ¼³Á¤
  //HANDLE hTemplateFile );                     : »ý¼ºµÈ ÆÄÀÏ¿¡ ´ëÇÑ ¼Ó¼ºÀ» Á¦°øÇÏ´Â ÅÛÇø´, ÁÖ·Î NULL
  ////////////////////////////////////////////////////////////////////////////////////////


m_hComm = CreateFile(m_sComPort, GENERIC_READ | GENERIC_WRITE, 0,
                    NULL, OPEN_EXISTING, 0, NULL);


if(m_hComm != INVALID_HANDLE_VALUE) 
        //INVALID_HANDLE_VALUE : ÃʱâÈ­¸¦ À§ÇÑ ¸ñÀû°ú À¯È¿°ª ÆÇ´Ü, º¸Åë -1·Î Á¤ÀǵǸç CreatFile()ÀÇ ¹Ýȯ°ªÀ¸·Î »ç¿ëµÊ.
m_sPortOpenned =TRUE;
else
return false;

SetSerial();

return true;
}


// µ¥ÀÌÅÍ ¼Û½Å ÇÔ¼ö

bool CSerialComm::Send(LPCTSTR WrittenBufData, int len)
{
DWORD BytesWritten;


  //////////////////////////////////////////////////////////////////////////////////////////
  //   WriteFile() ÇÔ¼ö
  //
  // HANDLE WriteFile(
  //HANDLE hFile,                    : ÆÄÀÏÀ̳ª I/O µð¹ÙÀ̽ºÀÇ ÇÚµé
  //    LPCVOID lpBuffer,                : ÆÄÀÏÀ̳ª µð¹ÙÀ̽º¿¡ ¾µ µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÏ´Â ¹öÆÛÀÇ Æ÷ÀÎÅÍ
  //    DWORD nNumberOfBytesToWrite,     : ÆÄÀÏÀ̳ª µð¹ÙÀ̽º¿¡ ¾µ ¹ÙÀÌÆ®ÀÇ ¼ö
  //    LPDWORD lpNumberOfBytesWritten,  : hFile ÆĶó¹ÌÅÍ°¡ »ç¿ëÇÑ ¹ÙÀÌÆ®ÀÇ ¼ö¸¦ ¹ÞÀ» º¯¼öÀÇ Æ÷ÀÎÅÍ
  //        LPOVERLAPPED lpOverlapped        : ºñµ¿±âÀÔÃâ·Â »ç¿ë½Ã OVERLAPPED ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅÍ, »ç¿ëÇÏÁö¾ÊÀ»½Ã NULL
  ////////////////////////////////////////////////////////////////////////////////////////


if (WriteFile(m_hComm, WrittenBufData, len, &BytesWritten, NULL) !=0)
return true;
else
return false;
}


// µ¥ÀÌÅÍ ¼ö½Å ÇÔ¼ö

bool CSerialComm::Receive(LPSTR ReadBufData, int len)
{

DWORD BytesRead;
LPVOID lpData;
CSerialComm* Comm = (CSerialComm*)lpData;
LPARAM temp = (LPARAM)Comm;


  //////////////////////////////////////////////////////////////////////////////////////////
  //   ReadFile() ÇÔ¼ö
  //
  // HANDLE WriteFile(
  //HANDLE hFile,                    : ÆÄÀÏÀ̳ª I/O µð¹ÙÀ̽ºÀÇ ÇÚµé
  //    LPCVOID lpBuffer,                : ÆÄÀÏÀ̳ª µð¹ÙÀ̽º·ÎºÎÅÍ ÀÐÀº µ¥ÀÌÅ͸¦ ¹ÞÀ» ¹öÆÛÀÇ Æ÷ÀÎÅÍ
  //    DWORD nNumberOfBytesToRead,      : ÀÐÀ» µ¥ÀÌÅÍÀÇ ÃÖ´ë ¹ÙÀÌÆ®ÀÇ ¼ö
  //    LPDWORD lpNumberOfBytesRead,     : hFile ÆĶó¹ÌÅÍ°¡ ÀÐÀº ¹ÙÀÌÆ®ÀÇ ¼ö¸¦ ¹ÞÀ» º¯¼öÀÇ Æ÷ÀÎÅÍ
  //        LPOVERLAPPED lpOverlapped        : ºñµ¿±âÀÔÃâ·Â »ç¿ë½Ã OVERLAPPED ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅÍ, »ç¿ëÇÏÁö¾ÊÀ»½Ã NULL
  ////////////////////////////////////////////////////////////////////////////////////////

if (m_sPortOpenned==true) 
{
SendMessage(m_hWnd,WM_MYRECEIVE,BytesRead,temp);

if (ReadFile(m_hComm, &ReadBufData, len, &BytesRead, NULL) != 0)
return true;
else
return false;
}
else
return false;
}

 
 

´ëÈ­»óÀÚ


BEGIN_MESSAGE_MAP(CSerialDlg, CDialog)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_CBN_SELCHANGE(IDC_SETCOMPORT, &CSerialDlg::OnCbnSelchangeSetcomport)
ON_EN_CHANGE(IDC_EDITVIEWDATA, &CSerialDlg::OnEnChangeEditviewdata)
ON_BN_CLICKED(IDC_OPENPORT, &CSerialDlg::OnBnClickedOpenport)
ON_BN_CLICKED(IDC_CLEAR, &CSerialDlg::OnBnClickedClear)
ON_BN_CLICKED(IDC_SENDDATA, &CSerialDlg::OnBnClickedSenddata)
ON_CBN_SELCHANGE(IDC_SETBAUDRATE, &CSerialDlg::OnCbnSelchangeSetbaudrate)
ON_EN_CHANGE(IDC_EDIT_SENDDATA, &CSerialDlg::OnEnChangeEditSenddata)

ON_MESSAGE(WM_MYRECEIVE, &CSerialDlg::OnReceive)
END_MESSAGE_MAP()

// Æ÷Æ® ¿ÀÇÂ
void CSerialDlg::OnBnClickedOpenport()
{
// TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
if(Comport1_State)
{
if(m_Comm)
{
m_Comm ->Close();
m_Comm = NULL;
AfxMessageBox(_T("COM Æ÷Æ® ´ÝÈû"));
Comport1_State = false;
GetDlgItem(IDC_OPENPORT)->SetWindowText(_T("OPEN"));
     //GetDlgItem(IDC_OPENPORT)->EnableWindow(true);
GetDlgItem(IDC_SENDDATA)->EnableWindow(false);
}
}

else
{
m_Comm = new CSerialComm(_T("\\\\.\\")+m_strSetComPort, m_strSetBaudRate, _T("NONE"), _T("8 Bit"), _T("1 Bit"));
if (m_Comm->OpenPort(GetSafeHwnd()) !=0)
{
AfxMessageBox(_T("COM Æ÷Æ® ¿­¸²"));
Comport1_State=true;
GetDlgItem(IDC_OPENPORT)->SetWindowText(_T("CLOSE"));
//GetDlgItem(IDC_OPENPORT)->EnableWindow(false);
GetDlgItem(IDC_SENDDATA)->EnableWindow(true);
}
else
{
AfxMessageBox(_T("ERROR"));
}
}
}

 
//¼Û½Å
void CSerialDlg::OnBnClickedSenddata()
{
// TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
CString str;

if(Comport1_State == true)
{
GetDlgItem(IDC_EDIT_SENDDATA) -> GetWindowText(str);
str += "\r\n";
m_Comm->Send(str,str.GetLength());
AfxMessageBox(_T("¼º°ø"));
}
else
{
AfxMessageBox(_T("ERROR"));
}

}

// ¼ö½Å
LRESULT CSerialDlg::OnReceive(WPARAM length, LPARAM lpara)
{
CString str;
char data[20000];
 
if(m_Comm)
{
m_Comm->Receive(data,length);
data[length]=_T('\0');
str+=_T("\r\n");
AfxMessageBox(_T("123"));
for(int i=0; i<(int)length; i++)
{
str+=data[i];
}

m_EditViewData.ReplaceSel(str);
str="";
}
return 0;
}

¼ö½Å ÇÔ¼öÂÊ¿¡ ºê·¹ÀÌÅ©¸¦ °É¾î³õ°í µð¹ö±ë Çغ¸¸é °É¸®Áö°¡ ¾Ê³×¿ä...
¾î¶²°Ô ¹®Á¦Àϱî¿ä...

0
ÃßõÇϱ⠴ٸ¥ÀÇ°ß 0
|
°øÀ¯¹öÆ°

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 ´ë¹ÚÁßÂ¥

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 [* ºñȸ¿ø *]

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 ¸²Àå»ç

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 ¸²Àå»ç

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 [* ºñȸ¿ø *]

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 ³×ÀÌƼºêÇÁ·Î±×·¥ÀÌÁ¾·áµÇ¾ú½À´Ï´Ù¶÷Áã

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 [* ºñȸ¿ø *]

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 À¥¿ì¸®

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 [* ºñȸ¿ø *]

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 »ç¸·Àǽűâ·ç
  • ¾Ë¸² ¿å¼³, »óó ÁÙ ¼ö ÀÖ´Â ¾ÇÇÃÀº »ï°¡ÁÖ¼¼¿ä.
©¹æ »çÁø  
¡â ÀÌÀü±Û¡ä ´ÙÀ½±Û ¸ñ·Ïº¸±â