Use rolling codes from Packet when filling buffer
This commit is contained in:
@@ -7,14 +7,12 @@
|
|||||||
|
|
||||||
class BufferFiller {
|
class BufferFiller {
|
||||||
public:
|
public:
|
||||||
BufferFiller(uint8_t rollingCode1, uint8_t rollingCode2, uint8_t protocolVersion);
|
BufferFiller(uint8_t protocolVersion);
|
||||||
~BufferFiller();
|
~BufferFiller();
|
||||||
|
|
||||||
bool fill(uint8_t *buffer, const Packet* packet);
|
bool fill(uint8_t *buffer, const Packet* packet);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
uint8_t rollingCode1;
|
|
||||||
uint8_t rollingCode2;
|
|
||||||
uint8_t protocolVersion;
|
uint8_t protocolVersion;
|
||||||
|
|
||||||
PacketCRC packetCRC;
|
PacketCRC packetCRC;
|
||||||
@@ -23,7 +21,7 @@ private:
|
|||||||
void setConstants(uint8_t *buffer);
|
void setConstants(uint8_t *buffer);
|
||||||
void setSourceAddress(uint8_t *buffer, uint16_t);
|
void setSourceAddress(uint8_t *buffer, uint16_t);
|
||||||
void setDestinationAddress(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 setProtocolVersion(uint8_t *buffer, uint8_t);
|
||||||
void setFieldsData(uint8_t *buffer, const FieldsParameters& parameters);
|
void setFieldsData(uint8_t *buffer, const FieldsParameters& parameters);
|
||||||
void calculateCRC(uint8_t *buffer);
|
void calculateCRC(uint8_t *buffer);
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
#include "BufferFiller.h"
|
#include "BufferFiller.h"
|
||||||
|
|
||||||
BufferFiller::BufferFiller(uint8_t rollingCode1, uint8_t rollingCode2, uint8_t protocolVersion) :
|
BufferFiller::BufferFiller(uint8_t protocolVersion) :
|
||||||
rollingCode1(rollingCode1),
|
|
||||||
rollingCode2(rollingCode2),
|
|
||||||
protocolVersion(protocolVersion)
|
protocolVersion(protocolVersion)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@@ -58,11 +56,9 @@ bool BufferFiller::fill(uint8_t *buffer, const Packet* packet) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
setRollingCodes(buffer);
|
setRollingCodes(buffer, packet->rollingCode1, packet->rollingCode2);
|
||||||
calculateCRC(buffer);
|
calculateCRC(buffer);
|
||||||
|
|
||||||
incrementRollingCodes();
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -133,7 +129,7 @@ void BufferFiller::setDestinationAddress(uint8_t *buffer, uint16_t targetID) {
|
|||||||
buffer[13] = (uint8_t)(targetID & 0x00FF);
|
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[4] = rollingCode1; // Rolling code 1
|
||||||
buffer[11] = rollingCode2; // Rolling code 2
|
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
|
buffer[length + 3] = checksum2; // Checksum
|
||||||
}
|
}
|
||||||
|
|
||||||
void BufferFiller::incrementRollingCodes() {
|
|
||||||
rollingCode1++;
|
|
||||||
rollingCode2++;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t BufferFiller::calculateTotalFieldSize(const FieldsParameters& parameters) {
|
uint8_t BufferFiller::calculateTotalFieldSize(const FieldsParameters& parameters) {
|
||||||
uint8_t totalSize = 0;
|
uint8_t totalSize = 0;
|
||||||
for (size_t i = 0; i < parameters.fields.size(); i++) {
|
for (size_t i = 0; i < parameters.fields.size(); i++) {
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
RFPowerView::RFPowerView(uint8_t cePin, uint8_t csPin, uint8_t irqPin, uint16_t rfID) :
|
RFPowerView::RFPowerView(uint8_t cePin, uint8_t csPin, uint8_t irqPin, uint16_t rfID) :
|
||||||
radio(cePin, csPin),
|
radio(cePin, csPin),
|
||||||
packetReceiver(&radio),
|
packetReceiver(&radio),
|
||||||
bufferFiller(0x3D, 0x96, 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) {}
|
packetCallback(nullptr) {}
|
||||||
|
|||||||
Reference in New Issue
Block a user