LCOV - code coverage report
Current view: top level - src/modules/LR2021 - LR2021_cmds_flrc.cpp (source / functions) Hit Total Coverage
Test: lcov.info Lines: 0 35 0.0 %
Date: 2026-02-22 10:42:45 Functions: 0 5 0.0 %

          Line data    Source code
       1             : #include "LR2021.h"
       2             : 
       3             : #include "../LR11x0/LR_common.h"
       4             : 
       5             : #include <string.h>
       6             : #include <math.h>
       7             : 
       8             : #if !RADIOLIB_EXCLUDE_LR2021
       9             : 
      10           0 : int16_t LR2021::setFlrcModulationParams(uint8_t brBw, uint8_t cr, uint8_t pulseShape) {
      11           0 :   uint8_t buff[] = { brBw, (uint8_t)((cr << 4) | (pulseShape & 0x0F)) };
      12           0 :   return(this->SPIcommand(RADIOLIB_LR2021_CMD_SET_FLRC_MODULATION_PARAMS, true, buff, sizeof(buff)));
      13             : }
      14             : 
      15           0 : int16_t LR2021::setFlrcPacketParams(uint8_t agcPreambleLen, uint8_t syncWordLen, uint8_t syncWordTx, uint8_t syncMatch, bool fixedLength, uint8_t crc, uint16_t payloadLen) {
      16             :   uint8_t buff[] = { 
      17           0 :     (uint8_t)(((agcPreambleLen & 0x0F) << 2) | (syncWordLen / 2)),
      18           0 :     (uint8_t)(((syncWordTx & 0x03) << 6) | ((syncMatch & 0x07) << 3) | ((uint8_t)fixedLength << 2) | (crc & 0x03)),
      19           0 :     (uint8_t)((payloadLen >> 8) & 0xFF), (uint8_t)(payloadLen & 0xFF),
      20           0 :   };
      21           0 :   return(this->SPIcommand(RADIOLIB_LR2021_CMD_SET_FLRC_PACKET_PARAMS, true, buff, sizeof(buff)));
      22             : }
      23             : 
      24           0 : int16_t LR2021::getFlrcRxStats(uint16_t* packetRx, uint16_t* packetCrcError, uint16_t* lenError) {
      25           0 :   uint8_t buff[14] = { 0 };
      26           0 :   int16_t state = this->SPIcommand(RADIOLIB_LR2021_CMD_GET_FLRC_RX_STATS, false, buff, sizeof(buff));
      27           0 :   if(packetRx) { *packetRx = ((uint16_t)(buff[0]) << 8) | (uint16_t)buff[1]; }
      28           0 :   if(packetCrcError) { *packetCrcError = ((uint16_t)(buff[2]) << 8) | (uint16_t)buff[3]; }
      29           0 :   if(lenError) { *lenError = ((uint16_t)(buff[4]) << 8) | (uint16_t)buff[5]; }
      30           0 :   return(state);
      31             : }
      32             : 
      33           0 : int16_t LR2021::getFlrcPacketStatus(uint16_t* packetLen, float* rssiAvg, float* rssiSync, uint8_t* syncWordNum) {
      34           0 :   uint8_t buff[5] = { 0 };
      35           0 :   int16_t state = this->SPIcommand(RADIOLIB_LR2021_CMD_GET_FLRC_PACKET_STATUS, false, buff, sizeof(buff));
      36             :   uint16_t raw;
      37           0 :   if(packetLen) { *packetLen = ((uint16_t)(buff[0]) << 8) | (uint16_t)buff[1]; }
      38           0 :   if(rssiAvg) {
      39           0 :     raw = (uint16_t)buff[2] << 1;
      40           0 :     raw |= (buff[4] & 0x04) >> 2;
      41           0 :     *rssiAvg = (float)raw / -2.0f;
      42             :   }
      43           0 :   if(rssiSync) {
      44           0 :     raw = (uint16_t)buff[3] << 1;
      45           0 :     raw |= (buff[4] & 0x01);
      46           0 :     *rssiSync = (float)raw / -2.0f;
      47             :   }
      48           0 :   if(syncWordNum) { *syncWordNum = (buff[4] & 0xF0) >> 4; }
      49           0 :   return(state);
      50             : }
      51             : 
      52           0 : int16_t LR2021::setFlrcSyncWord(uint8_t syncWordNum, uint32_t syncWord) {
      53             :   uint8_t buff[] = { 
      54             :     syncWordNum,
      55           0 :     (uint8_t)((syncWord >> 24) & 0xFF), (uint8_t)((syncWord >> 16) & 0xFF),
      56           0 :     (uint8_t)((syncWord >> 8) & 0xFF), (uint8_t)(syncWord & 0xFF),
      57           0 :   };
      58           0 :   return(this->SPIcommand(RADIOLIB_LR2021_CMD_SET_FLRC_SYNCWORD, true, buff, sizeof(buff)));
      59             : }
      60             : 
      61             : #endif

Generated by: LCOV version 1.14