diff --git a/features/netsocket/emac-drivers/TARGET_STM_EMAC/TARGET_STM32F4/TARGET_MODULE_UBLOX_ODIN_W2/wifi_emac/wifi_emac.cpp b/features/netsocket/emac-drivers/TARGET_STM_EMAC/TARGET_STM32F4/TARGET_MODULE_UBLOX_ODIN_W2/wifi_emac/wifi_emac.cpp index cd38a43bb0..2f44f9b3be 100644 --- a/features/netsocket/emac-drivers/TARGET_STM_EMAC/TARGET_STM32F4/TARGET_MODULE_UBLOX_ODIN_W2/wifi_emac/wifi_emac.cpp +++ b/features/netsocket/emac-drivers/TARGET_STM_EMAC/TARGET_STM32F4/TARGET_MODULE_UBLOX_ODIN_W2/wifi_emac/wifi_emac.cpp @@ -204,7 +204,7 @@ OdinWiFiEMAC::OdinWiFiEMAC() void send_wlan_packet(void *buf) { - cbWLAN_sendPacket(buf); + cbWLAN_sendPacket(cbWLAN_DEFAULT_HANDLE, buf); } bool OdinWiFiEMAC::link_out(emac_mem_buf_t *buf) @@ -264,7 +264,7 @@ void OdinWiFiEMAC::set_link_input_cb(emac_link_input_cb_t input_cb) emac_link_input_cb = input_cb; cbMAIN_driverLock(); - cbWLAN_registerPacketIndicationCallback(handleWlanPacketIndication, NULL); + cbWLAN_registerPacketIndicationCallback(cbWLAN_DEFAULT_HANDLE, handleWlanPacketIndication, NULL); cbMAIN_driverUnlock(); } diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/TOOLCHAIN_ARM/libublox-odin-w2-driver.ar b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/TOOLCHAIN_ARM/libublox-odin-w2-driver.ar index ed032b0925..b60db71788 100644 Binary files a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/TOOLCHAIN_ARM/libublox-odin-w2-driver.ar and b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/TOOLCHAIN_ARM/libublox-odin-w2-driver.ar differ diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/TOOLCHAIN_GCC_ARM/libublox-odin-w2-driver.a b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/TOOLCHAIN_GCC_ARM/libublox-odin-w2-driver.a index e0554567d7..b2e4128a9e 100644 Binary files a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/TOOLCHAIN_GCC_ARM/libublox-odin-w2-driver.a and b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/TOOLCHAIN_GCC_ARM/libublox-odin-w2-driver.a differ diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/TOOLCHAIN_IAR/libublox-odin-w2-driver.a b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/TOOLCHAIN_IAR/libublox-odin-w2-driver.a index efcfe3b65b..dfa5235558 100644 Binary files a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/TOOLCHAIN_IAR/libublox-odin-w2-driver.a and b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/TOOLCHAIN_IAR/libublox-odin-w2-driver.a differ diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/ublox-odin-w2-drivers/OdinWiFiInterface.cpp b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/ublox-odin-w2-drivers/OdinWiFiInterface.cpp index 36a0688ee3..f872621853 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/ublox-odin-w2-drivers/OdinWiFiInterface.cpp +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/ublox-odin-w2-drivers/OdinWiFiInterface.cpp @@ -755,7 +755,7 @@ OdinWiFiInterface::OdinWifiState OdinWiFiInterface::entry_connect_fail_wait_disc cbRTSL_Status error_code; cbMAIN_driverLock(); - error_code = cbWLAN_disconnect(); + error_code = cbWLAN_disconnect(handle); cbMAIN_driverUnlock(); MBED_ASSERT(error_code == cbSTATUS_OK); @@ -776,7 +776,7 @@ OdinWiFiInterface::OdinWifiState OdinWiFiInterface::entry_wait_disconnect() cbRTSL_Status error_code; cbMAIN_driverLock(); - error_code = cbWLAN_disconnect(); + error_code = cbWLAN_disconnect(handle); cbMAIN_driverUnlock(); MBED_ASSERT(error_code == cbSTATUS_OK); @@ -800,7 +800,7 @@ OdinWiFiInterface::OdinWifiState OdinWiFiInterface::entry_ap_started() OdinWiFiInterface::OdinWifiState OdinWiFiInterface::entry_ap_wait_stop() { cbMAIN_driverLock(); - cbRTSL_Status status = cbWLAN_apStop(); + cbRTSL_Status status = cbWLAN_apStop(handle); cbMAIN_driverUnlock(); MBED_ASSERT(status == cbSTATUS_OK); @@ -811,7 +811,7 @@ OdinWiFiInterface::OdinWifiState OdinWiFiInterface::entry_ap_wait_stop() OdinWiFiInterface::OdinWifiState OdinWiFiInterface::entry_ap_fail_wait_stop() { cbMAIN_driverLock(); - cbRTSL_Status status = cbWLAN_apStop(); + cbRTSL_Status status = cbWLAN_apStop(handle); cbMAIN_driverUnlock(); MBED_ASSERT(status == cbSTATUS_OK); @@ -1024,6 +1024,8 @@ void OdinWiFiInterface::handle_user_connect(user_connect_s *user_connect) if(error_code == NSAPI_ERROR_OK) { memset(&_wlan_status_connected_info, 0, sizeof(cbWLAN_StatusConnectedInfo)); memset(&_wlan_status_disconnected_info, 0, sizeof(cbWLAN_StatusDisconnectedInfo)); + _wlan_status_disconnected_info.handle = cbWLAN_DEFAULT_HANDLE; + _wlan_status_connected_info.handle = cbWLAN_DEFAULT_HANDLE; _state_sta = entry_wait_connect(); } @@ -1296,43 +1298,45 @@ void OdinWiFiInterface::handle_wlan_status_connected(wlan_status_connected_s *wl MBED_ASSERT(wlan_connect != 0); switch(_state_sta) { - case S_STA_CONNECTED: - case S_STA_WAIT_CONNECT: - _timer.stop(); + case S_STA_CONNECTED: + case S_STA_WAIT_CONNECT: + _timer.stop(); - if(_debug) { - printf("MBED_IPSTACK_ \r\n"); - } + if(_debug) { + printf("MBED_IPSTACK_ \r\n"); + } - error_code = _interface->bringup(_dhcp, - _ip_address[0] ? _ip_address : 0, - _netmask[0] ? _netmask : 0, - _gateway[0] ? _gateway : 0, - DEFAULT_STACK); + error_code = _interface->bringup(_dhcp, + _ip_address[0] ? _ip_address : 0, + _netmask[0] ? _netmask : 0, + _gateway[0] ? _gateway : 0, + DEFAULT_STACK); - if (error_code == NSAPI_ERROR_OK || error_code == NSAPI_ERROR_IS_CONNECTED) { - memcpy(&_wlan_status_connected_info, &(wlan_connect->info), sizeof(cbWLAN_StatusConnectedInfo)); - _state_sta = S_STA_CONNECTED; - send_user_response_msg(ODIN_WIFI_MSG_USER_CONNECT, NSAPI_ERROR_OK); - } - else { - _state_sta = entry_connect_fail_wait_disconnect(); - } - break; + if (error_code == NSAPI_ERROR_OK || error_code == NSAPI_ERROR_IS_CONNECTED) { + memcpy(&_wlan_status_connected_info, &(wlan_connect->info), sizeof(cbWLAN_StatusConnectedInfo)); + if(_state_sta != S_STA_CONNECTED){ + _state_sta = S_STA_CONNECTED; + send_user_response_msg(ODIN_WIFI_MSG_USER_CONNECT, NSAPI_ERROR_OK); + } + } + else { + _state_sta = entry_connect_fail_wait_disconnect(); + } + break; - case S_STA_DISCONNECTED_WAIT_CONNECT: - _state_sta = S_STA_CONNECTED; - break; + case S_STA_DISCONNECTED_WAIT_CONNECT: + _state_sta = S_STA_CONNECTED; + break; - case S_STA_CONNECTION_FAIL_WAIT_DISCONNECT: - case S_STA_WAIT_DISCONNECT: - //Ignore - break; + case S_STA_CONNECTION_FAIL_WAIT_DISCONNECT: + case S_STA_WAIT_DISCONNECT: + //Ignore + break; - default: - MBED_ASSERT(FALSE); - break; + default: + MBED_ASSERT(FALSE); + break; } } @@ -1398,21 +1402,25 @@ void OdinWiFiInterface::handle_wlan_status_disconnected(void) case S_STA_CONNECTION_FAIL_WAIT_DISCONNECT: _state_sta = S_STA_IDLE; + if(_wlan_status_disconnected_info.handle == cbWLAN_DEFAULT_HANDLE){ + switch(_wlan_status_disconnected_info.reason) { + error_code = NSAPI_ERROR_NO_SSID; + break; - switch(_wlan_status_disconnected_info) { - case cbWLAN_STATUS_DISCONNECTED_AUTH_TIMEOUT: - case cbWLAN_STATUS_DISCONNECTED_MIC_FAILURE: - error_code = NSAPI_ERROR_AUTH_FAILURE; - break; - case cbWLAN_STATUS_DISCONNECTED_NO_BSSID_FOUND: - case cbWLAN_STATUS_DISCONNECTED_UNKNOWN: - error_code = NSAPI_ERROR_NO_CONNECTION; - break; - default: - error_code = NSAPI_ERROR_DEVICE_ERROR; - break; + case cbWLAN_STATUS_DISCONNECTED_AUTH_FAILURE: + case cbWLAN_STATUS_DISCONNECTED_ASSOC_FAILURE: + case cbWLAN_STATUS_DISCONNECTED_MIC_FAILURE: + error_code = NSAPI_ERROR_AUTH_FAILURE; + break; + case cbWLAN_STATUS_DISCONNECTED_NO_BSSID_FOUND: + case cbWLAN_STATUS_DISCONNECTED_UNKNOWN: + error_code = NSAPI_ERROR_NO_CONNECTION; + break; + default: + error_code = NSAPI_ERROR_DEVICE_ERROR; + break; + } } - send_user_response_msg(ODIN_WIFI_MSG_USER_CONNECT, error_code); break; @@ -1555,7 +1563,7 @@ void OdinWiFiInterface::init(bool debug = false) memset(&_wlan_status_connected_info, 0, sizeof(cbWLAN_StatusConnectedInfo)); memset(&_wlan_status_disconnected_info, 0, sizeof(cbWLAN_StatusDisconnectedInfo)); - _msg_pool = new MemoryPool(); + _msg_pool = new MemoryPool(); if(!_wlan_initialized) { @@ -1656,7 +1664,7 @@ nsapi_error_t OdinWiFiInterface::wlan_connect( { case NSAPI_SECURITY_NONE: cbMAIN_driverLock(); - status = cbWLAN_connectOpen(&connect_params); + handle = cbWLAN_connectOpen(&connect_params); cbMAIN_driverUnlock(); break; case NSAPI_SECURITY_WPA: @@ -1672,10 +1680,10 @@ nsapi_error_t OdinWiFiInterface::wlan_connect( status = cbWLAN_Util_PSKFromPWD(temp_passphrase, connect_params.ssid, wpa_connect_params.psk.key); if (status == cbSTATUS_OK) { - status = cbWLAN_connectWPAPSK(&connect_params, &wpa_connect_params); + handle = cbWLAN_connectWPAPSK(&connect_params, &wpa_connect_params); } cbMAIN_driverUnlock(); - if(_debug) {printf("cbWLAN_connect: %d\r\n", status);} + if(_debug) {printf("cbWLAN_connect: %d\r\n", handle);} break; case NSAPI_SECURITY_EAP_TLS: @@ -1685,7 +1693,7 @@ nsapi_error_t OdinWiFiInterface::wlan_connect( { printf("No client certificate found in root \r\n"); } - status = cb_eap_conn_handler(cert_handle->client_cert, cert_handle->client_prvt_key, &connect_params, &enterpriseParams); + handle = cb_eap_conn_handler(cert_handle->client_cert, cert_handle->client_prvt_key, &connect_params, &enterpriseParams); cbMAIN_driverUnlock(); if(_debug) {printf("cbWLAN_connect: %d\r\n", status);} break; @@ -1697,7 +1705,7 @@ nsapi_error_t OdinWiFiInterface::wlan_connect( strncpy((char*)enterpriseParams.passphrase, user_pswd, cbWLAN_MAX_USERNAME_LENGTH); /* cert_handle->ca_cert could be NULL if client don;t need to verify server */ - status = cb_eap_conn_handler(cert_handle->ca_cert, NULL, &connect_params, &enterpriseParams); + handle = cb_eap_conn_handler(cert_handle->ca_cert, NULL, &connect_params, &enterpriseParams); cbMAIN_driverUnlock(); if(_debug) {printf("cbWLAN_connect: %d\r\n", status);} break; @@ -1709,7 +1717,7 @@ nsapi_error_t OdinWiFiInterface::wlan_connect( break; } - if(status != cbSTATUS_OK) { + if(status != cbSTATUS_OK || handle == cbWLAN_INVALID_HANDLE) { error_code = NSAPI_ERROR_UNSUPPORTED; } @@ -1741,7 +1749,7 @@ nsapi_error_t OdinWiFiInterface::wlan_ap_start( params.basicRates = cbRATE_MASK_01 | APP_MASK_SHIFTUP(cbRATE_MASK_01, cbRATE_MASK_G); params.allowedRates = ODIN_WIFI_AP_ALLOWED_RATE_MASK; cbMAIN_driverLock(); - status = cbWLAN_ioctl(cbWLAN_IOCTL_SET_AP_BEACON_INTERVAL, (void*)beacon_interval); + status = cbWLAN_ioctl(cbWLAN_IOCTL_SET_AP_BEACON_INTERVAL, (void*)&beacon_interval); cbMAIN_driverUnlock(); if (status != cbSTATUS_OK) { @@ -1750,7 +1758,7 @@ nsapi_error_t OdinWiFiInterface::wlan_ap_start( switch (security) { case NSAPI_SECURITY_NONE: cbMAIN_driverLock(); - status = cbWLAN_apStartOpen(¶ms); + handle = cbWLAN_apStartOpen(¶ms); cbMAIN_driverUnlock(); break; @@ -1769,7 +1777,7 @@ nsapi_error_t OdinWiFiInterface::wlan_ap_start( status = cbWLAN_Util_PSKFromPWD(temp_passphrase, params.ssid, wpa_params.psk.key); if (status == cbSTATUS_OK) { - status = cbWLAN_apStartWPAPSK(¶ms, &wpa_params); + handle = cbWLAN_apStartWPAPSK(¶ms, &wpa_params); } cbMAIN_driverUnlock(); break; @@ -1779,7 +1787,7 @@ nsapi_error_t OdinWiFiInterface::wlan_ap_start( break; } - if (status != cbSTATUS_OK) { + if (status != cbSTATUS_OK || handle == cbWLAN_INVALID_HANDLE) { error_code = NSAPI_ERROR_UNSUPPORTED; } } @@ -2015,80 +2023,87 @@ static bool is_valid_AP_channel(cbWLAN_Channel channel) static cbTARGET_ConfigParams map_odin_config(target_config_params_e parameter) { + cbTARGET_ConfigParams config; + switch (parameter) { - case ODIN_CFG_SET_POWER_SAVE_MODE: return cbTARGET_CFG_SET_POWER_SAVE_MODE; - case ODIN_CFG_GET_POWER_SAVE_MODE: return cbTARGET_CFG_GET_POWER_SAVE_MODE; - case ODIN_CFG_SET_LISTEN_INTERVAL: return cbTARGET_CFG_SET_LISTEN_INTERVAL; - case ODIN_CFG_GET_LISTEN_INTERVAL: return cbTARGET_CFG_GET_LISTEN_INTERVAL; - case ODIN_CFG_SET_MIN_SCAN_TIME: return cbTARGET_CFG_SET_MIN_SCAN_TIME; - case ODIN_CFG_GET_MIN_SCAN_TIME: return cbTARGET_CFG_GET_MIN_SCAN_TIME; - case ODIN_CFG_SET_MAX_SCAN_TIME: return cbTARGET_CFG_SET_MAX_SCAN_TIME; - case ODIN_CFG_GET_MAX_SCAN_TIME: return cbTARGET_CFG_GET_MAX_SCAN_TIME; - case ODIN_CFG_SET_SCAN_TYPE: return cbTARGET_CFG_SET_SCAN_TYPE; - case ODIN_CFG_GET_SCAN_TYPE: return cbTARGET_CFG_GET_SCAN_TYPE; - case ODIN_CFG_SET_DTIM_ENABLE: return cbTARGET_CFG_SET_DTIM_ENABLE; - case ODIN_CFG_GET_DTIM_ENABLE: return cbTARGET_CFG_GET_DTIM_ENABLE; - case ODIN_CFG_SET_QOS_ENABLE: return cbTARGET_CFG_SET_QOS_ENABLE; - case ODIN_CFG_GET_QOS_ENABLE: return cbTARGET_CFG_GET_QOS_ENABLE; - case ODIN_CFG_SET_RTS_THRESHOLD: return cbTARGET_CFG_SET_RTS_THRESHOLD; - case ODIN_CFG_GET_RTS_THRESHOLD: return cbTARGET_CFG_GET_RTS_THRESHOLD; - case ODIN_CFG_SET_TX_POWER: return cbTARGET_CFG_SET_TX_POWER; - case ODIN_CFG_GET_TX_POWER: return cbTARGET_CFG_GET_TX_POWER; - case ODIN_CFG_SET_MAX_PASSIVE_SCAN_TIME: return cbTARGET_CFG_SET_MAX_PASSIVE_SCAN_TIME; - case ODIN_CFG_GET_MAX_PASSIVE_SCAN_TIME: return cbTARGET_CFG_GET_MAX_PASSIVE_SCAN_TIME; - case ODIN_CFG_SET_SCAN_LISTEN_INTERVAL: return cbTARGET_CFG_SET_SCAN_LISTEN_INTERVAL; - case ODIN_CFG_GET_SCAN_LISTEN_INTERVAL: return cbTARGET_CFG_GET_SCAN_LISTEN_INTERVAL; - case ODIN_CFG_SET_DOT11_SHORT_RETRY_LIMIT: return cbTARGET_CFG_SET_DOT11_SHORT_RETRY_LIMIT; - case ODIN_CFG_GET_DOT11_SHORT_RETRY_LIMIT: return cbTARGET_CFG_GET_DOT11_SHORT_RETRY_LIMIT; - case ODIN_CFG_SET_DOT11_LONG_RETRY_LIMIT: return cbTARGET_CFG_SET_DOT11_LONG_RETRY_LIMIT; - case ODIN_CFG_GET_DOT11_LONG_RETRY_LIMIT: return cbTARGET_CFG_GET_DOT11_LONG_RETRY_LIMIT; - case ODIN_CFG_SET_AP_DOT11_SHORT_RETRY_LIMIT: return cbTARGET_CFG_SET_AP_DOT11_SHORT_RETRY_LIMIT; - case ODIN_CFG_GET_AP_DOT11_SHORT_RETRY_LIMIT: return cbTARGET_CFG_GET_AP_DOT11_SHORT_RETRY_LIMIT; - case ODIN_CFG_SET_AP_DOT11_LONG_RETRY_LIMIT: return cbTARGET_CFG_SET_AP_DOT11_LONG_RETRY_LIMIT; - case ODIN_CFG_GET_AP_DOT11_LONG_RETRY_LIMIT: return cbTARGET_CFG_GET_AP_DOT11_LONG_RETRY_LIMIT; - case ODIN_CFG_SET_REMAIN_ON_CHANNEL: return cbTARGET_CFG_SET_REMAIN_ON_CHANNEL; - case ODIN_CFG_GET_REMAIN_ON_CHANNEL: return cbTARGET_CFG_GET_REMAIN_ON_CHANNEL; - case ODIN_CFG_SET_STA_TX_RATE_MASK: return cbTARGET_CFG_SET_STA_TX_RATE_MASK; - case ODIN_CFG_GET_STA_TX_RATE_MASK: return cbTARGET_CFG_GET_STA_TX_RATE_MASK; - case ODIN_CFG_SET_RSSI_GOOD: return cbTARGET_CFG_SET_RSSI_GOOD; - case ODIN_CFG_GET_RSSI_GOOD: return cbTARGET_CFG_GET_RSSI_GOOD; - case ODIN_CFG_SET_RSSI_BAD: return cbTARGET_CFG_SET_RSSI_BAD; - case ODIN_CFG_GET_RSSI_BAD: return cbTARGET_CFG_GET_RSSI_BAD; - case ODIN_CFG_SET_SLEEP_TIMEOUT: return cbTARGET_CFG_SET_SLEEP_TIMEOUT; - case ODIN_CFG_GET_SLEEP_TIMEOUT: return cbTARGET_CFG_GET_SLEEP_TIMEOUT; - case ODIN_CFG_SET_GOOD_RSSI_YIELD_TMO: return cbTARGET_CFG_SET_GOOD_RSSI_YIELD_TMO; - case ODIN_CFG_GET_GOOD_RSSI_YIELD_TMO: return cbTARGET_CFG_GET_GOOD_RSSI_YIELD_TMO; - case ODIN_CFG_SET_BAD_RSSI_YIELD_TMO: return cbTARGET_CFG_SET_BAD_RSSI_YIELD_TMO; - case ODIN_CFG_GET_BAD_RSSI_YIELD_TMO: return cbTARGET_CFG_GET_BAD_RSSI_YIELD_TMO; - case ODIN_CFG_SET_FORCE_WORLD_MODE: return cbTARGET_CFG_SET_FORCE_WORLD_MODE; - case ODIN_CFG_GET_FORCE_WORLD_MODE: return cbTARGET_CFG_GET_FORCE_WORLD_MODE; - case ODIN_CFG_GET_TX_PACKET_ACK_TIMEOUT_WD: return cbTARGET_CFG_SET_TX_PACKET_ACK_TIMEOUT_WD; - case ODIN_CFG_SET_TX_PACKET_ACK_TIMEOUT_WD: return cbTARGET_CFG_GET_TX_PACKET_ACK_TIMEOUT_WD; - case ODIN_CFG_SET_CTS_PROTECTION: return cbTARGET_CFG_SET_CTS_PROTECTION; - case ODIN_CFG_GET_CTS_PROTECTION: return cbTARGET_CFG_GET_CTS_PROTECTION; - case ODIN_CFG_SET_HIDDEN_SSID: return cbTARGET_CFG_SET_HIDDEN_SSID; - case ODIN_CFG_GET_HIDDEN_SSID: return cbTARGET_CFG_GET_HIDDEN_SSID; - case ODIN_CFG_SET_AP_STA_INACTIVITY_TIMEOUT: return cbTARGET_CFG_SET_AP_STA_INACTIVITY_TIMEOUT; - case ODIN_CFG_GET_AP_STA_INACTIVITY_TIMEOUT: return cbTARGET_CFG_GET_AP_STA_INACTIVITY_TIMEOUT; - case ODIN_CFG_SET_ROAMING_AREA_HYSTERESIS: return cbTARGET_CFG_SET_ROAMING_AREA_HYSTERESIS; - case ODIN_CFG_GET_ROAMING_AREA_HYSTERESIS: return cbTARGET_CFG_GET_ROAMING_AREA_HYSTERESIS; - case ODIN_CFG_SET_PMF_STA: return cbTARGET_CFG_SET_PMF_STA; - case ODIN_CFG_GET_PMF_STA: return cbTARGET_CFG_GET_PMF_STA; - case ODIN_CFG_SET_FT_MODE: return cbTARGET_CFG_SET_FT_MODE; - case ODIN_CFG_GET_FT_MODE: return cbTARGET_CFG_GET_FT_MODE; + case ODIN_CFG_SET_POWER_SAVE_MODE: config = cbTARGET_CFG_SET_POWER_SAVE_MODE; + case ODIN_CFG_GET_POWER_SAVE_MODE: config = cbTARGET_CFG_GET_POWER_SAVE_MODE; + case ODIN_CFG_SET_LISTEN_INTERVAL: config = cbTARGET_CFG_SET_LISTEN_INTERVAL; + case ODIN_CFG_GET_LISTEN_INTERVAL: config = cbTARGET_CFG_GET_LISTEN_INTERVAL; + case ODIN_CFG_SET_MIN_SCAN_TIME: config = cbTARGET_CFG_SET_MIN_SCAN_TIME; + case ODIN_CFG_GET_MIN_SCAN_TIME: config = cbTARGET_CFG_GET_MIN_SCAN_TIME; + case ODIN_CFG_SET_MAX_SCAN_TIME: config = cbTARGET_CFG_SET_MAX_SCAN_TIME; + case ODIN_CFG_GET_MAX_SCAN_TIME: config = cbTARGET_CFG_GET_MAX_SCAN_TIME; + case ODIN_CFG_SET_SCAN_TYPE: config = cbTARGET_CFG_SET_SCAN_TYPE; + case ODIN_CFG_GET_SCAN_TYPE: config = cbTARGET_CFG_GET_SCAN_TYPE; + case ODIN_CFG_SET_DTIM_ENABLE: config = cbTARGET_CFG_SET_DTIM_ENABLE; + case ODIN_CFG_GET_DTIM_ENABLE: config = cbTARGET_CFG_GET_DTIM_ENABLE; + case ODIN_CFG_SET_QOS_ENABLE: config = cbTARGET_CFG_SET_QOS_ENABLE; + case ODIN_CFG_GET_QOS_ENABLE: config = cbTARGET_CFG_GET_QOS_ENABLE; + case ODIN_CFG_SET_RTS_THRESHOLD: config = cbTARGET_CFG_SET_RTS_THRESHOLD; + case ODIN_CFG_GET_RTS_THRESHOLD: config = cbTARGET_CFG_GET_RTS_THRESHOLD; + case ODIN_CFG_SET_TX_POWER: config = cbTARGET_CFG_SET_TX_POWER; + case ODIN_CFG_GET_TX_POWER: config = cbTARGET_CFG_GET_TX_POWER; + case ODIN_CFG_SET_MAX_PASSIVE_SCAN_TIME: config = cbTARGET_CFG_SET_MAX_PASSIVE_SCAN_TIME; + case ODIN_CFG_GET_MAX_PASSIVE_SCAN_TIME: config = cbTARGET_CFG_GET_MAX_PASSIVE_SCAN_TIME; + case ODIN_CFG_SET_SCAN_LISTEN_INTERVAL: config = cbTARGET_CFG_SET_SCAN_LISTEN_INTERVAL; + case ODIN_CFG_GET_SCAN_LISTEN_INTERVAL: config = cbTARGET_CFG_GET_SCAN_LISTEN_INTERVAL; + case ODIN_CFG_SET_DOT11_SHORT_RETRY_LIMIT: config = cbTARGET_CFG_SET_DOT11_SHORT_RETRY_LIMIT; + case ODIN_CFG_GET_DOT11_SHORT_RETRY_LIMIT: config = cbTARGET_CFG_GET_DOT11_SHORT_RETRY_LIMIT; + case ODIN_CFG_SET_DOT11_LONG_RETRY_LIMIT: config = cbTARGET_CFG_SET_DOT11_LONG_RETRY_LIMIT; + case ODIN_CFG_GET_DOT11_LONG_RETRY_LIMIT: config = cbTARGET_CFG_GET_DOT11_LONG_RETRY_LIMIT; + case ODIN_CFG_SET_AP_DOT11_SHORT_RETRY_LIMIT: config = cbTARGET_CFG_SET_AP_DOT11_SHORT_RETRY_LIMIT; + case ODIN_CFG_GET_AP_DOT11_SHORT_RETRY_LIMIT: config = cbTARGET_CFG_GET_AP_DOT11_SHORT_RETRY_LIMIT; + case ODIN_CFG_SET_AP_DOT11_LONG_RETRY_LIMIT: config = cbTARGET_CFG_SET_AP_DOT11_LONG_RETRY_LIMIT; + case ODIN_CFG_GET_AP_DOT11_LONG_RETRY_LIMIT: config = cbTARGET_CFG_GET_AP_DOT11_LONG_RETRY_LIMIT; + case ODIN_CFG_SET_REMAIN_ON_CHANNEL: config = cbTARGET_CFG_SET_REMAIN_ON_CHANNEL; + case ODIN_CFG_GET_REMAIN_ON_CHANNEL: config = cbTARGET_CFG_GET_REMAIN_ON_CHANNEL; + case ODIN_CFG_SET_STA_TX_RATE_MASK: config = cbTARGET_CFG_SET_STA_TX_RATE_MASK; + case ODIN_CFG_GET_STA_TX_RATE_MASK: config = cbTARGET_CFG_GET_STA_TX_RATE_MASK; + case ODIN_CFG_SET_RSSI_GOOD: config = cbTARGET_CFG_SET_RSSI_GOOD; + case ODIN_CFG_GET_RSSI_GOOD: config = cbTARGET_CFG_GET_RSSI_GOOD; + case ODIN_CFG_SET_RSSI_BAD: config = cbTARGET_CFG_SET_RSSI_BAD; + case ODIN_CFG_GET_RSSI_BAD: config = cbTARGET_CFG_GET_RSSI_BAD; + case ODIN_CFG_SET_SLEEP_TIMEOUT: config = cbTARGET_CFG_SET_SLEEP_TIMEOUT; + case ODIN_CFG_GET_SLEEP_TIMEOUT: config = cbTARGET_CFG_GET_SLEEP_TIMEOUT; + case ODIN_CFG_SET_GOOD_RSSI_YIELD_TMO: config = cbTARGET_CFG_SET_GOOD_RSSI_YIELD_TMO; + case ODIN_CFG_GET_GOOD_RSSI_YIELD_TMO: config = cbTARGET_CFG_GET_GOOD_RSSI_YIELD_TMO; + case ODIN_CFG_SET_BAD_RSSI_YIELD_TMO: config = cbTARGET_CFG_SET_BAD_RSSI_YIELD_TMO; + case ODIN_CFG_GET_BAD_RSSI_YIELD_TMO: config = cbTARGET_CFG_GET_BAD_RSSI_YIELD_TMO; + case ODIN_CFG_SET_FORCE_WORLD_MODE: config = cbTARGET_CFG_SET_FORCE_WORLD_MODE; + case ODIN_CFG_GET_FORCE_WORLD_MODE: config = cbTARGET_CFG_GET_FORCE_WORLD_MODE; + case ODIN_CFG_GET_TX_PACKET_ACK_TIMEOUT_WD: config = cbTARGET_CFG_SET_TX_PACKET_ACK_TIMEOUT_WD; + case ODIN_CFG_SET_TX_PACKET_ACK_TIMEOUT_WD: config = cbTARGET_CFG_GET_TX_PACKET_ACK_TIMEOUT_WD; + case ODIN_CFG_SET_CTS_PROTECTION: config = cbTARGET_CFG_SET_CTS_PROTECTION; + case ODIN_CFG_GET_CTS_PROTECTION: config = cbTARGET_CFG_GET_CTS_PROTECTION; + case ODIN_CFG_SET_HIDDEN_SSID: config = cbTARGET_CFG_SET_HIDDEN_SSID; + case ODIN_CFG_GET_HIDDEN_SSID: config = cbTARGET_CFG_GET_HIDDEN_SSID; + case ODIN_CFG_SET_AP_STA_INACTIVITY_TIMEOUT: config = cbTARGET_CFG_SET_AP_STA_INACTIVITY_TIMEOUT; + case ODIN_CFG_GET_AP_STA_INACTIVITY_TIMEOUT: config = cbTARGET_CFG_GET_AP_STA_INACTIVITY_TIMEOUT; + case ODIN_CFG_SET_ROAMING_AREA_HYSTERESIS: config = cbTARGET_CFG_SET_ROAMING_AREA_HYSTERESIS; + case ODIN_CFG_GET_ROAMING_AREA_HYSTERESIS: config = cbTARGET_CFG_GET_ROAMING_AREA_HYSTERESIS; + case ODIN_CFG_SET_PMF_STA: config = cbTARGET_CFG_SET_PMF_STA; + case ODIN_CFG_GET_PMF_STA: config = cbTARGET_CFG_GET_PMF_STA; + case ODIN_CFG_SET_FT_MODE: config = cbTARGET_CFG_SET_FT_MODE; + case ODIN_CFG_GET_FT_MODE: config = cbTARGET_CFG_GET_FT_MODE; default: MBED_ASSERT(false); } + return config; } static cbTARGET_PowerSaveMode convertPowerSaveAtToIoctl(target_power_save_mode_e powerSaveMode) { + cbTARGET_PowerSaveMode mode; + switch (powerSaveMode) { - case ODIN_POWER_SAVE_MODE_OFF: return cbTARGET_POWER_SAVE_MODE_OFF; - case ODIN_POWER_SAVE_MODE_SLEEP: return cbTARGET_POWER_SAVE_MODE_SLEEP; - case ODIN_POWER_SAVE_MODE_DEEP_SLEEP: return cbTARGET_POWER_SAVE_MODE_DEEP_SLEEP; + case ODIN_POWER_SAVE_MODE_OFF: mode = cbTARGET_POWER_SAVE_MODE_OFF; + case ODIN_POWER_SAVE_MODE_SLEEP: mode = cbTARGET_POWER_SAVE_MODE_SLEEP; + case ODIN_POWER_SAVE_MODE_DEEP_SLEEP: mode = cbTARGET_POWER_SAVE_MODE_DEEP_SLEEP; default: MBED_ASSERT(false); } + + return mode; } diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/ublox-odin-w2-drivers/OdinWiFiInterface.h b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/ublox-odin-w2-drivers/OdinWiFiInterface.h index 9cd509dae8..c5226255b1 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/ublox-odin-w2-drivers/OdinWiFiInterface.h +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/ublox-odin-w2-drivers/OdinWiFiInterface.h @@ -346,6 +346,7 @@ private: cbWLAN_MACAddress bssid[ODIN_WIFI_SCAN_CACHE_SIZE]; }; + cbWLAN_Handle handle = cbWLAN_INVALID_HANDLE; OdinWifiState entry_connect_fail_wait_disconnect(); OdinWifiState entry_wait_connect(); OdinWifiState entry_wait_disconnect(); @@ -430,10 +431,10 @@ private: friend struct wlan_callb_s; Mutex _mutex; - Queue _in_queue; + Queue _in_queue; Queue _out_queue; Queue _cache_queue; - MemoryPool *_msg_pool; + MemoryPool *_msg_pool; Thread _thread; Timer _timer; diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/ublox-odin-w2-drivers/cb_wlan.h b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/ublox-odin-w2-drivers/cb_wlan.h index 09ff0391a6..a8c62cbe00 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/ublox-odin-w2-drivers/cb_wlan.h +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/ublox-odin-w2-drivers/cb_wlan.h @@ -83,10 +83,12 @@ extern "C" { #define cbWLAN_RSNIE_SIZE 44 #define cbWLAN_MDIE_SIZE 5 +#define cbWLAN_DEFAULT_HANDLE ((cbWLAN_Handle)1) +#define cbWLAN_INVALID_HANDLE (cb_UINT32_MAX) /*=========================================================================== * TYPES *=========================================================================*/ - +typedef cb_uint32 cbWLAN_Handle; /** * Start parameters passed to WLAN driver. * @@ -282,12 +284,13 @@ typedef enum { * @ingroup wlan */ typedef enum { - cbWLAN_STATUS_DISCONNECTED_UNKNOWN, + cbWLAN_STATUS_DISCONNECTED_UNKNOWN = 0x00, cbWLAN_STATUS_DISCONNECTED_NO_BSSID_FOUND, - cbWLAN_STATUS_DISCONNECTED_AUTH_TIMEOUT, - cbWLAN_STATUS_DISCONNECTED_MIC_FAILURE, + cbWLAN_STATUS_DISCONNECTED_ASSOC_FAILURE, + cbWLAN_STATUS_DISCONNECTED_AUTH_FAILURE, + cbWLAN_STATUS_DISCONNECTED_MIC_FAILURE, cbWLAN_STATUS_DISCONNECTED_ROAMING, -} cbWLAN_StatusDisconnectedInfo; +} cbWLAN_StatusDisconnectedReason; /** * IOCTL parameters @ref cbWLAN_ioctl @@ -312,14 +315,26 @@ typedef struct cbWLAN_StatusStartedInfo { } cbWLAN_StatusStartedInfo; /** - * Connected parameters indicated from WLAN driver for status indication + * Disconnected parameters indicated from WLAN driver for status indication + * @ref cbWLAN_STATUS_DISCONNECTED. + * + * @ingroup wlan + */ +typedef struct cbWLAN_StatusDisconnectedInfo { + cbWLAN_Handle handle; /**< Handle returned by cbWLAN_connectXXX */ + cbWLAN_StatusDisconnectedReason reason; +} cbWLAN_StatusDisconnectedInfo; + +/** + * Connected parameters indicated from WLAN driver for status indication * @ref cbWLAN_STATUS_CONNECTED. * * @ingroup wlan */ typedef struct cbWLAN_StatusConnectedInfo { - cbWLAN_MACAddress bssid; /**< BSSID of the BSS connected to. */ - cbWLAN_Channel channel; /**< Operating channels of the BSS connected to. */ + cbWLAN_Handle handle; /**< Handle returned by cbWLAN_connectXXX */ + cbWLAN_MACAddress bssid; /**< BSSID of the BSS connected to. */ + cbWLAN_Channel channel; /**< Operating channels of the BSS connected to. */ cb_uint16 mobilityDomainId; } cbWLAN_StatusConnectedInfo; @@ -385,43 +400,43 @@ cbRTSL_Status cbWLAN_init(); cbRTSL_Status cbWLAN_stop(void); /** - * Connect to access point in open mode (no encryption). - * Connection progress is reported as @ref cbWLAN_statusIndication callbacks. - * - * @param commonParams Connection parameters. - * @return @ref cbSTATUS_OK if call successful, otherwise cbSTATUS_ERROR. - */ -cbRTSL_Status cbWLAN_connectOpen(cbWLAN_CommonConnectParameters *commonParams); +* Connect to access point in open mode (no encryption). +* Connection progress is reported as @ref cbWLAN_statusIndication callbacks. +* +* @param commonParams Connection parameters. +* @return @ref cbWLAN_Handle if call successful, otherwise -1. +*/ +cbWLAN_Handle cbWLAN_connectOpen(cbWLAN_CommonConnectParameters *commonParams); /** - * Connect to access point in open mode with WEP encryption. - * Connection progress is reported as @ref cbWLAN_statusIndication callbacks. - * - * @param commonParams Connection parameters. - * @param wepParams WEP specific connection parameters. - * @return @ref cbSTATUS_OK if call successful, otherwise cbSTATUS_ERROR. - */ -cbRTSL_Status cbWLAN_connectWEP(cbWLAN_CommonConnectParameters *commonParams, cbWLAN_WEPConnectParameters *wepParams); +* Connect to access point in open mode with WEP encryption. +* Connection progress is reported as @ref cbWLAN_statusIndication callbacks. +* +* @param commonParams Connection parameters. +* @param wepParams WEP specific connection parameters. +* @return @ref cbWLAN_Handle if call successful, otherwise -1. +*/ +cbWLAN_Handle cbWLAN_connectWEP(cbWLAN_CommonConnectParameters *commonParams, cbWLAN_WEPConnectParameters *wepParams); /** - * Connect to access point with WPA PSK authentication. - * Connection progress is reported as @ref cbWLAN_statusIndication callbacks. - * - * @param commonParams Connection parameters. - * @param wpaParams WPA PSK specific connection parameters. - * @return @ref cbSTATUS_OK if call successful, otherwise cbSTATUS_ERROR. - */ -cbRTSL_Status cbWLAN_connectWPAPSK(cbWLAN_CommonConnectParameters *commonParams, cbWLAN_WPAPSKConnectParameters *wpaParams); +* Connect to access point with WPA PSK authentication. +* Connection progress is reported as @ref cbWLAN_statusIndication callbacks. +* +* @param commonParams Connection parameters. +* @param wpaParams WPA PSK specific connection parameters. +* @return @ref cbWLAN_Handle if call successful, otherwise -1. +*/ +cbWLAN_Handle cbWLAN_connectWPAPSK(cbWLAN_CommonConnectParameters *commonParams, cbWLAN_WPAPSKConnectParameters *wpaParams); /** - * Connect to access point with WPA Enterprise authentication. - * Connection progress is reported as @ref cbWLAN_statusIndication callbacks. - * - * @param commonParams Connection parameters. - * @param enterpriseParams WPA Enterprise specific connection parameters. - * @return @ref cbSTATUS_OK if call successful, otherwise cbSTATUS_ERROR. - */ -cbRTSL_Status cbWLAN_connectEnterprise(cbWLAN_CommonConnectParameters *commonParams, cbWLAN_EnterpriseConnectParameters *enterpriseParams); +* Connect to access point with WPA Enterprise authentication. +* Connection progress is reported as @ref cbWLAN_statusIndication callbacks. +* +* @param commonParams Connection parameters. +* @param enterpriseParams WPA Enterprise specific connection parameters. +* @return @ref cbWLAN_Handle if call successful, otherwise -1. +*/ +cbWLAN_Handle cbWLAN_connectEnterprise(cbWLAN_CommonConnectParameters *commonParams, cbWLAN_EnterpriseConnectParameters *enterpriseParams); /** * Disconnect from access point or stop ongoing connection attempt. @@ -429,7 +444,7 @@ cbRTSL_Status cbWLAN_connectEnterprise(cbWLAN_CommonConnectParameters *commonPar * * @return @ref cbSTATUS_OK if call successful, otherwise cbSTATUS_ERROR. */ -cbRTSL_Status cbWLAN_disconnect(void); +cbRTSL_Status cbWLAN_disconnect(cbWLAN_Handle handle); /** * Initiate BSS scan. @@ -459,13 +474,13 @@ cbRTSL_Status cbWLAN_scan(cbWLAN_ScanParameters *params, cbWLAN_scanIndication s cb_int16 cbWLAN_STA_getRSSI(); /** - * Start access point in open mode (no encryption). - * Connection progress is reported as @ref cbWLAN_statusIndication callbacks. - * - * @param commonParams Common Accesspoint parameters. - * @return @ref cbSTATUS_OK if call successful, otherwise cbSTATUS_ERROR. - */ -cbRTSL_Status cbWLAN_apStartOpen(cbWLAN_CommonApParameters *commonParams); +* Start access point in open mode (no encryption). +* Connection progress is reported as @ref cbWLAN_statusIndication callbacks. +* +* @param commonParams Common Accesspoint parameters. +* @return @ref cbWLAN_Handle if call successful, otherwise -1. +*/ +cbWLAN_Handle cbWLAN_apStartOpen(cbWLAN_CommonApParameters *commonParams); /** * Start access point with WPA PSK authentication. @@ -473,16 +488,16 @@ cbRTSL_Status cbWLAN_apStartOpen(cbWLAN_CommonApParameters *commonParams); * * @param commonParams Common Accesspoint parameters. * @param wpaParams WPA PSK specific parameters. -* @return @ref cbSTATUS_OK if call successful, otherwise cbSTATUS_ERROR. +* @return @ref cbWLAN_Handle if call successful, otherwise -1. */ -cbRTSL_Status cbWLAN_apStartWPAPSK(cbWLAN_CommonApParameters *commonParams, cbWLAN_WPAPSKApParameters *wpaParams); +cbWLAN_Handle cbWLAN_apStartWPAPSK(cbWLAN_CommonApParameters *commonParams, cbWLAN_WPAPSKApParameters *wpaParams); /** * Stop access point. * * @return @ref cbSTATUS_OK if call successful, otherwise cbSTATUS_ERROR. */ -cbRTSL_Status cbWLAN_apStop(void); +cbRTSL_Status cbWLAN_apStop(cbWLAN_Handle handle); /** * Send an Ethernet data packet. @@ -490,7 +505,7 @@ cbRTSL_Status cbWLAN_apStop(void); * * @param txData Pointer to the port specific Ethernet data type containing transmit data */ -void cbWLAN_sendPacket(void *txData); +void cbWLAN_sendPacket(cbWLAN_Handle handle, void *txData); /** * Register a status indication callback. @@ -510,7 +525,7 @@ cbRTSL_Status cbWLAN_registerStatusCallback(cbWLAN_statusIndication statusIndica * @param callbackContext Context pointer, will be sent back in callback. * @return @ref cbSTATUS_OK if call successful, otherwise cbSTATUS_ERROR. */ -cbRTSL_Status cbWLAN_registerPacketIndicationCallback(cbWLAN_packetIndication packetIndication, void *callbackContext); +cbRTSL_Status cbWLAN_registerPacketIndicationCallback(cbWLAN_Handle handle, cbWLAN_packetIndication packetIndication, void *callbackContext); /** * Deregister the specified status indication callback. diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/ublox-odin-w2-drivers/enterprise_handle.h b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/ublox-odin-w2-drivers/enterprise_handle.h index 1883926bfa..e4c3c62778 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/ublox-odin-w2-drivers/enterprise_handle.h +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/ublox-odin-w2-drivers/enterprise_handle.h @@ -62,7 +62,7 @@ extern "C" { * @param enterpriseParams Enterprise parameters. * @return 0 on success, or error code on failure */ -cbRTSL_Status cb_eap_conn_handler(cb_char const* cert, cb_char const* pvt_key, cbWLAN_CommonConnectParameters *commonParams, cbWLAN_EnterpriseConnectParameters *enterpriseParams); +cbWLAN_Handle cb_eap_conn_handler(cb_char const* cert, cb_char const* pvt_key, cbWLAN_CommonConnectParameters *commonParams, cbWLAN_EnterpriseConnectParameters *enterpriseParams); #ifdef __cplusplus } diff --git a/targets/targets.json b/targets/targets.json index 78e4170cb4..514952672d 100644 --- a/targets/targets.json +++ b/targets/targets.json @@ -4646,6 +4646,7 @@ "WLAN_ENABLED", "CB_FEATURE_802DOT11W", "CB_FEATURE_802DOT11R", + "CB_FEATURE_PMKCACHING", "MBEDTLS_ARC4_C", "MBEDTLS_DES_C", "MBEDTLS_MD4_C",