From f855523481fd1064cdf28ce2a6999861a556c465 Mon Sep 17 00:00:00 2001 From: Scott Powell Date: Tue, 6 May 2025 11:51:51 +1000 Subject: [PATCH] * refactor: removed mesh::Mesh dependency from CommonCLI --- examples/simple_repeater/main.cpp | 4 +++- examples/simple_room_server/main.cpp | 4 +++- src/helpers/CommonCLI.cpp | 2 +- src/helpers/CommonCLI.h | 9 +++++---- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/examples/simple_repeater/main.cpp b/examples/simple_repeater/main.cpp index 3926cfec..c926a786 100644 --- a/examples/simple_repeater/main.cpp +++ b/examples/simple_repeater/main.cpp @@ -540,7 +540,7 @@ protected: public: MyMesh(mesh::MainBoard& board, mesh::Radio& radio, mesh::MillisecondClock& ms, mesh::RNG& rng, mesh::RTCClock& rtc, mesh::MeshTables& tables) : mesh::Mesh(radio, ms, rng, rtc, *new StaticPoolPacketManager(32), tables), - _cli(board, this, &_prefs, this), telemetry(MAX_PACKET_PAYLOAD - 4) + _cli(board, rtc, &_prefs, this), telemetry(MAX_PACKET_PAYLOAD - 4) { memset(known_clients, 0, sizeof(known_clients)); next_local_advert = next_flood_advert = 0; @@ -685,6 +685,8 @@ public: *dp = 0; // null terminator } + const uint8_t* getSelfIdPubKey() { return self_id.pub_key; } + void loop() { mesh::Mesh::loop(); diff --git a/examples/simple_room_server/main.cpp b/examples/simple_room_server/main.cpp index eabcf98e..dddef501 100644 --- a/examples/simple_room_server/main.cpp +++ b/examples/simple_room_server/main.cpp @@ -692,7 +692,7 @@ protected: public: MyMesh(mesh::MainBoard& board, mesh::Radio& radio, mesh::MillisecondClock& ms, mesh::RNG& rng, mesh::RTCClock& rtc, mesh::MeshTables& tables) : mesh::Mesh(radio, ms, rng, rtc, *new StaticPoolPacketManager(32), tables), - _cli(board, this, &_prefs, this), telemetry(MAX_PACKET_PAYLOAD - 4) + _cli(board, rtc, &_prefs, this), telemetry(MAX_PACKET_PAYLOAD - 4) { next_local_advert = next_flood_advert = 0; _logging = false; @@ -821,6 +821,8 @@ public: strcpy(reply, "not supported"); } + const uint8_t* getSelfIdPubKey() { return self_id.pub_key; } + void loop() { mesh::Mesh::loop(); diff --git a/src/helpers/CommonCLI.cpp b/src/helpers/CommonCLI.cpp index acf12574..7c0377e6 100644 --- a/src/helpers/CommonCLI.cpp +++ b/src/helpers/CommonCLI.cpp @@ -208,7 +208,7 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch sprintf(reply, "> %s", StrHelper::ftoa(_prefs->freq)); } else if (memcmp(config, "public.key", 10) == 0) { strcpy(reply, "> "); - mesh::Utils::toHex(&reply[2], _mesh->self_id.pub_key, PUB_KEY_SIZE); + mesh::Utils::toHex(&reply[2], _callbacks->getSelfIdPubKey(), PUB_KEY_SIZE); } else if (memcmp(config, "role", 4) == 0) { sprintf(reply, "> %s", _callbacks->getRole()); } else { diff --git a/src/helpers/CommonCLI.h b/src/helpers/CommonCLI.h index 27fd1c08..8bd3d150 100644 --- a/src/helpers/CommonCLI.h +++ b/src/helpers/CommonCLI.h @@ -41,16 +41,17 @@ public: virtual void dumpLogFile() = 0; virtual void setTxPower(uint8_t power_dbm) = 0; virtual void formatNeighborsReply(char *reply) = 0; + virtual const uint8_t* getSelfIdPubKey() = 0; }; class CommonCLI { - mesh::Mesh* _mesh; + mesh::RTCClock* _rtc; NodePrefs* _prefs; CommonCLICallbacks* _callbacks; mesh::MainBoard* _board; char tmp[80]; - mesh::RTCClock* getRTCClock() { return _mesh->getRTCClock(); } + mesh::RTCClock* getRTCClock() { return _rtc; } void savePrefs() { _callbacks->savePrefs(); } void checkAdvertInterval(); @@ -58,8 +59,8 @@ class CommonCLI { void loadPrefsInt(FILESYSTEM* _fs, const char* filename); public: - CommonCLI(mesh::MainBoard& board, mesh::Mesh* mesh, NodePrefs* prefs, CommonCLICallbacks* callbacks) - : _board(&board), _mesh(mesh), _prefs(prefs), _callbacks(callbacks) { } + CommonCLI(mesh::MainBoard& board, mesh::RTCClock& rtc, NodePrefs* prefs, CommonCLICallbacks* callbacks) + : _board(&board), _rtc(&rtc), _prefs(prefs), _callbacks(callbacks) { } void loadPrefs(FILESYSTEM* _fs); void savePrefs(FILESYSTEM* _fs);