18 #include "RF24_config.h" 20 #if defined (RF24_LINUX) 21 #include "utility/includes.h" 23 #include <LittleWireSPI/LittleWireSPI.h> 25 #include <DigitalIO.h> 33 typedef enum { RF24_PA_MIN = 0,RF24_PA_LOW, RF24_PA_HIGH, RF24_PA_MAX, RF24_PA_ERROR }
rf24_pa_dbm_e ;
57 SoftSPI<SOFT_SPI_MISO_PIN, SOFT_SPI_MOSI_PIN, SOFT_SPI_SCK_PIN, SPI_MODE> spi;
58 #elif defined (SPI_UART) 62 #if defined (RF24_LINUX) 72 #if defined (RF24_LINUX) 73 uint8_t spi_rxbuff[32+1] ;
74 uint8_t spi_txbuff[32+1] ;
78 bool dynamic_payloads_enabled;
79 uint8_t pipe0_reading_address[5];
93 inline void endTransaction();
113 RF24(uint8_t _cepin, uint8_t _cspin);
127 RF24(uint8_t _cepin, uint8_t _cspin, uint32_t spispeed );
130 #if defined (RF24_LINUX) 203 void read(
void* buf, uint8_t len );
228 bool write(
const void* buf, uint8_t len );
376 bool write(
const void* buf, uint8_t len,
const bool multicast );
406 bool writeFast(
const void* buf, uint8_t len );
419 bool writeFast(
const void* buf, uint8_t len,
const bool multicast );
447 bool writeBlocking(
const void* buf, uint8_t len, uint32_t timeout );
493 bool txStandBy(uint32_t timeout,
bool startTx = 0);
535 void whatHappened(
bool& tx_ok,
bool& tx_fail,
bool& rx_ready);
561 void startFastWrite(
const void* buf, uint8_t len,
const bool multicast,
bool startTx = 1 );
583 void startWrite(
const void* buf, uint8_t len,
const bool multicast );
646 bool isValid() {
return ce_pin != 0xff && csn_pin != 0xff; }
706 void setRetries(uint8_t delay, uint8_t count);
828 void setAutoAck( uint8_t pipe,
bool enable ) ;
909 void maskIRQ(
bool tx_ok,
bool tx_fail,
bool rx_ready);
993 uint8_t read_register(uint8_t reg, uint8_t* buf, uint8_t len);
1001 uint8_t read_register(uint8_t reg);
1011 uint8_t write_register(uint8_t reg,
const uint8_t* buf, uint8_t len);
1020 uint8_t write_register(uint8_t reg, uint8_t value);
1031 uint8_t write_payload(
const void* buf, uint8_t len,
const uint8_t writeType);
1042 uint8_t read_payload(
void* buf, uint8_t len);
1049 uint8_t flush_rx(
void);
1056 uint8_t get_status(
void);
1058 #if !defined (MINIMAL) 1066 void print_status(uint8_t status);
1075 void print_observe_tx(uint8_t value);
1088 void print_byte_register(
const char* name, uint8_t reg, uint8_t qty = 1);
1101 void print_address_register(
const char* name, uint8_t reg, uint8_t qty = 1);
1109 void toggle_features(
void);
1115 uint8_t spiTrans(uint8_t cmd);
1117 #if defined (FAILURE_HANDLING) || defined (RF24_LINUX) 1118 void errNotify(
void);
1890 #endif // __RF24_H__
void setAutoAck(bool enable)
bool isAckPayloadAvailable(void)
void closeReadingPipe(uint8_t pipe)
void startWrite(const void *buf, uint8_t len, const bool multicast)
void enableAckPayload(void)
void maskIRQ(bool tx_ok, bool tx_fail, bool rx_ready)
uint8_t getPayloadSize(void)
void setChannel(uint8_t channel)
void setRetries(uint8_t delay, uint8_t count)
bool write(const void *buf, uint8_t len)
void startListening(void)
bool writeBlocking(const void *buf, uint8_t len, uint32_t timeout)
bool writeFast(const void *buf, uint8_t len)
void enableDynamicPayloads(void)
rf24_datarate_e getDataRate(void)
void writeAckPayload(uint8_t pipe, const void *buf, uint8_t len)
RF24(uint8_t _cepin, uint8_t _cspin)
void setPayloadSize(uint8_t size)
void startFastWrite(const void *buf, uint8_t len, const bool multicast, bool startTx=1)
uint8_t getDynamicPayloadSize(void)
bool setDataRate(rf24_datarate_e speed)
rf24_crclength_e getCRCLength(void)
void openWritingPipe(const uint8_t *address)
void setCRCLength(rf24_crclength_e length)
void whatHappened(bool &tx_ok, bool &tx_fail, bool &rx_ready)
void read(void *buf, uint8_t len)
void openReadingPipe(uint8_t number, const uint8_t *address)
void setPALevel(uint8_t level)
void setAddressWidth(uint8_t a_width)