Skip to content

Commit

Permalink
Add a function to activate CW mode (#16)
Browse files Browse the repository at this point in the history
Signed-off-by: Albertas Mickėnas <[email protected]>
Co-authored-by: Frederic Pillon <[email protected]>
  • Loading branch information
Miceuz and fpistm authored May 3, 2023
1 parent ad559d8 commit d7dbe30
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 0 deletions.
14 changes: 14 additions & 0 deletions src/STM32LoRaWAN.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,20 @@ void STM32LoRaWAN::maintainUntilIdle()
} while(busy());
}

bool STM32LoRaWAN::continuousWave(uint32_t frequency, int8_t powerdBm,
uint16_t timeout) {
MlmeReq_t mlmeReq;
mlmeReq.Type = MLME_TXCW_1;
mlmeReq.Req.TxCw.Frequency = frequency;
mlmeReq.Req.TxCw.Power = powerdBm;
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 radio 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 powerdBm transmit power in dBm.
* \param timeout Duration in seconds.
* \returns true if CW mode was activated successfully.
*/

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

/**
* @name Dummy implementations
Expand Down

0 comments on commit d7dbe30

Please sign in to comment.