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:
- 89:45f6db09a76d
- Parent:
- 88:7ffa053be662
- Child:
- 90:ed0267eca7b5
--- a/source/ATCmdManager.cpp Sun Mar 31 22:09:45 2019 +0000 +++ b/source/ATCmdManager.cpp Mon Apr 01 08:00:41 2019 +0000 @@ -68,7 +68,7 @@ printf("\n --- ATCmdManager constructor completed ---\n"); at_resp = AT_RESP_NONE; dataMode = AT_CMD_DATA_MODE; - event_queue.call_every(120000,&print_memory_info); + event_queue.call_every(3600000,&print_memory_info); //AT+UMRS=230400,2,8,1,1,1 // AT+UBTLE } @@ -148,10 +148,29 @@ //////_smutex.unlock(); at_resp = AT_RESP_NONE; break; + case AT_HTTPS_RESP_DOWNLOAD: + // AT_HTTPS_RESP_DOWNLOAD response state + //////_smutex.lock(); + printf("\n [ATCMD MAN] WIFI HTTPS DOWNLOAD RESPONSE RECEIVED!!\n"); + return_response(true); // set download paramter to true + _parser.send("OK\n"); + //////_smutex.unlock(); + at_resp = AT_RESP_NONE; + break; case AT_HTTP_RESP: // AT_HTTP_RESP response state //////_smutex.lock(); printf("\n [ATCMD MAN] WIFI HTTP RESPONSE RECEIVED!!\n"); + return_response(); + _parser.send("OK\n"); + //////_smutex.unlock(); + at_resp = AT_RESP_NONE; + break; + case AT_HTTP_RESP_DOWNLOAD: + // AT_HTTP_RESP response state + //////_smutex.lock(); + printf("\n [ATCMD MAN] WIFI HTTP RESPONSE RECEIVED!!\n"); + return_response(true); // set download paramter to true _parser.send("OK\n"); //////_smutex.unlock(); at_resp = AT_RESP_NONE; @@ -167,6 +186,14 @@ } } +void ATCmdManager::printBufferInHex(uint8_t *buf, int pLen) +{ + for(int i =0;i<pLen;i++){ + if(i%8==0) printf("\n[%3d]",i); + printf("%02x ", buf[i]); + } + printf("\n"); +} bool ATCmdManager::validate(edm_header_t edm_header) { @@ -326,11 +353,7 @@ n = _parser.read((char *)rx_buf_ptr, pLen); if(n == -1) break; // timeout! 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("%02x ", rx_buf_ptr[i]); - } - printf("\n"); + printBufferInHex(rx_buf_ptr, pLen); printf("rx_buf_ptr[pLen-1] = %0x\n",rx_buf_ptr[pLen-1]); if(rx_buf_ptr[pLen-1] != EDM_STOP_BYTE) { break; // exit if stop byte now found - possible data corruption! @@ -814,10 +837,17 @@ } -void ATCmdManager::return_response() { +void ATCmdManager::return_response(bool download) { char * resp = (char *) resp_data->buffer; printf("\n[ATCMD MAN] received response:\n"); - printf("%s\r\n", (char *)resp); + if(download == false) // not download must be ascii header + { + printf("%.*s\r\n", resp_data->dataLen, resp); + } + else // dump payload as hex + { + printBufferInHex((uint8_t *)resp, resp_data->dataLen); + } _parser.write(resp, resp_data->dataLen); _wiFi2ATDatamPool->free(resp_data);