옵션 |
|
1. SerialPort.h
#include <Windows.h> #define BUFFER_SIZE 128 class CSerialPort private: public: |
2. SerialPort.cpp
#include "serialport.h" CSerialPort::~CSerialPort() bool CSerialPort::OpenPort(CString portname) bool CSerialPort::ConfigurePort(DWORD BaudRate, BYTE ByteSize, DWORD fParity, m_dcb.BaudRate = BaudRate; m_bPortReady = SetCommState(m_hComm, &m_dcb); if(m_bPortReady == 0) return true; bool CSerialPort::SetCommunicationTimeouts(DWORD ReadIntervalTimeout, m_CommTimeouts.ReadIntervalTimeout = ReadIntervalTimeout; m_bPortReady = SetCommTimeouts(m_hComm, &m_CommTimeouts); if(m_bPortReady == 0) return true; bool CSerialPort::WriteByte(BYTE bybyte) bool CSerialPort::ReadByte(BYTE &resp) DWORD dwBytesTransferred=0; if(ReadFile(m_hComm, &rx, 1, &dwBytesTransferred, 0)) return false; bool CSerialPort::ReadByte(BYTE* &resp, UINT size) if(ReadFile(m_hComm, resp, size, &dwBytesTransferred, 0)) return false; void CSerialPort::ClosePort() |
다음은 단순히 위의 클래스를 Warpping 한 클래스이다.
3. SerialComm.h
#include "serialport.h" #define RETURN_SUCCESS 1
CSerialPort serial; |
4. SerialComm.cpp
각종 설정 정보를 그냥 클래스에 박았는데, (친구가 그냥 안 바뀐다고 박아달라더라...)
취향에 맞게 Setter, Getter 로 빼도록 하자.
#include "serialcomm.h"
serial.ConfigurePort(CBR_115200, 8, FALSE, NOPARITY, ONESTOPBIT); return RETURN_SUCCESS;
void CSerialComm::disconnect() |
실제 구동하는 main 부...
5. main. cpp
#include <stdio.h>
printf("\nend connect\n"); } |
main 부 조금만 건들면 될꺼 같은데... 이 소스를 이용하여 데이터 수신을 하려면 어떻게 수정해야 할지 알려주시면 정말 감사하겠습니다.
위 메인 구문 그대로 이용하면 현재 송신 까진 가능한 상태 입니다.