[SX127x] Added Module overrides for all Arduino core functions

This commit is contained in:
jgromes 2020-08-01 16:34:37 +02:00
parent 882ec98563
commit 6ff84d7b23
3 changed files with 29 additions and 29 deletions

View file

@ -66,9 +66,9 @@ int16_t SX1272::beginFSK(float freq, float br, float rxBw, float freqDev, int8_t
void SX1272::reset() { void SX1272::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(5); Module::delay(5);
} }
int16_t SX1272::setFrequency(float freq) { int16_t SX1272::setFrequency(float freq) {

View file

@ -61,9 +61,9 @@ int16_t SX1278::beginFSK(float freq, float br, float freqDev, float rxBw, int8_t
void SX1278::reset() { void SX1278::reset() {
Module::pinMode(_mod->getRst(), OUTPUT); Module::pinMode(_mod->getRst(), OUTPUT);
Module::digitalWrite(_mod->getRst(), LOW); Module::digitalWrite(_mod->getRst(), LOW);
delay(1); Module::delay(1);
Module::digitalWrite(_mod->getRst(), HIGH); Module::digitalWrite(_mod->getRst(), HIGH);
delay(5); Module::delay(5);
} }
int16_t SX1278::setFrequency(float freq) { int16_t SX1278::setFrequency(float freq) {

View file

@ -143,10 +143,10 @@ int16_t SX127x::transmit(uint8_t* data, size_t len, uint8_t addr) {
RADIOLIB_ASSERT(state); RADIOLIB_ASSERT(state);
// wait for packet transmission or timeout // wait for packet transmission or timeout
start = micros(); start = Module::micros();
while(!digitalRead(_mod->getIrq())) { while(!Module::digitalRead(_mod->getIrq())) {
yield(); Module::yield();
if(micros() - start > timeout) { if(Module::micros() - start > timeout) {
clearIRQFlags(); clearIRQFlags();
return(ERR_TX_TIMEOUT); return(ERR_TX_TIMEOUT);
} }
@ -161,10 +161,10 @@ int16_t SX127x::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
start = micros(); start = Module::micros();
while(!digitalRead(_mod->getIrq())) { while(!Module::digitalRead(_mod->getIrq())) {
yield(); Module::yield();
if(micros() - start > timeout) { if(Module::micros() - start > timeout) {
clearIRQFlags(); clearIRQFlags();
standby(); standby();
return(ERR_TX_TIMEOUT); return(ERR_TX_TIMEOUT);
@ -175,7 +175,7 @@ int16_t SX127x::transmit(uint8_t* data, size_t len, uint8_t addr) {
} }
// update data rate // update data rate
uint32_t elapsed = micros() - start; uint32_t elapsed = Module::micros() - start;
_dataRate = (len*8.0)/((float)elapsed/1000000.0); _dataRate = (len*8.0)/((float)elapsed/1000000.0);
// clear interrupt flags // clear interrupt flags
@ -197,9 +197,9 @@ int16_t SX127x::receive(uint8_t* data, size_t len) {
RADIOLIB_ASSERT(state); RADIOLIB_ASSERT(state);
// wait for packet reception or timeout (100 LoRa symbols) // wait for packet reception or timeout (100 LoRa symbols)
while(!digitalRead(_mod->getIrq())) { while(!Module::digitalRead(_mod->getIrq())) {
yield(); Module::yield();
if(digitalRead(_mod->getGpio())) { if(Module::digitalRead(_mod->getGpio())) {
clearIRQFlags(); clearIRQFlags();
return(ERR_RX_TIMEOUT); return(ERR_RX_TIMEOUT);
} }
@ -214,10 +214,10 @@ int16_t SX127x::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) {
clearIRQFlags(); clearIRQFlags();
return(ERR_RX_TIMEOUT); return(ERR_RX_TIMEOUT);
} }
@ -255,9 +255,9 @@ int16_t SX127x::scanChannel() {
RADIOLIB_ASSERT(state); RADIOLIB_ASSERT(state);
// wait for channel activity detected or timeout // wait for channel activity detected or timeout
while(!digitalRead(_mod->getIrq())) { while(!Module::digitalRead(_mod->getIrq())) {
yield(); Module::yield();
if(digitalRead(_mod->getGpio())) { if(Module::digitalRead(_mod->getGpio())) {
clearIRQFlags(); clearIRQFlags();
return(PREAMBLE_DETECTED); return(PREAMBLE_DETECTED);
} }
@ -395,25 +395,25 @@ int16_t SX127x::startReceive(uint8_t len, uint8_t mode) {
} }
void SX127x::setDio0Action(void (*func)(void)) { void SX127x::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 SX127x::clearDio0Action() { void SX127x::clearDio0Action() {
detachInterrupt(RADIOLIB_DIGITAL_PIN_TO_INTERRUPT(_mod->getIrq())); Module::detachInterrupt(RADIOLIB_DIGITAL_PIN_TO_INTERRUPT(_mod->getIrq()));
} }
void SX127x::setDio1Action(void (*func)(void)) { void SX127x::setDio1Action(void (*func)(void)) {
if(_mod->getGpio() == RADIOLIB_NC) { if(_mod->getGpio() == RADIOLIB_NC) {
return; return;
} }
attachInterrupt(RADIOLIB_DIGITAL_PIN_TO_INTERRUPT(_mod->getGpio()), func, RISING); Module::attachInterrupt(RADIOLIB_DIGITAL_PIN_TO_INTERRUPT(_mod->getGpio()), func, RISING);
} }
void SX127x::clearDio1Action() { void SX127x::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 SX127x::startTransmit(uint8_t* data, size_t len, uint8_t addr) { int16_t SX127x::startTransmit(uint8_t* data, size_t len, uint8_t addr) {
@ -975,7 +975,7 @@ int8_t SX127x::getTempRaw() {
_mod->SPIsetRegValue(SX127X_REG_IMAGE_CAL, SX127X_TEMP_MONITOR_ON, 0, 0); _mod->SPIsetRegValue(SX127X_REG_IMAGE_CAL, SX127X_TEMP_MONITOR_ON, 0, 0);
// wait // wait
delayMicroseconds(200); Module::delayMicroseconds(200);
// disable temperature reading // disable temperature reading
_mod->SPIsetRegValue(SX127X_REG_IMAGE_CAL, SX127X_TEMP_MONITOR_OFF, 0, 0); _mod->SPIsetRegValue(SX127X_REG_IMAGE_CAL, SX127X_TEMP_MONITOR_OFF, 0, 0);
@ -1093,7 +1093,7 @@ bool SX127x::findChip(uint8_t ver) {
RADIOLIB_DEBUG_PRINT(F(", expected 0x00")); RADIOLIB_DEBUG_PRINT(F(", expected 0x00"));
RADIOLIB_DEBUG_PRINTLN(ver, HEX); RADIOLIB_DEBUG_PRINTLN(ver, HEX);
#endif #endif
delay(10); Module::delay(10);
i++; i++;
} }
} }