|
크레브 님이 쓰신 글 :
: 시리얼 통신 하시는거 같은데요
: 일반적인 시리얼통신 프로토콜을 정의할때는 아래와 같이 바이너리 가지고 보내지 않습니다.
: 데이터에 제어문자가 섞여있거나 하면 이상 동작을 할 문제도 있고
: 하안인님의 경우처럼 텍스트로 보이지 않기때문에
: 디버깅 하기도 나쁘고요..
:
: 그래서 대충 숫자 3개정도 통신으로 보낸다하면
:
: STX + 1234,1235,1243 + ETX 이런식으로 보내든가.. (정의하기 맘대로죠)
:
: 어쨌든... 날 코딩 해보겠습니다.
:
: 데이터를 받으셨다면.. char 로 받으셨는지 AnsiString으로 받으셨는지요?
: 대충 아래 버퍼처럼 만들었어서 받았다면..
: char buf[MAX_DATA] :
:
: AnsiString hex, tmp;
:
: for(int i=0; i<count; i++)
: {
: tmp.sprintf(%02X ", int(buf[i]) )
: hex += tmp;
: }
: Memo->Lines->Add(hex);
:
: 이런식으로 메모장에 찍으면 됩니다.
: 처리하는 방법은 무지 많지요~ ^^
:
:
:
답변감사합니다.
저는 소켓으로 데이타를 받고 있습니다. 인디를 사용하고 있구요.
그런데 데이타를 위와 같이 받아서 hex값을 보니
CRLF값이나 STX,ETX값이 보이질 않아서 데이타의 처음과 끝이 어디인지 몰라서요.
들어오는 데이타값은 IBM용 ASCII코드값인거 같은데요
IBM용 ASCII코드값에는 CRLF가 없네요.(책을 찾아서 코드를 보니)..
들어온 데이타의 처음과 끝을 찾고 싶은데요.
|