I want to enable IWR6843's monitoring API,But I ran into some problems
I call the API MmwaveLink_setRfTempMonConfig below, in MmwDemo_mssMmwaveEventCallbackFxn, add RL_RF_AE_MON_TEMPERATURE_REPORT_SB, But there is no response.
I call the following API MmwaveLink_setRfTxPowMonConfig once a second and return an error with error code 263
(Error: rlRfTxPowrMonConfig retVal=263)
Added in the API MmwDemo_mssMmwaveEventCallbackFxn corresponding response time
case RL_RF_AE_MON_TEMPERATURE_REPORT_SB:
{
System_printf ("*********RL_RF_AE_MON_TEMPERATURE_REPORT_SB*******\n");
memcpy(&monTempReport, payload, sizeof(rlMonTempReportData_t));
MmwaveLink_verifyTemperatureRep(&monTempReport);
return 1;
}
case RL_RF_AE_MON_TX0_POWER_REPORT:
{
memcpy(&monTx0powRep, payload, sizeof(rlMonTxPowRep_t));
MmwaveLink_verifyTxPower(&monTx0powRep, MMWAVELINK_TEST_MON_TX0_POWER);
return 1;
}
The following code
rlTempMonConf_t tempMonCfg =
{
.reportMode = MON_REPORT_MODE_PERIODIC_WITH_THRESHOLD_CHECK,
.reserved0 = 0,
.anaTempThreshMin = -10,
.anaTempThreshMax = 20,
.digTempThreshMin = -10,
.digTempThreshMax = 20,
.tempDiffThresh = 20,
.reserved1 = 0,
.reserved2 = 0,
};
rlTxPowMonConf_t tx0PowMonCfg =
{
.profileIndx = 0x0,
.rfFreqBitMask = HIGHEST_CENTER_LOWEST_RF_FRQ_IN_PROFILES_SWEEP_BW,
.reserved0 = 0x0,
.reportMode = MON_REPORT_MODE_PERIODIC_WITH_THRESHOLD_CHECK,
.reserved1 = 0x0,
.txPowAbsErrThresh = 35,
.txPowFlatnessErrThresh = 35,
.reserved2 = 0x0,
.reserved3 = 0x0,
};
rlTxPowMonConf_t tx1PowMonCfg =
{
.profileIndx = 0x0,
.rfFreqBitMask = HIGHEST_CENTER_LOWEST_RF_FRQ_IN_PROFILES_SWEEP_BW,
.reserved0 = 0x0,
.reportMode = MON_REPORT_MODE_PERIODIC_WITH_THRESHOLD_CHECK,
.reserved1 = 0x0,
.txPowAbsErrThresh = 35,
.txPowFlatnessErrThresh = 35,
.reserved2 = 0x0,
.reserved3 = 0x0,
};
rlTxPowMonConf_t tx2PowMonCfg =
{
.profileIndx = 0x0,
.rfFreqBitMask = HIGHEST_CENTER_LOWEST_RF_FRQ_IN_PROFILES_SWEEP_BW,
.reserved0 = 0x0,
.reportMode = MON_REPORT_MODE_PERIODIC_WITH_THRESHOLD_CHECK,
.reserved1 = 0x0,
.txPowAbsErrThresh = 35,
.txPowFlatnessErrThresh = 35,
.reserved2 = 0x0,
.reserved3 = 0x0,
};
rlAllTxPowMonConf_t allTxPowMonCfg =
{
.tx0PowrMonCfg = &tx0PowMonCfg,
.tx1PowrMonCfg = &tx1PowMonCfg,
.tx2PowrMonCfg = &tx2PowMonCfg,
};
int32_t MmwaveLink_setRfTempMonConfig (void)
{
int32_t retVal;
/* Set Temperature monitor configuration */
retVal = rlRfTempMonConfig(RL_DEVICE_MAP_INTERNAL_BSS,(rlTempMonConf_t*)&tempMonCfg);
/* Check for mmWaveLink API call status */
if(retVal != 0)
{
/* Error: Link reported an issue. */
System_printf("Error: rlRfTempMonConfig retVal=%d\n", retVal);
return -1;
}
return 0;
}
int32_t MmwaveLink_setRfTxPowMonConfig (void)
{
int32_t retVal;
/* Set TX Power monitor configuration */
retVal = rlRfTxPowrMonConfig(RL_DEVICE_MAP_INTERNAL_BSS,(rlAllTxPowMonConf_t*)&allTxPowMonCfg);
/* Check for mmWaveLink API call status */
if(retVal != 0)
{
/* Error: Link reported an issue. */
System_printf("Error: rlRfTxPowrMonConfig retVal=%d\n", retVal);
return -1;
}
return 0;
}