아스키값으로 들어오더라도 숫자인 경우, Char형 숫자가 들어 올것입니다..
아스키값은 모두 문자형이므로...
컴포넌트 함수 중에 통신Buffer에 신호가 들어오면 Char단위로 읽어오는게
있습니다...
보통은 그거에다 Case문을 넣어 들어온 신호를 편집합니다..
RS232통신의 경우는 들어오는 Char를 편집만하면 어려울게 없죠..ㅡㅡ;;
저두 허접입니다만 님의 글을 읽다가 혹 제가 알고 있는 부분이 도움이 될까하구여..!
제가 알기론 232통신 전용의 com component가 많이 있는 걸루 알고 있어여..
전 CommPortDriver라는 Freeware를 사용하는데
이벤트중 OnReciveData라는 이벤트를 사용하져..
아래는 제가 다른설비들과 232통신 할때 즐겨 쓰는 coding입니다.
보시믄 쉽게 이해가 가실듯..
그리구 앞글에 델파이 콤 콤포넌드의 Read Event의 사용을 권하신분이
계신데 아마 거기서도 제가 coding한 부분을 응용하시면 가능할듯..~
그럼 즐코하세요..~
=====================================================================
procedure TForm1.CommPortDriver1ReceiveData(Sender: TObject;
DataPtr: Pointer; DataSize: Integer);
var
p : pchar;
s : string;
begin
p := dataptr;
while datasize > 0 do
begin
case p^ of
#002: s := s + p^;
#003: s := s + p^;
#006: s := s + p^;
else s := s + p^;
end;
dec(datasize); // data size 감소 -1
inc(p); // point 증가 +1
end;
rsdata := s; // 이렇게 하시믄 rsdata에 그전송이 문자이던
숫자이던 들어갈겁니다.
=====================================================================
아스키값은 모두 문자형이므로...
컴포넌트 함수 중에 통신Buffer에 신호가 들어오면 Char단위로 읽어오는게
있습니다...
보통은 그거에다 Case문을 넣어 들어온 신호를 편집합니다..
RS232통신의 경우는 들어오는 Char를 편집만하면 어려울게 없죠..ㅡㅡ;;