Просмотр исходного кода

* refactor: removed mesh::Mesh dependency from CommonCLI

Scott Powell 1 год назад
Родитель
Сommit
f855523481

+ 3 - 1
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();
 

+ 3 - 1
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();
 

+ 1 - 1
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 {

+ 5 - 4
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);