Skip to content

Commit ee194a7

Browse files
author
Scott Powell
committed
* added CommonCLI::saveIdentity()
1 parent c28001d commit ee194a7

File tree

6 files changed

+47
-1
lines changed

6 files changed

+47
-1
lines changed

examples/simple_repeater/main.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -732,6 +732,20 @@ class MyMesh : public mesh::Mesh, public CommonCLICallbacks {
732732

733733
mesh::LocalIdentity& getSelfId() override { return self_id; }
734734

735+
void saveIdentity(const mesh::LocalIdentity& new_id) override {
736+
self_id = new_id;
737+
#if defined(NRF52_PLATFORM) || defined(STM32_PLATFORM)
738+
IdentityStore store(*_fs, "");
739+
#elif defined(ESP32)
740+
IdentityStore store(*_fs, "/identity");
741+
#elif defined(RP2040_PLATFORM)
742+
IdentityStore store(*_fs, "/identity");
743+
#else
744+
#error "need to define saveIdentity()"
745+
#endif
746+
store.save("_main", self_id);
747+
}
748+
735749
void clearStats() override {
736750
radio_driver.resetStats();
737751
resetStats();

examples/simple_room_server/main.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -865,6 +865,20 @@ class MyMesh : public mesh::Mesh, public CommonCLICallbacks {
865865

866866
mesh::LocalIdentity& getSelfId() override { return self_id; }
867867

868+
void saveIdentity(const mesh::LocalIdentity& new_id) override {
869+
self_id = new_id;
870+
#if defined(NRF52_PLATFORM) || defined(STM32_PLATFORM)
871+
IdentityStore store(*_fs, "");
872+
#elif defined(ESP32)
873+
IdentityStore store(*_fs, "/identity");
874+
#elif defined(RP2040_PLATFORM)
875+
IdentityStore store(*_fs, "/identity");
876+
#else
877+
#error "need to define saveIdentity()"
878+
#endif
879+
store.save("_main", self_id);
880+
}
881+
868882
void clearStats() override {
869883
radio_driver.resetStats();
870884
resetStats();

examples/simple_sensor/SensorMesh.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -837,6 +837,20 @@ bool SensorMesh::formatFileSystem() {
837837
#endif
838838
}
839839

840+
void SensorMesh::saveIdentity(const mesh::LocalIdentity& new_id) {
841+
self_id = new_id;
842+
#if defined(NRF52_PLATFORM) || defined(STM32_PLATFORM)
843+
IdentityStore store(*_fs, "");
844+
#elif defined(ESP32)
845+
IdentityStore store(*_fs, "/identity");
846+
#elif defined(RP2040_PLATFORM)
847+
IdentityStore store(*_fs, "/identity");
848+
#else
849+
#error "need to define saveIdentity()"
850+
#endif
851+
store.save("_main", self_id);
852+
}
853+
840854
void SensorMesh::applyTempRadioParams(float freq, float bw, uint8_t sf, uint8_t cr, int timeout_mins) {
841855
set_radio_at = futureMillis(2000); // give CLI reply some time to be sent back, before applying temp radio params
842856
pending_freq = freq;

examples/simple_sensor/SensorMesh.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ class SensorMesh : public mesh::Mesh, public CommonCLICallbacks {
8989
strcpy(reply, "not supported");
9090
}
9191
mesh::LocalIdentity& getSelfId() override { return self_id; }
92+
void saveIdentity(const mesh::LocalIdentity& new_id) override;
9293
void clearStats() override { }
9394
void applyTempRadioParams(float freq, float bw, uint8_t sf, uint8_t cr, int timeout_mins) override;
9495

src/helpers/CommonCLI.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,9 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch
305305
uint8_t prv_key[PRV_KEY_SIZE];
306306
bool success = mesh::Utils::fromHex(prv_key, PRV_KEY_SIZE, &config[8]);
307307
if (success) {
308-
_callbacks->getSelfId().readFrom(prv_key, PRV_KEY_SIZE);
308+
mesh::LocalIdentity new_id;
309+
new_id.readFrom(prv_key, PRV_KEY_SIZE);
310+
_callbacks->saveIdentity(new_id);
309311
strcpy(reply, "OK");
310312
} else {
311313
strcpy(reply, "Error, invalid key");

src/helpers/CommonCLI.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ class CommonCLICallbacks {
4747
// no op by default
4848
};
4949
virtual mesh::LocalIdentity& getSelfId() = 0;
50+
virtual void saveIdentity(const mesh::LocalIdentity& new_id) = 0;
5051
virtual void clearStats() = 0;
5152
virtual void applyTempRadioParams(float freq, float bw, uint8_t sf, uint8_t cr, int timeout_mins) = 0;
5253
};

0 commit comments

Comments
 (0)