IoT - Kubus / Mbed 2 deprecated Kubus

Dependencies:   mbed nRF24L01P

Committer:
sbarzowski
Date:
Thu Jan 05 13:56:25 2017 +0000
Revision:
10:869163c7929d
Parent:
8:1861d0eef60a
Child:
27:27cffdb2e9d3
hex

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pannaannap 6:98401b545e0c 1 #ifndef JNP3_COMMON_H
pannaannap 6:98401b545e0c 2 #define JNP3_COMMON_H
pannaannap 6:98401b545e0c 3
pannaanna 2:6541a391bdbd 4 #include <stdint.h>
pannaanna 2:6541a391bdbd 5 #include <string>
pannaanna 2:6541a391bdbd 6 #include "nRF24L01P.h"
pannaannap 5:fbd5b1e953e6 7 #include "mbed.h"
pannaanna 2:6541a391bdbd 8
pannaanna 2:6541a391bdbd 9 #define DATA_RATE NRF24L01P_DATARATE_250_KBPS
pannaanna 2:6541a391bdbd 10 #define POWER NRF24L01P_TX_PWR_ZERO_DB
pannaanna 2:6541a391bdbd 11 #define CHANNEL 2
pannaanna 2:6541a391bdbd 12 #define TRANSFER_SIZE 32
pannaanna 2:6541a391bdbd 13
pannaanna 2:6541a391bdbd 14 const unsigned long long MASTER_ADDRESS = 0xABCDEF00;
pannaanna 2:6541a391bdbd 15 const unsigned long long PIR1_ADDRESS = 0xABCDEF01;
pannaanna 2:6541a391bdbd 16 const unsigned long long PIR2_ADDRESS = 0xABCDEF02;
pannaanna 2:6541a391bdbd 17 const unsigned long long DISTANCE_SENSOR_ADDRESS = 0xABCDEF02;
pannaanna 2:6541a391bdbd 18 const unsigned long long SOUND_SENSOR_ADDRESS = 0xABCDEF03;
pannaanna 2:6541a391bdbd 19
pannaanna 2:6541a391bdbd 20 enum SENSOR_TYPE {
pannaannap 4:aa25f65395e3 21 PIR1 = 1,
pannaannap 4:aa25f65395e3 22 PIR2 = 2,
pannaannap 4:aa25f65395e3 23 DISTANCE = 3,
pannaannap 4:aa25f65395e3 24 SOUND = 4,
pannaanna 2:6541a391bdbd 25 };
pannaanna 2:6541a391bdbd 26
sbarzowski 10:869163c7929d 27 inline bool is_sensor_float(SENSOR_TYPE t) {
sbarzowski 10:869163c7929d 28 return t == SOUND;
Bartosz Stebel 8:1861d0eef60a 29 }
Bartosz Stebel 8:1861d0eef60a 30
pannaannap 7:e51d0fbb1a25 31 struct SensorDescription {
pannaannap 7:e51d0fbb1a25 32 SensorDescription(int _sensor_id, unsigned long long _rx_address, unsigned long long _tx_address)
pannaannap 7:e51d0fbb1a25 33 : sensor_id(_sensor_id), rx_address(_rx_address), tx_address(_tx_address) {}
pannaannap 7:e51d0fbb1a25 34 int sensor_id;
pannaannap 7:e51d0fbb1a25 35 unsigned long long rx_address;
pannaannap 7:e51d0fbb1a25 36 unsigned long long tx_address;
pannaannap 7:e51d0fbb1a25 37 };
pannaannap 7:e51d0fbb1a25 38
pannaanna 2:6541a391bdbd 39 struct Data {
Bartosz Stebel 8:1861d0eef60a 40 Data(uint8_t type_, int32_t i_val)
Bartosz Stebel 8:1861d0eef60a 41 : type(type_) {
Bartosz Stebel 8:1861d0eef60a 42 value.i = i_val;
Bartosz Stebel 8:1861d0eef60a 43 }
Bartosz Stebel 8:1861d0eef60a 44
Bartosz Stebel 8:1861d0eef60a 45 Data(uint8_t type_, float f_val)
Bartosz Stebel 8:1861d0eef60a 46 : type(type_) {
Bartosz Stebel 8:1861d0eef60a 47 value.f = f_val;
Bartosz Stebel 8:1861d0eef60a 48 }
pannaanna 2:6541a391bdbd 49
pannaanna 2:6541a391bdbd 50 std::string serialize();
Bartosz Stebel 8:1861d0eef60a 51 bool deserialize(std::string str);
pannaanna 2:6541a391bdbd 52
pannaanna 2:6541a391bdbd 53 uint8_t type;
Bartosz Stebel 8:1861d0eef60a 54 union {
Bartosz Stebel 8:1861d0eef60a 55 int32_t i;
Bartosz Stebel 8:1861d0eef60a 56 float f;
Bartosz Stebel 8:1861d0eef60a 57 } value;
pannaanna 2:6541a391bdbd 58 };
pannaanna 2:6541a391bdbd 59
pannaanna 2:6541a391bdbd 60 void radio_init(nRF24L01P* radio, unsigned long long rx_address,
pannaanna 2:6541a391bdbd 61 unsigned long long tx_address);
pannaannap 6:98401b545e0c 62
Bartosz Stebel 8:1861d0eef60a 63 #endif /* JNP3_COMMON */