Command Line Interface#
The Command Line Interface (CLI) software component simplifies creating command line user interfaces for programs. It handles tasks such as receiving keyboard input, parsing the input strings for commands and arguments, and finally calling the proper C function with decoded and validated arguments. Functions can use standard output functions such as printf to write information to the console. Many modules of the SDK have built-in commands that are provided via CLI, users can even add the custom commands if required.
The Command Line Interface (CLI) depends on I/O Stream for reading and writing bytes. You can set the I/O stream instance in the CLI instance configuration.
Modules#
Enumerations#
Enum of all the argument types.
Typedefs#
Argument type typedef.
Command handler data type.
Redirect command function.
sl cli input type t
sl cli handle t
Functions#
Initialize module.
Logout connected user from an instance.
Set a new password.
Destroy password key and force to configure a new password.
Reset security warning flag.
Add a new command group.
Remove a command group.
Find a command given the command groups and input arguments.
Find and execute a command given the string input and the command table.
Split a C-string on space, ignoring sections in {} or "".
Handle new input char from the terminal, both in terms of writing back to terminal and writing to the input buffer.
Empty the input buffer.
Get the hex argument length and value.
Clear (reset) a CLI.
Redirect user input.
Handle input.
Initialize a CLI instance.
Check if the CLI instance can allow sleep.
The bare metal tick function.
Macros#
sl cli nvm3 key count
sl cli nvm3 key begin
sl cli nvm3 key end
Ordinary text or non-special characters.
RETURN character.
escape character (0xb)
Must follow escape character. (0x5b)
A macro, which is used to create commands.
A macro, which is used to create command groups.
UINT8 argument type.
UINT16 argument type.
UINT32 argument type.
INT8 argument type.
INT16 argument type.
INT32 argument type.
STRING argument type.
HEX argument type.
Optional (zero or more) UINT8 argument type.
Optional (zero or more) UINT16 argument type.
Optional (zero or more) UINT32 argument type.
Optional (zero or more) INT8 argument type.
Optional (zero or more) INT16 argument type.
Optional (zero or more) INT32 argument type.
Optional (zero or more) STRING argument type.
Optional (zero or more) HEX argument type.
ADDITIONAL argument type.
WILDCARD argument type.
GROUP argument type.
END argument type.
MACROS ************************************.
Define the DOWN-direction.
Enable the CLI tick.
Obtain the number of command arguments.
Obtain the type of argument.
Obtain int8 arguments.
Obtain int16 arguments.
Obtain int32 arguments.
Obtain uint8 arguments.
Obtain uint16 arguments.
Obtain uint32 arguments.
Obtain string arguments.
Obtain the number of command strings.
Obtain the command string(s).
Enumeration Documentation#
sl_cli_arg_t#
sl_cli_arg_t
Enum of all the argument types.
Enumerator | |
---|---|
sl_cli_arg_uint8 | UINT8 argument type. |
sl_cli_arg_uint16 | UINT16 argument type. |
sl_cli_arg_uint32 | UINT32 argument type. |
sl_cli_arg_int8 | INT8 argument type. |
sl_cli_arg_int16 | INT16 argument type. |
sl_cli_arg_int32 | INT32 argument type. |
sl_cli_arg_string | STRING argument type. |
sl_cli_arg_hex | HEX argument type. |
sl_cli_arg_uint8opt | Optional (zero or more) UINT8 argument type. |
sl_cli_arg_uint16opt | Optional (zero or more) UINT16 argument type. |
sl_cli_arg_uint32opt | Optional (zero or more) UINT32 argument type. |
sl_cli_arg_int8opt | Optional (zero or more) INT8 argument type. |
sl_cli_arg_int16opt | Optional (zero or more) INT16 argument type. |
sl_cli_arg_int32opt | Optional (zero or more) INT32 argument type. |
sl_cli_arg_stringopt | Optional (zero or more) STRING argument type. |
sl_cli_arg_hexopt | Optional (zero or more) HEX argument type. |
sl_cli_arg_additionnal | ADDITIONAL argument type. |
sl_cli_arg_wildcard | WILDCARD argument type. |
sl_cli_arg_group | GROUP argument type. |
sl_cli_arg_end | END argument type. |
90
of file platform/service/cli/inc/sl_cli_arguments.h
Typedef Documentation#
sl_cli_argument_type_t#
typedef uint8_t sl_cli_argument_type_t
Argument type typedef.
90
of file platform/service/cli/inc/sl_cli_types.h
sl_cli_command_func_t#
typedef void(* sl_cli_command_func_t) (sl_cli_command_arg_t *arguments) )(sl_cli_command_arg_t *arguments)
Command handler data type.
102
of file platform/service/cli/inc/sl_cli_types.h
sl_cli_command_function_t#
typedef void(* sl_cli_command_function_t) (char *arg_str, void *user) )(char *arg_str, void *user)
Redirect command function.
105
of file platform/service/cli/inc/sl_cli_types.h
sl_cli_input_type_t#
typedef uint8_t sl_cli_input_type_t
sl cli input type t
138
of file platform/service/cli/inc/sl_cli_types.h
sl_cli_handle_t#
typedef sl_cli_t* sl_cli_handle_t
sl cli handle t
174
of file platform/service/cli/inc/sl_cli_types.h
Variable Documentation#
sl_cli_default_handle#
sl_cli_handle_t sl_cli_default_handle
The default CLI handle.
411
of file platform/service/cli/inc/sl_cli.h
sl_cli_default_command_group#
sl_cli_command_group_t* sl_cli_default_command_group
The default CLI command group.
416
of file platform/service/cli/inc/sl_cli.h
Function Documentation#
sl_cli_simple_password_init#
sl_status_t sl_cli_simple_password_init (void )
Initialize module.
N/A |
Returns
Initialization status .
51
of file platform/service/cli/inc/sl_cli_simple_password.h
sl_cli_simple_password_logout#
sl_status_t sl_cli_simple_password_logout (sl_cli_handle_t handle)
Logout connected user from an instance.
[in] | handle | A handle to the CLI. |
Returns
Initialization status.
60
of file platform/service/cli/inc/sl_cli_simple_password.h
sl_cli_set_simple_password#
sl_status_t sl_cli_set_simple_password (char * new_password)
Set a new password.
[in] | new_password | Password string |
Returns
Operation status.
69
of file platform/service/cli/inc/sl_cli_simple_password.h
sl_cli_simple_password_destroy_key#
sl_status_t sl_cli_simple_password_destroy_key (void )
Destroy password key and force to configure a new password.
N/A |
Returns
Operation status.
76
of file platform/service/cli/inc/sl_cli_simple_password.h
sl_cli_reset_security_warning_flag#
sl_status_t sl_cli_reset_security_warning_flag (void )
Reset security warning flag.
N/A |
Returns
Operation status.
83
of file platform/service/cli/inc/sl_cli_simple_password.h
sl_cli_command_add_command_group#
bool sl_cli_command_add_command_group (sl_cli_handle_t handle, sl_cli_command_group_t * command_group)
Add a new command group.
[inout] | handle | A handle to a CLI instance. |
[in] | command_group | A pointer to a command group structure. Note that the structure must initially have NULL in all elements except the command_table. |
Returns
Returns true if the command_group could be added, false otherwise.
112
of file platform/service/cli/inc/sl_cli_command.h
sl_cli_command_remove_command_group#
bool sl_cli_command_remove_command_group (sl_cli_handle_t handle, sl_cli_command_group_t * command_group)
Remove a command group.
[inout] | handle | A handle to a CLI instance. |
[in] | command_group | A pointer to a command group structure. |
Returns
Returns true if the command_group could be removed, false otherwise.
127
of file platform/service/cli/inc/sl_cli_command.h
sl_cli_command_find#
const sl_cli_command_entry_t * sl_cli_command_find (sl_cli_handle_t handle, int * token_c, char * token_v, int * arg_ofs, bool * single_flag, bool * help_flag)
Find a command given the command groups and input arguments.
[inout] | handle | A handle to a CLI instance. |
[in] | token_c | A number of arguments given. |
[in] | token_v | An array containing the token_v obtained from tokenization. |
[out] | arg_ofs | An integer that will get the index to the first command argument. Whether the command is in a group or not will affect the arg_ofs value. |
[out] | single_flag | Boolean that is set to true if a specific command is detected. For help, the function may return a pointer to a command entry table or NULL, and in these cases the single_flag is set to false. |
[out] | help_flag | Boolean that is set to true if "help" is detected, else set to false. |
Returns
A pointer to a command entry for the given command. If the command is not found, the returned value can be NULL. If a help command is issued, the returned value may point to a command entry table.
160
of file platform/service/cli/inc/sl_cli_command.h
sl_cli_command_execute#
sl_status_t sl_cli_command_execute (sl_cli_handle_t handle, char * input)
Find and execute a command given the string input and the command table.
[inout] | handle | A handle to a CLI instance. |
[inout] | input | C-string containing the user input. Must be '\0'-terminated. |
Note
The input string will be modified in-place.
Returns
Status of the execution.
183
of file platform/service/cli/inc/sl_cli_command.h
sl_cli_tokenize#
sl_status_t sl_cli_tokenize (char input, int * token_c, char * token_v)
Split a C-string on space, ignoring sections in {} or "".
[inout] | input | The C-string to be split. Must be '\0'-terminated. Will be modified, even if an error occurs. |
[out] | token_c | The number of tokens put in the token_v array. |
[out] | token_v | An array containing the tokens obtained from splitting. |
Note
This function modifies the content of the input string, and points the pointers in tokens to addresses in the input string. In quote strings ("") or curly braces ({}), the string will not be split, The quotes will be removed, but curly braces are kept for validation. To avoid '"' being interpreted as start/end of quote string, it may be escaped using '\"', both within and outside of "...". '{' may be escaped using * '\{'. There is no need for escaping '}', since only hex digits are allowed within {...}. Backslash also needs be be escaped, as '\'.
Returns
Status of the operation.
76
of file platform/service/cli/inc/sl_cli_tokenize.h
sl_cli_input_char#
bool sl_cli_input_char (sl_cli_handle_t handle, char c)
Handle new input char from the terminal, both in terms of writing back to terminal and writing to the input buffer.
[inout] | handle | A handle to a CLI instance. |
[in] | c | Input char to be processed by the function. |
This function should be called every time new input is detected. The behavior of the function is highly configurable through settings in cli_config.h.
Returns
Returns true if newline or return is detected, false otherwise.
79
of file platform/service/cli/inc/sl_cli_input.h
sl_cli_input_clear#
void sl_cli_input_clear (sl_cli_handle_t handle)
Empty the input buffer.
[inout] | handle | A handle to a CLI instance. |
This function should be called after newline has been detected and the information in the buffer has been processed.
93
of file platform/service/cli/inc/sl_cli_input.h
sl_cli_get_argument_hex#
uint8_t * sl_cli_get_argument_hex (sl_cli_command_arg_t * a, size_t n, size_t * l)
Get the hex argument length and value.
[in] | a | A pointer to the command arguments. |
[in] | n | The argument number. The first argument is number 0, the next 1, etc. |
[in] | l | A pointer to the variable that receives the argument value length. Note: The length is stored in a 2 byte variable. Valid lengths are in the range 0 .. 65535. |
Returns
A pointer to the value buffer.
436
of file platform/service/cli/inc/sl_cli.h
sl_cli_clear#
void sl_cli_clear (sl_cli_handle_t handle)
Clear (reset) a CLI.
[in] | handle | A handle to the CLI that will be cleared. |
445
of file platform/service/cli/inc/sl_cli.h
sl_cli_redirect_command#
void sl_cli_redirect_command (sl_cli_handle_t handle, sl_cli_command_function_t command_function, const char * prompt, void * aux)
Redirect user input.
[in] | handle | A handle to the CLI. |
[in] | command_function | A pointer to the function that will receive user input when the re-direct is active. NULL to stop the redirect. |
[in] | prompt | A pointer to a string that will be used as command prompt in the redirect function. NULL to stop the redirect. |
[in] | aux | A pointer that will be added to the redirect function arguments. NULL to stop the redirect. |
Normally, an input string is passed to the CLI command handler for execution, but with the redirect function the input string will be passed to the alternative function. If the alternative input function should not to be used, this function can be called with NULL in the command_function, prompt and aux.
471
of file platform/service/cli/inc/sl_cli.h
sl_cli_handle_input#
sl_status_t sl_cli_handle_input (sl_cli_handle_t handle, char * string)
Handle input.
[in] | handle | A handle to the CLI. |
[in] | string | A pointer to the string containing the command line that shall be executed. |
Execute a complete command line with command and arguments.
Returns
Execution status. Note: If the command is redirected, the function will always return SL_STATUS_OK.
488
of file platform/service/cli/inc/sl_cli.h
sl_cli_instance_init#
sl_status_t sl_cli_instance_init (sl_cli_handle_t handle, sl_cli_instance_parameters_t * parameters)
Initialize a CLI instance.
[in] | handle | A handle to the CLI. |
[in] | parameters | A pointer to the structure containing instance parameters. |
Returns
Initialization status.
503
of file platform/service/cli/inc/sl_cli.h
sl_cli_is_ok_to_sleep#
bool sl_cli_is_ok_to_sleep (sl_cli_handle_t handle)
Check if the CLI instance can allow sleep.
[in] | handle | A handle to the CLI instance. |
This function is available in a bare metal configuration only.
Returns
A boolean that is true if the CLI allows sleep, else false.
518
of file platform/service/cli/inc/sl_cli.h
sl_cli_tick_instance#
void sl_cli_tick_instance (sl_cli_handle_t handle)
The bare metal tick function.
[in] | handle | A handle to the CLI instance. |
527
of file platform/service/cli/inc/sl_cli.h
Macro Definition Documentation#
SL_CLI_NVM3_KEY_COUNT#
#define SL_CLI_NVM3_KEY_COUNTValue:
(0x100)
sl cli nvm3 key count
71
of file platform/service/cli/inc/sl_cli_types.h
SL_CLI_NVM3_KEY_BEGIN#
#define SL_CLI_NVM3_KEY_BEGINValue:
(0x3000)
sl cli nvm3 key begin
72
of file platform/service/cli/inc/sl_cli_types.h
SL_CLI_NVM3_KEY_END#
#define SL_CLI_NVM3_KEY_ENDValue:
(SL_CLI_NVM3_KEY_BEGIN + SL_CLI_NVM3_KEY_COUNT)
sl cli nvm3 key end
73
of file platform/service/cli/inc/sl_cli_types.h
SL_CLI_INPUT_ORDINARY#
#define SL_CLI_INPUT_ORDINARYValue:
(0U)
Ordinary text or non-special characters.
76
of file platform/service/cli/inc/sl_cli_types.h
SL_CLI_INPUT_RETURN#
#define SL_CLI_INPUT_RETURNValue:
(1U)
RETURN character.
77
of file platform/service/cli/inc/sl_cli_types.h
SL_CLI_INPUT_ESCAPE#
#define SL_CLI_INPUT_ESCAPEValue:
(2U)
escape character (0xb)
78
of file platform/service/cli/inc/sl_cli_types.h
SL_CLI_INPUT_ARROW#
#define SL_CLI_INPUT_ARROWValue:
(3U)
Must follow escape character. (0x5b)
79
of file platform/service/cli/inc/sl_cli_types.h
SL_CLI_COMMAND#
#define SL_CLI_COMMANDValue:
A macro, which is used to create commands.
81
of file platform/service/cli/inc/sl_cli_command.h
SL_CLI_COMMAND_GROUP#
#define SL_CLI_COMMAND_GROUPValue:
A macro, which is used to create command groups.
90
of file platform/service/cli/inc/sl_cli_command.h
SL_CLI_ARG_UINT8#
#define SL_CLI_ARG_UINT8Value:
(0x00U)
UINT8 argument type.
49
of file platform/service/cli/inc/sl_cli_arguments.h
SL_CLI_ARG_UINT16#
#define SL_CLI_ARG_UINT16Value:
(0x01U)
UINT16 argument type.
51
of file platform/service/cli/inc/sl_cli_arguments.h
SL_CLI_ARG_UINT32#
#define SL_CLI_ARG_UINT32Value:
(0x02U)
UINT32 argument type.
53
of file platform/service/cli/inc/sl_cli_arguments.h
SL_CLI_ARG_INT8#
#define SL_CLI_ARG_INT8Value:
(0x03U)
INT8 argument type.
55
of file platform/service/cli/inc/sl_cli_arguments.h
SL_CLI_ARG_INT16#
#define SL_CLI_ARG_INT16Value:
(0x04U)
INT16 argument type.
57
of file platform/service/cli/inc/sl_cli_arguments.h
SL_CLI_ARG_INT32#
#define SL_CLI_ARG_INT32Value:
(0x05U)
INT32 argument type.
59
of file platform/service/cli/inc/sl_cli_arguments.h
SL_CLI_ARG_STRING#
#define SL_CLI_ARG_STRINGValue:
(0x06U)
STRING argument type.
61
of file platform/service/cli/inc/sl_cli_arguments.h
SL_CLI_ARG_HEX#
#define SL_CLI_ARG_HEXValue:
(0x07U)
HEX argument type.
63
of file platform/service/cli/inc/sl_cli_arguments.h
SL_CLI_ARG_UINT8OPT#
#define SL_CLI_ARG_UINT8OPTValue:
(0x10U)
Optional (zero or more) UINT8 argument type.
65
of file platform/service/cli/inc/sl_cli_arguments.h
SL_CLI_ARG_UINT16OPT#
#define SL_CLI_ARG_UINT16OPTValue:
(0x11U)
Optional (zero or more) UINT16 argument type.
67
of file platform/service/cli/inc/sl_cli_arguments.h
SL_CLI_ARG_UINT32OPT#
#define SL_CLI_ARG_UINT32OPTValue:
(0x12U)
Optional (zero or more) UINT32 argument type.
69
of file platform/service/cli/inc/sl_cli_arguments.h
SL_CLI_ARG_INT8OPT#
#define SL_CLI_ARG_INT8OPTValue:
(0x13U)
Optional (zero or more) INT8 argument type.
71
of file platform/service/cli/inc/sl_cli_arguments.h
SL_CLI_ARG_INT16OPT#
#define SL_CLI_ARG_INT16OPTValue:
(0x14U)
Optional (zero or more) INT16 argument type.
73
of file platform/service/cli/inc/sl_cli_arguments.h
SL_CLI_ARG_INT32OPT#
#define SL_CLI_ARG_INT32OPTValue:
(0x15U)
Optional (zero or more) INT32 argument type.
75
of file platform/service/cli/inc/sl_cli_arguments.h
SL_CLI_ARG_STRINGOPT#
#define SL_CLI_ARG_STRINGOPTValue:
(0x16U)
Optional (zero or more) STRING argument type.
77
of file platform/service/cli/inc/sl_cli_arguments.h
SL_CLI_ARG_HEXOPT#
#define SL_CLI_ARG_HEXOPTValue:
(0x17U)
Optional (zero or more) HEX argument type.
79
of file platform/service/cli/inc/sl_cli_arguments.h
SL_CLI_ARG_ADDITIONAL#
#define SL_CLI_ARG_ADDITIONALValue:
(0x20U)
ADDITIONAL argument type.
81
of file platform/service/cli/inc/sl_cli_arguments.h
SL_CLI_ARG_WILDCARD#
#define SL_CLI_ARG_WILDCARDValue:
(0x21U)
WILDCARD argument type.
83
of file platform/service/cli/inc/sl_cli_arguments.h
SL_CLI_ARG_GROUP#
#define SL_CLI_ARG_GROUPValue:
(0xFEU)
GROUP argument type.
85
of file platform/service/cli/inc/sl_cli_arguments.h
SL_CLI_ARG_END#
#define SL_CLI_ARG_ENDValue:
(0xFFU)
END argument type.
87
of file platform/service/cli/inc/sl_cli_arguments.h
SL_CLI_INPUT_DIRECTION_UP#
#define SL_CLI_INPUT_DIRECTION_UPValue:
(1)
MACROS ************************************.
Define the UP-direction.
56
of file platform/service/cli/inc/sl_cli_input.h
SL_CLI_INPUT_DIRECTION_DOWN#
#define SL_CLI_INPUT_DIRECTION_DOWNValue:
(-1)
Define the DOWN-direction.
58
of file platform/service/cli/inc/sl_cli_input.h
SL_CLI_TICK_ENABLE#
#define SL_CLI_TICK_ENABLEValue:
1
Enable the CLI tick.
Trigger the creation of a tick task or the implentation of the tick handling function.
60
of file platform/service/cli/inc/sl_cli.h
sl_cli_get_argument_count#
#define sl_cli_get_argument_countValue:
(a)
Obtain the number of command arguments.
Users obtain the number of command arguments with this macro.
Returns
The number of command arguments.
An example could be the CLI input of example_sub_menu example_command hello 255 -100 {AA BB CC}
with corresponding C code of:
void example_command(sl_cli_command_arg_t *args)
{
// Get the number of arguments (after the command strings).
int arg_count = sl_cli_get_argument_count(args); // arg_count = 4
}
88
of file platform/service/cli/inc/sl_cli.h
sl_cli_get_argument_type#
#define sl_cli_get_argument_typeValue:
(a, n)
Obtain the type of argument.
Users obtain the type of the argument with this macro.
Returns
enum of the argument type.
For auto-generated commands, it could be useful in the handler to know the type of the argument.
111
of file platform/service/cli/inc/sl_cli.h
sl_cli_get_argument_int8#
#define sl_cli_get_argument_int8Value:
(a, n)
Obtain int8 arguments.
Returns
The argument value.
An example could be the CLI input of example_sub_menu example_command hello 255 -100 {AA BB CC}
with corresponding C code of:
void example_command(sl_cli_command_arg_t *args)
{
// Get the arguments (after the command strings).
char *text_ptr = sl_cli_get_argument_string(args, 0); // char ptr to
// "hello"
uint8_t num1_u8 = sl_cli_get_argument_uint8(args, 1); // num1_u8 = 255
int16_t num2_i16 = sl_cli_get_argument_int16(args, 2); // num2_i16 = -100
size_t hex_array_size;
uint8_t *hex_array_ptr = sl_cli_get_argument_hex(args, 3, &hex_array_size);
// uint8_t ptr to {0xAA, 0xBB, 0xCC}, hex_array_size = 3
}
144
of file platform/service/cli/inc/sl_cli.h
sl_cli_get_argument_int16#
#define sl_cli_get_argument_int16Value:
(a, n)
Obtain int16 arguments.
Returns
The argument value.
An example could be the CLI input of example_sub_menu example_command hello 255 -100 {AA BB CC}
with corresponding C code of:
void example_command(sl_cli_command_arg_t *args)
{
// Get the arguments (after the command strings).
char *text_ptr = sl_cli_get_argument_string(args, 0); // char ptr to
// "hello"
uint8_t num1_u8 = sl_cli_get_argument_uint8(args, 1); // num1_u8 = 255
int16_t num2_i16 = sl_cli_get_argument_int16(args, 2); // num2_i16 = -100
size_t hex_array_size;
uint8_t *hex_array_ptr = sl_cli_get_argument_hex(args, 3, &hex_array_size);
// uint8_t ptr to {0xAA, 0xBB, 0xCC}, hex_array_size = 3
}
177
of file platform/service/cli/inc/sl_cli.h
sl_cli_get_argument_int32#
#define sl_cli_get_argument_int32Value:
(a, n)
Obtain int32 arguments.
Returns
The argument value.
An example could be the CLI input of example_sub_menu example_command hello 255 -100 {AA BB CC}
with corresponding C code of:
void example_command(sl_cli_command_arg_t *args)
{
// Get the arguments (after the command strings).
char *text_ptr = sl_cli_get_argument_string(args, 0); // char ptr to
// "hello"
uint8_t num1_u8 = sl_cli_get_argument_uint8(args, 1); // num1_u8 = 255
int16_t num2_i16 = sl_cli_get_argument_int16(args, 2); // num2_i16 = -100
size_t hex_array_size;
uint8_t *hex_array_ptr = sl_cli_get_argument_hex(args, 3, &hex_array_size);
// uint8_t ptr to {0xAA, 0xBB, 0xCC}, hex_array_size = 3
}
210
of file platform/service/cli/inc/sl_cli.h
sl_cli_get_argument_uint8#
#define sl_cli_get_argument_uint8Value:
(a, n)
Obtain uint8 arguments.
Returns
The argument value.
An example could be the CLI input of example_sub_menu example_command hello 255 -100 {AA BB CC}
with corresponding C code of:
void example_command(sl_cli_command_arg_t *args)
{
// Get the arguments (after the command strings).
char *text_ptr = sl_cli_get_argument_string(args, 0); // char ptr to
// "hello"
uint8_t num1_u8 = sl_cli_get_argument_uint8(args, 1); // num1_u8 = 255
int16_t num2_i16 = sl_cli_get_argument_int16(args, 2); // num2_i16 = -100
size_t hex_array_size;
uint8_t *hex_array_ptr = sl_cli_get_argument_hex(args, 3, &hex_array_size);
// uint8_t ptr to {0xAA, 0xBB, 0xCC}, hex_array_size = 3
}
243
of file platform/service/cli/inc/sl_cli.h
sl_cli_get_argument_uint16#
#define sl_cli_get_argument_uint16Value:
(a, n)
Obtain uint16 arguments.
Returns
The argument value.
An example could be the CLI input of example_sub_menu example_command hello 255 -100 {AA BB CC}
with corresponding C code of:
void example_command(sl_cli_command_arg_t *args)
{
// Get the arguments (after the command strings).
char *text_ptr = sl_cli_get_argument_string(args, 0); // char ptr to
// "hello"
uint8_t num1_u8 = sl_cli_get_argument_uint8(args, 1); // num1_u8 = 255
int16_t num2_i16 = sl_cli_get_argument_int16(args, 2); // num2_i16 = -100
size_t hex_array_size;
uint8_t *hex_array_ptr = sl_cli_get_argument_hex(args, 3, &hex_array_size);
// uint8_t ptr to {0xAA, 0xBB, 0xCC}, hex_array_size = 3
}
276
of file platform/service/cli/inc/sl_cli.h
sl_cli_get_argument_uint32#
#define sl_cli_get_argument_uint32Value:
(a, n)
Obtain uint32 arguments.
Returns
The argument value.
An example could be the CLI input of example_sub_menu example_command hello 255 -100 {AA BB CC}
with corresponding C code of:
void example_command(sl_cli_command_arg_t *args)
{
// Get the arguments (after the command strings).
char *text_ptr = sl_cli_get_argument_string(args, 0); // char ptr to
// "hello"
uint8_t num1_u8 = sl_cli_get_argument_uint8(args, 1); // num1_u8 = 255
int16_t num2_i16 = sl_cli_get_argument_int16(args, 2); // num2_i16 = -100
size_t hex_array_size;
uint8_t *hex_array_ptr = sl_cli_get_argument_hex(args, 3, &hex_array_size);
// uint8_t ptr to {0xAA, 0xBB, 0xCC}, hex_array_size = 3
}
309
of file platform/service/cli/inc/sl_cli.h
sl_cli_get_argument_string#
#define sl_cli_get_argument_stringValue:
(a, n)
Obtain string arguments.
Returns
The argument value. For hex arguments, the return value is a pointer to a buffer containing decoded values. For string arguments, the return value is a pointer to the string.
An example could be the CLI input of example_sub_menu example_command hello 255 -100 {AA BB CC}
with corresponding C code of:
void example_command(sl_cli_command_arg_t *args)
{
// Get the arguments (after the command strings).
char *text_ptr = sl_cli_get_argument_string(args, 0); // char ptr to
// "hello"
uint8_t num1_u8 = sl_cli_get_argument_uint8(args, 1); // num1_u8 = 255
int16_t num2_i16 = sl_cli_get_argument_int16(args, 2); // num2_i16 = -100
size_t hex_array_size;
uint8_t *hex_array_ptr = sl_cli_get_argument_hex(args, 3, &hex_array_size);
// uint8_t ptr to {0xAA, 0xBB, 0xCC}, hex_array_size = 3
}
345
of file platform/service/cli/inc/sl_cli.h
sl_cli_get_command_count#
#define sl_cli_get_command_countValue:
(a)
Obtain the number of command strings.
Users obtain the number of command strings with this macro.
Returns
The number of command strings.
An example could be the CLI input of example_sub_menu example_command hello 255 -100 {AA BB CC}
with corresponding C code of:
void example_command(sl_cli_command_arg_t *args)
{
// Get the number of command strings (before the arguments).
int cmd_count = sl_cli_get_command_count(args); // cmd_count = 2
// (first string being "example_sub_menu" and second "example_command")
}
373
of file platform/service/cli/inc/sl_cli.h
sl_cli_get_command_string#
#define sl_cli_get_command_stringValue:
(a, n)
Obtain the command string(s).
Users get the command string with this macro. If the command is used in a group, both the group string(s) and command string can be obtained. The total number of command strings is available in the command argument arg_ofs variable.
An example could be the CLI input of example_sub_menu example_command hello 255 -100 {AA BB CC}
with corresponding C code of:
void example_command(sl_cli_command_arg_t *args)
{
// Get the command strings (before the arguments).
char *cmd1_ptr = sl_cli_get_command_string(args, 0); // char ptr to
// "example_sub_menu"
char *cmd2_ptr = sl_cli_get_command_string(args, 1); // char ptr to
// "example_command"
}
406
of file platform/service/cli/inc/sl_cli.h