Okundu Omeni
/
wifi-https-ble-sm-uart-atcmd-5-13-1
this is using the mbed os version 5-13-1
Diff: source/ATCmdManager.cpp
- Revision:
- 87:99b37d26ff2a
- Parent:
- 86:04fc2fcda7ec
- Child:
- 88:7ffa053be662
--- a/source/ATCmdManager.cpp Thu Mar 28 23:41:10 2019 +0000 +++ b/source/ATCmdManager.cpp Fri Mar 29 22:18:33 2019 +0000 @@ -10,10 +10,10 @@ Queue<wifi_cmd_message_t, 16> *aT2WiFiCmdQueue, 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<at_data_msg_t, 4> *wiFi2ATDatamPool, - Queue<at_data_msg_t, 4> *wiFi2ATDataQueue, + MemoryPool<wifi_data_msg_t, PQDSZ> *aT2WiFiDatamPool, + Queue<wifi_data_msg_t, PQDSZ> *aT2WiFiDataQueue, + MemoryPool<at_data_msg_t, PQDSZ> *wiFi2ATDatamPool, + Queue<at_data_msg_t, PQDSZ> *wiFi2ATDataQueue, bool debug) : _serial(tx, rx, DEFAULT_BAUD_RATE), @@ -68,12 +68,14 @@ printf("\n --- ATCmdManager constructor completed ---\n"); at_resp = AT_RESP_NONE; dataMode = AT_CMD_DATA_MODE; + event_queue.call_every(120000,&print_memory_info); //AT+UMRS=230400,2,8,1,1,1 // AT+UBTLE } void ATCmdManager::runMain(){ + printf("\r\n [ATCMD MAN] Thread Id = %d\r\n", Thread::gettid()); while(true){ _process_oob(UBLOX_ODIN_W2_RECV_TIMEOUT, true); wait_ms(MAIN_LOOP_WAIT_TIME_MS); // allow BTLE/WiFi some time @@ -84,6 +86,7 @@ void ATCmdManager::processResponses(){ dequeueATresponse(); + dequeueWiFidataResponse(); switch(at_resp){ case AT_RESP_NONE: // IDLE response state @@ -140,6 +143,7 @@ // AT_HTTP_RESP response state //////_smutex.lock(); printf("\n [ATCMD MAN] WIFI HTTPS RESPONSE RECEIVED!!\n"); + return_response(); _parser.send("OK\n"); //////_smutex.unlock(); at_resp = AT_RESP_NONE; @@ -198,6 +202,8 @@ bool ATCmdManager::createHttpRequest() { http_request_t http_req; + printf("\nsizeof(http_req) on creation = %d\n", sizeof(http_req)); + char s1[32]; char s2[32]; char s3[32]; @@ -254,6 +260,8 @@ // package and send on wifi data queue wifi_data_msg_t data_msg; data_msg.wifi_cmd = WIFI_CMD_SEND_HTTPS_REQ; + printf("\nsizeof(http_req) on population = %d\n", sizeof(http_req)); +/* data_msg.dataLen = sizeof(http_req.method) + sizeof(http_req.body) + http_req.request_URI.capacity() + @@ -262,6 +270,15 @@ http_req.AcceptVal.capacity() + http_req.contentType.capacity() + http_req.contentLen.capacity(); +*/ + data_msg.dataLen = sizeof(http_req.method) + + sizeof(http_req.body) + + http_req.request_URI.size() + + http_req.http_version.size() + + http_req.hostName.size() + + http_req.AcceptVal.size() + + http_req.contentType.size() + + http_req.contentLen.size(); memcpy(data_msg.buffer,&http_req, data_msg.dataLen); // queue next data request queueWiFiDataRequest(data_msg); @@ -275,7 +292,7 @@ if(dataMode == AT_EXT_DATA_MODE) { int n; - if(cnt++ % 10 == 0)printf("In EDM mode\n"); + //if(cnt++ % 10 == 0)printf("In EDM mode\n"); uint8_t edm[EDM_HDR_LEN]; // Poll for edm packets @@ -308,7 +325,7 @@ printf("%d bytes read - expected %d!\n", n, pLen); for(int i =0;i<pLen;i++){ if(i%8==0) printf("\n[%3d]",i/8); - printf("%2x ", rx_buf_ptr[i]); + printf("%02x ", rx_buf_ptr[i]); } printf("\n"); printf("rx_buf_ptr[pLen-1] = %0x\n",rx_buf_ptr[pLen-1]); @@ -782,7 +799,7 @@ return true; } -bool ATCmdManager::dequeueATdataResponse(){ +bool ATCmdManager::dequeueWiFidataResponse(){ if(at_resp != AT_RESP_NONE) return false; // busy osEvent evt = _wiFi2ATDataQueue->get(0); if(evt.status == osEventMessage){ @@ -794,4 +811,10 @@ } - +void ATCmdManager::return_response() { + char * resp = (char *) resp_data->buffer; + printf("\n[ATCMD MAN] received response:\n"); + printf("%s\r\n", (char *)resp); + _wiFi2ATDatamPool->free(resp_data); + +}