|
장비에서 보내준 값은 헥사값 0x10 입니다.. 즉 십진수로는 16이라는 값이지요..
그런데.. 님께서 보내신값을 보면 값이 아닌 아스키값을 보내는 루틴으로 구현이 되어있네요.. 즉
0 : 0x30
x : 0x78
1 : 0x31
0 : 0x30
엔터(CR+LF) : 0x0D 0x0A
그러니.. 일단 아스키문자 "0x10" 을 보낸것이지요..
일단 문자로 십진값이나 헥사값을 입력받아서 아스키케릭터가 아닌 값을 보내게끔 구성하셔야 겠네요..
TryStrToInt
Converts an AnsiString that represents an integer (decimal or hex notation) to a number with Boolean success code.
Unit
SysUtils
Category
type conversion routines
extern PACKAGE bool __fastcall TryStrToInt(const AnsiString S, int &Value);
Description
TryStrToInt converts the string S, which represents an integer-type number in either decimal or hexadecimal notation, into a number, which is assigned to Value. If S does not represent a valid number, TryStrToInt returns false; otherwise TryStrToInt returns true.
빌더 헬프에 있는 함수와 설명입니다. 참고하시구요..
특히 Category type conversion routines 링크에 있는 함수들을 한번 찬찬히 훍어보시면 좀더 도움이 될것같네요..
그럼..
생각하자 님이 쓰신 글 :
: 카드발급기 때문에 질문을 했었습니다.
: 감사하게도 시리얼 모니터 라는 프로그램을 구하게 되어 모니터링을 해보니
: Request: 2005-10-04 오후 5:25:50.39364 (+90.8438 seconds)
:
: 10 .
:
: Answer: 2005-10-04 오후 5:25:50.40864 (+0.0156 seconds)
:
: 10 .
:
: 장비 스펙에 보면 장비를 RESET 해주는 DLE(10h) 명령으로 시작합니다.
:
: 위의 값은 이 장비에 있는 테스트 프로그램을 사용해서 나온 값입니다.
:
: 근데 제가 Wincom을 이용하여 만든 프로그램에서 데이터를 0x10 이라는 값을 넣어보니
:
: 30 78 31 30 0D 0A 0x10.. <- 이게 넘어간 데이타 입니다.
:
: 이렇게 나오더군요..
: 혹시 몰라서 . 만 입력해 보았습니다.
: 2E 0D 0A ...
: 엔터만 쳐 보았습니다.
: 0D 0A .. <- 엔터만 쳐도 한개가 안되던군요 -_-
:
:
:
: 어떻게 값을 넘겨야
: 10 이라는 값을 넘길수 있을까요.. 통신쪽은 해본적이 없어서 정말 답답합니다.
: 지금 찾아보면서 배우는 중인데 아시는분 있으면 답변 좀 해주십시오.
|