Paparazzi UAS  v5.18.0_stable
Paparazzi is a free software Unmanned Aircraft System.
SHELL

Data Structures

struct  AltCbParam
 
struct  ShellCommand
 Custom command entry type. More...
 
struct  ShellConfig
 Shell descriptor type. More...
 

Macros

#define printScreen(...)   {chprintf (chpg, __VA_ARGS__); chprintf (chpg, "\r\n");}
 
#define SHELL_DYNAMIC_ENTRIES_NUMBER   0U
 
#define shellCreate(C, S, P)   shellCreateFromHeap(C, S, P)
 

Typedefs

typedef void() shellcmd_f(BaseSequentialStream *chp, int argc, const char *const argv[])
 Command handler function type. More...
 

Functions

static void cmd_info (BaseSequentialStream *lchp, int argc, const char *const argv[])
 
static MUTEX_DECL (mut)
 
void microrlPrint (const char *str)
 
void microrlExecute (int argc, const char *const *argv)
 
const char ** microrlComplet (int argc, const char *const *argv)
 
void microrlSigint (void)
 
static void usage (BaseSequentialStream *lchp, char *p)
 
static THD_FUNCTION (shell_thread, p)
 Shell thread function. More...
 
void shellInit (void)
 Shell manager initialization. More...
 
thread_t * shellCreateStatic (const ShellConfig *scp, void *wsp, size_t size, tprio_t prio)
 Spawns a new shell. More...
 
void modeAlternate (void(*funcp)(uint8_t c, uint32_t mode), uint32_t mode)
 
void modeShell (void)
 
bool shellGetLine (BaseSequentialStream *chp, char *line, unsigned size)
 

Variables

void(* AltCbParam::altFunc )(uint8_t c, uint32_t mode)
 
uint32_t AltCbParam::param
 
event_source_t shell_terminated
 Shell termination event source. More...
 
static microrl_t rl
 
static BaseSequentialStream * chpg
 
static const ShellCommandstaticCommands = NULL
 
static const char * complWorlds [64]
 
static const ShellCommand localCommands []
 Array of the default and dynamic commands. More...
 
static AltCbParam altCbParam = {.altFunc = NULL, .param = 0}
 
event_source_t shell_terminated
 Shell termination event source. More...
 

Detailed Description


Data Structure Documentation

◆ AltCbParam

struct AltCbParam

Definition at line 18 of file microrlShell.c.

Data Fields

void(* altFunc )(uint8_t c, uint32_t mode)
 
uint32_t param
 

◆ ShellCommand

struct ShellCommand

Custom command entry type.

Definition at line 30 of file microrlShell.h.

Data Fields
shellcmd_f * sc_function Command function.


const char * sc_name Command name.


◆ ShellConfig

struct ShellConfig

Shell descriptor type.

Definition at line 38 of file microrlShell.h.

+ Collaboration diagram for ShellConfig:
Data Fields
BaseSequentialStream * sc_channel I/O channel associated to the shell.


const ShellCommand * sc_commands Shell extra commands table.


Macro Definition Documentation

◆ printScreen

#define printScreen (   ...)    {chprintf (chpg, __VA_ARGS__); chprintf (chpg, "\r\n");}

Definition at line 16 of file microrlShell.c.

◆ SHELL_DYNAMIC_ENTRIES_NUMBER

#define SHELL_DYNAMIC_ENTRIES_NUMBER   0U

Definition at line 15 of file microrlShell.h.

◆ shellCreate

#define shellCreate (   C,
  S,
  P 
)    shellCreateFromHeap(C, S, P)

Definition at line 19 of file microrlShell.h.

Typedef Documentation

◆ shellcmd_f

typedef void() shellcmd_f(BaseSequentialStream *chp, int argc, const char *const argv[])

Command handler function type.

Definition at line 24 of file microrlShell.h.

Function Documentation

◆ cmd_info()

static void cmd_info ( BaseSequentialStream *  lchp,
int  argc,
const char *const  argv[] 
)
static

Definition at line 144 of file microrlShell.c.

References BOARD_NAME, chprintf(), and usage().

+ Here is the call graph for this function:

◆ microrlComplet()

const char** microrlComplet ( int  argc,
const char *const *  argv 
)

Definition at line 88 of file microrlShell.c.

References complWorlds, localCommands, mut, ShellCommand::sc_name, and staticCommands.

Referenced by shellInit().

+ Here is the caller graph for this function:

◆ microrlExecute()

void microrlExecute ( int  argc,
const char *const *  argv 
)

Definition at line 60 of file microrlShell.c.

References chpg, localCommands, mut, ShellCommand::sc_function, ShellCommand::sc_name, and staticCommands.

Referenced by shellInit().

+ Here is the caller graph for this function:

◆ microrlPrint()

void microrlPrint ( const char *  str)

Definition at line 51 of file microrlShell.c.

References chpg.

Referenced by shellInit().

+ Here is the caller graph for this function:

◆ microrlSigint()

void microrlSigint ( void  )

Definition at line 131 of file microrlShell.c.

References chpg, and chprintf().

Referenced by shellInit().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ modeAlternate()

void modeAlternate ( void(*)(uint8_t c, uint32_t mode funcp,
uint32_t  mode 
)

Definition at line 455 of file microrlShell.c.

References altCbParam, AltCbParam::altFunc, mode, mut, and AltCbParam::param.

◆ modeShell()

void modeShell ( void  )

Definition at line 463 of file microrlShell.c.

References altCbParam, AltCbParam::altFunc, mut, and printScreen.

◆ MUTEX_DECL()

static MUTEX_DECL ( mut  )
static

◆ shellCreateStatic()

thread_t * shellCreateStatic ( const ShellConfig scp,
void *  wsp,
size_t  size,
tprio_t  prio 
)

Spawns a new shell.

Precondition
CH_USE_MALLOC_HEAP and CH_USE_DYNAMIC must be enabled.
Parameters
[in]scppointer to a ShellConfig object
[in]sizesize of the shell working area to be allocated
[in]priopriority level for the new shell
Returns
A pointer to the shell thread.
Return values
NULLthread creation failed because memory allocation.

Create statically allocated shell thread.

Parameters
[in]scppointer to a ShellConfig object
[in]wsppointer to a working area dedicated to the shell thread stack
[in]sizesize of the shell working area
[in]priopriority level for the new shell
Returns
A pointer to the shell thread.

Definition at line 416 of file microrlShell.c.

◆ shellGetLine()

bool shellGetLine ( BaseSequentialStream *  chp,
char *  line,
unsigned  size 
)

◆ shellInit()

void shellInit ( void  )

Shell manager initialization.

Definition at line 382 of file microrlShell.c.

References microrl_init(), microrl_set_complete_callback(), microrl_set_execute_callback(), microrl_set_sigint_callback(), microrlComplet(), microrlExecute(), microrlPrint(), microrlSigint(), rl, and shell_terminated.

Referenced by shell_init_arch().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ THD_FUNCTION()

static THD_FUNCTION ( shell_thread  ,
p   
)
static

Shell thread function.

Parameters
[in]ppointer to a BaseSequentialStream object
Returns
Termination reason.
Return values
MSG_OKterminated by command.
RDY_RESETterminated by reset condition on the I/O channel.

Definition at line 350 of file microrlShell.c.

References altCbParam, AltCbParam::altFunc, c(), chpg, FALSE, microrl_insert_char(), msg, p, AltCbParam::param, printScreen, rl, shell_terminated, staticCommands, and TRUE.

+ Here is the call graph for this function:

◆ usage()

static void usage ( BaseSequentialStream *  lchp,
char *  p 
)
static

Definition at line 137 of file microrlShell.c.

References chprintf(), and p.

Referenced by cmd_info(), and nps_main_parse_options().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ altCbParam

AltCbParam altCbParam = {.altFunc = NULL, .param = 0}
static

Definition at line 49 of file microrlShell.c.

Referenced by modeAlternate(), modeShell(), and THD_FUNCTION().

◆ altFunc

void(* AltCbParam::altFunc) (uint8_t c, uint32_t mode)

Definition at line 19 of file microrlShell.c.

Referenced by modeAlternate(), modeShell(), and THD_FUNCTION().

◆ chpg

BaseSequentialStream* chpg
static

Definition at line 34 of file microrlShell.c.

Referenced by microrlExecute(), microrlPrint(), microrlSigint(), and THD_FUNCTION().

◆ complWorlds

const char* complWorlds[64]
static

Definition at line 36 of file microrlShell.c.

Referenced by microrlComplet().

◆ localCommands

const ShellCommand localCommands[]
static
Initial value:
= {
{"info", cmd_info},
{NULL, NULL}
}

Array of the default and dynamic commands.

Definition at line 43 of file microrlShell.c.

Referenced by microrlComplet(), and microrlExecute().

◆ param

uint32_t AltCbParam::param

Definition at line 20 of file microrlShell.c.

Referenced by modeAlternate(), and THD_FUNCTION().

◆ rl

microrl_t rl
static

Definition at line 33 of file microrlShell.c.

Referenced by shellInit(), and THD_FUNCTION().

◆ shell_terminated [1/2]

event_source_t shell_terminated

Shell termination event source.

Definition at line 30 of file microrlShell.c.

Referenced by shellInit(), and THD_FUNCTION().

◆ shell_terminated [2/2]

event_source_t shell_terminated

Shell termination event source.

Definition at line 30 of file microrlShell.c.

Referenced by shellInit(), and THD_FUNCTION().

◆ staticCommands

const ShellCommand* staticCommands = NULL
static

Definition at line 35 of file microrlShell.c.

Referenced by microrlComplet(), microrlExecute(), and THD_FUNCTION().

cmd_info
static void cmd_info(BaseSequentialStream *lchp, int argc, const char *const argv[])
Definition: microrlShell.c:144