IoT - Kubus / Mbed 2 deprecated Kubus

Dependencies:   mbed nRF24L01P

Committer:
pannaanna
Date:
Tue Jan 17 12:00:43 2017 +0100
Revision:
37:1251e35fe43e
Parent:
8:1861d0eef60a
Child:
44:d15530b37144
print in hex

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pannaanna 2:6541a391bdbd 1 #include "common.h"
Bartosz Stebel 8:1861d0eef60a 2 #include <cstring>
pannaanna 2:6541a391bdbd 3
pannaanna 2:6541a391bdbd 4 std::string Data::serialize() {
pannaanna 2:6541a391bdbd 5 std::string serialized;
pannaanna 2:6541a391bdbd 6 serialized.push_back(type);
Bartosz Stebel 8:1861d0eef60a 7 serialized.append((char*)&value, sizeof(value));
pannaanna 2:6541a391bdbd 8 return serialized;
pannaanna 2:6541a391bdbd 9 };
Bartosz Stebel 8:1861d0eef60a 10 bool Data::deserialize(std::string str) {
Bartosz Stebel 8:1861d0eef60a 11 if(str.length() < 1 + sizeof(value)) {
Bartosz Stebel 8:1861d0eef60a 12 return false;
Bartosz Stebel 8:1861d0eef60a 13 }
Bartosz Stebel 8:1861d0eef60a 14 type = str[0];
Bartosz Stebel 8:1861d0eef60a 15 memcpy(&value, str.data() + 1, sizeof(value));
Bartosz Stebel 8:1861d0eef60a 16 return true;
Bartosz Stebel 8:1861d0eef60a 17 }
pannaanna 2:6541a391bdbd 18
pannaanna 37:1251e35fe43e 19 std::string str_hex(const char* text, int len) {
pannaanna 37:1251e35fe43e 20 std::stringstream ss;
pannaanna 37:1251e35fe43e 21
pannaanna 37:1251e35fe43e 22 for (int i = 0; i < len; ++i) {
pannaanna 37:1251e35fe43e 23 ss << std::hex << text[i] / 16 << text[i] % 16; // ugly!
pannaanna 37:1251e35fe43e 24 }
pannaanna 37:1251e35fe43e 25
pannaanna 37:1251e35fe43e 26 return ss.str();
pannaanna 37:1251e35fe43e 27 }
pannaanna 37:1251e35fe43e 28
pannaanna 2:6541a391bdbd 29 void radio_init(nRF24L01P* radio, unsigned long long rx_address,
pannaanna 2:6541a391bdbd 30 unsigned long long tx_address) {
pannaanna 2:6541a391bdbd 31 radio->powerDown();
pannaanna 2:6541a391bdbd 32 radio->powerUp();
pannaanna 2:6541a391bdbd 33
pannaanna 2:6541a391bdbd 34 radio->setAirDataRate(DATA_RATE);
pannaanna 2:6541a391bdbd 35 radio->setRfOutputPower(POWER);
pannaanna 2:6541a391bdbd 36 radio->setRfFrequency(NRF24L01P_MIN_RF_FREQUENCY + 4 * CHANNEL);
pannaanna 2:6541a391bdbd 37
pannaanna 2:6541a391bdbd 38 radio->setCrcWidth(NRF24L01P_CRC_8_BIT);
pannaanna 2:6541a391bdbd 39 radio->enableAutoAcknowledge(NRF24L01P_PIPE_P0);
pannaanna 2:6541a391bdbd 40 radio->enableAutoAcknowledge(NRF24L01P_PIPE_P1);
pannaanna 2:6541a391bdbd 41 radio->enableAutoRetransmit(0x0F, 0x0F);
pannaanna 2:6541a391bdbd 42
pannaanna 2:6541a391bdbd 43 radio->setTxAddress(tx_address, 4);
pannaanna 2:6541a391bdbd 44 radio->setRxAddress(tx_address, 4, NRF24L01P_PIPE_P0);
pannaanna 2:6541a391bdbd 45 radio->setRxAddress(rx_address, 4, NRF24L01P_PIPE_P1);
pannaanna 2:6541a391bdbd 46
pannaanna 2:6541a391bdbd 47 radio->setTransferSize(TRANSFER_SIZE, NRF24L01P_PIPE_P0);
pannaanna 2:6541a391bdbd 48 radio->setTransferSize(TRANSFER_SIZE, NRF24L01P_PIPE_P1);
pannaanna 2:6541a391bdbd 49
pannaanna 2:6541a391bdbd 50 radio->setReceiveMode();
pannaanna 2:6541a391bdbd 51 radio->enable();
pannaanna 2:6541a391bdbd 52 }