[SX126x] Added finishTransmit

pull/609/head
jgromes 2022-09-18 16:12:53 +02:00
rodzic 9dff4e709e
commit 0ae6eae4d9
3 zmienionych plików z 22 dodań i 10 usunięć

Wyświetl plik

@ -117,6 +117,11 @@ void loop() {
}
// clean up after transmission is finished
// this will ensure transmitter is disabled,
// RF switch is powered down etc.
radio.finishTransmit();
// wait a second before transmitting again
delay(1000);

Wyświetl plik

@ -228,8 +228,7 @@ int16_t SX126x::transmit(uint8_t* data, size_t len, uint8_t addr) {
while(!_mod->digitalRead(_mod->getIrq())) {
_mod->yield();
if(_mod->micros() - start > timeout) {
clearIrqStatus();
standby();
finishTransmit();
return(RADIOLIB_ERR_TX_TIMEOUT);
}
}
@ -238,14 +237,7 @@ int16_t SX126x::transmit(uint8_t* data, size_t len, uint8_t addr) {
// update data rate
_dataRate = (len*8.0)/((float)elapsed/1000000.0);
// clear interrupt flags
state = clearIrqStatus();
RADIOLIB_ASSERT(state);
// set mode to standby to disable transmitter
state = standby();
return(state);
return(finishTransmit());
}
int16_t SX126x::receive(uint8_t* data, size_t len) {
@ -440,6 +432,14 @@ int16_t SX126x::startTransmit(uint8_t* data, size_t len, uint8_t addr) {
return(state);
}
int16_t SX126x::finishTransmit() {
// clear interrupt flags
clearIrqStatus();
// set mode to standby to disable transmitter/RF switch
return(standby());
}
int16_t SX126x::startReceive(uint32_t timeout) {
int16_t state = startReceiveCommon(timeout);
RADIOLIB_ASSERT(state);

Wyświetl plik

@ -527,6 +527,13 @@ class SX126x: public PhysicalLayer {
*/
int16_t startTransmit(uint8_t* data, size_t len, uint8_t addr = 0) override;
/*!
\brief Clean up after transmission is done.
\returns \ref status_codes
*/
int16_t finishTransmit() override;
/*!
\brief Interrupt-driven receive method. DIO1 will be activated when full packet is received.