|
CMD.sprintf("%c%s%c%c\n", 0x02, "002RCV", 0x03, 0x0D); -> 이 부분은 문제가 없습니다.
16진수 데이타를 10진수로 변경하는 것은 제 경우 저는 아래처럼 사용합니다.
short temp ;
temp = 0x00FF & Buffer[14] ;
temp <<= 8 ;
temp = temp | Buffer[15] ;
sLabelFX15->Caption = temp ;
사용하신 방법에는 문제가 많습니다. 컴파일은 되지만 실행하면 에러가 발생하게 됩니다.
일단 사용한 변수가 전부 String Type 이기 때문에 사칙연산이 되지 않을 뿐더러 10진수로 바꿔지지도 않습니다.
스트링은 스트링일 뿐 10진수 값은 아니기 때문입니다.
Rkluv 님이 쓰신 글 :
: 아아... 첫번째 인덱스에서 상대 길이 였군요... 감사합니다.
: 첨부파일은 컴아날라이저로 CMD를 날려서 데이터를 읽어 들였고, 결국 빨간 박스에 있는 값들을 받아 들여서 아래 코딩과 같이
: 작업을 한것입니다.
: 질문 1. 아래와 같이 CMD.sprintf("%c%s%c%c\n", 0x02, "002RCV", 0x03, 0x0D);를 변환 하였습니다.
: 이렇게 변환하여도 컴아날리이저에 02303032524356030D0A CMD를 날린 것과 같이 동일한 기능을 구현하는지...
: 질문 2. 들어온 Data들 중 빨간 박스의 값들을 취해 10진수로 제대로 바꾼 코딩인지,,,, 확인하고 싶습니다.
:
: 장비가 있어서 Test를 직접 하면 좋겠지만, 장비가 없어 제 생각만으로 코딩하기는 아직 실력이 너무 부족한것 같습니다 .
: 확인부탁드립니다.
:
:
:
: AnsiString CMD;
: AnsiString temp16;
: AnsiString hum16;
: AnsiString temp10;
: AnsiString hum10;
: AnsiString tpv;
: AnsiString hpv;
:
: CMD.sprintf("%c%s%c%c\n", 0x02, "002RCV", 0x03, 0x0D);
: WriteCmd2(CMD);
: Read2();
: temp16 = sResult2.SubString(14,2);
: hum16 = sResult2.SubString(20,2);
: temp10 = StrToInt(temp16);
: hum10 = StrToInt(hum16);
: tpv = (temp10/100)-100;
: hpv = (hum10/10);
:
: sLabelFX15->Caption = tpv;
: sLabelFX16->Caption = hpv;
:
:
:
:
: 송신영 님이 쓰신 글 :
: : SubString 의 두번째인자는 인덱스가아니라 첫번째 인자인 인덱스에의 상대 길이입니다.
: : 그리고 핵사값으로 "12"가 들어오면 앞에 "0x" 를 붙이고 StrToInt 하면됩니다.
: : 수신되는 데이터의 포멧이있어야 정확하게 알겠네요.
: :
: : Rkluv 님이 쓰신 글 :
: : : 안녕하세요 아래와 같이 문의드립니다.
: : :
: : : 장비에서 넘어오는 16진수 data를 10진수로 변환하려고 합니다.
: : :
: : : AnsiString CMD;
: : :
: : : AnsiString temp16;
: : : AnsiString hum16;
: : : AnsiString temp10;
: : : AnsiString hum10;
: : : AnsiString tpv;
: : : AnsiString hpv;
: : :
: : : CMD.sprintf("%c%s%c%c\n", 0x02, "002RCV", 0x03, 0x0D);
: : : WriteCmd2(CMD);
: : : Read2();
: : : temp16 = sResult2.SubString(15,16);
: : : hum16 = sResult2.SubString(21,22);
: : : temp10 = StrToInt(temp16);
: : : hum10 = StrToInt(hum16);
: : : tpv = (temp10/100)-100;
: : : hpv = (hum10/10);
: : :
: : : sLabelFX15->Caption = tpv;
: : : sLabelFX16->Caption = hpv;
: : :
: : : 컴파일 에러는 없는데 장비가 없어서 직접적으로 테스트는 못해보고 있습니다.
: : : 코드상 이상이 없는지 확인하고 싶습니다 . 감사합니다.
: : :
|