| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 | /* * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date           Author       Notes * 2011-06-02     Bernard      Add finsh_get_prompt function declaration */#ifndef __SHELL_H__#define __SHELL_H__#include <rtthread.h>#include "finsh.h"#ifndef FINSH_THREAD_PRIORITY#define FINSH_THREAD_PRIORITY 20#endif#ifndef FINSH_THREAD_STACK_SIZE#define FINSH_THREAD_STACK_SIZE 2048#endif#ifndef FINSH_CMD_SIZE#define FINSH_CMD_SIZE      80#endif#define FINSH_OPTION_ECHO   0x01#define FINSH_PROMPT        finsh_get_prompt()const char* finsh_get_prompt(void);int finsh_set_prompt(const char * prompt);#ifdef FINSH_USING_HISTORY    #ifndef FINSH_HISTORY_LINES        #define FINSH_HISTORY_LINES 5    #endif#endif#ifdef FINSH_USING_AUTH    #ifndef FINSH_PASSWORD_MAX        #define FINSH_PASSWORD_MAX RT_NAME_MAX    #endif    #ifndef FINSH_PASSWORD_MIN        #define FINSH_PASSWORD_MIN 6    #endif    #ifndef FINSH_DEFAULT_PASSWORD        #define FINSH_DEFAULT_PASSWORD "rtthread"    #endif#endif /* FINSH_USING_AUTH */#ifndef FINSH_THREAD_NAME#define FINSH_THREAD_NAME   "tshell"#endifenum input_stat{    WAIT_NORMAL,    WAIT_SPEC_KEY,    WAIT_FUNC_KEY,};struct finsh_shell{    struct rt_semaphore rx_sem;    enum input_stat stat;    rt_uint8_t echo_mode:1;    rt_uint8_t prompt_mode: 1;#ifdef FINSH_USING_HISTORY    rt_uint16_t current_history;    rt_uint16_t history_count;    char cmd_history[FINSH_HISTORY_LINES][FINSH_CMD_SIZE];#endif#ifndef FINSH_USING_MSH_ONLY    struct finsh_parser parser;#endif    char line[FINSH_CMD_SIZE + 1];    rt_uint16_t line_position;    rt_uint16_t line_curpos;#if !defined(RT_USING_POSIX) && defined(RT_USING_DEVICE)    rt_device_t device;#endif#ifdef FINSH_USING_AUTH    char password[FINSH_PASSWORD_MAX];#endif};void finsh_set_echo(rt_uint32_t echo);rt_uint32_t finsh_get_echo(void);int finsh_system_init(void);void finsh_set_device(const char* device_name);const char* finsh_get_device(void);rt_uint32_t finsh_get_prompt_mode(void);void finsh_set_prompt_mode(rt_uint32_t prompt_mode);#ifdef FINSH_USING_AUTHrt_err_t finsh_set_password(const char *password);const char *finsh_get_password(void);#endif#endif
 |