2015-08-24 4 views
0

Я пытаюсь отправить 8-бит byteArrays в rfduino.RFduinoBLE_onПолучить при отправке bytearray

В эскизе я получил

void RFduinoBLE_onReceive(char *data, int len) { 
    int firstbyte = data[0]; 
    Serial.println(firstbyte) 
} 

Это прекрасно работает, если firstbyte закончится 32. Но если я посылаю ByteArray, из [13, ...], firstbyte обрабатывается как 0.

Я думаю, что я понимаю, почему (?): RFduinoBLE анализирует входящие данные как символы перед отправкой этой функции, а байты до 32 - это пустая строка.

Так что мой вопрос: Как я могу использовать RFduinoBLE-onReceive для чтения bytearrays со значениями ниже 32?

ответ

0

Следующая, кажется, работает просто отлично:

void RFduinoBLE_onReceive(char *data, int length) { 
    uint8_t firstbyte = data[0]; 
} 

или для массивов

uint8_t getData[20]; 

void RFduinoBLE_onReceive(char *data, int length) { 
    for (i = 0; i < length; i++) { 
     getData[i] = data[i]; 
    } 
} 

Не совсем уверен, что было сделано правильно/неправильно, где, но я подозреваю либо с помощью int firstbyte вместо uint8_t firstbyteили литье uint8_t firstbyte = (uint8_t) data[0] сделал то, чего я не ожидал.

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