hal/arduino/ArduinoTellstickDuo/buffer.cpp
Daniel Collin e269faec13 Implemented a clone of the Tellstick Duo firmware that will wotrk on a Arduino.
So far only supports the Archtech Self Learning protocol.


Former-commit-id: 705f787fc30459a9d55dc571632dc4d01e7198f0
2016-01-22 17:49:25 +01:00

26 lines
788 B
C++

#include "buffer.h"
uint8_t RF_rxBuffer[512]; //must have and even number of elements
uint8_t* RF_rxBufferStartP = &RF_rxBuffer[0];
uint8_t* RF_rxBufferEndP = &RF_rxBuffer[511];
volatile uint8_t* bufferWriteP = RF_rxBufferStartP;
uint16_t calculateBufferPointerDistance(uint8_t* bufStartP, uint8_t* bufEndP) {
if (bufStartP <= bufEndP) {
return bufEndP - bufStartP + 1;
} else {
return (RF_rxBufferEndP - bufStartP) + (bufEndP - RF_rxBufferStartP) + 2;
}
}; //end calculateBufferPointerDistance
uint8_t* getNextBufferPointer(uint8_t* p) {
if ( p + 1 > RF_rxBufferEndP) {
return RF_rxBufferStartP;
} else {
return p + 1;
}
}; //end getNextBufferPointer
void stepBufferPointer(uint8_t** p) {
*p = getNextBufferPointer(*p);
}; //end stepBufferPointer