Mercurial > louis > kiibohd-controller
annotate Debug/cli/cli.c @ 126:670fc9c3a739
Added CLI DefaultMap lookup command.
- Initial work on capSelect command
- Toggling for macroDebug (only basic functionality right now)
- Cleanup
author | Jacob Alexander <haata@kiibohd.com> |
---|---|
date | Sun, 06 Apr 2014 13:12:31 -0700 |
parents | 8dab4014c398 |
children | 6ac92b8614c0 |
rev | line source |
---|---|
104
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
1 /* Copyright (C) 2014 by Jacob Alexander |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
2 * |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
3 * Permission is hereby granted, free of charge, to any person obtaining a copy |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
4 * of this software and associated documentation files (the "Software"), to deal |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
5 * in the Software without restriction, including without limitation the rights |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
6 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
7 * copies of the Software, and to permit persons to whom the Software is |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
8 * furnished to do so, subject to the following conditions: |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
9 * |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
10 * The above copyright notice and this permission notice shall be included in |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
11 * all copies or substantial portions of the Software. |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
12 * |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
13 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
14 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
15 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
16 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
17 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
18 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
19 * THE SOFTWARE. |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
20 */ |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
21 |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
22 // ----- Includes ----- |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
23 |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
24 // Compiler Includes |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
25 //#include <stdarg.h> |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
26 |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
27 // Project Includes |
109
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
28 #include <buildvars.h> |
104
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
29 #include "cli.h" |
109
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
30 #include <led.h> |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
31 #include <print.h> |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
32 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
33 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
34 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
35 // ----- Variables ----- |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
36 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
37 // Basic command dictionary |
112
0cb43cb8f683
Adding dictionary titles.
Jacob Alexander <haata@kiibohd.com>
parents:
110
diff
changeset
|
38 char* basicCLIDictName = "General Commands"; |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
39 CLIDictItem basicCLIDict[] = { |
109
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
40 { "cliDebug", "Enables/Disables hex output of the most recent cli input.", cliFunc_cliDebug }, |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
41 { "help", "You're looking at it :P", cliFunc_help }, |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
42 { "led", "Enables/Disables indicator LED. Try a couple times just in case the LED is in an odd state.\r\n\t\t\033[33mWarning\033[0m: May adversely affect some modules...", cliFunc_led }, |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
43 { "reload", "Signals microcontroller to reflash/reload.", cliFunc_reload }, |
110
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
44 { "reset", "Resets the terminal back to initial settings.", cliFunc_reset }, |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
45 { "restart", "Sends a software restart, should be similar to powering on the device.", cliFunc_restart }, |
109
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
46 { "version", "Version information about this firmware.", cliFunc_version }, |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
47 { 0, 0, 0 } // Null entry for dictionary end |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
48 }; |
104
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
49 |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
50 |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
51 |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
52 // ----- Functions ----- |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
53 |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
54 inline void prompt() |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
55 { |
114
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
56 print("\033[2K\r"); // Erases the current line and resets cursor to beginning of line |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
57 print("\033[1;34m:\033[0m "); // Blue bold prompt |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
58 } |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
59 |
110
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
60 // Initialize the CLI |
125
8dab4014c398
Major code cleanup and preparation for PartialMap Macro Module
Jacob Alexander <haata@kiibohd.com>
parents:
123
diff
changeset
|
61 inline void CLI_init() |
104
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
62 { |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
63 // Reset the Line Buffer |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
64 CLILineBufferCurrent = 0; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
65 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
66 // Set prompt |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
67 prompt(); |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
68 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
69 // Register first dictionary |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
70 CLIDictionariesUsed = 0; |
125
8dab4014c398
Major code cleanup and preparation for PartialMap Macro Module
Jacob Alexander <haata@kiibohd.com>
parents:
123
diff
changeset
|
71 CLI_registerDictionary( basicCLIDict, basicCLIDictName ); |
109
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
72 |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
73 // Initialize main LED |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
74 init_errorLED(); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
75 CLILEDState = 0; |
110
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
76 |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
77 // Hex debug mode is off by default |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
78 CLIHexDebugMode = 0; |
104
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
79 } |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
80 |
110
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
81 // Query the serial input buffer for any new characters |
125
8dab4014c398
Major code cleanup and preparation for PartialMap Macro Module
Jacob Alexander <haata@kiibohd.com>
parents:
123
diff
changeset
|
82 void CLI_process() |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
83 { |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
84 // Current buffer position |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
85 uint8_t prev_buf_pos = CLILineBufferCurrent; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
86 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
87 // Process each character while available |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
88 while ( 1 ) |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
89 { |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
90 // No more characters to process |
125
8dab4014c398
Major code cleanup and preparation for PartialMap Macro Module
Jacob Alexander <haata@kiibohd.com>
parents:
123
diff
changeset
|
91 if ( Output_availablechar() == 0 ) |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
92 break; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
93 |
123
0c5d1fe99302
Adding CLI and CDC Serial support for Teensy 2.0 and Teensy 2.0++
Jacob Alexander <haata@kiibohd.com>
parents:
121
diff
changeset
|
94 // Retrieve from output module |
125
8dab4014c398
Major code cleanup and preparation for PartialMap Macro Module
Jacob Alexander <haata@kiibohd.com>
parents:
123
diff
changeset
|
95 char cur_char = (char)Output_getchar(); |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
96 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
97 // Make sure buffer isn't full |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
98 if ( CLILineBufferCurrent >= CLILineBufferMaxSize ) |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
99 { |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
100 print( NL ); |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
101 erro_print("Serial line buffer is full, dropping character and resetting..."); |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
102 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
103 // Clear buffer |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
104 CLILineBufferCurrent = 0; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
105 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
106 // Reset the prompt |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
107 prompt(); |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
108 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
109 return; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
110 } |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
111 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
112 // Place into line buffer |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
113 CLILineBuffer[CLILineBufferCurrent++] = cur_char; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
114 } |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
115 |
110
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
116 // Display Hex Key Input if enabled |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
117 if ( CLIHexDebugMode && CLILineBufferCurrent > prev_buf_pos ) |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
118 { |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
119 print("\033[s\r\n"); // Save cursor position, and move to the next line |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
120 print("\033[2K"); // Erases the current line |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
121 |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
122 uint8_t pos = prev_buf_pos; |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
123 while ( CLILineBufferCurrent > pos ) |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
124 { |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
125 printHex( CLILineBuffer[pos++] ); |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
126 print(" "); |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
127 } |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
128 |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
129 print("\033[u"); // Restore cursor position |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
130 } |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
131 |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
132 // If buffer has changed, output to screen while there are still characters in the buffer not displayed |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
133 while ( CLILineBufferCurrent > prev_buf_pos ) |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
134 { |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
135 // Check for control characters |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
136 switch ( CLILineBuffer[prev_buf_pos] ) |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
137 { |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
138 case 0x0D: // Enter |
121
71430b08fe81
Force curve gauge is feature complete!!
Jacob Alexander <haata@kiibohd.com>
parents:
114
diff
changeset
|
139 CLILineBuffer[CLILineBufferCurrent - 1] = ' '; // Replace Enter with a space (resolves a bug in args) |
71430b08fe81
Force curve gauge is feature complete!!
Jacob Alexander <haata@kiibohd.com>
parents:
114
diff
changeset
|
140 |
71430b08fe81
Force curve gauge is feature complete!!
Jacob Alexander <haata@kiibohd.com>
parents:
114
diff
changeset
|
141 // Remove the space if there is no command |
71430b08fe81
Force curve gauge is feature complete!!
Jacob Alexander <haata@kiibohd.com>
parents:
114
diff
changeset
|
142 if ( CLILineBufferCurrent == 1 ) |
71430b08fe81
Force curve gauge is feature complete!!
Jacob Alexander <haata@kiibohd.com>
parents:
114
diff
changeset
|
143 CLILineBufferCurrent--; |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
144 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
145 // Process the current line buffer |
125
8dab4014c398
Major code cleanup and preparation for PartialMap Macro Module
Jacob Alexander <haata@kiibohd.com>
parents:
123
diff
changeset
|
146 CLI_commandLookup(); |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
147 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
148 // Reset the buffer |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
149 CLILineBufferCurrent = 0; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
150 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
151 // Reset the prompt after processing has finished |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
152 print( NL ); |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
153 prompt(); |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
154 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
155 // XXX There is a potential bug here when resetting the buffer (losing valid keypresses) |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
156 // Doesn't look like it will happen *that* often, so not handling it for now -HaaTa |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
157 return; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
158 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
159 case 0x09: // Tab |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
160 // Tab completion for the current command |
125
8dab4014c398
Major code cleanup and preparation for PartialMap Macro Module
Jacob Alexander <haata@kiibohd.com>
parents:
123
diff
changeset
|
161 CLI_tabCompletion(); |
114
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
162 |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
163 CLILineBufferCurrent--; // Remove the Tab |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
164 |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
165 // XXX There is a potential bug here when resetting the buffer (losing valid keypresses) |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
166 // Doesn't look like it will happen *that* often, so not handling it for now -HaaTa |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
167 return; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
168 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
169 case 0x1B: // Esc |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
170 // Check for escape sequence |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
171 // TODO |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
172 return; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
173 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
174 case 0x08: |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
175 case 0x7F: // Backspace |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
176 // TODO - Does not handle case for arrow editing (arrows disabled atm) |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
177 CLILineBufferCurrent--; // Remove the backspace |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
178 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
179 // If there are characters in the buffer |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
180 if ( CLILineBufferCurrent > 0 ) |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
181 { |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
182 // Remove character from current position in the line buffer |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
183 CLILineBufferCurrent--; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
184 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
185 // Remove character from tty |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
186 print("\b \b"); |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
187 } |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
188 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
189 break; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
190 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
191 default: |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
192 // Place a null on the end (to use with string print) |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
193 CLILineBuffer[CLILineBufferCurrent] = '\0'; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
194 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
195 // Output buffer to screen |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
196 dPrint( &CLILineBuffer[prev_buf_pos] ); |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
197 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
198 // Buffer reset |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
199 prev_buf_pos++; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
200 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
201 break; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
202 } |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
203 } |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
204 } |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
205 |
108
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
206 // Takes a string, returns two pointers |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
207 // One to the first non-space character |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
208 // The second to the next argument (first NULL if there isn't an argument). delimited by a space |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
209 // Places a NULL at the first space after the first argument |
126
670fc9c3a739
Added CLI DefaultMap lookup command.
Jacob Alexander <haata@kiibohd.com>
parents:
125
diff
changeset
|
210 void CLI_argumentIsolation( char* string, char** first, char** second ) |
108
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
211 { |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
212 // Mark out the first argument |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
213 // This is done by finding the first space after a list of non-spaces and setting it NULL |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
214 char* cmdPtr = string - 1; |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
215 while ( *++cmdPtr == ' ' ); // Skips leading spaces, and points to first character of cmd |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
216 |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
217 // Locates first space delimiter |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
218 char* argPtr = cmdPtr + 1; |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
219 while ( *argPtr != ' ' && *argPtr != '\0' ) |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
220 argPtr++; |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
221 |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
222 // Point to the first character of args or a NULL (no args) and set the space delimiter as a NULL |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
223 (++argPtr)[-1] = '\0'; |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
224 |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
225 // Set return variables |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
226 *first = cmdPtr; |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
227 *second = argPtr; |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
228 } |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
229 |
110
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
230 // Scans the CLILineBuffer for any valid commands |
125
8dab4014c398
Major code cleanup and preparation for PartialMap Macro Module
Jacob Alexander <haata@kiibohd.com>
parents:
123
diff
changeset
|
231 void CLI_commandLookup() |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
232 { |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
233 // Ignore command if buffer is 0 length |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
234 if ( CLILineBufferCurrent == 0 ) |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
235 return; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
236 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
237 // Set the last+1 character of the buffer to NULL for string processing |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
238 CLILineBuffer[CLILineBufferCurrent] = '\0'; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
239 |
108
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
240 // Retrieve pointers to command and beginning of arguments |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
241 // Places a NULL at the first space after the command |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
242 char* cmdPtr; |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
243 char* argPtr; |
125
8dab4014c398
Major code cleanup and preparation for PartialMap Macro Module
Jacob Alexander <haata@kiibohd.com>
parents:
123
diff
changeset
|
244 CLI_argumentIsolation( CLILineBuffer, &cmdPtr, &argPtr ); |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
245 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
246 // Scan array of dictionaries for a valid command match |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
247 for ( uint8_t dict = 0; dict < CLIDictionariesUsed; dict++ ) |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
248 { |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
249 // Parse each cmd until a null command entry is found, or an argument match |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
250 for ( uint8_t cmd = 0; CLIDict[dict][cmd].name != 0; cmd++ ) |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
251 { |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
252 // Compare the first argument and each command entry |
114
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
253 if ( eqStr( cmdPtr, CLIDict[dict][cmd].name ) == -1 ) |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
254 { |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
255 // Run the specified command function pointer |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
256 // argPtr is already pointing at the first character of the arguments |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
257 (*CLIDict[dict][cmd].function)( argPtr ); |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
258 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
259 return; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
260 } |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
261 } |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
262 } |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
263 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
264 // No match for the command... |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
265 print( NL ); |
108
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
266 erro_dPrint("\"", CLILineBuffer, "\" is not a valid command...type \033[35mhelp\033[0m"); |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
267 } |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
268 |
110
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
269 // Registers a command dictionary with the CLI |
126
670fc9c3a739
Added CLI DefaultMap lookup command.
Jacob Alexander <haata@kiibohd.com>
parents:
125
diff
changeset
|
270 void CLI_registerDictionary( CLIDictItem *cmdDict, char* dictName ) |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
271 { |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
272 // Make sure this max limit of dictionaries hasn't been reached |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
273 if ( CLIDictionariesUsed >= CLIMaxDictionaries ) |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
274 { |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
275 erro_print("Max number of dictionaries defined already..."); |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
276 return; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
277 } |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
278 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
279 // Add dictionary |
112
0cb43cb8f683
Adding dictionary titles.
Jacob Alexander <haata@kiibohd.com>
parents:
110
diff
changeset
|
280 CLIDictNames[CLIDictionariesUsed] = dictName; |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
281 CLIDict[CLIDictionariesUsed++] = cmdDict; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
282 } |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
283 |
125
8dab4014c398
Major code cleanup and preparation for PartialMap Macro Module
Jacob Alexander <haata@kiibohd.com>
parents:
123
diff
changeset
|
284 inline void CLI_tabCompletion() |
114
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
285 { |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
286 // Ignore command if buffer is 0 length |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
287 if ( CLILineBufferCurrent == 0 ) |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
288 return; |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
289 |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
290 // Set the last+1 character of the buffer to NULL for string processing |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
291 CLILineBuffer[CLILineBufferCurrent] = '\0'; |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
292 |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
293 // Retrieve pointers to command and beginning of arguments |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
294 // Places a NULL at the first space after the command |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
295 char* cmdPtr; |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
296 char* argPtr; |
125
8dab4014c398
Major code cleanup and preparation for PartialMap Macro Module
Jacob Alexander <haata@kiibohd.com>
parents:
123
diff
changeset
|
297 CLI_argumentIsolation( CLILineBuffer, &cmdPtr, &argPtr ); |
114
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
298 |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
299 // Tab match pointer |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
300 char* tabMatch = 0; |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
301 uint8_t matches = 0; |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
302 |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
303 // Scan array of dictionaries for a valid command match |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
304 for ( uint8_t dict = 0; dict < CLIDictionariesUsed; dict++ ) |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
305 { |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
306 // Parse each cmd until a null command entry is found, or an argument match |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
307 for ( uint8_t cmd = 0; CLIDict[dict][cmd].name != 0; cmd++ ) |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
308 { |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
309 // Compare the first argument piece to each command entry to see if it is "like" |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
310 // NOTE: To save on processing, we only care about the commands and ignore the arguments |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
311 // If there are arguments, and a valid tab match is found, buffer is cleared (args lost) |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
312 // Also ignores full matches |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
313 if ( eqStr( cmdPtr, CLIDict[dict][cmd].name ) == 0 ) |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
314 { |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
315 // TODO Make list of commands if multiple matches |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
316 matches++; |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
317 tabMatch = CLIDict[dict][cmd].name; |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
318 } |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
319 } |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
320 } |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
321 |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
322 // Only tab complete if there was 1 match |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
323 if ( matches == 1 ) |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
324 { |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
325 // Reset the buffer |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
326 CLILineBufferCurrent = 0; |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
327 |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
328 // Reprint the prompt (automatically clears the line) |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
329 prompt(); |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
330 |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
331 // Display the command |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
332 dPrint( tabMatch ); |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
333 |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
334 // There are no index counts, so just copy the whole string to the input buffer |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
335 while ( *tabMatch != '\0' ) |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
336 { |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
337 CLILineBuffer[CLILineBufferCurrent++] = *tabMatch++; |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
338 } |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
339 } |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
340 } |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
341 |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
342 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
343 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
344 // ----- CLI Command Functions ----- |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
345 |
109
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
346 void cliFunc_cliDebug( char* args ) |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
347 { |
110
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
348 // Toggle Hex Debug Mode |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
349 if ( CLIHexDebugMode ) |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
350 { |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
351 print( NL ); |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
352 info_print("Hex debug mode disabled..."); |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
353 CLIHexDebugMode = 0; |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
354 } |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
355 else |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
356 { |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
357 print( NL ); |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
358 info_print("Hex debug mode enabled..."); |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
359 CLIHexDebugMode = 1; |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
360 } |
109
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
361 } |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
362 |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
363 void cliFunc_help( char* args ) |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
364 { |
108
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
365 // Scan array of dictionaries and print every description |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
366 // (no alphabetical here, too much processing/memory to sort...) |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
367 for ( uint8_t dict = 0; dict < CLIDictionariesUsed; dict++ ) |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
368 { |
112
0cb43cb8f683
Adding dictionary titles.
Jacob Alexander <haata@kiibohd.com>
parents:
110
diff
changeset
|
369 // Print the name of each dictionary as a title |
0cb43cb8f683
Adding dictionary titles.
Jacob Alexander <haata@kiibohd.com>
parents:
110
diff
changeset
|
370 dPrintStrsNL( NL, "\033[1;32m", CLIDictNames[dict], "\033[0m" ); |
108
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
371 |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
372 // Parse each cmd/description until a null command entry is found |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
373 for ( uint8_t cmd = 0; CLIDict[dict][cmd].name != 0; cmd++ ) |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
374 { |
109
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
375 dPrintStrs(" \033[35m", CLIDict[dict][cmd].name, "\033[0m"); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
376 |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
377 // Determine number of spaces to tab by the length of the command and TabAlign |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
378 uint8_t padLength = CLIEntryTabAlign - lenStr( CLIDict[dict][cmd].name ); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
379 while ( padLength-- > 0 ) |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
380 print(" "); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
381 |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
382 dPrintStrNL( CLIDict[dict][cmd].description ); |
108
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
383 } |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
384 } |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
385 } |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
386 |
109
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
387 void cliFunc_led( char* args ) |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
388 { |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
389 CLILEDState ^= 1 << 1; // Toggle between 0 and 1 |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
390 errorLED( CLILEDState ); // Enable/Disable error LED |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
391 } |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
392 |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
393 void cliFunc_reload( char* args ) |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
394 { |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
395 // Request to output module to be set into firmware reload mode |
125
8dab4014c398
Major code cleanup and preparation for PartialMap Macro Module
Jacob Alexander <haata@kiibohd.com>
parents:
123
diff
changeset
|
396 Output_firmwareReload(); |
109
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
397 } |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
398 |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
399 void cliFunc_reset( char* args ) |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
400 { |
110
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
401 print("\033c"); // Resets the terminal |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
402 } |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
403 |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
404 void cliFunc_restart( char* args ) |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
405 { |
109
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
406 // Trigger an overall software reset |
125
8dab4014c398
Major code cleanup and preparation for PartialMap Macro Module
Jacob Alexander <haata@kiibohd.com>
parents:
123
diff
changeset
|
407 Output_softReset(); |
109
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
408 } |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
409 |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
410 void cliFunc_version( char* args ) |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
411 { |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
412 print( NL ); |
109
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
413 print( " \033[1mRevision:\033[0m " CLI_Revision NL ); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
414 print( " \033[1mBranch:\033[0m " CLI_Branch NL ); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
415 print( " \033[1mTree Status:\033[0m " CLI_ModifiedStatus NL ); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
416 print( " \033[1mRepo Origin:\033[0m " CLI_RepoOrigin NL ); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
417 print( " \033[1mCommit Date:\033[0m " CLI_CommitDate NL ); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
418 print( " \033[1mCommit Author:\033[0m " CLI_CommitAuthor NL ); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
419 print( " \033[1mBuild Date:\033[0m " CLI_BuildDate NL ); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
420 print( " \033[1mBuild OS:\033[0m " CLI_BuildOS NL ); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
421 print( " \033[1mArchitecture:\033[0m " CLI_Arch NL ); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
422 print( " \033[1mChip:\033[0m " CLI_Chip NL ); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
423 print( " \033[1mCPU:\033[0m " CLI_CPU NL ); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
424 print( " \033[1mDevice:\033[0m " CLI_Device NL ); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
425 print( " \033[1mModules:\033[0m " CLI_Modules NL ); |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
426 } |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
427 |