added busy mode and test
a command can now return SHELLMATTA_BUSY This will be passed back to the caller of processData afterwards the instance has to be called with the same parameters The shellmatta will then just call the busy command until it finishes as soon as the command returns != SHELLMATTA_BUSY the instance will continue processing the rest of the input data
This commit is contained in:
@@ -39,7 +39,8 @@ typedef enum
|
||||
SHELLMATTA_ERROR , /**< error occured */
|
||||
SHELLMATTA_CONTINUE , /**< the function is not over */
|
||||
SHELLMATTA_USE_FAULT , /**< parameter error - wrong usage */
|
||||
SHELLMATTA_DUPLICATE /**< duplicate command */
|
||||
SHELLMATTA_DUPLICATE , /**< duplicate command */
|
||||
SHELLMATTA_BUSY /**< command is busy keep calling */
|
||||
} shellmatta_retCode_t;
|
||||
|
||||
/**
|
||||
@@ -121,6 +122,7 @@ typedef struct
|
||||
char *buffer; /**< input buffer */
|
||||
uint32_t bufferSize; /**< size of the input buffer */
|
||||
uint32_t inputCount; /**< offset of the current write operation */
|
||||
uint32_t byteCounter; /**< counter used to loop over input data */
|
||||
uint32_t lastNewlineIdx; /**< index of the lest newline */
|
||||
uint32_t cursor; /**< offset where the cursor is at */
|
||||
uint32_t stdinIdx; /**< start index of stdin in buffer */
|
||||
@@ -146,6 +148,7 @@ typedef struct
|
||||
shellmatta_cmd_t helpCmd; /**< help command structure */
|
||||
shellmatta_cmd_t *cmdList; /**< pointer to the first command */
|
||||
shellmatta_cmd_t *continuousCmd; /**< command to be called continuously */
|
||||
shellmatta_cmd_t *busyCmd; /**< command to be polled (busy mode) */
|
||||
bool cmdListIsConst; /**< true if the #cmdList was passed during
|
||||
initialization */
|
||||
shellmatta_opt_t optionParser; /**< option parser sructure */
|
||||
|
Reference in New Issue
Block a user