|
저는 볼랜드 C 빌더는 완전 초짜입니다.
지금 기존 프로그램에 RS-232 통신 하는 Active-X를 추가하고 있습니다.
다른 걸 Visual C++로 짤 때는 참 쉽게 만들었었는데...
결론적으로 Send는 잘 됩니다만...
Receive Event가 발생되지 않는데, 이유를 잘 모르겠습니다.
같은 형식으로 VC++로 만들었을 때는 잘 되었습니다.
// Send Function
void __fastcall TmainForm::CommSend(short MAdr, short Adr, short Data1, short Data2)
{
WD[0] = MAdr;
WD[1] = Adr;
WD[2] = Data1;
WD[3] = Data2;
char str[24];
sprintf(str, "Send : %02X, %02X, %02X, %02X", WD[0], WD[1], WD[2], WD[3]);
Application->MessageBoxA(str, MB_OK);
// Read Data Initialize...
RD[0] = RD[1] = RD[2] = RD[3] = -1;
m_Comm->SendData(WD[0], WD[1], WD[2], WD[3]);
}
// 이 함수는 첨부 그림과 같이 Events Tab에서 추가하였습니다.
// RS-232 Data Receive Event Function...
void __fastcall TmainForm::OnDataReceive(TObject *Sender, short MAdr,
short Adr, short DataL, short DataH)
{
RD[0] = MAdr;
RD[1] = Adr;
RD[2] = DataL;
RD[3] = DataH;
char str[24];
sprintf(str, "Receive : %02X, %02X, %02X, %02X", RD[0], RD[1], RD[2], RD[3]);
Application->MessageBoxA(str, MB_OK);
//// Timer over Error....
if(MAdr == -1){
Edit1->Text = "TimeOver!";
}
}
뭔가 다른 설정이 필요할 까요???
|