Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
common.cpp@8:1861d0eef60a, 2017-01-05 (annotated)
- Committer:
- Bartosz Stebel
- Date:
- Thu Jan 05 13:23:49 2017 +0100
- Revision:
- 8:1861d0eef60a
- Parent:
- 2:6541a391bdbd
- Child:
- 37:1251e35fe43e
- Child:
- 40:40d4161fe1ad
Fix (de)serializer
Who changed what in which revision?
User | Revision | Line number | New 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 | 2:6541a391bdbd | 19 | void radio_init(nRF24L01P* radio, unsigned long long rx_address, |
pannaanna | 2:6541a391bdbd | 20 | unsigned long long tx_address) { |
pannaanna | 2:6541a391bdbd | 21 | radio->powerDown(); |
pannaanna | 2:6541a391bdbd | 22 | radio->powerUp(); |
pannaanna | 2:6541a391bdbd | 23 | |
pannaanna | 2:6541a391bdbd | 24 | radio->setAirDataRate(DATA_RATE); |
pannaanna | 2:6541a391bdbd | 25 | radio->setRfOutputPower(POWER); |
pannaanna | 2:6541a391bdbd | 26 | radio->setRfFrequency(NRF24L01P_MIN_RF_FREQUENCY + 4 * CHANNEL); |
pannaanna | 2:6541a391bdbd | 27 | |
pannaanna | 2:6541a391bdbd | 28 | radio->setCrcWidth(NRF24L01P_CRC_8_BIT); |
pannaanna | 2:6541a391bdbd | 29 | radio->enableAutoAcknowledge(NRF24L01P_PIPE_P0); |
pannaanna | 2:6541a391bdbd | 30 | radio->enableAutoAcknowledge(NRF24L01P_PIPE_P1); |
pannaanna | 2:6541a391bdbd | 31 | radio->enableAutoRetransmit(0x0F, 0x0F); |
pannaanna | 2:6541a391bdbd | 32 | |
pannaanna | 2:6541a391bdbd | 33 | radio->setTxAddress(tx_address, 4); |
pannaanna | 2:6541a391bdbd | 34 | radio->setRxAddress(tx_address, 4, NRF24L01P_PIPE_P0); |
pannaanna | 2:6541a391bdbd | 35 | radio->setRxAddress(rx_address, 4, NRF24L01P_PIPE_P1); |
pannaanna | 2:6541a391bdbd | 36 | |
pannaanna | 2:6541a391bdbd | 37 | radio->setTransferSize(TRANSFER_SIZE, NRF24L01P_PIPE_P0); |
pannaanna | 2:6541a391bdbd | 38 | radio->setTransferSize(TRANSFER_SIZE, NRF24L01P_PIPE_P1); |
pannaanna | 2:6541a391bdbd | 39 | |
pannaanna | 2:6541a391bdbd | 40 | radio->setReceiveMode(); |
pannaanna | 2:6541a391bdbd | 41 | radio->enable(); |
pannaanna | 2:6541a391bdbd | 42 | } |