Mercurial > louis > kiibohd-controller
changeset 139:1ab045ef4266
Adding example CLI command to DPH module.
author | Jacob Alexander <haata@kiibohd.com> |
---|---|
date | Wed, 16 Apr 2014 00:20:45 -0700 |
parents | ecb10c2cc819 |
children | 98e4f0bc2a5b |
files | Scan/DPH/scan_loop.c |
diffstat | 1 files changed, 45 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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 <Lib/ScanLib.h> // Project Includes +#include <cli.h> #include <led.h> #include <print.h> @@ -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 ); + } +} +