and so on
[10.25] 프로젝트 진행사항
밀크빵
2009. 10. 26. 00:05
이번 프로젝트에서 사용하는 함수들인데,
아직 함수들에 대한 사용을 잘 이해하지 못하여 오늘은 각 함수들이 어떤 역할을 하는지와,
이 함수들을 어떻게 활용할 것인지에 대한 것을 고민하였다.
BOOL bluetooth::PortOpen(CONST WCHAR * szPort) //포트열기
void bluetooth::PortClose() //포트닫기
BOOL bluetooth::PortSet(DWORD dwBaudRate=CBR_115200, DWORD dwTimeOutInSec=5) //포트설정
BOOL bluetooth::PortWrite(CONST WCHAR * wData) //버퍼에 쓰기
BOOL bluetooth::PortRead(WCHAR * wData) //버퍼에서 읽어오기
DWORD WINAPI bluetooth::PortThreadProc(LPVOID lpParameter) //데이터를 읽어들이는 것 지속적인 감시
BOOL bluetooth::PortThreadStart() //위 함수를 쓰레드로 작동시키기 위한 함수
void bluetooth::PortThreadFinish() //포트로부터 더 이상 데이터를 읽어들이지 않으려는
경우 쓰레드를 종료시킨다.
|
- 기존에는 PortSet함수를 사용하지 않았는데, 함수를 사용하면서 입출력을할 버퍼 크기를 정해주기 때문에 사용하여야 할것 같다.
- PortRead를 따로 사용해줘야 할 것 같았는데, 그럴필요 없이 PortThreadProc안에서 사용하기 때문에 Main에서 따로 PortRead를 사용해주지 않아도 된다.
- Main에서는 PortThreadProc이 아닌, PortThreadStart함수 호출하기.
-위에것을 토대로 Main에 적용한 결과
case IDC_BUTTON:
if(bt.PortOpen(L"COM1:") == FALSE){
MessageBox(NULL,L"PortOpen 실패",L"",NULL);
return 0;
}else{
bt.PortWrite(L"하이");
MessageBox(NULL,L"PortOpen 성공",L"",NULL);
}
if (bt.PortSet(11520,5)==FALSE){
bt.PortClose();
MessageBox(NULL,L"PortSet실패",L"",NULL);
return 0;
}
if(bt.PortThreadStart()==FALSE) {
bt.PortClose();
MessageBox(NULL,L"PortThreadStart실패",L"",NULL);
return 0;
}
MessageBox(NULL,L"데이터가 수신되면 메시지 창이 뜹니다\n"L"프로그램을 종료하려면 이 창을 닫아주세
요.",L"STOP",NULL);
bt.PortClose();
break; |
하지만 결과는...
실패 윽
포트조차 열리지 않는다.
왜 그러지..
책에 보면 순서가 저게 맞는데,
-다음에 해야할 일
- PortSet함수를 PortOpen에 넣어보기.
- 송신은 COM6: 으로 수신은 COM5:로 설정해줘서 내가 임의로 넣고 쓰는걸 시켜보기.