this is using the mbed os version 5-13-1
Revision 80:e8f0e92e3ac9, committed 2019-03-21
- 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
--- 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));