Added HELP command
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
#include "cmd.h"
|
#include "cmd.h"
|
||||||
|
#include "help.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "data/track_store.h"
|
#include "data/track_store.h"
|
||||||
@@ -132,6 +133,10 @@ Cmd::CommandId Cmd::parseCommandName(const char *input) {
|
|||||||
return ThermoSetHigh;
|
return ThermoSetHigh;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strcmp(input, "HELP") == 0) {
|
||||||
|
return HelpGlobal;
|
||||||
|
}
|
||||||
|
|
||||||
return Unknown;
|
return Unknown;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -507,6 +512,46 @@ int Cmd::handleThermoSetHigh(unsigned short argc, char* argv[]) {
|
|||||||
return result;
|
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[]) {
|
int Cmd::handleUnknownCommand(unsigned short argc, char *argv[]) {
|
||||||
#ifdef ERROR
|
#ifdef ERROR
|
||||||
if (logger_ != nullptr) {
|
if (logger_ != nullptr) {
|
||||||
@@ -564,6 +609,9 @@ int Cmd::dispatchCommand(CommandId command, unsigned short argc, char *argv[]) {
|
|||||||
case ThermoSetHigh:
|
case ThermoSetHigh:
|
||||||
return this->handleThermoSetHigh(argc, argv);
|
return this->handleThermoSetHigh(argc, argv);
|
||||||
|
|
||||||
|
case HelpGlobal:
|
||||||
|
return this->handleHelpGlobal(argc);
|
||||||
|
|
||||||
case Unknown:
|
case Unknown:
|
||||||
default:
|
default:
|
||||||
return this->handleUnknownCommand(argc, argv);
|
return this->handleUnknownCommand(argc, argv);
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ private:
|
|||||||
BatterySetLow,
|
BatterySetLow,
|
||||||
ThermoSetLow,
|
ThermoSetLow,
|
||||||
ThermoSetHigh,
|
ThermoSetHigh,
|
||||||
|
HelpGlobal,
|
||||||
};
|
};
|
||||||
|
|
||||||
HardwareSerial *data_stream_;
|
HardwareSerial *data_stream_;
|
||||||
@@ -62,6 +63,7 @@ private:
|
|||||||
int handleBatterySetLow(unsigned short argc, char *argv[]);
|
int handleBatterySetLow(unsigned short argc, char *argv[]);
|
||||||
int handleThermoSetLow(unsigned short argc, char *argv[]);
|
int handleThermoSetLow(unsigned short argc, char *argv[]);
|
||||||
int handleThermoSetHigh(unsigned short argc, char *argv[]);
|
int handleThermoSetHigh(unsigned short argc, char *argv[]);
|
||||||
|
int handleHelpGlobal(unsigned short argc);
|
||||||
int handleUnknownCommand(unsigned short argc, char *argv[]);
|
int handleUnknownCommand(unsigned short argc, char *argv[]);
|
||||||
|
|
||||||
public:
|
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