Sensor sending data to the gateway
Fork of JNP3_IOT_6_RADIO_ECHO_FIXED by
Diff: main_echo.cpp
- Revision:
- 3:335c4028bf36
- Parent:
- 2:352f66e435da
--- a/main_echo.cpp Tue Nov 15 08:41:29 2016 +0000 +++ b/main_echo.cpp Tue Nov 15 15:49:47 2016 +0000 @@ -4,23 +4,23 @@ //***************************************************************************// // !!! SETTINGS !!! -#define DATA_RATE NRF24L01P_DATARATE_250_KBPS -//#define DATA_RATE NRF24L01P_DATARATE_1_MBPS +//#define DATA_RATE NRF24L01P_DATARATE_250_KBPS +#define DATA_RATE NRF24L01P_DATARATE_1_MBPS //#define DATA_RATE NRF24L01P_DATARATE_2_MBPS -#define POWER NRF24L01P_TX_PWR_ZERO_DB +//#define POWER NRF24L01P_TX_PWR_ZERO_DB //#define POWER NRF24L01P_TX_PWR_MINUS_6_DB //#define POWER NRF24L01P_TX_PWR_MINUS_12_DB -//#define POWER NRF24L01P_TX_PWR_MINUS_18_DB +#define POWER NRF24L01P_TX_PWR_MINUS_18_DB #define CHANNEL 0 // 0 - 30 -#define RX_ADDRESS ((unsigned long long) 0xABCDEF02) -#define TX_ADDRESS ((unsigned long long) 0xABCDEF00) -#define ECHO_DELAY 0.2 +#define RX_ADDRESS ((unsigned long long) 0xABCDEF00) +#define TX_ADDRESS ((unsigned long long) 0xABCDEF01) +#define ECHO_DELAY 0.1 -#define TRANSFER_SIZE 1 +#define TRANSFER_SIZE 32 //***************************************************************************// @@ -53,19 +53,28 @@ radio.setAirDataRate(DATA_RATE); radio.setRfOutputPower(POWER); radio.setRfFrequency(NRF24L01P_MIN_RF_FREQUENCY + 4 * CHANNEL); - radio.setRxAddress(RX_ADDRESS, 4); + + radio.setCrcWidth(NRF24L01P_CRC_8_BIT); + radio.enableAutoAcknowledge(NRF24L01P_PIPE_P0); + radio.enableAutoAcknowledge(NRF24L01P_PIPE_P1); + radio.enableAutoRetransmit(0x0F, 0x0F); + radio.setTxAddress(TX_ADDRESS, 4); - radio.setCrcWidth(NRF24L01P_CRC_8_BIT); - + radio.setRxAddress(TX_ADDRESS, 4, NRF24L01P_PIPE_P0); + + radio.setRxAddress(RX_ADDRESS, 4, NRF24L01P_PIPE_P1); + // 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+ RX Address : 0x%010llX\r\n", radio.getRxAddress() ); + 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) ); - radio.setTransferSize( TRANSFER_SIZE ); + radio.setTransferSize(TRANSFER_SIZE, NRF24L01P_PIPE_P0); + radio.setTransferSize(TRANSFER_SIZE, NRF24L01P_PIPE_P1); myled1 = 0; @@ -73,24 +82,33 @@ radio.enable(); while (1) { - int tx_bytes; - int rx_bytes; + int tx_bytes=0; + int rx_bytes=0; - if(radio.readable()){ + if(radio.readable(NRF24L01P_PIPE_P1)){ - rx_bytes = radio.read(NRF24L01P_PIPE_P0, rxData, sizeof(rxData)); + rx_bytes = radio.read(NRF24L01P_PIPE_P1, rxData, sizeof(rxData)); myled1 = 1; + pc.printf("PING RECV\r\n"); wait(ECHO_DELAY); tx_bytes = radio.write(NRF24L01P_PIPE_P0, txData, TRANSFER_SIZE); myled1 = 0; + pc.printf("PONG SEND\r\n"); } if(send_data){ tx_bytes = radio.write(NRF24L01P_PIPE_P0, txData, TRANSFER_SIZE); send_data = false; + pc.printf("INIT SEND\r\n"); } + if(tx_bytes < 0) + pc.printf("TX ERROR\r\n"); + + if(tx_bytes > 0) + pc.printf("RETR: %d\r\n", radio.getRetrCount()); + } }