esp32_ethernet_milight_hub/lib/Radio/PL1167_nRF24.h
2021-01-15 22:49:01 +01:00

56 lines
1 KiB
C++

/*
* PL1167_nRF24.h
*
* Created on: 29 May 2015
* Author: henryk
*/
#ifdef ARDUINO
#include "Arduino.h"
#endif
#include "RF24.h"
// #define DEBUG_PRINTF
#ifndef PL1167_NRF24_H_
#define PL1167_NRF24_H_
class PL1167_nRF24 {
public:
PL1167_nRF24(RF24& radio);
int open();
int setSyncword(const uint8_t syncword[], size_t syncwordLength);
int setMaxPacketLength(uint8_t maxPacketLength);
int writeFIFO(const uint8_t data[], size_t data_length);
int transmit(uint8_t channel);
int receive(uint8_t channel);
int readFIFO(uint8_t data[], size_t &data_length);
private:
RF24 &_radio;
const uint8_t* _syncwordBytes = nullptr;
uint8_t _syncwordLength = 4;
uint8_t _maxPacketLength = 8;
uint8_t _channel = 0;
uint8_t _nrf_pipe[5];
uint8_t _nrf_pipe_length;
uint8_t _packet_length = 0;
uint8_t _receive_length = 0;
uint8_t _preamble = 0;
uint8_t _packet[32];
bool _received = false;
int recalc_parameters();
int internal_receive();
};
#endif /* PL1167_NRF24_H_ */