(아스키2번 STX : 데이터 시작)
ghgghg*^UU
(아스키3번 ETX : 데이터 끝)
*^UU -> 요 부분은 아마도 데이터의 cRC 확인코드 같은데용~
Cport의 ONRxChar 이벤트를 활용하시면 되겠습니다.
아래 코드는 참고만~~
<!--CodeS-->
procedure TfrmMain.PcComRxChar(Sender: TObject; Count: Integer);
var
S : string;
w : string;
i : integer;
begin
S := '';
PcCom.ReadStr(S,Count);
memo1.Text := memo1.Text + S;
for i:=1 to Count do begin
if S[i] = #2 then begin
Rcv_State := 1; //데이터 수집시작
end;
if S[i] = #3 then begin
if Rcv_State = 1 then Rcv_State := 2
else Rcv_State := 0;
end;
case Rcv_State of
1 : RxBuf := RxBuf + S[i]; // 데이터 수집시작
2 : // 데이터 수집완료
begin
//RxBuf := RxBuf + S[i];
w := RxBuf + S[i];
DatafilterPC(w); // w에 ghgghg*^UU 가 들어 있겠죠 ^^
Rcv_State := 0; //초기 상태로를 만듭니다.
PcCom.ClearBuffer(True,True); //버퍼 지워 줍니다.
RxBuf := ''; // 임시 저장소 초기화 합니다.
end;
end;
end;
end;
시작과 끝 사이의 정보가 수신받은 데이터 부분입니다.
데이터 부분에 대한 정보는 장비의 통신 스팩에 따르면 될겁니다.