string config done
This commit is contained in:
@ -67,7 +67,7 @@ static bool setStringParameterCmd(uint8_t argc, char **args, size_t offset) {
|
|||||||
sendFormatString("set %s to %s\n\r", parameterName, newParameterValue);
|
sendFormatString("set %s to %s\n\r", parameterName, newParameterValue);
|
||||||
|
|
||||||
eepromReadConfigBlock(&configBlock);
|
eepromReadConfigBlock(&configBlock);
|
||||||
strcpy(((char*) (*(((char*)&configBlock) + offset))), newParameterValue);
|
strcpy((((char*)&configBlock) + offset), newParameterValue);
|
||||||
eepromWriteConfigBlock(&configBlock);
|
eepromWriteConfigBlock(&configBlock);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,14 +79,63 @@ static bool setDeviceNameCmd(uint8_t argc, char **args) {
|
|||||||
return setStringParameterCmd(argc, args, offsetof(t_configBlock, deviceName));
|
return setStringParameterCmd(argc, args, offsetof(t_configBlock, deviceName));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool setBrokerNameCmd(uint8_t argc, char **args) {
|
||||||
|
return setStringParameterCmd(argc, args, offsetof(t_configBlock, brokerName));
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool setSyslogServerCmd(uint8_t argc, char **args) {
|
||||||
|
return setStringParameterCmd(argc, args, offsetof(t_configBlock, syslogServerName));
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool setWatchdogTopicCmd(uint8_t argc, char **args) {
|
||||||
|
return setStringParameterCmd(argc, args, offsetof(t_configBlock, watchdogTopic));
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool setStartupTopicCmd(uint8_t argc, char **args) {
|
||||||
|
return setStringParameterCmd(argc, args, offsetof(t_configBlock, startupTopic));
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool setStatusTopicCmd(uint8_t argc, char **args) {
|
||||||
|
return setStringParameterCmd(argc, args, offsetof(t_configBlock, statusTopic));
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool setMbusDataTopicCmd(uint8_t argc, char **args) {
|
||||||
|
return setStringParameterCmd(argc, args, offsetof(t_configBlock, mbusDataTopic));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
const static cmd_t SET_COMMANDS[] = {
|
const static cmd_t SET_COMMANDS[] = {
|
||||||
{ .name = "devicename", .cmdFunc = setDeviceNameCmd,
|
{ .name = "devicename", .cmdFunc = setDeviceNameCmd,
|
||||||
.help = \
|
.help = \
|
||||||
"devicename ........................... Name of this device\n\r"
|
"devicename ........................... Name of this device\n\r"
|
||||||
},
|
},
|
||||||
|
{ .name = "brokername", .cmdFunc = setBrokerNameCmd,
|
||||||
|
.help = \
|
||||||
|
"brokername ........................... Hostname of the MQTT broker\n\r"
|
||||||
|
},
|
||||||
|
{ .name = "syslogserver", .cmdFunc = setSyslogServerCmd,
|
||||||
|
.help = \
|
||||||
|
"syslogserver ......................... Hostname of the Syslog server\n\r"
|
||||||
|
},
|
||||||
|
{ .name = "watchdogtopic", .cmdFunc = setWatchdogTopicCmd,
|
||||||
|
.help = \
|
||||||
|
"watchdogtopic ........................ Watchdog Topic\n\r"
|
||||||
|
},
|
||||||
|
{ .name = "startuptopic", .cmdFunc = setStartupTopicCmd,
|
||||||
|
.help = \
|
||||||
|
"startuptopic ......................... Startup Topic\n\r"
|
||||||
|
},
|
||||||
|
{ .name = "statustopic", .cmdFunc = setStatusTopicCmd,
|
||||||
|
.help = \
|
||||||
|
"statustopic .......................... Status Topic\n\r"
|
||||||
|
},
|
||||||
|
{ .name = "mbusdatatopic", .cmdFunc = setMbusDataTopicCmd,
|
||||||
|
.help = \
|
||||||
|
"mbusdatatopic ........................ MBus Data Topic\n\r"
|
||||||
|
},
|
||||||
{ .name = "END_OF_CMDS", .help = "",.cmdFunc = NULL }
|
{ .name = "END_OF_CMDS", .help = "",.cmdFunc = NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
const static char UNKNOWN_PARAMETER[] = "unknown parameter\n\r";
|
const static char UNKNOWN_PARAMETER[] = "unknown parameter\n\r";
|
||||||
const static char OK_MSG[] = "OK\n\r";
|
const static char OK_MSG[] = "OK\n\r";
|
||||||
const static char FAILED_MSG[] = "Failed\n\r";
|
const static char FAILED_MSG[] = "Failed\n\r";
|
||||||
@ -97,8 +146,17 @@ static bool setCmd(uint8_t argc, char **args) {
|
|||||||
|
|
||||||
char *cmd = args[1];
|
char *cmd = args[1];
|
||||||
if (argc >= 2) {
|
if (argc >= 2) {
|
||||||
if (0 == strcmp("?", cmd)) {
|
if (0 == strcmp("help", cmd)) {
|
||||||
sendString("You can set the following parameters:\n\r");
|
sendString("You can set the following parameters:\n\r");
|
||||||
|
uint8_t cmdIdx = 0;
|
||||||
|
while (true) {
|
||||||
|
cmd_t command = SET_COMMANDS[cmdIdx];
|
||||||
|
if (0 == strcmp("END_OF_CMDS", command.name)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
sendString(command.help);
|
||||||
|
cmdIdx++;
|
||||||
|
}
|
||||||
retCode = true;
|
retCode = true;
|
||||||
} else {
|
} else {
|
||||||
uint8_t cmdIdx = 0;
|
uint8_t cmdIdx = 0;
|
||||||
@ -111,6 +169,7 @@ static bool setCmd(uint8_t argc, char **args) {
|
|||||||
if (0 == strcmp(cmd, command.name)) {
|
if (0 == strcmp(cmd, command.name)) {
|
||||||
retCode = command.cmdFunc(argc, args);
|
retCode = command.cmdFunc(argc, args);
|
||||||
messageToSend = retCode ? (uint8_t*)OK_MSG : (uint8_t*)FAILED_MSG;
|
messageToSend = retCode ? (uint8_t*)OK_MSG : (uint8_t*)FAILED_MSG;
|
||||||
|
sendString("Remember you need to restart to active this change.\n\r");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
cmdIdx++;
|
cmdIdx++;
|
||||||
@ -138,7 +197,7 @@ const cmd_t CONFIG_COMMANDS[] = {
|
|||||||
{ .name = "set", .cmdFunc = setCmd,
|
{ .name = "set", .cmdFunc = setCmd,
|
||||||
.help = \
|
.help = \
|
||||||
"set .................................. Set configuration parameters\n\r" \
|
"set .................................. Set configuration parameters\n\r" \
|
||||||
" Argument ? gives a list of \n\r" \
|
" Argument help gives a list of \n\r" \
|
||||||
" parameters\n\r"
|
" parameters\n\r"
|
||||||
},
|
},
|
||||||
{ .name = "restart", .cmdFunc = restartCmd,
|
{ .name = "restart", .cmdFunc = restartCmd,
|
||||||
|
Reference in New Issue
Block a user