Skip to content

Commit

Permalink
Add a function to enter the continuous wave mode. Fix #15
Browse files Browse the repository at this point in the history
  • Loading branch information
Miceuz committed Mar 15, 2023
1 parent d3aa385 commit d8a7565
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 0 deletions.
13 changes: 13 additions & 0 deletions src/STM32LoRaWAN.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,19 @@ void STM32LoRaWAN::maintainUntilIdle()
} while(busy());
}

bool STM32LoRaWAN::continuousWave(uint32_t frequency, int8_t power, uint16_t timeout) {
MlmeReq_t mlmeReq;
mlmeReq.Type = MLME_TXCW_1;
mlmeReq.Req.TxCw.Frequency = frequency;
mlmeReq.Req.TxCw.Power = power;
mlmeReq.Req.TxCw.Timeout = timeout;
LoRaMacStatus_t res = LoRaMacMlmeRequest(&mlmeReq);
if (res != LORAMAC_STATUS_OK)
return failure("Failed to enable CW mode: %s\r\n", toString(res));

return true;
}

bool STM32LoRaWAN::joinOTAAAsync()
{
clear_rx();
Expand Down
13 changes: 13 additions & 0 deletions src/STM32LoRaWAN.h
Original file line number Diff line number Diff line change
Expand Up @@ -791,6 +791,19 @@ class STM32LoRaWAN : public Stream {

/// @}

/**
* Set the radion into continuous wave (CW) mode. In this mode radio outputs
* a signal at the specified frequency and power for the specified duration.
*
* Used only for compliance testing and antenna testing.
*
* \param frequency Frequency in Hz.
* \param power TX power level [0-15].
* \param timeout Duration in seconds.
* \returns True if CW mode was activated successfully.
*/

bool continuousWave(uint32_t frequency, int8_t power, uint16_t timeout);

/**
* @name Dummy implementations
Expand Down

0 comments on commit d8a7565

Please sign in to comment.