|
시리얼 통신 하시는거 같은데요
일반적인 시리얼통신 프로토콜을 정의할때는 아래와 같이 바이너리 가지고 보내지 않습니다.
데이터에 제어문자가 섞여있거나 하면 이상 동작을 할 문제도 있고
하안인님의 경우처럼 텍스트로 보이지 않기때문에
디버깅 하기도 나쁘고요..
그래서 대충 숫자 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);
이런식으로 메모장에 찍으면 됩니다.
처리하는 방법은 무지 많지요~ ^^
하안인 님이 쓰신 글 :
: 데이타가 날라오는 값이
:
: I N *Q X *Q X 이런식으로 날라오는데
: hex editor에서 (ultra editor)에서 hex edit로 변경하면
: 51 00 20 00 01 00 58 00 01 00
: 으로 나오는데 HEX로 데이타를 변경하려면 어떻게 해야 하나요.
:
: 이쪽은 처음해보는 것이라 날라오는 값을 CHAR로 받아서 HEX로 변경하면 되는것인지..
: 해보니 이것은 아닌것 같은데 자문을 구합니다.
: 혹 샘플이 있으시면 더욱 더 감사하겠습니다.
|