IoT - Kubus / Mbed 2 deprecated Kubus

Dependencies:   mbed nRF24L01P

master.cpp

Committer:
pannaannap
Date:
2017-01-09
Revision:
27:27cffdb2e9d3
Parent:
10:869163c7929d
Child:
32:a6017128e999

File content as of revision 27:27cffdb2e9d3:

#include "common.h"
#include "master.h"

#include <sstream>

int master_loop() {
    Serial pc(USBTX, USBRX); // tx, rx
    nRF24L01P radio(PB_15, PB_14, PB_13, PB_12, PB_1, PB_2);    // mosi, miso, sck, csn, ce, irq
    
    const unsigned long long RX_ADDRESS = MASTER_ADDRESS;
    const unsigned long long TX_ADDRESS = BOARD1_ADDRESS;

    char rxData[TRANSFER_SIZE];

    pc.baud(115200);
    
    radio_init(&radio, RX_ADDRESS, TX_ADDRESS);
    
    // Display the (default) setup of the nRF24L01+ chip
    pc.printf( "nRF24L01+ Frequency    : %d MHz\r\n",  radio.getRfFrequency() );
    pc.printf( "nRF24L01+ Output power : %d dBm\r\n",  radio.getRfOutputPower() );
    pc.printf( "nRF24L01+ Data Rate    : %d kbps\r\n", radio.getAirDataRate() );
    pc.printf( "nRF24L01+ TX Address   : 0x%010llX\r\n", radio.getTxAddress() );
    pc.printf( "nRF24L01+ RX0 Address   : 0x%010llX\r\n", radio.getRxAddress(NRF24L01P_PIPE_P0) );
    pc.printf( "nRF24L01+ RX1 Address   : 0x%010llX\r\n", radio.getRxAddress(NRF24L01P_PIPE_P1) );

    while (1) {
        if(radio.readable(NRF24L01P_PIPE_P1)){
            int rx_bytes = radio.read(NRF24L01P_PIPE_P1, rxData, sizeof(rxData));
            std::stringstream ss;
            
            for (int i = 0; i < rx_bytes; ++i) {
                ss << std::hex << rxData[i] / 16 << rxData[i] % 16; // ugly!
            }
            pc.printf("received: %s\r\n", ss.str().c_str());
        }
    }
}