mirror of https://github.com/ARMmbed/mbed-os.git
Merge pull request #11983 from u-blox/ublox_odin_driver_os_5_v3.7.1_rc3
Ublox Odin Driver OS 5 v3.7.1 rc3: Network-WiFi Test Crash Fixespull/12025/head
commit
bbf68d7272
|
@ -39,7 +39,7 @@ cb_uint32 handleWlanTargetGetDataFrameSize(cbWLANTARGET_dataFrame* frame);
|
||||||
cb_uint8 handleWlanTargetGetDataFrameTID(cbWLANTARGET_dataFrame* frame);
|
cb_uint8 handleWlanTargetGetDataFrameTID(cbWLANTARGET_dataFrame* frame);
|
||||||
void handleWlanStatusIndication(void *dummy, cbWLAN_StatusIndicationInfo status, void *data);
|
void handleWlanStatusIndication(void *dummy, cbWLAN_StatusIndicationInfo status, void *data);
|
||||||
void handleWlanPacketIndication(void *dummy, cbWLAN_PacketIndicationInfo *packetInfo);
|
void handleWlanPacketIndication(void *dummy, cbWLAN_PacketIndicationInfo *packetInfo);
|
||||||
void send_wlan_packet(void *buf);
|
void send_wlan_packet(OdinWiFiEMAC *ptr, void *buf);
|
||||||
|
|
||||||
static const cbWLANTARGET_Callback _wlanTargetCallback =
|
static const cbWLANTARGET_Callback _wlanTargetCallback =
|
||||||
{
|
{
|
||||||
|
@ -202,9 +202,19 @@ OdinWiFiEMAC::OdinWiFiEMAC()
|
||||||
cbWLANTARGET_registerCallbacks((cbWLANTARGET_Callback*)&_wlanTargetCallback);
|
cbWLANTARGET_registerCallbacks((cbWLANTARGET_Callback*)&_wlanTargetCallback);
|
||||||
}
|
}
|
||||||
|
|
||||||
void send_wlan_packet(void *buf)
|
cbWLAN_Handle OdinWiFiEMAC::get_wifi_emac_handle()
|
||||||
{
|
{
|
||||||
cbWLAN_sendPacket(cbWLAN_DEFAULT_HANDLE, buf);
|
return this->handle;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OdinWiFiEMAC::set_wifi_emac_handle(cbWLAN_Handle _handle)
|
||||||
|
{
|
||||||
|
this->handle = _handle;
|
||||||
|
}
|
||||||
|
|
||||||
|
void send_wlan_packet(OdinWiFiEMAC *ptr, void *buf)
|
||||||
|
{
|
||||||
|
cbWLAN_sendPacket(ptr->handle, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool OdinWiFiEMAC::link_out(emac_mem_buf_t *buf)
|
bool OdinWiFiEMAC::link_out(emac_mem_buf_t *buf)
|
||||||
|
@ -215,7 +225,7 @@ bool OdinWiFiEMAC::link_out(emac_mem_buf_t *buf)
|
||||||
emac_mem_buf_t *new_buf = mem->alloc_pool(mem->get_total_len(buf), 0);
|
emac_mem_buf_t *new_buf = mem->alloc_pool(mem->get_total_len(buf), 0);
|
||||||
if (new_buf != NULL) {
|
if (new_buf != NULL) {
|
||||||
mem->copy(new_buf, buf);
|
mem->copy(new_buf, buf);
|
||||||
int id = cbMAIN_getEventQueue()->call(send_wlan_packet, new_buf);
|
int id = cbMAIN_getEventQueue()->call(send_wlan_packet, this, new_buf);
|
||||||
if (id != 0) {
|
if (id != 0) {
|
||||||
cbMAIN_dispatchEventQueue();
|
cbMAIN_dispatchEventQueue();
|
||||||
} else {
|
} else {
|
||||||
|
@ -262,9 +272,8 @@ void OdinWiFiEMAC::set_hwaddr(const uint8_t *addr)
|
||||||
void OdinWiFiEMAC::set_link_input_cb(emac_link_input_cb_t input_cb)
|
void OdinWiFiEMAC::set_link_input_cb(emac_link_input_cb_t input_cb)
|
||||||
{
|
{
|
||||||
emac_link_input_cb = input_cb;
|
emac_link_input_cb = input_cb;
|
||||||
|
|
||||||
cbMAIN_driverLock();
|
cbMAIN_driverLock();
|
||||||
cbWLAN_registerPacketIndicationCallback(cbWLAN_DEFAULT_HANDLE, handleWlanPacketIndication, NULL);
|
cbWLAN_registerPacketIndicationCallback(get_wifi_emac_handle(), handleWlanPacketIndication, NULL);
|
||||||
cbMAIN_driverUnlock();
|
cbMAIN_driverUnlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -124,8 +124,13 @@ public:
|
||||||
virtual void remove_multicast_group(const uint8_t *address);
|
virtual void remove_multicast_group(const uint8_t *address);
|
||||||
virtual void set_all_multicast(bool all);
|
virtual void set_all_multicast(bool all);
|
||||||
|
|
||||||
|
cbWLAN_Handle get_wifi_emac_handle();
|
||||||
|
void set_wifi_emac_handle(cbWLAN_Handle _handle);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
cbWLAN_Handle handle = cbWLAN_DEFAULT_HANDLE;
|
||||||
|
|
||||||
emac_link_input_cb_t emac_link_input_cb; /**< Callback for incoming data */
|
emac_link_input_cb_t emac_link_input_cb; /**< Callback for incoming data */
|
||||||
emac_link_state_change_cb_t emac_link_state_cb; /**< Link state change callback */
|
emac_link_state_change_cb_t emac_link_state_cb; /**< Link state change callback */
|
||||||
EMACMemoryManager *memory_manager;
|
EMACMemoryManager *memory_manager;
|
||||||
|
@ -138,7 +143,7 @@ private:
|
||||||
|
|
||||||
friend void handleWlanStatusIndication(void *dummy, cbWLAN_StatusIndicationInfo status, void *data);
|
friend void handleWlanStatusIndication(void *dummy, cbWLAN_StatusIndicationInfo status, void *data);
|
||||||
friend void handleWlanPacketIndication(void *dummy, cbWLAN_PacketIndicationInfo *packetInfo);
|
friend void handleWlanPacketIndication(void *dummy, cbWLAN_PacketIndicationInfo *packetInfo);
|
||||||
friend void send_wlan_packet(void *buf);
|
friend void send_wlan_packet(OdinWiFiEMAC *ptr, void *buf);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* WIFI_EMAC_H_ */
|
#endif /* WIFI_EMAC_H_ */
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -158,15 +158,15 @@ struct wlan_callb_s {
|
||||||
bool OdinWiFiInterface::_wlan_initialized = false;
|
bool OdinWiFiInterface::_wlan_initialized = false;
|
||||||
int32_t OdinWiFiInterface::_target_id = cbMAIN_TARGET_INVALID_ID;
|
int32_t OdinWiFiInterface::_target_id = cbMAIN_TARGET_INVALID_ID;
|
||||||
|
|
||||||
OdinWiFiInterface::OdinWiFiInterface(OdinWiFiEMAC &emac , OnboardNetworkStack &stack) :
|
OdinWiFiInterface::OdinWiFiInterface(OdinWiFiEMAC &emac_obj, OnboardNetworkStack &stack) :
|
||||||
EMACInterface(emac, stack),
|
EMACInterface(emac_obj, stack),
|
||||||
_thread(osPriorityNormal, 4096)
|
_thread(osPriorityNormal, 4096)
|
||||||
{
|
{
|
||||||
init(false);
|
init(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
OdinWiFiInterface::OdinWiFiInterface(bool debug, OdinWiFiEMAC &emac, OnboardNetworkStack &stack) :
|
OdinWiFiInterface::OdinWiFiInterface(bool debug, OdinWiFiEMAC &emac_obj, OnboardNetworkStack &stack) :
|
||||||
EMACInterface(emac, stack),
|
EMACInterface(emac_obj, stack),
|
||||||
_thread(osPriorityNormal, 4096)
|
_thread(osPriorityNormal, 4096)
|
||||||
{
|
{
|
||||||
init(debug);
|
init(debug);
|
||||||
|
@ -386,7 +386,7 @@ nsapi_error_t OdinWiFiInterface::connect(
|
||||||
return NSAPI_ERROR_PARAMETER;
|
return NSAPI_ERROR_PARAMETER;
|
||||||
}
|
}
|
||||||
|
|
||||||
if((security == NSAPI_SECURITY_EAP_TLS) && (cert_handle->client_cert == NULL)) {
|
if((security == NSAPI_SECURITY_EAP_TLS) && (cert_handle->client_cert == NULL || cert_handle->client_prvt_key == NULL)) {
|
||||||
return NSAPI_ERROR_PARAMETER;
|
return NSAPI_ERROR_PARAMETER;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -757,7 +757,7 @@ OdinWiFiInterface::OdinWifiState OdinWiFiInterface::entry_connect_fail_wait_disc
|
||||||
cbRTSL_Status error_code;
|
cbRTSL_Status error_code;
|
||||||
|
|
||||||
cbMAIN_driverLock();
|
cbMAIN_driverLock();
|
||||||
error_code = cbWLAN_disconnect(handle);
|
error_code = cbWLAN_disconnect(_wlan_status_connected_info.handle);
|
||||||
cbMAIN_driverUnlock();
|
cbMAIN_driverUnlock();
|
||||||
|
|
||||||
MBED_ASSERT(error_code == cbSTATUS_OK);
|
MBED_ASSERT(error_code == cbSTATUS_OK);
|
||||||
|
@ -778,7 +778,7 @@ OdinWiFiInterface::OdinWifiState OdinWiFiInterface::entry_wait_disconnect()
|
||||||
cbRTSL_Status error_code;
|
cbRTSL_Status error_code;
|
||||||
|
|
||||||
cbMAIN_driverLock();
|
cbMAIN_driverLock();
|
||||||
error_code = cbWLAN_disconnect(handle);
|
error_code = cbWLAN_disconnect(_wlan_status_disconnected_info.handle);
|
||||||
cbMAIN_driverUnlock();
|
cbMAIN_driverUnlock();
|
||||||
|
|
||||||
MBED_ASSERT(error_code == cbSTATUS_OK);
|
MBED_ASSERT(error_code == cbSTATUS_OK);
|
||||||
|
@ -802,7 +802,7 @@ OdinWiFiInterface::OdinWifiState OdinWiFiInterface::entry_ap_started()
|
||||||
OdinWiFiInterface::OdinWifiState OdinWiFiInterface::entry_ap_wait_stop()
|
OdinWiFiInterface::OdinWifiState OdinWiFiInterface::entry_ap_wait_stop()
|
||||||
{
|
{
|
||||||
cbMAIN_driverLock();
|
cbMAIN_driverLock();
|
||||||
cbRTSL_Status status = cbWLAN_apStop(handle);
|
cbRTSL_Status status = cbWLAN_apStop(_ap.handle);
|
||||||
cbMAIN_driverUnlock();
|
cbMAIN_driverUnlock();
|
||||||
|
|
||||||
MBED_ASSERT(status == cbSTATUS_OK);
|
MBED_ASSERT(status == cbSTATUS_OK);
|
||||||
|
@ -813,7 +813,7 @@ OdinWiFiInterface::OdinWifiState OdinWiFiInterface::entry_ap_wait_stop()
|
||||||
OdinWiFiInterface::OdinWifiState OdinWiFiInterface::entry_ap_fail_wait_stop()
|
OdinWiFiInterface::OdinWifiState OdinWiFiInterface::entry_ap_fail_wait_stop()
|
||||||
{
|
{
|
||||||
cbMAIN_driverLock();
|
cbMAIN_driverLock();
|
||||||
cbRTSL_Status status = cbWLAN_apStop(handle);
|
cbRTSL_Status status = cbWLAN_apStop(_ap.handle);
|
||||||
cbMAIN_driverUnlock();
|
cbMAIN_driverUnlock();
|
||||||
|
|
||||||
MBED_ASSERT(status == cbSTATUS_OK);
|
MBED_ASSERT(status == cbSTATUS_OK);
|
||||||
|
@ -917,7 +917,9 @@ void OdinWiFiInterface::handle_in_msg(void)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case cbWLAN_STATUS_CONNECTED:
|
case cbWLAN_STATUS_CONNECTED:
|
||||||
|
flush_drvr_ind_pkts = true;
|
||||||
handle_wlan_status_connected(&(msg->data.wlan_status_connected));
|
handle_wlan_status_connected(&(msg->data.wlan_status_connected));
|
||||||
|
flush_drvr_ind_pkts = false;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case cbWLAN_SCAN_INDICATION:
|
case cbWLAN_SCAN_INDICATION:
|
||||||
|
@ -1024,11 +1026,6 @@ void OdinWiFiInterface::handle_user_connect(user_connect_s *user_connect)
|
||||||
}
|
}
|
||||||
|
|
||||||
if(error_code == NSAPI_ERROR_OK) {
|
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();
|
_state_sta = entry_wait_connect();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1045,6 +1042,7 @@ void OdinWiFiInterface::handle_user_disconnect(void)
|
||||||
switch(_state_sta) {
|
switch(_state_sta) {
|
||||||
case S_STA_CONNECTED:
|
case S_STA_CONNECTED:
|
||||||
case S_STA_DISCONNECTED_WAIT_CONNECT:
|
case S_STA_DISCONNECTED_WAIT_CONNECT:
|
||||||
|
emac.set_wifi_emac_handle(_wlan_status_disconnected_info.handle);
|
||||||
_state_sta = entry_wait_disconnect();
|
_state_sta = entry_wait_disconnect();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1123,6 +1121,7 @@ void OdinWiFiInterface::handle_user_connect_timeout()
|
||||||
}
|
}
|
||||||
_timer.stop();
|
_timer.stop();
|
||||||
|
|
||||||
|
emac.set_wifi_emac_handle(_wlan_status_connected_info.handle);
|
||||||
_state_sta = entry_connect_fail_wait_disconnect();
|
_state_sta = entry_connect_fail_wait_disconnect();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1314,9 +1313,10 @@ void OdinWiFiInterface::handle_wlan_status_connected(wlan_status_connected_s *wl
|
||||||
_gateway[0] ? _gateway : 0,
|
_gateway[0] ? _gateway : 0,
|
||||||
DEFAULT_STACK);
|
DEFAULT_STACK);
|
||||||
|
|
||||||
|
memcpy(&_wlan_status_connected_info, &(wlan_connect->info), sizeof(cbWLAN_StatusConnectedInfo));
|
||||||
|
emac.set_wifi_emac_handle(_wlan_status_connected_info.handle);
|
||||||
|
|
||||||
if (error_code == NSAPI_ERROR_OK || error_code == NSAPI_ERROR_IS_CONNECTED) {
|
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){
|
if(_state_sta != S_STA_CONNECTED){
|
||||||
_state_sta = S_STA_CONNECTED;
|
_state_sta = S_STA_CONNECTED;
|
||||||
send_user_response_msg(ODIN_WIFI_MSG_USER_CONNECT, NSAPI_ERROR_OK);
|
send_user_response_msg(ODIN_WIFI_MSG_USER_CONNECT, NSAPI_ERROR_OK);
|
||||||
|
@ -1351,6 +1351,7 @@ void OdinWiFiInterface::handle_wlan_status_connection_failure(wlan_status_connec
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy(&_wlan_status_disconnected_info, &(connect_failure->info), sizeof(cbWLAN_StatusDisconnectedInfo));
|
memcpy(&_wlan_status_disconnected_info, &(connect_failure->info), sizeof(cbWLAN_StatusDisconnectedInfo));
|
||||||
|
emac.set_wifi_emac_handle(_wlan_status_disconnected_info.handle);
|
||||||
|
|
||||||
switch(_state_sta) {
|
switch(_state_sta) {
|
||||||
case S_STA_WAIT_CONNECT:
|
case S_STA_WAIT_CONNECT:
|
||||||
|
@ -1383,7 +1384,7 @@ void OdinWiFiInterface::handle_wlan_status_connection_failure(wlan_status_connec
|
||||||
|
|
||||||
void OdinWiFiInterface::handle_wlan_status_disconnected(void)
|
void OdinWiFiInterface::handle_wlan_status_disconnected(void)
|
||||||
{
|
{
|
||||||
nsapi_error_t error_code;
|
nsapi_error_t error_code = NSAPI_ERROR_OK;
|
||||||
|
|
||||||
if(_debug) {
|
if(_debug) {
|
||||||
printf("WLAN STATUS DISCONNECTED\r\n");
|
printf("WLAN STATUS DISCONNECTED\r\n");
|
||||||
|
@ -1404,24 +1405,19 @@ void OdinWiFiInterface::handle_wlan_status_disconnected(void)
|
||||||
|
|
||||||
case S_STA_CONNECTION_FAIL_WAIT_DISCONNECT:
|
case S_STA_CONNECTION_FAIL_WAIT_DISCONNECT:
|
||||||
_state_sta = S_STA_IDLE;
|
_state_sta = S_STA_IDLE;
|
||||||
if(_wlan_status_disconnected_info.handle == cbWLAN_DEFAULT_HANDLE){
|
switch(_wlan_status_disconnected_info.reason) {
|
||||||
switch(_wlan_status_disconnected_info.reason) {
|
case cbWLAN_STATUS_DISCONNECTED_AUTH_FAILURE:
|
||||||
error_code = NSAPI_ERROR_NO_SSID;
|
case cbWLAN_STATUS_DISCONNECTED_ASSOC_FAILURE:
|
||||||
break;
|
case cbWLAN_STATUS_DISCONNECTED_MIC_FAILURE:
|
||||||
|
error_code = NSAPI_ERROR_AUTH_FAILURE;
|
||||||
case cbWLAN_STATUS_DISCONNECTED_AUTH_FAILURE:
|
break;
|
||||||
case cbWLAN_STATUS_DISCONNECTED_ASSOC_FAILURE:
|
case cbWLAN_STATUS_DISCONNECTED_NO_BSSID_FOUND:
|
||||||
case cbWLAN_STATUS_DISCONNECTED_MIC_FAILURE:
|
case cbWLAN_STATUS_DISCONNECTED_UNKNOWN:
|
||||||
error_code = NSAPI_ERROR_AUTH_FAILURE;
|
error_code = NSAPI_ERROR_NO_CONNECTION;
|
||||||
break;
|
break;
|
||||||
case cbWLAN_STATUS_DISCONNECTED_NO_BSSID_FOUND:
|
default:
|
||||||
case cbWLAN_STATUS_DISCONNECTED_UNKNOWN:
|
error_code = NSAPI_ERROR_DEVICE_ERROR;
|
||||||
error_code = NSAPI_ERROR_NO_CONNECTION;
|
break;
|
||||||
break;
|
|
||||||
default:
|
|
||||||
error_code = NSAPI_ERROR_DEVICE_ERROR;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
send_user_response_msg(ODIN_WIFI_MSG_USER_CONNECT, error_code);
|
send_user_response_msg(ODIN_WIFI_MSG_USER_CONNECT, error_code);
|
||||||
break;
|
break;
|
||||||
|
@ -1564,6 +1560,9 @@ void OdinWiFiInterface::init(bool debug = false)
|
||||||
memset(_mac_addr_str, 0, ODIN_WIFI_MAX_MAC_ADDR_STR);
|
memset(_mac_addr_str, 0, ODIN_WIFI_MAX_MAC_ADDR_STR);
|
||||||
memset(&_wlan_status_connected_info, 0, sizeof(cbWLAN_StatusConnectedInfo));
|
memset(&_wlan_status_connected_info, 0, sizeof(cbWLAN_StatusConnectedInfo));
|
||||||
memset(&_wlan_status_disconnected_info, 0, sizeof(cbWLAN_StatusDisconnectedInfo));
|
memset(&_wlan_status_disconnected_info, 0, sizeof(cbWLAN_StatusDisconnectedInfo));
|
||||||
|
_wlan_status_connected_info.handle = cbWLAN_DEFAULT_HANDLE;
|
||||||
|
_wlan_status_disconnected_info.handle = cbWLAN_DEFAULT_HANDLE;
|
||||||
|
_ap.handle = cbWLAN_DEFAULT_HANDLE;
|
||||||
|
|
||||||
_msg_pool = new MemoryPool<odin_wifi_msg_s, 11>();
|
_msg_pool = new MemoryPool<odin_wifi_msg_s, 11>();
|
||||||
|
|
||||||
|
@ -1655,6 +1654,7 @@ nsapi_error_t OdinWiFiInterface::wlan_connect(
|
||||||
cbRTSL_Status status = cbSTATUS_OK;
|
cbRTSL_Status status = cbSTATUS_OK;
|
||||||
cbWLAN_CommonConnectParameters connect_params;
|
cbWLAN_CommonConnectParameters connect_params;
|
||||||
cbWLAN_EnterpriseConnectParameters enterpriseParams;
|
cbWLAN_EnterpriseConnectParameters enterpriseParams;
|
||||||
|
static cbWLAN_Handle handle = cbWLAN_DEFAULT_HANDLE;
|
||||||
|
|
||||||
memset(&enterpriseParams, 0, sizeof(cbWLAN_EnterpriseConnectParameters));
|
memset(&enterpriseParams, 0, sizeof(cbWLAN_EnterpriseConnectParameters));
|
||||||
memset(&connect_params, 0, sizeof(cbWLAN_CommonConnectParameters));
|
memset(&connect_params, 0, sizeof(cbWLAN_CommonConnectParameters));
|
||||||
|
@ -1739,6 +1739,8 @@ nsapi_error_t OdinWiFiInterface::wlan_ap_start(
|
||||||
cbWLAN_CommonApParameters params;
|
cbWLAN_CommonApParameters params;
|
||||||
cbWLAN_WPAPSKApParameters wpa_params;
|
cbWLAN_WPAPSKApParameters wpa_params;
|
||||||
|
|
||||||
|
static cbWLAN_Handle handle = cbWLAN_DEFAULT_HANDLE;
|
||||||
|
|
||||||
char temp_passphrase[cbWLAN_MAX_PASSPHRASE_LENGTH];
|
char temp_passphrase[cbWLAN_MAX_PASSPHRASE_LENGTH];
|
||||||
|
|
||||||
memset(¶ms, 0, sizeof(cbWLAN_CommonApParameters));
|
memset(¶ms, 0, sizeof(cbWLAN_CommonApParameters));
|
||||||
|
@ -1793,7 +1795,7 @@ nsapi_error_t OdinWiFiInterface::wlan_ap_start(
|
||||||
error_code = NSAPI_ERROR_UNSUPPORTED;
|
error_code = NSAPI_ERROR_UNSUPPORTED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
_ap.handle = handle;
|
||||||
return error_code;
|
return error_code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1832,14 +1834,16 @@ void OdinWiFiInterface::wlan_scan_indication(cbWLAN_ScanIndicationInfo *scan_inf
|
||||||
|
|
||||||
void OdinWiFiInterface::wlan_status_indication(cbWLAN_StatusIndicationInfo status, void *data)
|
void OdinWiFiInterface::wlan_status_indication(cbWLAN_StatusIndicationInfo status, void *data)
|
||||||
{
|
{
|
||||||
struct odin_wifi_msg_s* msg = _msg_pool->alloc();
|
if (!flush_drvr_ind_pkts) {
|
||||||
MBED_ASSERT(msg != NULL);
|
struct odin_wifi_msg_s* msg = _msg_pool->alloc();
|
||||||
|
MBED_ASSERT(msg != NULL);
|
||||||
|
|
||||||
msg->type = status;
|
msg->type = status;
|
||||||
memcpy(&(msg->data), data, sizeof(odin_wifi_msg_s::data_t));
|
memcpy(&(msg->data), data, sizeof(odin_wifi_msg_s::data_t));
|
||||||
|
|
||||||
osStatus ok = _in_queue.put(msg, 0);
|
osStatus ok = _in_queue.put(msg, 0);
|
||||||
MBED_ASSERT(ok == osOK);
|
MBED_ASSERT(ok == osOK);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static nsapi_security_t convertToNSAPI_security(cbWLAN_AuthenticationSuite authSuit)
|
static nsapi_security_t convertToNSAPI_security(cbWLAN_AuthenticationSuite authSuit)
|
||||||
|
|
|
@ -65,9 +65,9 @@ class OdinWiFiInterface : public WiFiInterface, public EMACInterface
|
||||||
public:
|
public:
|
||||||
/** OdinWiFiInterface lifetime
|
/** OdinWiFiInterface lifetime
|
||||||
*/
|
*/
|
||||||
OdinWiFiInterface(OdinWiFiEMAC &emac = OdinWiFiEMAC::get_instance(), OnboardNetworkStack &stack = OnboardNetworkStack::get_default_instance());
|
OdinWiFiInterface(OdinWiFiEMAC &emac_obj = OdinWiFiEMAC::get_instance(), OnboardNetworkStack &stack = OnboardNetworkStack::get_default_instance());
|
||||||
|
|
||||||
OdinWiFiInterface(bool debug, OdinWiFiEMAC &emac = OdinWiFiEMAC::get_instance(), OnboardNetworkStack &stack = OnboardNetworkStack::get_default_instance());
|
OdinWiFiInterface(bool debug, OdinWiFiEMAC &emac_obj = OdinWiFiEMAC::get_instance(), OnboardNetworkStack &stack = OnboardNetworkStack::get_default_instance());
|
||||||
|
|
||||||
~OdinWiFiInterface();
|
~OdinWiFiInterface();
|
||||||
|
|
||||||
|
@ -340,6 +340,8 @@ private:
|
||||||
|
|
||||||
nsapi_error_t error_code;
|
nsapi_error_t error_code;
|
||||||
uint16_t beacon_interval;
|
uint16_t beacon_interval;
|
||||||
|
|
||||||
|
cbWLAN_Handle handle;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct scan_cache_s {
|
struct scan_cache_s {
|
||||||
|
@ -348,7 +350,6 @@ private:
|
||||||
cbWLAN_MACAddress bssid[ODIN_WIFI_SCAN_CACHE_SIZE];
|
cbWLAN_MACAddress bssid[ODIN_WIFI_SCAN_CACHE_SIZE];
|
||||||
};
|
};
|
||||||
|
|
||||||
cbWLAN_Handle handle = cbWLAN_INVALID_HANDLE;
|
|
||||||
OdinWifiState entry_connect_fail_wait_disconnect();
|
OdinWifiState entry_connect_fail_wait_disconnect();
|
||||||
OdinWifiState entry_wait_connect();
|
OdinWifiState entry_wait_connect();
|
||||||
OdinWifiState entry_wait_disconnect();
|
OdinWifiState entry_wait_disconnect();
|
||||||
|
@ -442,6 +443,11 @@ private:
|
||||||
|
|
||||||
bool _debug;
|
bool _debug;
|
||||||
int _dbg_timeout;
|
int _dbg_timeout;
|
||||||
|
|
||||||
|
OdinWiFiEMAC &emac = OdinWiFiEMAC::get_instance();
|
||||||
|
|
||||||
|
// This flag is added to flush the packets that were coming in between while the status was connected hence causing message pool overflow
|
||||||
|
bool flush_drvr_ind_pkts = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue