this is using the mbed os version 5-13-1

Dependencies:   mbed-http

Revision:
81:637a87eb8170
Parent:
80:e8f0e92e3ac9
Child:
84:7c7add00f4bf
--- a/source/WiFiManager.h	Thu Mar 21 22:17:28 2019 +0000
+++ b/source/WiFiManager.h	Sat Mar 23 16:28:34 2019 +0000
@@ -22,19 +22,53 @@
     WiFiManager(wifi_config_t wifi_config, WiFiInterface *wifi, 
                 MemoryPool<wifi_cmd_message_t, 16> *aT2WiFimPool, 
                 Queue<wifi_cmd_message_t, 16> *aT2WiFiCmdQueue, 
-                MemoryPool<wifi_cmd_message_t, 16> *wiFi2ATmPool, 
-                Queue<wifi_cmd_message_t, 16> *wiFi2ATCmdQueue, 
+                MemoryPool<at_resp_message_t, 16> *wiFi2ATmPool, 
+                Queue<at_resp_message_t, 16> *wiFi2ATCmdQueue, 
                 MemoryPool<wifi_data_msg_t, 4> *aT2WiFiDatamPool, 
                 Queue<wifi_data_msg_t, 4> *aT2WiFiDataQueue, 
-                MemoryPool<wifi_data_msg_t, 4> *wiFi2ATDatamPool, 
-                Queue<wifi_data_msg_t, 4> *wiFi2ATDataQueue); 
+                MemoryPool<at_data_msg_t, 4> *wiFi2ATDatamPool, 
+                Queue<at_data_msg_t, 4> *wiFi2ATDataQueue); 
     ~WiFiManager();
+    void                  runMain();
+    void                  status_callback(nsapi_event_t status, intptr_t param);
+    
+
+
+private:
+    wifi_config_t     wifi_config;
+    internet_config_t internet_config;
+    WiFiInterface *network;
+    HttpsRequest* https_request;
+    HttpRequest* http_request;
+    HttpResponse* http_response;
+    nsapi_size_or_error_t lastScanCount;
+    wifi_cmd_t  wifiCmd;
+    /*  Queue and memory pool for AT to Wifi commands */
+    MemoryPool<wifi_cmd_message_t, 16> *_aT2WiFimPool;
+    Queue<wifi_cmd_message_t, 16> *_aT2WiFiCmdQueue;
+    
+    /*  Queue and memory pool for WiFi to AT commands */
+    MemoryPool<at_resp_message_t, 16> *_wiFi2ATmPool;
+    Queue<at_resp_message_t, 16> *_wiFi2ATCmdQueue;
+    
+    /*  Queue and memory pool for AT to WiFi data */
+    MemoryPool<wifi_data_msg_t, 4> *_aT2WiFiDatamPool;
+    Queue<wifi_data_msg_t, 4> *_aT2WiFiDataQueue;
+    wifi_data_msg_t *data_msg;
+    
+    /*  Queue and memory pool for WiFi to AT data */
+    MemoryPool<at_data_msg_t, 4> *_wiFi2ATDatamPool;
+    Queue<at_data_msg_t, 4> *_wiFi2ATDataQueue;
+
+    bool is_connected;
+    
     nsapi_size_or_error_t scanNetworks();
-    nsapi_size_or_error_t getAvailableAPs(WiFiAccessPoint * res, 
-                                          nsapi_size_t count);
+    nsapi_size_or_error_t getAvailableAPs(nsapi_size_t count);
     void                  set_WIFI_SSID(char * wifi_ssid);
     void                  set_WIFI_PASSWORD(char * wifi_pass);
     void                  set_WIFI_SECURITY(nsapi_security_t wifi_security);
+    void                  set_WIFI_CONFIG();
+    void                  set_internet_config();
     nsapi_error_t         connect();
     nsapi_error_t         disconnect();
     void                  createHttpsRequest(http_method method,
@@ -51,36 +85,12 @@
     void                  sendHttpRequest(const char * body, int bodyLen);
     bool                  setNextCommand(wifi_cmd_t cmd);
     bool                  dequeueWiFiCommands();
-    void                  runMain();
-    
-
+    bool                  queueATresponse(at_cmd_resp_t resp);
+    bool                  dequeueATdataResponse();
+    bool                  queueWiFiDataResponse(at_data_msg_t at_resp);
+    const char *          sec2str(nsapi_security_t sec);    
+    void                  free_DataMsg();
 
-private:
-    wifi_config_t wifi_config;
-    WiFiInterface *network;
-    HttpsRequest* https_request;
-    HttpRequest* http_request;
-    HttpResponse* http_response;
-    nsapi_size_or_error_t lastScanCount;
-    wifi_cmd_t  wifiCmd;
-    /*  Queue and memory pool for AT to Wifi commands */
-    MemoryPool<wifi_cmd_message_t, 16> *_aT2WiFimPool;
-    Queue<wifi_cmd_message_t, 16> *_aT2WiFiCmdQueue;
-    
-    /*  Queue and memory pool for WiFi to AT commands */
-    MemoryPool<wifi_cmd_message_t, 16> *_wiFi2ATmPool;
-    Queue<wifi_cmd_message_t, 16> *_wiFi2ATCmdQueue;
-    
-    /*  Queue and memory pool for AT to WiFi data */
-    MemoryPool<wifi_data_msg_t, 4> *_aT2WiFiDatamPool;
-    Queue<wifi_data_msg_t, 4> *_aT2WiFiDataQueue;
-    
-    
-    /*  Queue and memory pool for WiFi to AT data */
-    MemoryPool<wifi_data_msg_t, 4> wiFi2ATDatamPool;
-    Queue<wifi_data_msg_t, 4> wiFi2ATDataQueue;
-
-    
     /**
     * Allows timeout to be changed between commands
     *