/*
FreeRTOS V7 .0 .1 - Copyright ( C ) 2011 Real Time Engineers Ltd .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* FreeRTOS tutorial books are available in pdf and paperback . *
* Complete , revised , and edited pdf reference manuals are also *
* available . *
* *
* Purchasing FreeRTOS documentation will not only help you , by *
* ensuring you get running as quickly as possible and with an *
* in - depth knowledge of how to use FreeRTOS , it will also help *
* the FreeRTOS project to continue with its mission of providing *
* professional grade , cross platform , de facto standard solutions *
* for microcontrollers - completely free of charge ! *
* *
* > > > See http : //www.FreeRTOS.org/Documentation for details. <<< *
* *
* Thank you for using FreeRTOS , and thank you for your support ! *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
This file is part of the FreeRTOS distribution .
FreeRTOS is free software ; you can redistribute it and / or modify it under
the terms of the GNU General Public License ( version 2 ) as published by the
Free Software Foundation AND MODIFIED BY the FreeRTOS exception .
> > > NOTE < < < The modification to the GPL is included to allow you to
distribute a combined work that includes FreeRTOS without being obliged to
provide the source code for proprietary components outside of the FreeRTOS
kernel . FreeRTOS is distributed in the hope that it will be useful , but
WITHOUT ANY WARRANTY ; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE . See the GNU General Public License for
more details . You should have received a copy of the GNU General Public
License and the FreeRTOS license exception along with FreeRTOS ; if not it
can be viewed here : http : //www.freertos.org/a00114.html and also obtained
by writing to Richard Barry , contact details for whom are available on the
FreeRTOS WEB site .
1 tab = = 4 spaces !
http : //www.FreeRTOS.org - Documentation, latest information, license and
contact details .
http : //www.SafeRTOS.com - A version that is certified for use in safety
critical systems .
http : //www.OpenRTOS.com - Commercial support, development, porting,
licensing and training services .
*/
# ifndef COMMAND_INTERPRETER_H
# define COMMAND_INTERPRETER_H
/* The prototype to which callback functions used to process command line
commands must comply . This type will change when commands with parameters
are included . pcWriteBuffer is a buffer into which the output from executing
the command can be written , xWriteBufferLen is the length , in bytes , of the
pcWriteBuffer buffer . */
typedef portBASE_TYPE ( * pdCOMMAND_LINE_CALLBACK ) ( signed char * pcWriteBuffer , size_t xWriteBufferLen ) ;
/* The structure that defines command line commands. A command line command
should be defined by declaring a const structure of this type . */
typedef struct xCOMMAND_LINE_INPUT
{
const signed char * const pcCommand ; /* The command that causes pxCommandInterpreter to be executed. For example "help". Must be all lower case. */
const signed char * const pcHelpString ; /* String that describes how to use the command. Should start with the command itself, and end with "\r\n". For example "help: Returns a list of all the commands\r\n". */
const pdCOMMAND_LINE_CALLBACK pxCommandInterpreter ; /* A pointer to the callback function that will return the output generated by the command. */
} xCommandLineInput ;
/*
* Register the command passed in using the pxCommandToRegister parameter .
* Registering a command adds the command to the list of commands that are
* handled by the command interpreter . Once a command has been registered it
* can be executed from the command line .
*/
portBASE_TYPE xCmdIntRegisterCommand ( const xCommandLineInput * const pxCommandToRegister ) ;
/*
* Runs the command interpreter for the command string " pcCommandInput " . Any
* output generated by running the command will be placed into pcWriteBuffer .
* xWriteBufferLen must indicate the size , in bytes , of the buffer pointed to
* by pcWriteBuffer .
*
* xCmdIntProcessCommand should be called repeatedly until it returns pdFALSE .
*
* pcCmdIntProcessCommand is not reentrant . It must not be called from more
* than one task - or at least - by more than one task at a time .
*/
portBASE_TYPE xCmdIntProcessCommand ( const signed char * const pcCommandInput , signed char * pcWriteBuffer , size_t xWriteBufferLen ) ;
# endif /* COMMAND_INTERPRETER_H */