[RF69] Added Module overrides for all Arduino core functions

This commit is contained in:
jgromes 2020-08-01 16:34:12 +02:00
parent 67239551b0
commit 866e3c4c86

View file

@ -33,7 +33,7 @@ int16_t RF69::begin(float freq, float br, float freqDev, float rxBw, int8_t powe
RADIOLIB_DEBUG_PRINT(F(", expected 0x0024")); RADIOLIB_DEBUG_PRINT(F(", expected 0x0024"));
RADIOLIB_DEBUG_PRINTLN(); RADIOLIB_DEBUG_PRINTLN();
#endif #endif
delay(10); Module::delay(10);
i++; i++;
} }
} }
@ -102,9 +102,9 @@ int16_t RF69::begin(float freq, float br, float freqDev, float rxBw, int8_t powe
void RF69::reset() { void RF69::reset() {
Module::pinMode(_mod->getRst(), OUTPUT); Module::pinMode(_mod->getRst(), OUTPUT);
Module::digitalWrite(_mod->getRst(), HIGH); Module::digitalWrite(_mod->getRst(), HIGH);
delay(1); Module::delay(1);
Module::digitalWrite(_mod->getRst(), LOW); Module::digitalWrite(_mod->getRst(), LOW);
delay(10); Module::delay(10);
} }
int16_t RF69::transmit(uint8_t* data, size_t len, uint8_t addr) { int16_t RF69::transmit(uint8_t* data, size_t len, uint8_t addr) {
@ -116,11 +116,11 @@ int16_t RF69::transmit(uint8_t* data, size_t len, uint8_t addr) {
RADIOLIB_ASSERT(state); RADIOLIB_ASSERT(state);
// wait for transmission end or timeout // wait for transmission end or timeout
uint32_t start = micros(); uint32_t start = Module::micros();
while(!digitalRead(_mod->getIrq())) { while(!Module::digitalRead(_mod->getIrq())) {
yield(); Module::yield();
if(micros() - start > timeout) { if(Module::micros() - start > timeout) {
standby(); standby();
clearIRQFlags(); clearIRQFlags();
return(ERR_TX_TIMEOUT); return(ERR_TX_TIMEOUT);
@ -145,11 +145,11 @@ int16_t RF69::receive(uint8_t* data, size_t len) {
RADIOLIB_ASSERT(state); RADIOLIB_ASSERT(state);
// wait for packet reception or timeout // wait for packet reception or timeout
uint32_t start = micros(); uint32_t start = Module::micros();
while(!digitalRead(_mod->getIrq())) { while(!Module::digitalRead(_mod->getIrq())) {
yield(); Module::yield();
if(micros() - start > timeout) { if(Module::micros() - start > timeout) {
standby(); standby();
clearIRQFlags(); clearIRQFlags();
return(ERR_RX_TIMEOUT); return(ERR_RX_TIMEOUT);
@ -267,11 +267,11 @@ int16_t RF69::startReceive() {
} }
void RF69::setDio0Action(void (*func)(void)) { void RF69::setDio0Action(void (*func)(void)) {
attachInterrupt(RADIOLIB_DIGITAL_PIN_TO_INTERRUPT(_mod->getIrq()), func, RISING); Module::attachInterrupt(RADIOLIB_DIGITAL_PIN_TO_INTERRUPT(_mod->getIrq()), func, RISING);
} }
void RF69::clearDio0Action() { void RF69::clearDio0Action() {
detachInterrupt(RADIOLIB_DIGITAL_PIN_TO_INTERRUPT(_mod->getIrq())); Module::detachInterrupt(RADIOLIB_DIGITAL_PIN_TO_INTERRUPT(_mod->getIrq()));
} }
void RF69::setDio1Action(void (*func)(void)) { void RF69::setDio1Action(void (*func)(void)) {
@ -279,14 +279,14 @@ void RF69::setDio1Action(void (*func)(void)) {
return; return;
} }
Module::pinMode(_mod->getGpio(), INPUT); Module::pinMode(_mod->getGpio(), INPUT);
attachInterrupt(RADIOLIB_DIGITAL_PIN_TO_INTERRUPT(_mod->getGpio()), func, RISING); Module::attachInterrupt(RADIOLIB_DIGITAL_PIN_TO_INTERRUPT(_mod->getGpio()), func, RISING);
} }
void RF69::clearDio1Action() { void RF69::clearDio1Action() {
if(_mod->getGpio() == RADIOLIB_NC) { if(_mod->getGpio() == RADIOLIB_NC) {
return; return;
} }
detachInterrupt(RADIOLIB_DIGITAL_PIN_TO_INTERRUPT(_mod->getGpio())); Module::detachInterrupt(RADIOLIB_DIGITAL_PIN_TO_INTERRUPT(_mod->getGpio()));
} }
int16_t RF69::startTransmit(uint8_t* data, size_t len, uint8_t addr) { int16_t RF69::startTransmit(uint8_t* data, size_t len, uint8_t addr) {
@ -640,7 +640,7 @@ int16_t RF69::getTemperature() {
// wait until measurement is finished // wait until measurement is finished
while(_mod->SPIgetRegValue(RF69_REG_TEMP_1, 2, 2) == RF69_TEMP_MEAS_RUNNING) { while(_mod->SPIgetRegValue(RF69_REG_TEMP_1, 2, 2) == RF69_TEMP_MEAS_RUNNING) {
// check every 10 us // check every 10 us
delay(10); Module::delay(10);
} }
int8_t rawTemp = _mod->SPIgetRegValue(RF69_REG_TEMP_2); int8_t rawTemp = _mod->SPIgetRegValue(RF69_REG_TEMP_2);