// ----- Variables -----
// Basic command dictionary
+char* basicCLIDictName = "General Commands";
CLIDictItem basicCLIDict[] = {
{ "cliDebug", "Enables/Disables hex output of the most recent cli input.", cliFunc_cliDebug },
{ "help", "You're looking at it :P", cliFunc_help },
// Register first dictionary
CLIDictionariesUsed = 0;
- registerDictionary_cli( basicCLIDict );
+ registerDictionary_cli( basicCLIDict, basicCLIDictName );
// Initialize main LED
init_errorLED();
}
// Registers a command dictionary with the CLI
-inline void registerDictionary_cli( CLIDictItem *cmdDict )
+inline void registerDictionary_cli( CLIDictItem *cmdDict, char* dictName )
{
// Make sure this max limit of dictionaries hasn't been reached
if ( CLIDictionariesUsed >= CLIMaxDictionaries )
}
// Add dictionary
+ CLIDictNames[CLIDictionariesUsed] = dictName;
CLIDict[CLIDictionariesUsed++] = cmdDict;
}
// (no alphabetical here, too much processing/memory to sort...)
for ( uint8_t dict = 0; dict < CLIDictionariesUsed; dict++ )
{
- print( NL "\033[1;32mCOMMAND SET\033[0m " );
- printInt8( dict + 1 );
- print( NL );
+ // Print the name of each dictionary as a title
+ dPrintStrsNL( NL, "\033[1;32m", CLIDictNames[dict], "\033[0m" );
// Parse each cmd/description until a null command entry is found
for ( uint8_t cmd = 0; CLIDict[dict][cmd].name != 0; cmd++ )
uint8_t CLILineBufferCurrent;
// Main command dictionary
-CLIDictItem *CLIDict[CLIMaxDictionaries];
-uint8_t CLIDictionariesUsed;
+CLIDictItem *CLIDict [CLIMaxDictionaries];
+char* CLIDictNames[CLIMaxDictionaries];
+uint8_t CLIDictionariesUsed;
uint8_t CLILEDState;
uint8_t CLIHexDebugMode;
void init_cli();
void process_cli();
-void registerDictionary_cli( CLIDictItem *cmdDict );
+void registerDictionary_cli( CLIDictItem *cmdDict, char* dictName );
void argumentIsolation_cli( char* string, char** first, char** second );
void commandLookup_cli();