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@44:d15530b37144, 2017-01-17 (annotated)
- Committer:
- sbarzowski
- Date:
- Tue Jan 17 12:28:29 2017 +0100
- Revision:
- 44:d15530b37144
- Parent:
- 40:40d4161fe1ad
- Parent:
- 37:1251e35fe43e
- Child:
- 49:79d7eddb1f1d
merge
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 | 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(); |
sbarzowski |
40:40d4161fe1ad | 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); |
sbarzowski |
40:40d4161fe1ad | 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); |
sbarzowski |
40:40d4161fe1ad | 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); |
sbarzowski |
40:40d4161fe1ad | 46 | |
pannaanna | 2:6541a391bdbd | 47 | radio->setTransferSize(TRANSFER_SIZE, NRF24L01P_PIPE_P0); |
pannaanna | 2:6541a391bdbd | 48 | radio->setTransferSize(TRANSFER_SIZE, NRF24L01P_PIPE_P1); |
sbarzowski |
40:40d4161fe1ad | 49 | |
pannaanna | 2:6541a391bdbd | 50 | radio->setReceiveMode(); |
pannaanna | 2:6541a391bdbd | 51 | radio->enable(); |
pannaanna | 2:6541a391bdbd | 52 | } |