Go to the documentation of this file.
46 #ifndef __KETCUBE_TERMINAL_COMMON_H
47 #define __KETCUBE_TERMINAL_COMMON_H
53 #include "ketCube_module_id.h"
161 #define KETCUBE_TERMINAL_PARAM_STR_MAX_LENGTH 64
162 #define KETCUBE_TERMINAL_PARAM_BYTE_ARRAY_MAX_LENGTH 32
164 #pragma pack(push, 1)
281 return sizeof(uint8_t);
283 return sizeof(uint16_t) + 1;
287 return sizeof(int32_t);
289 return sizeof(uint32_t);
291 return (2 *
sizeof(
int));
union ketCube_terminal_cmd_t::@6 settingsPtr
Command settings - depends on flags.
struct ketCube_terminal_cmd_t * subCmdList
Ptr to a subcommand list (if this is root command)
Definition: ketCube_terminal_common.h:328
@ KETCUBE_TERMINAL_CMD_ERR_INVALID_PARAMS
Definition: ketCube_terminal_common.h:68
bool isShowCmd
this command is a SHOW command
Definition: ketCube_terminal_common.h:94
ketCube_terminal_cmd_t ketCube_terminal_commands[]
KETCube root terminal commands.
Definition: ketCube_cmdList.c:199
@ KETCUBE_CMD_CHECK_FAILED_CONTEXT_ONLY_LOCAL
Definition: ketCube_terminal_common.h:141
bool isLocal
this command can be executed from local terminal
Definition: ketCube_terminal_common.h:88
KETCube terminal command flags.
Definition: ketCube_terminal_common.h:83
ketCube_terminal_command_errorCode_t
KETCube terminal command possible error codes.
Definition: ketCube_terminal_common.h:66
struct ketCube_remoteTerminal_packet_header_t ketCube_remoteTerminal_packet_header_t
KETCube terminal packet header (common)
@ KETCUBE_TERMINAL_CMD_ERR_MEMORY_IO_FAIL
Definition: ketCube_terminal_common.h:69
bool ketCube_terminal_checkCmdSubtreeContext(ketCube_terminal_command_flags_t *flags)
Check if the command definition is valid in given subtree context.
Definition: ketCube_terminal_common.c:402
ketCube_terminal_cmdCheckResult_t ketCube_terminal_checkCmdContext(ketCube_terminal_cmd_t *command, bool local)
Check if we can run given command in given context.
Definition: ketCube_terminal_common.c:425
KETCube terminal command parameter container.
Definition: ketCube_terminal_common.h:169
bool isEEPROM
this command modifies EEPROM variables
Definition: ketCube_terminal_common.h:97
char as_string[KETCUBE_TERMINAL_PARAM_STR_MAX_LENGTH]
Definition: ketCube_terminal_common.h:184
struct ketCube_remoteTerminal_single_cmd_header_t ketCube_remoteTerminal_single_cmd_header_t
KETCube terminal single command packet header.
byte data[KETCUBE_TERMINAL_PARAM_BYTE_ARRAY_MAX_LENGTH]
Definition: ketCube_terminal_common.h:191
union ketCube_terminal_paramSet_t ketCube_terminal_paramSet_t
KETCube terminal command parameter container.
ketCube_terminal_paramSet_type_t paramSetType
cmd input parameter type
Definition: ketCube_terminal_common.h:324
@ KETCUBE_CMD_CHECK_FAILED_CONTEXT_ONLY_REMOTE
Definition: ketCube_terminal_common.h:142
@ KETCUBE_TERMINAL_CMD_ERR_OK
Definition: ketCube_terminal_common.h:67
ketCube_terminal_command_errorCode_t commandErrorCode
Definition: ketCube_terminal_common.c:71
struct ketCube_terminal_paramSet_t::@2 as_module_id
int second
Definition: ketCube_terminal_common.h:188
bool isSetCmd
this command is a SET command
Definition: ketCube_terminal_common.h:93
@ KETCUBE_TERMINAL_PARAMS_INT32
Definition: ketCube_terminal_common.h:154
@ KETCUBE_TERMINAL_CMD_ERR_UNSPECIFIED_ERROR
Definition: ketCube_terminal_common.h:75
@ KETCUBE_TERMINAL_OPCODE_CMD
Definition: ketCube_terminal_common.h:59
@ KETCUBE_TERMINAL_PARAMS_INT32_PAIR
Definition: ketCube_terminal_common.h:156
struct ketCube_terminal_paramSet_t::@4 as_byte_array
uint16_t module_id
Definition: ketCube_terminal_common.h:176
ketCube_terminal_cmdCheckResult_t
KETCube command "before execution" check outcomes enum.
Definition: ketCube_terminal_common.h:138
uint8_t as_byte
Definition: ketCube_terminal_common.h:173
ketCube_terminal_command_flags_t flags
command flags
Definition: ketCube_terminal_common.h:322
@ KETCUBE_TERMINAL_PARAMS_UINT32
Definition: ketCube_terminal_common.h:155
void ketCube_terminal_printCmdList(ketCube_terminal_cmd_t *parent, ketCube_terminal_cmd_t *cmdList, ketCube_terminal_command_flags_t *contextFlags)
Prints command list at index/level.
Definition: ketCube_terminal_common.c:85
@ KETCUBE_CMD_CHECK_OK
Definition: ketCube_terminal_common.h:139
static int ketCube_terminal_GetIOParamsLength(ketCube_terminal_paramSet_type_t type)
Returns parameter length in bytes.
Definition: ketCube_terminal_common.h:300
@ KETCUBE_TERMINAL_PARAMS_BYTE_ARRAY
Definition: ketCube_terminal_common.h:157
@ KETCUBE_TERMINAL_PARAMS_MODULEID
Definition: ketCube_terminal_common.h:153
ketCube_terminal_paramSet_type_t
KETCube terminal command parameter type definitions.
Definition: ketCube_terminal_common.h:148
static void ketCube_terminal_andCmdFlags(ketCube_terminal_command_flags_t *out, ketCube_terminal_command_flags_t *in1, ketCube_terminal_command_flags_t *in2)
Returns and of flag(s) AND.
Definition: ketCube_terminal_common.h:115
@ KETCUBE_TERMINAL_PARAMS_NONE
Definition: ketCube_terminal_common.h:149
@ KETCUBE_TERMINAL_PARAMS_STRING
Definition: ketCube_terminal_common.h:151
bool isGeneric
this command is a Generic command
Definition: ketCube_terminal_common.h:101
@ KETCUBE_TERMINAL_CMD_ERR_CORE_API_MISMATCH
Definition: ketCube_terminal_common.h:77
char * cmd
command format
Definition: ketCube_terminal_common.h:320
int first
Definition: ketCube_terminal_common.h:187
bool isEnvCmd
this command is a ENV command
Definition: ketCube_terminal_common.h:92
@ KETCUBE_TERMINAL_OPCODE_BATCH
Definition: ketCube_terminal_common.h:60
KETCube common definitions.
static int ketCube_terminal_ParamSetTypeToCount(ketCube_terminal_paramSet_type_t type)
Returns parameter count based on param set type.
Definition: ketCube_terminal_common.h:245
KETCube configuration variable descriptor.
Definition: ketCube_cfg.h:156
@ KETCUBE_TERMINAL_PARAMS_BYTE
Definition: ketCube_terminal_common.h:152
bool isGroup
this record is command group (has subcommands, does not have handler)
Definition: ketCube_terminal_common.h:85
ketCube_terminal_paramSet_t commandIOParams
Definition: ketCube_terminal_common.c:70
struct ketCube_remoteTerminal_batch_cmd_header_t ketCube_remoteTerminal_batch_cmd_header_t
KETCube terminal batch command packet header (header of each command in batch)
struct ketCube_terminal_cmd_t ketCube_terminal_cmd_t
KETCube terminal command definition.
struct ketCube_cfg_varDescr_t * cfgVarPtr
The configuration variable descriptor - RAM/EEPROM (use for generic commands)
Definition: ketCube_terminal_common.h:329
char * descr
Human-readable command description/help.
Definition: ketCube_terminal_common.h:321
uint16_t length
Definition: ketCube_terminal_common.h:192
@ KETCUBE_TERMINAL_CMD_ERR_NOT_SUPPORTED
Definition: ketCube_terminal_common.h:76
@ KETCUBE_TERMINAL_PARAMS_BOOLEAN
Definition: ketCube_terminal_common.h:150
ketCube_moduleID_t moduleId
Definition: ketCube_terminal_common.h:331
int as_uint32
Definition: ketCube_terminal_common.h:182
@ KETCUBE_TERMINAL_CMD_ERR_COMMAND_NOT_FOUND
Definition: ketCube_terminal_common.h:72
@ KETCUBE_TERMINAL_CMD_ERR_MODULE_NOT_FOUND
Definition: ketCube_terminal_common.h:73
ketCube_severity_t
KETCube debug severity definition.
Definition: ketCube_cfg.h:125
struct ketCube_terminal_command_flags_t ketCube_terminal_command_flags_t
KETCube terminal command flags.
int as_int32
Definition: ketCube_terminal_common.h:180
@ KETCUBE_TERMINAL_CMD_ERR_FAILED_CONTEXT
Definition: ketCube_terminal_common.h:74
bool as_bool
Definition: ketCube_terminal_common.h:171
static int ketCube_terminal_GetIOParamsMinStaticLength(ketCube_terminal_paramSet_type_t type)
Returns parameter length in bytes.
Definition: ketCube_terminal_common.h:270
This file contains definitions for the KETCube configuration.
bool isRemote
this command can be executed from remote terminal
Definition: ketCube_terminal_common.h:89
struct ketCube_terminal_paramSet_t::@3 as_int32_pair
#define KETCUBE_TERMINAL_PARAM_BYTE_ARRAY_MAX_LENGTH
Definition: ketCube_terminal_common.h:162
void ketCube_terminal_execute(ketCube_terminal_cmd_t *cmd, ketCube_terminal_command_flags_t activeFlags)
Definition: ketCube_terminal_common.c:584
ketCube_terminal_paramSet_type_t outputSetType
cmd output parameter type
Definition: ketCube_terminal_common.h:323
ketCube_severity_t severity
Definition: ketCube_terminal_common.h:177
bool isRAM
this command modifies RAM variables
Definition: ketCube_terminal_common.h:98
KETCube terminal command definition.
Definition: ketCube_terminal_common.h:319
@ KETCUBE_CMD_CHECK_FAILED_DEFINITION
Definition: ketCube_terminal_common.h:140
void(* callback)(void)
Ptr to a custom callback.
Definition: ketCube_terminal_common.h:327
ketCube_terminal_command_opcode_t
Terminal opcodes.
Definition: ketCube_terminal_common.h:58
#define KETCUBE_TERMINAL_PARAM_STR_MAX_LENGTH
Definition: ketCube_terminal_common.h:161