[Si443x] Added Module overrides for all Arduino core functions

This commit is contained in:
jgromes 2020-08-01 16:34:52 +02:00
parent 2aeffd914f
commit 41069d0848

View file

@ -60,9 +60,9 @@ int16_t Si443x::begin(float br, float freqDev, float rxBw, uint8_t preambleLen)
void Si443x::reset() { void Si443x::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(100); Module::delay(100);
} }
int16_t Si443x::transmit(uint8_t* data, size_t len, uint8_t addr) { int16_t Si443x::transmit(uint8_t* data, size_t len, uint8_t addr) {
@ -74,10 +74,10 @@ int16_t Si443x::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);
@ -107,9 +107,9 @@ int16_t Si443x::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())) {
if(micros() - start > timeout) { if(Module::micros() - start > timeout) {
standby(); standby();
clearIRQFlags(); clearIRQFlags();
return(ERR_RX_TIMEOUT); return(ERR_RX_TIMEOUT);
@ -204,11 +204,11 @@ int16_t Si443x::packetMode() {
} }
void Si443x::setIrqAction(void (*func)(void)) { void Si443x::setIrqAction(void (*func)(void)) {
attachInterrupt(RADIOLIB_DIGITAL_PIN_TO_INTERRUPT(_mod->getIrq()), func, FALLING); Module::attachInterrupt(RADIOLIB_DIGITAL_PIN_TO_INTERRUPT(_mod->getIrq()), func, FALLING);
} }
void Si443x::clearIrqAction() { void Si443x::clearIrqAction() {
detachInterrupt(RADIOLIB_DIGITAL_PIN_TO_INTERRUPT(_mod->getIrq())); Module::detachInterrupt(RADIOLIB_DIGITAL_PIN_TO_INTERRUPT(_mod->getIrq()));
} }
int16_t Si443x::startTransmit(uint8_t* data, size_t len, uint8_t addr) { int16_t Si443x::startTransmit(uint8_t* data, size_t len, uint8_t addr) {
@ -601,7 +601,7 @@ bool Si443x::findChip() {
RADIOLIB_DEBUG_PRINT(F(", expected 0x00")); RADIOLIB_DEBUG_PRINT(F(", expected 0x00"));
RADIOLIB_DEBUG_PRINTLN(SI443X_DEVICE_VERSION, HEX); RADIOLIB_DEBUG_PRINTLN(SI443X_DEVICE_VERSION, HEX);
#endif #endif
delay(10); Module::delay(10);
i++; i++;
} }
} }