X-Git-Url: https://git.donarmstrong.com/?p=kiibohd-controller.git;a=blobdiff_plain;f=Debug%2Fcli%2Fcli.h;h=97efd8aa6f80032cd6cccda47f79bcfe5c699064;hp=d18cae6f2a03b341bfa1395d14a417ca398b267e;hb=5f262ea4b68a07e9b94ce0a49c0f7196e5f32b3b;hpb=5d9fc0e9b2bd72c340259bc0388f8588f45ac52e diff --git a/Debug/cli/cli.h b/Debug/cli/cli.h index d18cae6..97efd8a 100644 --- a/Debug/cli/cli.h +++ b/Debug/cli/cli.h @@ -19,8 +19,7 @@ * THE SOFTWARE. */ -#ifndef cli_h__ -#define cli_h__ +#pragma once // ----- Includes ----- @@ -36,7 +35,7 @@ #define CLILineBufferMaxSize 100 #define CLIMaxDictionaries 10 #define CLIEntryTabAlign 13 - +#define CLIMaxHistorySize 10 // ----- Macros ----- @@ -55,7 +54,7 @@ const PROGMEM char name##CLIDict_DescEntry[] = description; // ARM is easy :P -#elif defined(_mk20dx128_) || defined(_mk20dx128vlf5_) || defined(_mk20dx256_) // ARM +#elif defined(_mk20dx128_) || defined(_mk20dx128vlf5_) || defined(_mk20dx256_) || defined(_mk20dx256vlh7_) // ARM #define CLIDict_Def(name,description) \ const char name##Name[] = description; \ const CLIDictItem name[] @@ -67,6 +66,8 @@ const char name##CLIDict_DescEntry[] = description; #endif +#define RING_PREV(i) CLI_wrap(i - 1, 0, CLIMaxHistorySize - 1) +#define RING_NEXT(i) CLI_wrap(i + 1, 0, CLIMaxHistorySize - 1) // ----- Structs ----- @@ -90,6 +91,13 @@ CLIDictItem *CLIDict [CLIMaxDictionaries]; char* CLIDictNames[CLIMaxDictionaries]; uint8_t CLIDictionariesUsed; +// History +char CLIHistoryBuffer[CLIMaxHistorySize][CLILineBufferMaxSize]; +uint8_t CLIHistoryHead; +uint8_t CLIHistoryTail; +int8_t CLIHistoryCurrent; + +// Debug uint8_t CLILEDState; uint8_t CLIHexDebugMode; @@ -102,8 +110,11 @@ void CLI_process(); void CLI_registerDictionary( const CLIDictItem *cmdDict, const char* dictName ); void CLI_argumentIsolation( char* string, char** first, char** second ); +int CLI_wrap( int x, int low, int high ); void CLI_commandLookup(); void CLI_tabCompletion(); +void CLI_saveHistory( char *buff ); +void CLI_retreiveHistory( int index ); // CLI Command Functions void cliFunc_arch ( char* args ); @@ -118,6 +129,3 @@ void cliFunc_reset ( char* args ); void cliFunc_restart ( char* args ); void cliFunc_version ( char* args ); - -#endif -