|
해결됐네요...
MSComm1->RThreshold = 1 ;
MSComm1->InputLen = 1 ;
원래 소스에는 MSComm1->InputLen=1; 로 설정이 안되어 있었네요...
김찬성 님이 쓰신 글 :
: C++Builder/Serial / MSCOMM.OCX
: MSComm1->RThreshold = 1 ;
: MSComm1->InputLen = 1 ;
:
: 이렇게 했는데.. 데이타가
: 아래 함수에 보면 데이타가 STX에서 ETX 까지의 데이타가
: 한번에 수신됩니다.
:
: 비주얼베이직에서는 1바이트씩 수신되게 되는데
: C++빌더에서는 어떻게 하면 그렇게 되나요??
:
: void __fastcall TForm1::MSComm1Comm(TObject *Sender)
: {
: AnsiString strBuffer , strTemp;
: char chAck = 0x06 ;
:
: if (MSComm1->InBufferCount > 0 )
: {
: strTemp= Format("len=%d]",ARRAYOFCONST((MSComm1->InBufferCount ))) ;
: Edit2->Text = Edit2->Text + strTemp ;
:
: strBuffer = MSComm1->Input ;
: if (strBuffer != "" )
: {
: Edit1->Text = Edit1->Text + strBuffer ;
: CalcBCC(strBuffer) ;
:
: MSComm1->Output = chAck ;
: }
: else
: Edit1->Text = "NULL";
:
:
: }
: }
|