Use rolling codes from Packet when filling buffer

This commit is contained in:
2024-01-02 21:09:07 +11:00
parent d1adfa54ef
commit f94715c4fc
3 changed files with 6 additions and 17 deletions

View File

@@ -7,14 +7,12 @@
class BufferFiller {
public:
BufferFiller(uint8_t rollingCode1, uint8_t rollingCode2, uint8_t protocolVersion);
BufferFiller(uint8_t protocolVersion);
~BufferFiller();
bool fill(uint8_t *buffer, const Packet* packet);
private:
uint8_t rollingCode1;
uint8_t rollingCode2;
uint8_t protocolVersion;
PacketCRC packetCRC;
@@ -23,7 +21,7 @@ private:
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 setRollingCodes(uint8_t *buffer, uint8_t rollingCode1, uint8_t rollingCode2);
void setProtocolVersion(uint8_t *buffer, uint8_t);
void setFieldsData(uint8_t *buffer, const FieldsParameters& parameters);
void calculateCRC(uint8_t *buffer);

View File

@@ -1,8 +1,6 @@
#include "BufferFiller.h"
BufferFiller::BufferFiller(uint8_t rollingCode1, uint8_t rollingCode2, uint8_t protocolVersion) :
rollingCode1(rollingCode1),
rollingCode2(rollingCode2),
BufferFiller::BufferFiller(uint8_t protocolVersion) :
protocolVersion(protocolVersion)
{
}
@@ -58,11 +56,9 @@ bool BufferFiller::fill(uint8_t *buffer, const Packet* packet) {
return false;
}
setRollingCodes(buffer);
setRollingCodes(buffer, packet->rollingCode1, packet->rollingCode2);
calculateCRC(buffer);
incrementRollingCodes();
return true;
}
@@ -133,7 +129,7 @@ void BufferFiller::setDestinationAddress(uint8_t *buffer, uint16_t targetID) {
buffer[13] = (uint8_t)(targetID & 0x00FF);
}
void BufferFiller::setRollingCodes(uint8_t *buffer) {
void BufferFiller::setRollingCodes(uint8_t *buffer, uint8_t rollingCode1, uint8_t rollingCode2) {
buffer[4] = rollingCode1; // Rolling code 1
buffer[11] = rollingCode2; // Rolling code 2
}
@@ -153,11 +149,6 @@ void BufferFiller::calculateCRC(uint8_t *buffer) { // must be called after the b
buffer[length + 3] = checksum2; // Checksum
}
void BufferFiller::incrementRollingCodes() {
rollingCode1++;
rollingCode2++;
}
uint8_t BufferFiller::calculateTotalFieldSize(const FieldsParameters& parameters) {
uint8_t totalSize = 0;
for (size_t i = 0; i < parameters.fields.size(); i++) {

View File

@@ -4,7 +4,7 @@
RFPowerView::RFPowerView(uint8_t cePin, uint8_t csPin, uint8_t irqPin, uint16_t rfID) :
radio(cePin, csPin),
packetReceiver(&radio),
bufferFiller(0x3D, 0x96, 0x05),
bufferFiller(0x05),
irqPin(irqPin),
rfID{static_cast<uint8_t>(rfID & 0xFF), static_cast<uint8_t>(rfID >> 8)},
packetCallback(nullptr) {}