29 #include <mraa/gpio.h> 
   36 #define EN_RXADDR           0x02 
   38 #define SETUP_RETR          0x04 
   42 #define OBSERVE_TX          0x08 
   44 #define RX_ADDR_P0          0x0A 
   45 #define RX_ADDR_P1          0x0B 
   46 #define RX_ADDR_P2          0x0C 
   47 #define RX_ADDR_P3          0x0D 
   48 #define RX_ADDR_P4          0x0E 
   49 #define RX_ADDR_P5          0x0F 
   57 #define FIFO_STATUS         0x17 
  102 #define R_REGISTER            0x00 
  103 #define W_REGISTER            0x20 
  104 #define REGISTER_MASK         0x1F 
  105 #define R_RX_PAYLOAD          0x61 
  106 #define W_TX_PAYLOAD          0xA0 
  107 #define FLUSH_TX              0xE1 
  108 #define FLUSH_RX              0xE2 
  109 #define REUSE_TX_PL           0xE3 
  115 #define RF_PWR_HIGH 2 
  119 #define _CONFIG         ((1<<EN_CRC) | (0<<CRCO) ) 
  121 #define MAX_BUFFER            32 
  127 #define BLE_MAC_0           0xEF 
  128 #define BLE_MAC_1           0xFF 
  129 #define BLE_MAC_2           0xC0 
  130 #define BLE_MAC_3           0xAA 
  131 #define BLE_MAC_4           0x18 
  132 #define BLE_MAC_5           0x00 
  134 #define BLE_PAYLOAD_OFFSET  13 
  138 typedef void (* funcPtrVoidVoid) ();
 
  204         void    init (uint8_t chipSelect, uint8_t chipEnable);
 
  216         void    send (uint8_t * value);
 
  300         void    setChannel (uint8_t channel);
 
  302         void    setPower (power_t power);
 
  304         uint8_t setSpeedRate (speed_rate_t rate);
 
  325         mraa_result_t 
ceLow ();
 
  330         mraa_result_t 
csOn ();
 
  335         mraa_result_t 
csOff ();
 
  359         void    writeBytes (uint8_t * dataout, uint8_t * datain, uint8_t len);
 
  363         void    setRegister (uint8_t reg, uint8_t value);
 
  367         uint8_t getRegister (uint8_t reg);
 
  371         void    readRegister (uint8_t reg, uint8_t * value, uint8_t len);
 
  375         void    writeRegister (uint8_t reg, uint8_t * value, uint8_t len);
 
  379         void    sendCommand (uint8_t cmd);
 
  381         void bleCrc (
const uint8_t* data, uint8_t len, uint8_t* dst);
 
  383         void bleWhiten (uint8_t* data, uint8_t len, uint8_t whitenCoeff);
 
  385         void blePacketEncode(uint8_t* packet, uint8_t len, uint8_t chan);
 
  387         uint8_t swapbits (uint8_t a);
 
  389         mraa_spi_context        m_spi;
 
  396         uint8_t                 m_localAddress[5];
 
  398         mraa_gpio_context       m_csnPinCtx;
 
  399         mraa_gpio_context       m_cePinCtx;
 
bool rxFifoEmpty()
Definition: nrf24l01.cxx:217
 
uint8_t m_bleBuffer[32]
Definition: nrf24l01.h:352
 
bool dataReady()
Definition: nrf24l01.cxx:164
 
void txFlushBuffer()
Definition: nrf24l01.cxx:335
 
void configure()
Definition: nrf24l01.cxx:92
 
void sendBeaconingMsg(uint8_t *msg)
Definition: nrf24l01.cxx:377
 
void send()
Definition: nrf24l01.cxx:137
 
void powerDown()
Definition: nrf24l01.cxx:243
 
void setBroadcastAddress(uint8_t *addr)
Definition: nrf24l01.cxx:154
 
void init(uint8_t chipSelect, uint8_t chipEnable)
Definition: nrf24l01.cxx:56
 
void rxPowerUp()
Definition: nrf24l01.cxx:223
 
mraa_result_t csOn()
Definition: nrf24l01.cxx:317
 
void getData(uint8_t *data)
Definition: nrf24l01.cxx:192
 
std::string name()
Definition: nrf24l01.h:193
 
void setDestinationAddress(uint8_t *addr)
Definition: nrf24l01.cxx:149
 
void rxFlushBuffer()
Definition: nrf24l01.cxx:232
 
mraa_result_t csOff()
Definition: nrf24l01.cxx:322
 
void setBeaconingMode()
Definition: nrf24l01.cxx:340
 
mraa_result_t ceLow()
Definition: nrf24l01.cxx:312
 
funcPtrVoidVoid dataRecievedHandler
Definition: nrf24l01.h:354
 
void setPayload(uint8_t load)
Definition: nrf24l01.cxx:159
 
uint8_t m_txBuffer[MAX_BUFFER]
Definition: nrf24l01.h:351
 
void txPowerUp()
Definition: nrf24l01.cxx:237
 
bool dataSending()
Definition: nrf24l01.cxx:177
 
API for the NRF24L01 Transceiver Module. 
Definition: nrf24l01.h:176
 
mraa_result_t ceHigh()
Definition: nrf24l01.cxx:307
 
void pollListener()
Definition: nrf24l01.cxx:327
 
uint8_t getStatus()
Definition: nrf24l01.cxx:212
 
NRF24L01(uint8_t cs, uint8_t ce)
Definition: nrf24l01.cxx:34
 
void setSourceAddress(uint8_t *addr)
Definition: nrf24l01.cxx:142
 
uint8_t m_rxBuffer[MAX_BUFFER]
Definition: nrf24l01.h:350
 
~NRF24L01()
Definition: nrf24l01.cxx:39