Added HELP command
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#include "cmd.h"
|
||||
#include "help.h"
|
||||
|
||||
#include <string.h>
|
||||
#include "data/track_store.h"
|
||||
@@ -132,6 +133,10 @@ Cmd::CommandId Cmd::parseCommandName(const char *input) {
|
||||
return ThermoSetHigh;
|
||||
}
|
||||
|
||||
if (strcmp(input, "HELP") == 0) {
|
||||
return HelpGlobal;
|
||||
}
|
||||
|
||||
return Unknown;
|
||||
}
|
||||
|
||||
@@ -507,6 +512,46 @@ int Cmd::handleThermoSetHigh(unsigned short argc, char* argv[]) {
|
||||
return result;
|
||||
}
|
||||
|
||||
int Cmd::handleHelpGlobal(unsigned short argc) {
|
||||
if (argc != 1) {
|
||||
#ifdef ERROR
|
||||
if (logger_ != nullptr) {
|
||||
logger_->error("HELP expects no arguments");
|
||||
}
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
#ifdef INFO
|
||||
if (logger_ != nullptr) {
|
||||
String line;
|
||||
line.reserve(96);
|
||||
|
||||
for (size_t idx = 0; cmd_help::kGlobalHelpText[idx] != '\0'; idx++) {
|
||||
char c = cmd_help::kGlobalHelpText[idx];
|
||||
|
||||
if (c == '\r') {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (c == '\n') {
|
||||
if (line.length() > 0) {
|
||||
logger_->info(line);
|
||||
line = "";
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
line += c;
|
||||
}
|
||||
|
||||
if (line.length() > 0) {
|
||||
logger_->info(line);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
int Cmd::handleUnknownCommand(unsigned short argc, char *argv[]) {
|
||||
#ifdef ERROR
|
||||
if (logger_ != nullptr) {
|
||||
@@ -564,6 +609,9 @@ int Cmd::dispatchCommand(CommandId command, unsigned short argc, char *argv[]) {
|
||||
case ThermoSetHigh:
|
||||
return this->handleThermoSetHigh(argc, argv);
|
||||
|
||||
case HelpGlobal:
|
||||
return this->handleHelpGlobal(argc);
|
||||
|
||||
case Unknown:
|
||||
default:
|
||||
return this->handleUnknownCommand(argc, argv);
|
||||
|
||||
@@ -30,6 +30,7 @@ private:
|
||||
BatterySetLow,
|
||||
ThermoSetLow,
|
||||
ThermoSetHigh,
|
||||
HelpGlobal,
|
||||
};
|
||||
|
||||
HardwareSerial *data_stream_;
|
||||
@@ -62,6 +63,7 @@ private:
|
||||
int handleBatterySetLow(unsigned short argc, char *argv[]);
|
||||
int handleThermoSetLow(unsigned short argc, char *argv[]);
|
||||
int handleThermoSetHigh(unsigned short argc, char *argv[]);
|
||||
int handleHelpGlobal(unsigned short argc);
|
||||
int handleUnknownCommand(unsigned short argc, char *argv[]);
|
||||
|
||||
public:
|
||||
|
||||
24
src/modules/cmd/help.h
Normal file
24
src/modules/cmd/help.h
Normal file
@@ -0,0 +1,24 @@
|
||||
// Copyright (C) 2026 Hector van der Aa <hector@h3cx.dev>
|
||||
// Copyright (C) 2026 Association Exergie <association.exergie@gmail.com>
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#pragma once
|
||||
|
||||
namespace cmd_help {
|
||||
static constexpr char kGlobalHelpText[] =
|
||||
"Available commands:\n"
|
||||
" HELP\n"
|
||||
" REBOOT\n"
|
||||
" CFG_DUMP\n"
|
||||
" CFG_RESET\n"
|
||||
" TRACK_PUT,<slot>,<name>,<point_a_lat>,<point_a_lng>,<point_b_lat>,<point_b_lng>\n"
|
||||
" TRACK_DELETE,<slot>\n"
|
||||
" TRACK_DUMP,<slot>\n"
|
||||
" TRACK_AUTODETECT\n"
|
||||
" DISPLAY_GPS_DEBUG\n"
|
||||
" DISPLAY_DRIVER_PRIMARY\n"
|
||||
" BATTERY_CAL,<actual_voltage>\n"
|
||||
" BATTERY_PRINT_VBAT\n"
|
||||
" BATTERY_SET_LOW,<voltage>\n"
|
||||
" THERMO_SET_LOW,<temperature>\n"
|
||||
" THERMO_SET_HIGH,<temperature>\n";
|
||||
} // namespace cmd_help
|
||||
Reference in New Issue
Block a user