|
답변 감사드립니다..
하지만 실제로
16진수통신을하구 있구요...can 및 kwp 통신입니다..
실제 데이터값이 16인데 제가 받은 값이 LK8이라는 값이면 이것을 실제로 4C 48 38 실어야하는데요
string s 값이 LK8이면
String sHex;
char szHex[3];
for (int i=0; i<s.Length(); i++)
{
sprintf(szHex, "0x%02x", s.c_str()[i]); // 대문자로 표시하고 싶으면 0x%02X
sHex = sHex + szHex + "";
}
이와같이 sHex에 0x4c0x4b0x38을 담는건 성공했습니다 그후 저것을 int 로 바꿔야하는데 어케 바꿔야할까요 ㅜㅜ
int 로 바꾸면 4999992 나오게요.....
Intotheblue 님이 쓰신 글 :
: 보통 통신에서 16진수 표기 법을 사용하는건..
: 해석하기 편해서 이지.. 실제 통신이 16 진수로 되는 경우는 거의 없습니다.
:
: 16진수니 10진수니 하는건 통신 데이터를 어떻게 해석할거냐의 문제인 경우가 대부분입니다.
:
: 님이 예를 든 형태대로면..
: "LL" 같은건 그냥 보내면 됩니다.
:
: 숫자형만 int -> String 형으로 변환해서 보내면 될걸로 보이네요.
:
:
:
:
: 전병진 님이 쓰신 글 :
: : 현재 16진수로 통신을 하고있습니다.
: :
: : 특정 값을 받아 그 값을 날리는 건데요
: :
: : 하지만 특정 값들은 String s = "1"이나 또는 "2"로 날라오지만 이것을 int data = StrToInt(s);
: :
: : 를통하여 변환후 사용합니다. 헥사로 날립니다.
: :
: : 그런데 문제는 특정값이 ASCI s = "LL" 이라면 이것을 어떻게 HEX로 바꾸고 다시 int 로 바꾸어 위에 통신 프레임에 실어서 보낼수 있을
: :
: : 까요
|