언제쯤 답변할 수 있는 내공이 생길런지..ㅋㅋ
장비로 부터 9바이트의 데이타가 날라 옵니다.
(명령경우에 따라 길이는 틀리지만 지금은 9바이트만 테스트하고 있는데..ㅠㅠ)
다음은 데이타를 받는 부분인데...
procedure TfrmMdiForm.asPortTriggerAvail(CP: TObject; Count: Word);
var
btDatas : array of byte;
tmp:integer;
begin
SetLength(btDatas, Count);
asPort.GetBlock(btDatas[0], Count);
UD_CommProtocol(btDatas);
end;
함수를 이렇게 하면 Count=9가 되구 GetBlock함수를 실행시키면
9바이트가읽혀져야 될것 같은데
Count=8, Count=1이렇게 두번의 이벤트가 발생합니다.
제가 뭘 잘못한건지..ㅠㅠ
도와주세요..
난 그냥 들어오는대로 한번에 읽고 싶은데 데이타가 끝에 한바이트 짤려서 오네요..
제가 사용하는 예입니다.
DEL STX .............0x03..................DEL ETX
이런경우 중간에 0x03(ETX)가 포함되여있는데.. 앞의 데이타가 DEL 인지를 검사하는겁니다, 다시말해.. 스타트는 DEL STX 이고 종료는 DEL ETX가 되는거져.. 한가지더.. 중요한거는 TEXT중에 DEL이 Pattern이 발생되면 송신측에서는 바로앞에 DEL 추가하여야 합니다.
DEL STX ...... DEL DEL ........... DEL ETX
위와 같은 형식이되겠지여
방법은 여러가지 있습니다 . 그럼 도움이되길 바랍니다.