|
VC++에서 작성한 것인데, Universial 인터페이스로 제공하게 짜여져 있다고 합니다.
가만 생각해 보니, 똑같이 VC++에서 사용하면 되지만 VB에서도 Event 처리가 안되어서 직접 짰던 경험이 있었습니다.
아무래도 RS-232를 직접 짜야할 것 같습니다...
지나간이 님이 쓰신 글 :
: RS232 용 ActiveX 컴포넌트 측에서 외부로 제공되는 외부 제공용 인터페이스에서 Event로 제공했는지 궁금합니다.
:
: 인터페이스에서 외부로 Event를 제공 하지 않으면 OnDataReceive는 정상 동작되지 않을 것입니다.
:
: Blu-ray™ 님이 쓰신 글 :
: : 저는 볼랜드 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!";
: : }
: : }
: :
: :
: : 뭔가 다른 설정이 필요할 까요???
|