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
- Branch:
- PassingRegression
- Revision:
- 121:ac4f59839e4f
- Parent:
- 120:779b74689747
- Child:
- 122:62166886db5f
--- a/source/ATCmdManager.cpp Mon May 27 17:00:43 2019 +0000 +++ b/source/ATCmdManager.cpp Sat Jun 01 15:29:03 2019 +0000 @@ -21,7 +21,7 @@ Queue<at_ble_msg_t, PQDSZ_BLE> *aT2BleDataQueue, MemoryPool<ble_at_msg_t, PQDSZ_BLE> *ble2ATDatamPool, Queue<ble_at_msg_t, PQDSZ_BLE> *ble2ATDataQueue, - bool debug) + startup_config_t *startup_config, bool debug) : _serial(tx, rx, DEFAULT_BAUD_RATE), uart_config(uart_config), @@ -42,6 +42,7 @@ _aT2BleDataQueue(aT2BleDataQueue), _ble2ATDatamPool(ble2ATDatamPool), _ble2ATDataQueue(ble2ATDataQueue), + startup_config(startup_config), _parser(&_serial) @@ -75,7 +76,7 @@ _parser.oob("AT+UBTPM", callback(this, &ATCmdManager::_oob_ok_hdlr)); _parser.oob("AT+UDSC=", callback(this, &ATCmdManager::_oob_ok_hdlr)); - _parser.oob("AT&W", callback(this, &ATCmdManager::_oob_ok_hdlr)); + _parser.oob("AT&W", callback(this, &ATCmdManager::_oob_saveSettings_hdlr)); //_parser.oob("AT+UBTPM", callback(this, &ATCmdManager::_oob_ok_hdlr)); //_parser.oob("AT+UBTPM", callback(this, &ATCmdManager::_oob_ok_hdlr)); //_parser.oob("AT+UWSCD=", callback(this, &ATCmdManager::_oob_disconnectWiFiNetwork)); @@ -87,6 +88,9 @@ _parser.oob("AT+UNSTAT=", callback(this, &ATCmdManager::_oob_getNetworkStatus)); _parser.oob("AT+UWSSTAT", callback(this, &ATCmdManager::_oob_WiFiNetworkStatus)); + _parser.oob("AT+UFACTORY", callback(this, &ATCmdManager::_oob_factoryReset)); + _parser.oob("AT+UDELCFG=", callback(this, &ATCmdManager::_oob_deleteConfiguration)); + //_parser.oob("AT+UWSC=0,5", callback(this, &ATCmdManager::_oob_sendHttpMessage)); //sendAtConfirmation("Testing:: +UBTLE:2\r\nOK\r\n"); dbg_printf(LOG, "\n --- ATCmdManager constructor completed ---\n"); @@ -260,8 +264,8 @@ { // AT Event state dbg_printf(LOG, "\n [ATCMD MAN] AT_BLE_EVENT RESPONSE RECEIVED!!\r\n"); - respStr = (char *) resp_data->buffer; - sendBleAtEvent(respStr, resp_data->dataLen); + respStr = (char *) ble_resp_data->buffer; + sendBleAtEvent(respStr, ble_resp_data->dataLen); at_resp = AT_RESP_NONE; break; } @@ -270,6 +274,7 @@ // AT Event state dbg_printf(LOG, "\n [ATCMD MAN] AT_BLE_RESPONSE RECEIVED!!\r\n"); respStr = (char *) ble_resp_data->buffer; + ble_resp_data->buffer[ble_resp_data->dataLen] = NULL; sendBleDataEvent(respStr, ble_resp_data->dataLen); at_resp = AT_RESP_NONE; break; @@ -869,11 +874,19 @@ void ATCmdManager::_oob_get_ble_role(){ trigger_start_BLE(); dbg_printf(LOG, "\n Received get BLE role command!!\n"); - sendAtConfirmation("+UBTLE:2\r\nOK\r\n"); //_parser.send(OK_RESP); + if(startup_config->ble_enable) + { + sendAtConfirmation("+UBTLE:2\r\nOK\r\n"); //_parser.send(OK_RESP); + } + else // disabled + { + sendAtConfirmation("+UBTLE:0\r\nOK\r\n"); //_parser.send(OK_RESP); + } } void ATCmdManager::_oob_ena_ble_peri(){ dbg_printf(LOG, "\n Received enable BLE Peripheral command!!\n"); + startup_config->ble_enable = true; sendAtConfirmation(OK_RESP); //_parser.send(OK_RESP); } @@ -883,6 +896,33 @@ system_reset(); } + +void ATCmdManager::_oob_factoryReset(){ + dbg_printf(LOG, "\n Received factory reset command!!\n"); + resetConfiguration(); + sendAtConfirmation(OK_RESP); //_parser.send(OK_RESP); +} + + +void ATCmdManager::_oob_deleteConfiguration(){ + dbg_printf(LOG, "\n Received delete configuration command!!\n"); + int configKey; + bool res = false; + if(_parser.scanf("%d", &configKey) >0) + { + res = deleteConfiguration((nvstore_key_t) configKey); + } + if(res) + sendAtConfirmation(OK_RESP); //_parser.send(OK_RESP); +} + + + +void ATCmdManager::_oob_saveSettings_hdlr() +{ + saveConfiguration(APP_CONFIG_0); + sendAtConfirmation(OK_RESP); +} const char * ATCmdManager::sec2str(nsapi_security_t sec) { switch (sec) { @@ -1258,7 +1298,7 @@ if(evt.status == osEventMessage){ ble_resp_data = (ble_at_msg_t*)evt.value.p; setNextResponse(ble_resp_data->at_resp); - dbg_printf(LOG, "[ATCMD MAN] dequeued data size = %d : at_resp = %d\n", resp_data->dataLen, resp_data->at_resp); + dbg_printf(LOG, "[ATCMD MAN] dequeued data size = %d : at_resp = %d\n", ble_resp_data->dataLen, ble_resp_data->at_resp); } return true; }