# HG changeset patch # User Jacob Alexander # Date 1397632845 25200 # Node ID 1ab045ef42669b82c1787eb73b97ebf7faa894be # Parent ecb10c2cc819181961a31357c51f1b86c00e0f98 Adding example CLI command to DPH module. diff -r ecb10c2cc819 -r 1ab045ef4266 Scan/DPH/scan_loop.c --- a/Scan/DPH/scan_loop.c Wed Apr 16 00:15:09 2014 -0700 +++ b/Scan/DPH/scan_loop.c Wed Apr 16 00:20:45 2014 -0700 @@ -21,6 +21,7 @@ #include // Project Includes +#include #include #include @@ -119,6 +120,12 @@ +// ----- Function Declarations ----- + +void cliFunc_echo ( char* args ); + + + // ----- Variables ----- // Buffer used to inform the macro processing module which keys have been detected as pressed @@ -126,6 +133,14 @@ volatile uint8_t KeyIndex_BufferUsed; +// Scan Module command dictionary +char* scanCLIDictName = "DPH Module Commands"; +CLIDictItem scanCLIDict[] = { + { "echo", "Example command, echos the arguments.", cliFunc_echo }, + { 0, 0, 0 } // Null entry for dictionary end +}; + + // TODO dfj variables...needs cleaning up and commenting // Variables used to calculate the starting sense value (averaging) @@ -195,6 +210,9 @@ // Initial setup for cap sense controller inline void Scan_setup() { + // Register Scan CLI dictionary + CLI_registerDictionary( scanCLIDict, scanCLIDictName ); + // TODO dfj code...needs cleanup + commenting... setup_ADC(); @@ -972,3 +990,30 @@ dump_count &= 0x0f; } + +// ----- CLI Command Functions ----- + +// XXX Just an example command showing how to parse arguments (more complex than generally needed) +void cliFunc_echo( char* args ) +{ + char* curArgs; + char* arg1Ptr; + char* arg2Ptr = args; + + // Parse args until a \0 is found + while ( 1 ) + { + print( NL ); // No \r\n by default after the command is entered + + curArgs = arg2Ptr; // Use the previous 2nd arg pointer to separate the next arg from the list + CLI_argumentIsolation( curArgs, &arg1Ptr, &arg2Ptr ); + + // Stop processing args if no more are found + if ( *arg1Ptr == '\0' ) + break; + + // Print out the arg + dPrint( arg1Ptr ); + } +} +