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

Dependencies:   mbed-http

Files at this revision

API Documentation at this revision

Comitter:
ocomeni
Date:
Thu Mar 21 22:17:28 2019 +0000
Parent:
79:a2187bbfa407
Child:
81:637a87eb8170
Commit message:
implemented queue and memory pools for command and data passing between ATCmdManager and WiFiManager classes

Changed in this revision

source/ATCmdManager.cpp Show annotated file Show diff for this revision Revisions of this file
source/ATCmdManager.h Show annotated file Show diff for this revision Revisions of this file
source/WiFiManager.cpp Show annotated file Show diff for this revision Revisions of this file
source/WiFiManager.h Show annotated file Show diff for this revision Revisions of this file
source/common_types.h Show annotated file Show diff for this revision Revisions of this file
source/main-https.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/source/ATCmdManager.cpp	Wed Mar 20 21:02:47 2019 +0000
+++ b/source/ATCmdManager.cpp	Thu Mar 21 22:17:28 2019 +0000
@@ -6,16 +6,33 @@
 ATCmdManager::ATCmdManager(PinName tx, PinName rx, SMDevicePeripheral *blePeripheral, 
                            events::EventQueue &event_queue, WiFiManager *wifi, 
                            MemoryPool<wifi_cmd_message_t, 16> *aT2WiFimPool, 
-                           Queue<wifi_cmd_message_t, 16> *aT2WiFiCmdQueue, 
+                           Queue<wifi_cmd_message_t, 16>      *aT2WiFiCmdQueue, 
+                           MemoryPool<wifi_cmd_message_t, 16> *wiFi2ATmPool, 
+                           Queue<wifi_cmd_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, 
                            bool debug)
     :
     _serial(tx, rx, DEFAULT_BAUD_RATE),
-    _parser(&_serial),
     blePeripheral(blePeripheral),
     _event_queue(event_queue),
     wiFiManager(wiFiManager),
     _aT2WiFimPool(aT2WiFimPool),
-    _aT2WiFiCmdQueue(aT2WiFiCmdQueue)
+    _aT2WiFiCmdQueue(aT2WiFiCmdQueue),
+    
+    _wiFi2ATmPool(wiFi2ATmPool),
+    _wiFi2ATCmdQueue(wiFi2ATCmdQueue),
+    
+    _aT2WiFiDatamPool(aT2WiFiDatamPool),
+    _aT2WiFiDataQueue(aT2WiFiDataQueue),
+    
+    _wiFi2ATDatamPool(wiFi2ATDatamPool),
+    _wiFi2ATDataQueue(wiFi2ATDataQueue),
+    
+    _parser(&_serial)
+    
 
 { 
 // constructor
--- a/source/ATCmdManager.h	Wed Mar 20 21:02:47 2019 +0000
+++ b/source/ATCmdManager.h	Thu Mar 21 22:17:28 2019 +0000
@@ -19,6 +19,12 @@
                  events::EventQueue &event_queue, WiFiManager *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<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, 
                  bool debug = false);
 public:
     void runMain();
@@ -36,8 +42,26 @@
     ATCmdParser _parser;
     SMDevicePeripheral *blePeripheral;
     WiFiManager *wiFiManager;
+   
+    
+    /*  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;
+
+    
     // OOB processing
     void _process_oob(uint32_t timeout, bool all);
     // OOB message handlers
--- a/source/WiFiManager.cpp	Wed Mar 20 21:02:47 2019 +0000
+++ b/source/WiFiManager.cpp	Thu Mar 21 22:17:28 2019 +0000
@@ -3,8 +3,14 @@
 
 
 WiFiManager::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> *aT2WiFimPool, 
+                         Queue<wifi_cmd_message_t, 16> *aT2WiFiCmdQueue, 
+                         MemoryPool<wifi_cmd_message_t, 16> *wiFi2ATmPool, 
+                         Queue<wifi_cmd_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) 
 :
  wifi_config(wifi_config),
  network(wifi),
--- a/source/WiFiManager.h	Wed Mar 20 21:02:47 2019 +0000
+++ b/source/WiFiManager.h	Thu Mar 21 22:17:28 2019 +0000
@@ -21,7 +21,13 @@
 public:
     WiFiManager(wifi_config_t wifi_config, WiFiInterface *wifi, 
                 MemoryPool<wifi_cmd_message_t, 16> *aT2WiFimPool, 
-                Queue<wifi_cmd_message_t, 16> *aT2WiFiCmdQueue);
+                Queue<wifi_cmd_message_t, 16> *aT2WiFiCmdQueue, 
+                MemoryPool<wifi_cmd_message_t, 16> *wiFi2ATmPool, 
+                Queue<wifi_cmd_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); 
     ~WiFiManager();
     nsapi_size_or_error_t scanNetworks();
     nsapi_size_or_error_t getAvailableAPs(WiFiAccessPoint * res, 
@@ -57,9 +63,24 @@
     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
     *
--- a/source/common_types.h	Wed Mar 20 21:02:47 2019 +0000
+++ b/source/common_types.h	Thu Mar 21 22:17:28 2019 +0000
@@ -3,6 +3,7 @@
 #include <mbed.h>
 #include "ble/BLE.h"
 #include "SecurityManager.h"
+#include "common_config.h"
 #define BLE_MAX_DEVICE_NAME_LEN 10
 #define MAX_SSID_LEN 32
 #define MAX_PASSKEY_LEN 32
@@ -48,5 +49,10 @@
     wifi_cmd_t    wifi_cmd;   /* wifi command */
 } wifi_cmd_message_t;
 
+typedef struct {
+    wifi_cmd_t    wifi_cmd;              /* wifi data command */
+    uint8_t       Buffer[TX_BUFFER_LEN]; /* buffer length     */
+} wifi_data_msg_t;
+
 
 #endif  // __COMMON_TYPES_H__
\ No newline at end of file
--- a/source/main-https.cpp	Wed Mar 20 21:02:47 2019 +0000
+++ b/source/main-https.cpp	Thu Mar 21 22:17:28 2019 +0000
@@ -52,9 +52,25 @@
 
 LEDService *ledServicePtr;
 
+/*  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;
+
+
+
 
 /* allocate statically stacks for the three threads */
 //unsigned char rt_stk[1024];
@@ -418,7 +434,12 @@
     if (!network) {
         printf("ERROR: No WiFiInterface found.\n");
     }
-    wiFiManager = new WiFiManager(wifi_config, network, &aT2WiFimPool, &aT2WiFiCmdQueue);
+    wiFiManager = new WiFiManager(wifi_config, network, 
+                                  &aT2WiFimPool, &aT2WiFiCmdQueue,
+                                  &wiFi2ATmPool, &wiFi2ATCmdQueue,
+                                  &aT2WiFiDatamPool, &aT2WiFiDataQueue,
+                                  &wiFi2ATDatamPool, &wiFi2ATDataQueue
+                                  );
 #else
     NetworkInterface* network = connect_to_default_network_interface();
     int stop = Kernel::get_ms_count();
@@ -511,7 +532,10 @@
     device->printf("\r\n++++++ Starting ATCmdmanager ++++++ \r\n");
     ATCmdManager *aTCmdManager = new ATCmdManager(USBTX, USBRX, peripheral, 
                                                 eventQueue, wiFiManager, 
-                                                &aT2WiFimPool, &aT2WiFiCmdQueue, 
+                                                &aT2WiFimPool, &aT2WiFiCmdQueue,
+                                                &wiFi2ATmPool, &wiFi2ATCmdQueue,
+                                                &aT2WiFiDatamPool, &aT2WiFiDataQueue,
+                                                &wiFi2ATDatamPool, &wiFi2ATDataQueue,
                                                 true);
     aTCmdManager->runMain();
     //atcmd_thread.start(callback(aTCmdManager, &ATCmdManager::runMain));