|
자료실에서 RS232C-test 프로그램을 테스트 해보았습니다..
궁금한건...... 아래의 데이타를 받는 부분에서... 어떤 경우에는 iLen 이 ...
0 인 경우에도 UMEvnRxChar 함수가 호출될 경우가 생기는데... 정확이 어떤 경우에...
데이타가 없으면서 (iLen 의 값이 0 ) 도 ... 여기가 호출될수 있는지 궁금합니다..
쓰레드에서는 분명 데이타가 있기때문에..SendMessage ()를 호출해서.. 해당 Applicaiton에
전달해 주려고 했을텐데...말입니다..
또 유독 데이타가 8byte 단위로 경우가 대부분인데... 8byte씩 읽히는 특별한 이유도 있나요?
// 쓰레드에 의해 Data가 수신되면 SendMessage에 의해 호출된다. 즉 수신버퍼에
// TMessage의 WParam의 길이만큼 Data가 수신된 후 호출된다
void __fastcall TFormMain::UMEvnRxChar(TMessage &Message)
{
int iLen;
BYTE RcvBuff[4096];
if(RadioGroupRecvType->ItemIndex == 1) return;
iLen = RS232C->ReadData(Message.WParam, RcvBuff);
ShowRcvData(iLen, RcvBuff);
}
그리고, RS232C class에서 정의한 timeout의 값을 Aplication에서 어떻게 사용할수 있나요?
void __fastcall TRS232C::SetTimeOut(DWORD dwTime)
{
dwmyTimeOut = dwTime;
}
//---------------------------------------------------------------------------
수고하세요.
|