|
지나가는 과객입니다.
맨날 도움만 받다, 모처럼 답변한번 해봅니다.
TComDataPacket을 사용해 보시죠.
StopString을 CR로 설정하시면 되겠네요..
이성진,
turboart@dreamwiz.com
이한진 님이 쓰신 글 :
: 올해도 얼마 남지 않았네요..ㅜㅜ
: 이렇게 나이만 먹구..서글퍼라..
:
: 다름이 아니오라
: CPORT3.0을 사용하고 있습니다.
: 사용중에 혹 이러한 기능은 없는지 알고 싶어 문의를 드립니다.
: 만약, 수신되는 데이타의 끝을 나타내는 CR이나 특정한 문자를 지정해 놓고
: 그 문자가 들어왔을 경우 이벤트를 발생할 수 있는 기능은 없는지 알고 싶습니다.
: 지금 사용하고 있는 방법은
: 데이타가 들어왔을 경우 RxChar이벤트에서 수신된 데이타를 계속 누적하여
: 마지막에 cr이나 특정 문자가 들어오면 종료하는 방식으로 사용하고 있습니다.
: 그러다보니 데이타가 길거나 할 경우 메모창에 데이타가 중간에 나뉘어 표시가 됩니다.
:
: void __fastcall TFrmManual::ComPortRxChar(TObject *Sender, int Count)
: {
: HWND hScroll;
: String temp;
: String ReadData="";
:
: ComPort->ReadStr( temp, Count );
: ReadViewData += temp;
: if ( StrScan(ReadViewData.c_str(), '\r') )
: {
: FrmMain->Memo->Lines->Add( "<" + ReadViewData );
: ReadData = ReadViewData;
: readFlag = true;
: ReadViewData = "";
: commandSearch( ReadData );
: ReadData = "";
: }
: }
: 위와 같이 프로그램을 사용하고 있습니다.
: 그러다 보니 만약 하위 제어기에서 "12345678\r"
: 을 보낼 경우 메모창에
: 1234
: 5678
: 이런식으로 줄이 바뀌어 표시가 되네요..
: 시간이나 기타 방법을 찾아봐도 되지 않네요..
: 혹 방법을 아시는 분은 답변 부탁드립니다.
: 추운날씨 감기 조심하시기 바랍니다.
: 그럼...꾸벅..
|