Command line library - mbedOS shell. More...
#include <stdarg.h>#include <stdint.h>#include <stddef.h>#include <stdbool.h>Go to the source code of this file.
Macros | |
| #define | CMDLINE_RETCODE_COMMAND_BUSY 2 |
| Command Busy. More... | |
| #define | CMDLINE_RETCODE_EXCUTING_CONTINUE 1 |
| Execution continue in background. More... | |
| #define | CMDLINE_RETCODE_SUCCESS 0 |
| Execution Success. More... | |
| #define | CMDLINE_RETCODE_FAIL -1 |
| Execution Fail. More... | |
| #define | CMDLINE_RETCODE_INVALID_PARAMETERS -2 |
| Command parameters was incorrect. More... | |
| #define | CMDLINE_RETCODE_COMMAND_NOT_IMPLEMENTED -3 |
| Command not implemented. More... | |
| #define | CMDLINE_RETCODE_COMMAND_CB_MISSING -4 |
| Command callback function missing. More... | |
| #define | CMDLINE_RETCODE_COMMAND_NOT_FOUND -5 |
| Command not found. More... | |
Typedefs | |
| typedef void( | cmd_print_t) (const char *, va_list) |
| typedef for print functions More... | |
| typedef void( | cmd_ready_cb_f) (int) |
| typedef for ready cb function More... | |
| typedef int( | cmd_run_cb) (int argc, char *argv[]) |
| Callback called when your command is run. More... | |
Functions | |
| void | cmd_init (cmd_print_t *outf) |
| Initialize cmdline class. More... | |
| void | cmd_ready (int retcode) |
| Command ready function for special cases. More... | |
| void | cmd_set_ready_cb (cmd_ready_cb_f *cb) |
| Configure cb which will be called after commands are executed or cmd_ready is called. More... | |
| void | cmd_next (int retcode) |
| execute next command if any More... | |
| void | cmd_free (void) |
| Free cmd class. More... | |
| void | cmd_reset (void) |
| Reset cmdline to default values detach external commands, delete all variables and aliases. More... | |
| uint8_t | cmd_history_size (uint8_t max) |
| Configure command history size (default 32) More... | |
| void | cmd_printf (const char *fmt,...) |
| command line print function This function should be used when user want to print something to the console More... | |
| void | cmd_vprintf (const char *fmt, va_list ap) |
| command line print function This function should be used when user want to print something to the console with vprintf functionality More... | |
| void | cmd_out_func (cmd_print_t *outf) |
| Reconfigure default cmdline out function (cmd_printf) More... | |
| void | cmd_ctrl_func (void(*sohf)(uint8_t c)) |
| Configure function, which will be called when Ctrl+A is pressed. More... | |
| void | cmd_mutex_wait_func (void(*mutex_wait_f)(void)) |
| Configure mutex wait function By default, cmd_printf calls may not be thread safe, depending on the implementation of the used output. More... | |
| void | cmd_mutex_release_func (void(*mutex_release_f)(void)) |
| Configure mutex wait function By default, cmd_printf calls may not be thread safe, depending on the implementation of the used output. More... | |
| void | cmd_mutex_lock (void) |
| Retrieve output mutex lock This can be used to retrieve the output mutex when multiple cmd_printf/cmd_vprintf calls must be guaranteed to be grouped together in a thread safe manner. More... | |
| void | cmd_mutex_unlock (void) |
| Release output mutex lock This can be used to release the output mutex once it has been retrieved with cmd_mutex_lock() Exact behaviour depends on the implementation of the configured mutex, but counting mutexes are required. More... | |
| void | cmd_output (void) |
| Refresh output. More... | |
| void | default_cmd_response_out (const char *fmt, va_list ap) |
| default cmd response function, use stdout More... | |
| void | cmd_init_screen (void) |
| Initialize screen. More... | |
| bool | cmd_echo_state (void) |
| Get echo state. More... | |
| void | cmd_echo_off (void) |
| Echo off. More... | |
| void | cmd_echo_on (void) |
| Echo on. More... | |
| void | cmd_char_input (int16_t u_data) |
| Enter character to console. More... | |
| void | cmd_add (const char *name, cmd_run_cb *callback, const char *info, const char *man) |
| Add command to intepreter. More... | |
| void | cmd_delete (const char *name) |
| delete command from intepreter More... | |
| void | cmd_exe (char *str) |
| Command executer. More... | |
| void | cmd_alias_add (const char *alias, const char *value) |
| Add alias to interpreter. More... | |
| void | cmd_variable_add (char *variable, char *value) |
| Add Variable to interpreter. More... | |
| void | cmd_variable_add_int (char *variable, int value) |
| Add integer variable to interpreter. More... | |
| void | cmd_request_screen_size (void) |
| Request screen size from host Response are stored to variables: COLUMNS and LINES - as integer values. More... | |
| int | cmd_parameter_index (int argc, char *argv[], const char *key) |
| find command parameter index by key. More... | |
| bool | cmd_has_option (int argc, char *argv[], const char *key) |
| check if command option is present. More... | |
| bool | cmd_parameter_bool (int argc, char *argv[], const char *key, bool *value) |
| find command parameter by key. More... | |
| bool | cmd_parameter_val (int argc, char *argv[], const char *key, char **value) |
| find command parameter by key and return value (next parameter). More... | |
| bool | cmd_parameter_int (int argc, char *argv[], const char *key, int32_t *value) |
| find command parameter by key and return value (next parameter) in integer. More... | |
| bool | cmd_parameter_float (int argc, char *argv[], const char *key, float *value) |
| find command parameter by key and return value (next parameter) in float. More... | |
| char * | cmd_parameter_last (int argc, char *argv[]) |
| Get last command line parameter as string. More... | |
| bool | cmd_parameter_timestamp (int argc, char *argv[], const char *key, int64_t *value) |
| find command parameter by key and return value (next parameter) in int64. More... | |
Command line library - mbedOS shell.
Usage example:
Definition in file ns_cmdline.h.
| #define CMDLINE_RETCODE_COMMAND_BUSY 2 |
Command Busy.
Definition at line 70 of file ns_cmdline.h.
| #define CMDLINE_RETCODE_COMMAND_CB_MISSING -4 |
Command callback function missing.
Definition at line 76 of file ns_cmdline.h.
| #define CMDLINE_RETCODE_COMMAND_NOT_FOUND -5 |
Command not found.
Definition at line 77 of file ns_cmdline.h.
| #define CMDLINE_RETCODE_COMMAND_NOT_IMPLEMENTED -3 |
Command not implemented.
Definition at line 75 of file ns_cmdline.h.
| #define CMDLINE_RETCODE_EXCUTING_CONTINUE 1 |
Execution continue in background.
Definition at line 71 of file ns_cmdline.h.
| #define CMDLINE_RETCODE_FAIL -1 |
Execution Fail.
Definition at line 73 of file ns_cmdline.h.
| #define CMDLINE_RETCODE_INVALID_PARAMETERS -2 |
Command parameters was incorrect.
Definition at line 74 of file ns_cmdline.h.
| #define CMDLINE_RETCODE_SUCCESS 0 |
Execution Success.
Definition at line 72 of file ns_cmdline.h.
| typedef void( cmd_print_t) (const char *, va_list) |
typedef for print functions
Definition at line 82 of file ns_cmdline.h.
| typedef void( cmd_ready_cb_f) (int) |
typedef for ready cb function
Definition at line 102 of file ns_cmdline.h.
| typedef int( cmd_run_cb) (int argc, char *argv[]) |
Callback called when your command is run.
| argc | argc is the count of arguments given in argv pointer list. value begins from 1 and this means that the 0 item in list argv is a string to name of command. |
| argv | argv is list of arguments. List size is given in argc parameter. Value in argv[0] is string to name of command. |
Definition at line 231 of file ns_cmdline.h.
| void cmd_add | ( | const char * | name, |
| cmd_run_cb * | callback, | ||
| const char * | info, | ||
| const char * | man | ||
| ) |
Add command to intepreter.
| name | command string |
| callback | This function is called when command line start executing |
| info | Command short description which is visible in help command, or null if not in use |
| man | Help page for this command. This is shown when executing command with invalid parameters or command with –help parameter. Can be null if not in use. |
| void cmd_alias_add | ( | const char * | alias, |
| const char * | value | ||
| ) |
Add alias to interpreter.
Aliases are replaced with values before executing a command. All aliases must be started from beginning of line. null or empty value deletes alias.
| alias | alias name |
| value | value for alias. Values can be any visible ASCII -characters. |
| void cmd_char_input | ( | int16_t | u_data | ) |
Enter character to console.
insert key pressess to cmdline called from main loop of application
| u_data | char to be added to console |
| void cmd_ctrl_func | ( | void(*)(uint8_t c) | sohf | ) |
Configure function, which will be called when Ctrl+A is pressed.
| sohf | control function which called every time when user input control keys |
| void cmd_delete | ( | const char * | name | ) |
delete command from intepreter
| name | command to be delete |
| void cmd_echo_off | ( | void | ) |
Echo off.
| void cmd_echo_on | ( | void | ) |
Echo on.
| bool cmd_echo_state | ( | void | ) |
Get echo state.
| void cmd_exe | ( | char * | str | ) |
Command executer.
Command executer, which split&push command(s) to the buffer and start executing commands in cmd tasklet. if not, execute command directly. If command implementation returns CMDLINE_RETCODE_EXCUTING_CONTINUE, executor will wait for cmd_ready() before continue to next command.
| str | command string, e.g. "help" |
| void cmd_free | ( | void | ) |
Free cmd class.
| bool cmd_has_option | ( | int | argc, |
| char * | argv[], | ||
| const char * | key | ||
| ) |
check if command option is present.
e.g. cmd: "mycmd -c"
| argc | argc is the count of arguments given in argv pointer list. value begins from 1 and this means that the 0 item in list argv is a string to name of command. |
| argv | is list of arguments. List size is given in argc parameter. Value in argv[0] is string to name of command. |
| key | option key to be find |
| uint8_t cmd_history_size | ( | uint8_t | max | ) |
Configure command history size (default 32)
| max | maximum history size max > 0 -> configure new value max = 0 -> just return current value |
| void cmd_init | ( | cmd_print_t * | outf | ) |
| void cmd_init_screen | ( | void | ) |
Initialize screen.
| void cmd_mutex_lock | ( | void | ) |
Retrieve output mutex lock This can be used to retrieve the output mutex when multiple cmd_printf/cmd_vprintf calls must be guaranteed to be grouped together in a thread safe manner.
Must be released by a following call to cmd_mutex_unlock() For example:
| void cmd_mutex_release_func | ( | void(*)(void) | mutex_release_f | ) |
Configure mutex wait function By default, cmd_printf calls may not be thread safe, depending on the implementation of the used output.
This can be used to set a callback function that will be called after each cmd_printf call. The specific implementation is up to the application developer, but simple mutex locking is assumed.
| void cmd_mutex_unlock | ( | void | ) |
Release output mutex lock This can be used to release the output mutex once it has been retrieved with cmd_mutex_lock() Exact behaviour depends on the implementation of the configured mutex, but counting mutexes are required.
| void cmd_mutex_wait_func | ( | void(*)(void) | mutex_wait_f | ) |
Configure mutex wait function By default, cmd_printf calls may not be thread safe, depending on the implementation of the used output.
This can be used to set a callback function that will be called before each cmd_printf call. The specific implementation is up to the application developer, but simple mutex locking is assumed.
| void cmd_next | ( | int | retcode | ) |
execute next command if any
| retcode | last command return value |
| void cmd_out_func | ( | cmd_print_t * | outf | ) |
Reconfigure default cmdline out function (cmd_printf)
| outf | select console print function |
| void cmd_output | ( | void | ) |
Refresh output.
| bool cmd_parameter_bool | ( | int | argc, |
| char * | argv[], | ||
| const char * | key, | ||
| bool * | value | ||
| ) |
find command parameter by key.
if exists, return true, otherwise false. e.g. cmd: "mycmd enable 1"
| argc | argc is the count of arguments given in argv pointer list. value begins from 1 and this means that the 0 item in list argv is a string to name of command. |
| argv | is list of arguments. List size is given in argc parameter. Value in argv[0] is string to name of command. |
| key | parameter key to be find |
| value | parameter value to be fetch, if key not found value are untouched. "1" and "on" and "true" and "enable" and "allow" are True -value, all others false. |
| bool cmd_parameter_float | ( | int | argc, |
| char * | argv[], | ||
| const char * | key, | ||
| float * | value | ||
| ) |
find command parameter by key and return value (next parameter) in float.
Only whitespaces are allowed in addition to the float to be read. e.g. cmd: "mycmd mykey myvalue"
| argc | argc is the count of arguments given in argv pointer list. values begin from 1 and this means that the item 0 in the list argv is a string to name of command. |
| argv | is list of arguments. List size is given in argc parameter. Value in argv[0] is string to name of command. |
| key | parameter key to be found |
| value | A pointer to a variable where to write the converted number. If value cannot be converted, it is not touched. |
| int cmd_parameter_index | ( | int | argc, |
| char * | argv[], | ||
| const char * | key | ||
| ) |
find command parameter index by key.
e.g.
| argc | argc is the count of arguments given in argv pointer list. value begins from 1 and this means that the 0 item in list argv is a string to name of command. |
| argv | is list of arguments. List size is given in argc parameter. Value in argv[0] is string to name of command. |
| key | option key, which index you want to find out. |
| bool cmd_parameter_int | ( | int | argc, |
| char * | argv[], | ||
| const char * | key, | ||
| int32_t * | value | ||
| ) |
find command parameter by key and return value (next parameter) in integer.
Only whitespaces are allowed in addition to the float to be read. e.g. cmd: "mycmd mykey myvalue"
| argc | argc is the count of arguments given in argv pointer list. value begins from 1 and this means that the item 0 in the list argv is a string to name of command. |
| argv | is list of arguments. List size is given in argc parameter. Value in argv[0] is string to name of command. |
| key | parameter key to be found |
| value | A pointer to a variable where to write the converted number. If value cannot be converted, it is not touched. |
| char* cmd_parameter_last | ( | int | argc, |
| char * | argv[] | ||
| ) |
Get last command line parameter as string.
e.g. cmd: "mycmd hello world" cmd_parameter_last -> "world" cmd: "mycmd" cmd_parameter_last() -> NULL
| argc | argc is the count of arguments given in argv pointer list. value begins from 1 and this means that the 0 item in list argv is a string to name of command. |
| argv | is list of arguments. List size is given in argc parameter. Value in argv[0] is string to name of command. |
| bool cmd_parameter_timestamp | ( | int | argc, |
| char * | argv[], | ||
| const char * | key, | ||
| int64_t * | value | ||
| ) |
find command parameter by key and return value (next parameter) in int64.
e.g. cmd: "mycmd mykey myvalue"
Supports following formats: number -> direct conversion 11:22:33:44:55:66:77:88 -> converts to number seconds,tics -> converts thread type timestamp to int64
| argc | argc is the count of arguments given in argv pointer list. value begins from 1 and this means that the 0 item in list argv is a string to name of command. |
| argv | is list of arguments. List size is given in argc parameter. Value in argv[0] is string to name of command. |
| key | parameter key to be find |
| value | parameter value to be fetch, if key not found value are untouched. |
| bool cmd_parameter_val | ( | int | argc, |
| char * | argv[], | ||
| const char * | key, | ||
| char ** | value | ||
| ) |
find command parameter by key and return value (next parameter).
if exists, return parameter pointer, otherwise null. e.g. cmd: "mycmd mykey myvalue"
| argc | argc is the count of arguments given in argv pointer list. value begins from 1 and this means that the 0 item in list argv is a string to name of command. |
| argv | is list of arguments. List size is given in argc parameter. Value in argv[0] is string to name of command. |
| key | parameter key to be find |
| value | pointer to pointer, which will point to cli input data when key and value found. if key or value not found this parameter are untouched. |
| void cmd_printf | ( | const char * | fmt, |
| ... | |||
| ) |
command line print function This function should be used when user want to print something to the console
| fmt | console print function (like printf) |
| void cmd_ready | ( | int | retcode | ) |
Command ready function for special cases.
This need to be call if command implementation return CMDLINE_RETCODE_EXECUTING_CONTINUE because there is some background stuff ongoing before command is finally completed. Normally there is some event, which call cmd_ready().
| retcode | return code for command |
| void cmd_request_screen_size | ( | void | ) |
Request screen size from host Response are stored to variables: COLUMNS and LINES - as integer values.
Note: Require terminal that handle request codes, like screen.
| void cmd_reset | ( | void | ) |
Reset cmdline to default values detach external commands, delete all variables and aliases.
| void cmd_set_ready_cb | ( | cmd_ready_cb_f * | cb | ) |
Configure cb which will be called after commands are executed or cmd_ready is called.
| cb | callback function for command ready |
| void cmd_variable_add | ( | char * | variable, |
| char * | value | ||
| ) |
Add Variable to interpreter.
Variables are replaced with values before executing a command. To use variables from cli, use dollar ($) -character so that interpreter knows user want to use variable in that place. null or empty value deletes variable.
| variable | Variable name, which will be replaced in interpreter. |
| value | Value for variable. Values can contains white spaces and '"' or '"' characters. |
| void cmd_variable_add_int | ( | char * | variable, |
| int | value | ||
| ) |
| void cmd_vprintf | ( | const char * | fmt, |
| va_list | ap | ||
| ) |
command line print function This function should be used when user want to print something to the console with vprintf functionality
| fmt | The format string is a character string, beginning and ending in its initial shift state, if any. The format string is composed of zero or more directives. |
| ap | list of parameters needed by format string. This must correspond properly with the conversion specifier. |
| void default_cmd_response_out | ( | const char * | fmt, |
| va_list | ap | ||
| ) |
default cmd response function, use stdout
| fmt | The format string is a character string, beginning and ending in its initial shift state, if any. The format string is composed of zero or more directives. |
| ap | list of parameters needed by format string. This must correspond properly with the conversion specifier. |