앗~ 답변달아주셔서 감사합니다.
환경은 win7 입니다.
var
SendStr : AnsiString;
begin
SendStr := '$' + 'H' + 'i' + '?' + #$240;
Cport.WriteStr(SendStr);
end;
구현은 이런식으로 해놨구요.
마지막 5번째 값은(240)은 2번째 + 3번째 + 4번째 값을 더한 값 입니다.
포트 모니터 프로그램으로 값을 보면
5바이트 중 1~4번째 값은 정확하게 들어가는데, 5번째 값이 0x00 으로 들어갑니다.
제가 5번째 값 계산을 잘못한걸까요?
장비에서는 unsigned Char 로 받는다고 합니다.
TComport 4.0 버전으로 개발중입니다. write method 가 있는데,
파라미터 타입이 PWideChar 라서, AnsiChar 로 넘기지 못하고 있습니다.(실력이 미천하여..)
방법을 아시거나, 잘못된 점 있으면 지적 부탁드립니다.
감사합니다.
라스코니 님이 쓰신 글 :
: 좀 이상하네요. unsigned char 면 0 ~ 255(8 bit) 일텐데요.
: OS에 따라서 0 ~ 127(7 bit) 로 되는 경우도 있다고는 들었지만요.
:
: 환경이 어떻게 되나요?
:
:
: 도사 님이 쓰신 글 :
: : 안녕하세요..
: :
: :
: :
: : 구현하다 안되서 글올립니다.
: :
: :
: :
: : 개발환경은 Delphi 2010 이고, 통신은 RS232 TComport 로 구현하고 있습니다.
: :
: : 장비와의 통신은 STX + Data + ETX 로 총 5byte 로 구성이 되어 있습니다.
: :
: : 클라이언트에서 장비로 데이타 전송시 데이타 받는부분이 unsigned char 로 되어 있어,
: : (전송시 16진수 로 전송) char 로 값을 넘기는데, 문제는 값이 128 을 넘어가면 0(ox00) 으로
: : 넘어가는거 같더군요. (128 이하면 정상적으로 전송이 됨)
: : 128 이상일때도 정상적으로 값을 넘기는 방법이 있으면 알려주세요.
: :
: :
: : 감사합니다.
|