Skip to content

Commit bad02a3

Browse files
author
Hamza Rizwan
committed
Refinements + Clean-up
1 parent 2102c03 commit bad02a3

File tree

2 files changed

+14
-15
lines changed

2 files changed

+14
-15
lines changed

targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/ublox-odin-w2-drivers/OdinWiFiInterface.cpp

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -917,9 +917,9 @@ void OdinWiFiInterface::handle_in_msg(void)
917917
break;
918918

919919
case cbWLAN_STATUS_CONNECTED:
920-
flush_while_wlan_status_connected = true;
920+
flush_drvr_ind_pkts = true;
921921
handle_wlan_status_connected(&(msg->data.wlan_status_connected));
922-
flush_while_wlan_status_connected = false;
922+
flush_drvr_ind_pkts = false;
923923
break;
924924

925925
case cbWLAN_SCAN_INDICATION:
@@ -1654,15 +1654,14 @@ nsapi_error_t OdinWiFiInterface::wlan_connect(
16541654
cbRTSL_Status status = cbSTATUS_OK;
16551655
cbWLAN_CommonConnectParameters connect_params;
16561656
cbWLAN_EnterpriseConnectParameters enterpriseParams;
1657+
static cbWLAN_Handle handle = cbWLAN_DEFAULT_HANDLE;
16571658

16581659
memset(&enterpriseParams, 0, sizeof(cbWLAN_EnterpriseConnectParameters));
16591660
memset(&connect_params, 0, sizeof(cbWLAN_CommonConnectParameters));
16601661

16611662
strncpy((char*)connect_params.ssid.ssid, ssid, cbWLAN_SSID_MAX_LENGTH);
16621663
connect_params.ssid.ssidLength = strlen((const char*)connect_params.ssid.ssid);
16631664

1664-
static cbWLAN_Handle handle;
1665-
16661665
switch (security)
16671666
{
16681667
case NSAPI_SECURITY_NONE:
@@ -1720,7 +1719,6 @@ nsapi_error_t OdinWiFiInterface::wlan_connect(
17201719
break;
17211720
}
17221721

1723-
//emac.set_wifi_emac_handle(handle); // Eliminated this because upcoming state will update the handle before it is used anywhere - to be tested
17241722
if(status != cbSTATUS_OK || handle == cbWLAN_INVALID_HANDLE) {
17251723
error_code = NSAPI_ERROR_UNSUPPORTED;
17261724
}
@@ -1741,6 +1739,8 @@ nsapi_error_t OdinWiFiInterface::wlan_ap_start(
17411739
cbWLAN_CommonApParameters params;
17421740
cbWLAN_WPAPSKApParameters wpa_params;
17431741

1742+
static cbWLAN_Handle handle = cbWLAN_DEFAULT_HANDLE;
1743+
17441744
char temp_passphrase[cbWLAN_MAX_PASSPHRASE_LENGTH];
17451745

17461746
memset(&params, 0, sizeof(cbWLAN_CommonApParameters));
@@ -1756,8 +1756,6 @@ nsapi_error_t OdinWiFiInterface::wlan_ap_start(
17561756
status = cbWLAN_ioctl(cbWLAN_IOCTL_SET_AP_BEACON_INTERVAL, (void*)&beacon_interval);
17571757
cbMAIN_driverUnlock();
17581758

1759-
static cbWLAN_Handle handle;
1760-
17611759
if (status != cbSTATUS_OK) {
17621760
error_code = NSAPI_ERROR_PARAMETER;
17631761
} else {
@@ -1836,12 +1834,12 @@ void OdinWiFiInterface::wlan_scan_indication(cbWLAN_ScanIndicationInfo *scan_inf
18361834

18371835
void OdinWiFiInterface::wlan_status_indication(cbWLAN_StatusIndicationInfo status, void *data)
18381836
{
1839-
if (!flush_while_wlan_status_connected) {
1840-
struct odin_wifi_msg_s* msg = _msg_pool->alloc();
1841-
MBED_ASSERT(msg != NULL);
1837+
if (!flush_drvr_ind_pkts) {
1838+
struct odin_wifi_msg_s* msg = _msg_pool->alloc();
1839+
MBED_ASSERT(msg != NULL);
18421840

1843-
msg->type = status;
1844-
memcpy(&(msg->data), data, sizeof(odin_wifi_msg_s::data_t));
1841+
msg->type = status;
1842+
memcpy(&(msg->data), data, sizeof(odin_wifi_msg_s::data_t));
18451843

18461844
osStatus ok = _in_queue.put(msg, 0);
18471845
MBED_ASSERT(ok == osOK);

targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/ublox-odin-w2-drivers/OdinWiFiInterface.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -293,8 +293,6 @@ class OdinWiFiInterface : public WiFiInterface, public EMACInterface
293293

294294
private:
295295

296-
OdinWiFiEMAC &emac = OdinWiFiEMAC::get_instance();
297-
298296
enum OdinWifiState {
299297
S_NOT_INITIALISED = 1,
300298
S_WAIT_START,
@@ -446,7 +444,10 @@ class OdinWiFiInterface : public WiFiInterface, public EMACInterface
446444
bool _debug;
447445
int _dbg_timeout;
448446

449-
bool flush_while_wlan_status_connected = false;
447+
OdinWiFiEMAC &emac = OdinWiFiEMAC::get_instance();
448+
449+
// This flag is added to flush the packets that were coming in between while the status was connected hence causing message pool overflow
450+
bool flush_drvr_ind_pkts = false;
450451
};
451452

452453
#endif

0 commit comments

Comments
 (0)