Initial ability to send a packet from RFPowerView

This commit is contained in:
2023-12-31 10:21:23 +11:00
parent 09fd491fdc
commit 2ccbbd18dd
4 changed files with 247 additions and 14 deletions

35
include/BufferFiller.h Normal file
View File

@@ -0,0 +1,35 @@
#ifndef BUFFERFILLER_H
#define BUFFERFILLER_H
#include <Arduino.h>
#include "PacketCRC.h"
#include "PacketTypes.h"
class BufferFiller {
public:
BufferFiller(uint8_t rollingCode1, uint8_t rollingCode2, uint8_t protocolVersion);
~BufferFiller();
bool fill(uint8_t *buffer, const Packet* packet);
private:
uint8_t rollingCode1;
uint8_t rollingCode2;
uint8_t protocolVersion;
PacketCRC packetCRC;
void setPacketSize(uint8_t *buffer, uint8_t);
void setConstants(uint8_t *buffer);
void setSourceAddress(uint8_t *buffer, uint16_t);
void setDestinationAddress(uint8_t *buffer, uint16_t);
void setRollingCodes(uint8_t *buffer);
void setProtocolVersion(uint8_t *buffer, uint8_t);
void setOpenPacketData(uint8_t *buffer);
void setClosePacketData(uint8_t *buffer);
void setStopPacketData(uint8_t *buffer);
void calculateCRC(uint8_t *buffer);
void incrementRollingCodes();
};
#endif // BUFFERFILLER_H

View File

@@ -5,6 +5,7 @@
#include <RF24.h>
#include "PacketReceiver.h"
#include "PacketParser.h"
#include "BufferFiller.h"
#include "PacketTypes.h"
#define DEFAULT_RF_CHANNEL (7) //this is the channel HD shades use
@@ -21,19 +22,25 @@ public:
bool begin();
void loop();
void startListening();
void setPacketCallback(std::function<void(const Packet*)> callback);
void sendPacket(const Packet* packet);
private:
RF24 radio;
PacketReceiver packetReceiver;
PacketParser packetParser;
BufferFiller bufferFiller;
uint8_t irqPin;
uint8_t rfID[2];
std::function<void(const Packet*)> packetCallback;
uint8_t sendBuffer[32];
void startListening();
void startTransmitting();
void interruptHandler();
void processBuffer(const uint8_t *buffer);