From 6356012fd68353dfba69f894f71a1447190e1425 Mon Sep 17 00:00:00 2001 From: Gregg Date: Sun, 13 Jun 2021 14:49:36 -0500 Subject: [PATCH] Added 'V' command to CLI This command erases all values of saved Characteristics --- src/HomeSpan.cpp | 9 +++++++++ src/HomeSpan.h | 8 +++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/HomeSpan.cpp b/src/HomeSpan.cpp index 7fc6a47..381f1e3 100644 --- a/src/HomeSpan.cpp +++ b/src/HomeSpan.cpp @@ -784,6 +784,14 @@ void Span::processSerialCommand(const char *c){ } break; + case 'V': { + + nvs_erase_all(charNVS); + nvs_commit(charNVS); + Serial.print("\n*** Values for all saved Characteristics erased!\n\n"); + } + break; + case 'H': { statusLED.off(); @@ -893,6 +901,7 @@ void Span::processSerialCommand(const char *c){ Serial.print(" O - change the OTA password\n"); Serial.print(" A - start the HomeSpan Setup Access Point\n"); Serial.print("\n"); + Serial.print(" V - delete value settings for all saved Characteristics\n"); Serial.print(" U - unpair device by deleting all Controller data\n"); Serial.print(" H - delete HomeKit Device ID as well as all Controller data and restart\n"); Serial.print("\n"); diff --git a/src/HomeSpan.h b/src/HomeSpan.h index dc52ac4..b723080 100644 --- a/src/HomeSpan.h +++ b/src/HomeSpan.h @@ -380,6 +380,8 @@ struct SpanCharacteristic{ template void init(T val, boolean nvsStore, A min=0, B max=1){ + int nvsFlag=0; + uvSet(value,val); uvSet(newValue,val); uvSet(minValue,min); @@ -396,10 +398,12 @@ struct SpanCharacteristic{ if(!nvs_get_blob(homeSpan.charNVS,nvsKey,NULL,&len)){ nvs_get_blob(homeSpan.charNVS,nvsKey,&value,&len); newValue=value; + nvsFlag=2; } else { nvs_set_blob(homeSpan.charNVS,nvsKey,&value,sizeof(UVal)); // store data nvs_commit(homeSpan.charNVS); // commit to NVS + nvsFlag=1; } } @@ -407,8 +411,10 @@ struct SpanCharacteristic{ if(format!=STRING && format!=BOOL) homeSpan.configLog+= " Range=[" + String(uvPrint(minValue)) + "," + String(uvPrint(maxValue)) + "]"; - if(nvsStore) + if(nvsFlag==2) homeSpan.configLog+=" (restored)"; + else if(nvsFlag==1) + homeSpan.configLog+=" (storing)"; boolean valid=false;