* refactored handleCommand() to CommonCLI class

This commit is contained in:
Scott Powell
2025-02-27 17:00:44 +11:00
parent 1209d54d2e
commit e32fea0745
4 changed files with 302 additions and 385 deletions

49
src/helpers/CommonCLI.h Normal file
View File

@@ -0,0 +1,49 @@
#pragma once
#include "Mesh.h"
struct NodePrefs { // persisted to file
float airtime_factor;
char node_name[32];
double node_lat, node_lon;
char password[16];
float freq;
uint8_t tx_power_dbm;
uint8_t disable_fwd;
uint8_t advert_interval; // minutes
uint8_t unused;
float rx_delay_base;
float tx_delay_factor;
char guest_password[16];
float direct_tx_delay_factor;
};
class CommonCLICallbacks {
public:
virtual void savePrefs() = 0;
virtual const char* getFirmwareVer() = 0;
virtual bool formatFileSystem() = 0;
virtual void sendSelfAdvertisement(int delay_millis) = 0;
virtual void updateAdvertTimer() = 0;
virtual void setLoggingOn(bool enable) = 0;
virtual void eraseLogFile() = 0;
virtual void dumpLogFile() = 0;
};
class CommonCLI {
mesh::Mesh* _mesh;
NodePrefs* _prefs;
CommonCLICallbacks* _callbacks;
mesh::MainBoard* _board;
mesh::RTCClock* getRTCClock() { return _mesh->getRTCClock(); }
void savePrefs() { _callbacks->savePrefs(); }
void checkAdvertInterval();
public:
CommonCLI(mesh::MainBoard& board, mesh::Mesh* mesh, NodePrefs* prefs, CommonCLICallbacks* callbacks)
: _board(&board), _mesh(mesh), _prefs(prefs), _callbacks(callbacks) { }
void handleCommand(uint32_t sender_timestamp, const char* command, char* reply);
};