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@56:065bd3a75d97, 2017-01-19 (annotated)
- Committer:
- Micha? ?azowik
- Date:
- Thu Jan 19 11:26:38 2017 +0100
- Revision:
- 56:065bd3a75d97
- Parent:
- 51:090149c4aa28
Backed out changeset 090149c4aa28
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; |
| Micha? ?azowik |
49:79d7eddb1f1d | 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 | |
| Micha? ?azowik |
56:065bd3a75d97 | 29 | void radio_init(nRF24L01P* radio, unsigned long long rx_address, |
| Micha? ?azowik |
56:065bd3a75d97 | 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); |
| Micha? ?azowik |
56:065bd3a75d97 | 39 | radio->enableAutoAcknowledge(NRF24L01P_PIPE_P0); |
| Micha? ?azowik |
56:065bd3a75d97 | 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); |
| Micha? ?azowik |
56:065bd3a75d97 | 44 | radio->setRxAddress(tx_address, 4, NRF24L01P_PIPE_P0); |
| Micha? ?azowik |
56:065bd3a75d97 | 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 | } |