2013-06-04 6 views
0

У меня есть следующий код модуля модуля bluetooth, который я пытаюсь реализовать в своем приложении.Неизвестный тип данных, поступающий с модуля bluetooth

- (void)receivedData:(unsigned char *)data length:(NSUInteger)len; { 
NSLog(@"DATA: %s", data);} 

Консоль распечатки журнала, как это:

2013-06-04 17:32:05.408 xyz[155:707] DATA: 0ıÊ 
2013-06-04 17:32:05.447 xyz[155:707] DATA: 03803DE 

2013-06-04 17:32:05.668 xyz[155:707] DATA: 0ıÊ 
2013-06-04 17:32:05.709 xyz[155:707] DATA: 0B403DE 

Я знаю, модуль Bluetooth посылает пакет в десять байт. Я хочу получить информацию из первых двух байтов. Являются ли эти значения HEX? Как преобразовать их в десятичные числа?

Любая помощь приветствуется.

+0

Удалить точку с запятой ';' из определения метода 'receivedData'. –

ответ

2

Если вы используете C, используйте функцию печати F:

printf("%x", DATA[i]); 

, который будет печатать его в шестнадцатеричной. Если вы хотите напечатать его в виде строки, просто распечатать его, как это:

printf("%s", DATA); 

Decimal:

printf("%d", DATA[i]); 

Это выглядит как его теперь печатать свои ASCii значения.

+0

Будьте осторожны с% s; он предполагает, что данные имеют нулевое завершение, что, вероятно, не так. (В противном случае, зачем проходить длину?) –

Смежные вопросы