IoT - Kubus / Mbed 2 deprecated Kubus

Dependencies:   mbed nRF24L01P

Committer:
Bartosz Stebel
Date:
Tue Jan 17 12:47:55 2017 +0100
Revision:
52:917b3f31cad3
Parent:
39:381993764b40
Child:
53:b2c949470f4e
moar wifi

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pannaannap 5:fbd5b1e953e6 1 #include "common.h"
pannaannap 7:e51d0fbb1a25 2 #include "master.h"
pannaannap 5:fbd5b1e953e6 3
pannaanna 39:381993764b40 4 #include "cantcoap.h"
sbarzowski 10:869163c7929d 5 #include <sstream>
sbarzowski 10:869163c7929d 6
pannaannap 7:e51d0fbb1a25 7 int master_loop() {
pannaannap 7:e51d0fbb1a25 8 Serial pc(USBTX, USBRX); // tx, rx
pannaanna 39:381993764b40 9 Serial wifi(PA_9, PA_10);
pannaannap 7:e51d0fbb1a25 10 nRF24L01P radio(PB_15, PB_14, PB_13, PB_12, PB_1, PB_2); // mosi, miso, sck, csn, ce, irq
pannaanna 37:1251e35fe43e 11
pannaannap 7:e51d0fbb1a25 12 const unsigned long long RX_ADDRESS = MASTER_ADDRESS;
pannaannap 27:27cffdb2e9d3 13 const unsigned long long TX_ADDRESS = BOARD1_ADDRESS;
pannaannap 5:fbd5b1e953e6 14
pannaannap 5:fbd5b1e953e6 15 char rxData[TRANSFER_SIZE];
pannaannap 5:fbd5b1e953e6 16
pannaannap 5:fbd5b1e953e6 17 pc.baud(115200);
pannaanna 39:381993764b40 18 wifi.baud(115200);
pannaanna 37:1251e35fe43e 19
pannaannap 5:fbd5b1e953e6 20 radio_init(&radio, RX_ADDRESS, TX_ADDRESS);
pannaanna 39:381993764b40 21
pannaannap 5:fbd5b1e953e6 22 // Display the (default) setup of the nRF24L01+ chip
pannaannap 5:fbd5b1e953e6 23 pc.printf( "nRF24L01+ Frequency : %d MHz\r\n", radio.getRfFrequency() );
pannaannap 5:fbd5b1e953e6 24 pc.printf( "nRF24L01+ Output power : %d dBm\r\n", radio.getRfOutputPower() );
pannaannap 5:fbd5b1e953e6 25 pc.printf( "nRF24L01+ Data Rate : %d kbps\r\n", radio.getAirDataRate() );
pannaannap 5:fbd5b1e953e6 26 pc.printf( "nRF24L01+ TX Address : 0x%010llX\r\n", radio.getTxAddress() );
pannaannap 5:fbd5b1e953e6 27 pc.printf( "nRF24L01+ RX0 Address : 0x%010llX\r\n", radio.getRxAddress(NRF24L01P_PIPE_P0) );
pannaannap 5:fbd5b1e953e6 28 pc.printf( "nRF24L01+ RX1 Address : 0x%010llX\r\n", radio.getRxAddress(NRF24L01P_PIPE_P1) );
pannaannap 5:fbd5b1e953e6 29
pannaanna 39:381993764b40 30
pannaannap 5:fbd5b1e953e6 31 while (1) {
pannaannap 5:fbd5b1e953e6 32 if(radio.readable(NRF24L01P_PIPE_P1)){
sbarzowski 10:869163c7929d 33 int rx_bytes = radio.read(NRF24L01P_PIPE_P1, rxData, sizeof(rxData));
Bartosz Stebel 52:917b3f31cad3 34 CoapPDU pdu;
Bartosz Stebel 52:917b3f31cad3 35 pdu.setType(CoapPDU::COAP_NON_CONFIRMABLE);
Bartosz Stebel 52:917b3f31cad3 36 pdu.setCode(CoapPDU::COAP_POST);
pannaanna 37:1251e35fe43e 37 std::string output = str_hex(rxData, rx_bytes);
pannaanna 39:381993764b40 38 wifi.printf("received: %s\r\n", output.c_str());
pannaanna 37:1251e35fe43e 39 pc.printf("received: %s\r\n", output.c_str());
Bartosz Stebel 52:917b3f31cad3 40 Data d;
Bartosz Stebel 52:917b3f31cad3 41 d.deserialize(std::string(rxData, 32));
Bartosz Stebel 52:917b3f31cad3 42 std::stringstream ss;
Bartosz Stebel 52:917b3f31cad3 43
Bartosz Stebel 52:917b3f31cad3 44 for (int i = 0; i < rx_bytes; ++i) {
Bartosz Stebel 52:917b3f31cad3 45 ss << std::hex << rxData[i] / 16 << rxData[i] % 16; // ugly!
Bartosz Stebel 52:917b3f31cad3 46 }
Bartosz Stebel 52:917b3f31cad3 47 pc.printf("received: %s|id %d \r\n", ss.str().c_str(), d.type);
Bartosz Stebel 52:917b3f31cad3 48 //wifi.printf("received: %s, pkt:", ss.str().c_str());
Bartosz Stebel 52:917b3f31cad3 49
Bartosz Stebel 52:917b3f31cad3 50 char uribuf[64];
Bartosz Stebel 52:917b3f31cad3 51 switch(d.type) {
Bartosz Stebel 52:917b3f31cad3 52 case PIR1:
Bartosz Stebel 52:917b3f31cad3 53 strcpy(uribuf, "pir1");
Bartosz Stebel 52:917b3f31cad3 54 break;
Bartosz Stebel 52:917b3f31cad3 55 case PIR2:
Bartosz Stebel 52:917b3f31cad3 56 strcpy(uribuf, "pir2");
Bartosz Stebel 52:917b3f31cad3 57 break;
Bartosz Stebel 52:917b3f31cad3 58 case DISTANCE:
Bartosz Stebel 52:917b3f31cad3 59 strcpy(uribuf, "distance");
Bartosz Stebel 52:917b3f31cad3 60 break;
Bartosz Stebel 52:917b3f31cad3 61 case SOUND:
Bartosz Stebel 52:917b3f31cad3 62 strcpy(uribuf, "sound");
Bartosz Stebel 52:917b3f31cad3 63 break;
Bartosz Stebel 52:917b3f31cad3 64 }
Bartosz Stebel 52:917b3f31cad3 65 pdu.setURI(uribuf,strlen(uribuf));
Bartosz Stebel 52:917b3f31cad3 66
Bartosz Stebel 52:917b3f31cad3 67 char pbuf[32];
Bartosz Stebel 52:917b3f31cad3 68 int psize = sprintf(pbuf, "%ld", d.value.i);
Bartosz Stebel 52:917b3f31cad3 69 pdu.setPayload((uint8_t*)pbuf, psize);
Bartosz Stebel 52:917b3f31cad3 70 wifi.write(pdu.getPDUPointer(), pdu.getPDULength(), 0, 0);
Bartosz Stebel 52:917b3f31cad3 71 //wifi.printf("\n");
pannaannap 5:fbd5b1e953e6 72 }
pannaannap 5:fbd5b1e953e6 73 }
pannaannap 5:fbd5b1e953e6 74 }