Part Number:CC3220MODA
Hi,
In my application I am running a station that monitors available wifi network's rssi, the code runs on a CC32220SF eval board.
Another CC3220SF eval board runs an AP.
What I have noticed is that when the AP is put in a wifi attenuation box [rssi goes from -37 to -60dBm] the sl_WlanGetNetworkList() rssi value does not go down to -60DBm, it seems to stick at the open box value of -37.
Sometimes it does change to -60 or takes > 10 minutes to change but most of the time it never changes to -60dBm.
To eliminate my code I tried your network_terminal example and made a code change to loop doing a scan every 20 seconds. The code change:
int32_t cmdScanCallback(void *arg)
{
int32_t ret = -1;
uint8_t triggeredScanTrials = 0;
ScanCmd_t ScanParams;
/* Call the command parser */
memset(&ScanParams, 0x0, sizeof(ScanParams));
ret = ParseScanCmd(arg , &ScanParams);
if(ret < 0)
{
return(-1);
}
while (9)
{
/* Clear the results buffer */
memset(&app_CB.gDataBuffer, 0x0, sizeof(app_CB.gDataBuffer));
sleep(20);
}
return(ret);
}
This has the same problem, sometimes it works, most of the time it is very slow to change from -37 to -60dBm.
If the wifi box is closed and is then opened the change is detected very fast, it only seems to be the fall to -60dBm that fails.
In the attached text file I have captured a run of the network_terminal, at '## 1 ##' the box is closed, this is only detected at '## 2 ##' - 15 minutes later!! The pc detects that the wifi network has gone below the min as it removes the network from it's wifi list.
When the box is opened soon after it is detected very quickly at '## 3 ##'.
Is there a fix for this or am I not initialising something?
Regards,(Please visit the site to view this file)