Add callbacks for getting raw buffer
This commit is contained in:
@@ -23,7 +23,10 @@ public:
|
|||||||
bool begin();
|
bool begin();
|
||||||
void loop();
|
void loop();
|
||||||
|
|
||||||
void setPacketCallback(std::function<void(const Packet*)> callback);
|
void setPacketReceivedCallback(std::function<void(const Packet*)> callback);
|
||||||
|
void setValidBufferReceivedCallback(std::function<void(const uint8_t*)> callback);
|
||||||
|
void setInvalidBufferReceivedCallback(std::function<void(const uint8_t*)> callback);
|
||||||
|
|
||||||
bool sendPacket(const Packet* packet);
|
bool sendPacket(const Packet* packet);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@@ -34,7 +37,9 @@ private:
|
|||||||
uint8_t irqPin;
|
uint8_t irqPin;
|
||||||
uint8_t rfID[2];
|
uint8_t rfID[2];
|
||||||
|
|
||||||
std::function<void(const Packet*)> packetCallback;
|
std::function<void(const Packet*)> packetReceivedCallback;
|
||||||
|
std::function<void(const uint8_t*)> validBufferReceivedCallback;
|
||||||
|
std::function<void(const uint8_t*)> invalidBufferReceivedCallback;
|
||||||
|
|
||||||
uint8_t sendBuffer[32];
|
uint8_t sendBuffer[32];
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,9 @@ RFPowerView::RFPowerView(uint8_t cePin, uint8_t csPin, uint8_t irqPin, uint16_t
|
|||||||
bufferFiller(0x05),
|
bufferFiller(0x05),
|
||||||
irqPin(irqPin),
|
irqPin(irqPin),
|
||||||
rfID{static_cast<uint8_t>(rfID & 0xFF), static_cast<uint8_t>(rfID >> 8)},
|
rfID{static_cast<uint8_t>(rfID & 0xFF), static_cast<uint8_t>(rfID >> 8)},
|
||||||
packetCallback(nullptr) {}
|
packetReceivedCallback(nullptr),
|
||||||
|
validBufferReceivedCallback(nullptr),
|
||||||
|
invalidBufferReceivedCallback(nullptr) {}
|
||||||
|
|
||||||
bool RFPowerView::begin() {
|
bool RFPowerView::begin() {
|
||||||
if (!radio.begin()) {
|
if (!radio.begin()) {
|
||||||
@@ -60,21 +62,35 @@ void RFPowerView::interruptHandler() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void RFPowerView::processBuffer(const uint8_t *buffer) {
|
void RFPowerView::processBuffer(const uint8_t *buffer) {
|
||||||
|
if (validBufferReceivedCallback != nullptr) {
|
||||||
|
validBufferReceivedCallback(buffer);
|
||||||
|
}
|
||||||
|
|
||||||
Packet packet;
|
Packet packet;
|
||||||
bool result = packetParser.parsePacket(buffer, packet);
|
bool result = packetParser.parsePacket(buffer, packet);
|
||||||
if (result) {
|
if (result) {
|
||||||
if (packetCallback != nullptr) {
|
if (packetReceivedCallback != nullptr) {
|
||||||
packetCallback(&packet);
|
packetReceivedCallback(&packet);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void RFPowerView::processInvalidBuffer(const uint8_t *buffer) {
|
void RFPowerView::processInvalidBuffer(const uint8_t *buffer) {
|
||||||
|
if (invalidBufferReceivedCallback != nullptr) {
|
||||||
|
invalidBufferReceivedCallback(buffer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void RFPowerView::setPacketCallback(std::function<void(const Packet*)> callback) {
|
void RFPowerView::setPacketReceivedCallback(std::function<void(const Packet*)> callback) {
|
||||||
packetCallback = callback;
|
packetReceivedCallback = callback;
|
||||||
|
}
|
||||||
|
|
||||||
|
void RFPowerView::setValidBufferReceivedCallback(std::function<void(const uint8_t*)> callback) {
|
||||||
|
validBufferReceivedCallback = callback;
|
||||||
|
}
|
||||||
|
|
||||||
|
void RFPowerView::setInvalidBufferReceivedCallback(std::function<void(const uint8_t*)> callback) {
|
||||||
|
invalidBufferReceivedCallback = callback;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool RFPowerView::sendPacket(const Packet* packet) {
|
bool RFPowerView::sendPacket(const Packet* packet) {
|
||||||
|
|||||||
Reference in New Issue
Block a user