Mercurial > louis > kiibohd-controller
annotate Debug/cli/cli.c @ 294:834d69d22d47
Adding list of modified files to the cli version command.
author | Jacob Alexander <haata@kiibohd.com> |
---|---|
date | Sat, 28 Feb 2015 23:50:13 -0800 |
parents | 2a4c99da1276 |
children | a0ad3a172269 |
rev | line source |
---|---|
294
834d69d22d47
Adding list of modified files to the cli version command.
Jacob Alexander <haata@kiibohd.com>
parents:
239
diff
changeset
|
1 /* Copyright (C) 2014-2015 by Jacob Alexander |
104
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 |
239
2a4c99da1276
HUGE AVR RAM optimization (~28%).
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
38 CLIDict_Entry( cliDebug, "Enables/Disables hex output of the most recent cli input." ); |
2a4c99da1276
HUGE AVR RAM optimization (~28%).
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
39 CLIDict_Entry( help, "You're looking at it :P" ); |
2a4c99da1276
HUGE AVR RAM optimization (~28%).
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
40 CLIDict_Entry( 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..." ); |
2a4c99da1276
HUGE AVR RAM optimization (~28%).
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
41 CLIDict_Entry( reload, "Signals microcontroller to reflash/reload." ); |
2a4c99da1276
HUGE AVR RAM optimization (~28%).
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
42 CLIDict_Entry( reset, "Resets the terminal back to initial settings." ); |
2a4c99da1276
HUGE AVR RAM optimization (~28%).
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
43 CLIDict_Entry( restart, "Sends a software restart, should be similar to powering on the device." ); |
2a4c99da1276
HUGE AVR RAM optimization (~28%).
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
44 CLIDict_Entry( version, "Version information about this firmware." ); |
2a4c99da1276
HUGE AVR RAM optimization (~28%).
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
45 |
2a4c99da1276
HUGE AVR RAM optimization (~28%).
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
46 CLIDict_Def( basicCLIDict, "General Commands" ) = { |
2a4c99da1276
HUGE AVR RAM optimization (~28%).
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
47 CLIDict_Item( cliDebug ), |
2a4c99da1276
HUGE AVR RAM optimization (~28%).
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
48 CLIDict_Item( help ), |
2a4c99da1276
HUGE AVR RAM optimization (~28%).
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
49 CLIDict_Item( led ), |
2a4c99da1276
HUGE AVR RAM optimization (~28%).
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
50 CLIDict_Item( reload ), |
2a4c99da1276
HUGE AVR RAM optimization (~28%).
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
51 CLIDict_Item( reset ), |
2a4c99da1276
HUGE AVR RAM optimization (~28%).
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
52 CLIDict_Item( restart ), |
2a4c99da1276
HUGE AVR RAM optimization (~28%).
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
53 CLIDict_Item( version ), |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
54 { 0, 0, 0 } // Null entry for dictionary end |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
55 }; |
104
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
56 |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
57 |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
58 |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
59 // ----- Functions ----- |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
60 |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
61 inline void prompt() |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
62 { |
114
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
63 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
|
64 print("\033[1;34m:\033[0m "); // Blue bold prompt |
106
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 |
110
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
67 // Initialize the CLI |
125
8dab4014c398
Major code cleanup and preparation for PartialMap Macro Module
Jacob Alexander <haata@kiibohd.com>
parents:
123
diff
changeset
|
68 inline void CLI_init() |
104
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
69 { |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
70 // Reset the Line Buffer |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
71 CLILineBufferCurrent = 0; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
72 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
73 // Set prompt |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
74 prompt(); |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
75 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
76 // Register first dictionary |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
77 CLIDictionariesUsed = 0; |
125
8dab4014c398
Major code cleanup and preparation for PartialMap Macro Module
Jacob Alexander <haata@kiibohd.com>
parents:
123
diff
changeset
|
78 CLI_registerDictionary( basicCLIDict, basicCLIDictName ); |
109
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
79 |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
80 // Initialize main LED |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
81 init_errorLED(); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
82 CLILEDState = 0; |
110
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
83 |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
84 // Hex debug mode is off by default |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
85 CLIHexDebugMode = 0; |
104
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
86 } |
e84738d174bc
Moving USB to Output in preparation for additional Output types.
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
87 |
110
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
88 // 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
|
89 void CLI_process() |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
90 { |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
91 // Current buffer position |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
92 uint8_t prev_buf_pos = CLILineBufferCurrent; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
93 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
94 // Process each character while available |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
95 while ( 1 ) |
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 // 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
|
98 if ( Output_availablechar() == 0 ) |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
99 break; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
100 |
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
|
101 // Retrieve from output module |
125
8dab4014c398
Major code cleanup and preparation for PartialMap Macro Module
Jacob Alexander <haata@kiibohd.com>
parents:
123
diff
changeset
|
102 char cur_char = (char)Output_getchar(); |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
103 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
104 // Make sure buffer isn't full |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
105 if ( CLILineBufferCurrent >= CLILineBufferMaxSize ) |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
106 { |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
107 print( NL ); |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
108 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
|
109 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
110 // Clear buffer |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
111 CLILineBufferCurrent = 0; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
112 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
113 // Reset the prompt |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
114 prompt(); |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
115 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
116 return; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
117 } |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
118 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
119 // Place into line buffer |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
120 CLILineBuffer[CLILineBufferCurrent++] = cur_char; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
121 } |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
122 |
110
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
123 // Display Hex Key Input if enabled |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
124 if ( CLIHexDebugMode && CLILineBufferCurrent > prev_buf_pos ) |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
125 { |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
126 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
|
127 print("\033[2K"); // Erases the current line |
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 uint8_t pos = prev_buf_pos; |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
130 while ( CLILineBufferCurrent > pos ) |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
131 { |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
132 printHex( CLILineBuffer[pos++] ); |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
133 print(" "); |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
134 } |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
135 |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
136 print("\033[u"); // Restore cursor position |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
137 } |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
138 |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
139 // 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
|
140 while ( CLILineBufferCurrent > prev_buf_pos ) |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
141 { |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
142 // Check for control characters |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
143 switch ( CLILineBuffer[prev_buf_pos] ) |
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 case 0x0D: // Enter |
121
71430b08fe81
Force curve gauge is feature complete!!
Jacob Alexander <haata@kiibohd.com>
parents:
114
diff
changeset
|
146 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
|
147 |
71430b08fe81
Force curve gauge is feature complete!!
Jacob Alexander <haata@kiibohd.com>
parents:
114
diff
changeset
|
148 // Remove the space if there is no command |
71430b08fe81
Force curve gauge is feature complete!!
Jacob Alexander <haata@kiibohd.com>
parents:
114
diff
changeset
|
149 if ( CLILineBufferCurrent == 1 ) |
71430b08fe81
Force curve gauge is feature complete!!
Jacob Alexander <haata@kiibohd.com>
parents:
114
diff
changeset
|
150 CLILineBufferCurrent--; |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
151 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
152 // 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
|
153 CLI_commandLookup(); |
106
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 // Reset the buffer |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
156 CLILineBufferCurrent = 0; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
157 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
158 // Reset the prompt after processing has finished |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
159 print( NL ); |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
160 prompt(); |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
161 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
162 // 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
|
163 // 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
|
164 return; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
165 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
166 case 0x09: // Tab |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
167 // 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
|
168 CLI_tabCompletion(); |
114
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
169 |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
170 CLILineBufferCurrent--; // Remove the Tab |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
171 |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
172 // 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
|
173 // 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
|
174 return; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
175 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
176 case 0x1B: // Esc |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
177 // Check for escape sequence |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
178 // TODO |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
179 return; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
180 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
181 case 0x08: |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
182 case 0x7F: // Backspace |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
183 // 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
|
184 CLILineBufferCurrent--; // Remove the backspace |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
185 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
186 // If there are characters in the buffer |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
187 if ( CLILineBufferCurrent > 0 ) |
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 // Remove character from current position in the line buffer |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
190 CLILineBufferCurrent--; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
191 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
192 // Remove character from tty |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
193 print("\b \b"); |
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 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
196 break; |
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 default: |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
199 // 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
|
200 CLILineBuffer[CLILineBufferCurrent] = '\0'; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
201 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
202 // Output buffer to screen |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
203 dPrint( &CLILineBuffer[prev_buf_pos] ); |
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 // Buffer reset |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
206 prev_buf_pos++; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
207 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
208 break; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
209 } |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
210 } |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
211 } |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
212 |
108
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
213 // Takes a string, returns two pointers |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
214 // 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
|
215 // 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
|
216 // 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
|
217 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
|
218 { |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
219 // Mark out the first argument |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
220 // 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
|
221 char* cmdPtr = string - 1; |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
222 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
|
223 |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
224 // Locates first space delimiter |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
225 char* argPtr = cmdPtr + 1; |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
226 while ( *argPtr != ' ' && *argPtr != '\0' ) |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
227 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 // 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
|
230 (++argPtr)[-1] = '\0'; |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
231 |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
232 // Set return variables |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
233 *first = cmdPtr; |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
234 *second = argPtr; |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
235 } |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
236 |
110
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
237 // 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
|
238 void CLI_commandLookup() |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
239 { |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
240 // Ignore command if buffer is 0 length |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
241 if ( CLILineBufferCurrent == 0 ) |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
242 return; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
243 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
244 // 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
|
245 CLILineBuffer[CLILineBufferCurrent] = '\0'; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
246 |
108
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
247 // 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
|
248 // 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
|
249 char* cmdPtr; |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
250 char* argPtr; |
125
8dab4014c398
Major code cleanup and preparation for PartialMap Macro Module
Jacob Alexander <haata@kiibohd.com>
parents:
123
diff
changeset
|
251 CLI_argumentIsolation( CLILineBuffer, &cmdPtr, &argPtr ); |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
252 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
253 // Scan array of dictionaries for a valid command match |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
254 for ( uint8_t dict = 0; dict < CLIDictionariesUsed; dict++ ) |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
255 { |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
256 // 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
|
257 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
|
258 { |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
259 // Compare the first argument and each command entry |
239
2a4c99da1276
HUGE AVR RAM optimization (~28%).
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
260 if ( eqStr( cmdPtr, (char*)CLIDict[dict][cmd].name ) == -1 ) |
106
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 // Run the specified command function pointer |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
263 // argPtr is already pointing at the first character of the arguments |
239
2a4c99da1276
HUGE AVR RAM optimization (~28%).
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
264 (*(void (*)(char*))CLIDict[dict][cmd].function)( argPtr ); |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
265 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
266 return; |
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 } |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
269 } |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
270 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
271 // No match for the command... |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
272 print( NL ); |
108
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
273 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
|
274 } |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
275 |
110
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
276 // Registers a command dictionary with the CLI |
192
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
126
diff
changeset
|
277 void CLI_registerDictionary( const CLIDictItem *cmdDict, const char* dictName ) |
106
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 // 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
|
280 if ( CLIDictionariesUsed >= CLIMaxDictionaries ) |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
281 { |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
282 erro_print("Max number of dictionaries defined already..."); |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
283 return; |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
284 } |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
285 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
286 // Add dictionary |
192
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
126
diff
changeset
|
287 CLIDictNames[CLIDictionariesUsed] = (char*)dictName; |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
126
diff
changeset
|
288 CLIDict[CLIDictionariesUsed++] = (CLIDictItem*)cmdDict; |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
289 } |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
290 |
125
8dab4014c398
Major code cleanup and preparation for PartialMap Macro Module
Jacob Alexander <haata@kiibohd.com>
parents:
123
diff
changeset
|
291 inline void CLI_tabCompletion() |
114
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 // Ignore command if buffer is 0 length |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
294 if ( CLILineBufferCurrent == 0 ) |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
295 return; |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
296 |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
297 // 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
|
298 CLILineBuffer[CLILineBufferCurrent] = '\0'; |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
299 |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
300 // Retrieve pointers to command and beginning of arguments |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
301 // Places a NULL at the first space after the command |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
302 char* cmdPtr; |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
303 char* argPtr; |
125
8dab4014c398
Major code cleanup and preparation for PartialMap Macro Module
Jacob Alexander <haata@kiibohd.com>
parents:
123
diff
changeset
|
304 CLI_argumentIsolation( CLILineBuffer, &cmdPtr, &argPtr ); |
114
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 // Tab match pointer |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
307 char* tabMatch = 0; |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
308 uint8_t matches = 0; |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
309 |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
310 // Scan array of dictionaries for a valid command match |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
311 for ( uint8_t dict = 0; dict < CLIDictionariesUsed; dict++ ) |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
312 { |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
313 // 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
|
314 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
|
315 { |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
316 // 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
|
317 // 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
|
318 // 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
|
319 // Also ignores full matches |
239
2a4c99da1276
HUGE AVR RAM optimization (~28%).
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
320 if ( eqStr( cmdPtr, (char*)CLIDict[dict][cmd].name ) == 0 ) |
114
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 // TODO Make list of commands if multiple matches |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
323 matches++; |
239
2a4c99da1276
HUGE AVR RAM optimization (~28%).
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
324 tabMatch = (char*)CLIDict[dict][cmd].name; |
114
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
325 } |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
326 } |
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 |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
329 // Only tab complete if there was 1 match |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
330 if ( matches == 1 ) |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
331 { |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
332 // Reset the buffer |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
333 CLILineBufferCurrent = 0; |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
334 |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
335 // Reprint the prompt (automatically clears the line) |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
336 prompt(); |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
337 |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
338 // Display the command |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
339 dPrint( tabMatch ); |
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 // 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
|
342 while ( *tabMatch != '\0' ) |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
343 { |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
344 CLILineBuffer[CLILineBufferCurrent++] = *tabMatch++; |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
345 } |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
346 } |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
347 } |
c57ec00a0abc
Adding basic Tab completion.
Jacob Alexander <haata@kiibohd.com>
parents:
113
diff
changeset
|
348 |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
349 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
350 |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
351 // ----- CLI Command Functions ----- |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
352 |
109
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
353 void cliFunc_cliDebug( char* args ) |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
354 { |
110
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
355 // Toggle Hex Debug Mode |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
356 if ( CLIHexDebugMode ) |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
357 { |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
358 print( NL ); |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
359 info_print("Hex debug mode disabled..."); |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
360 CLIHexDebugMode = 0; |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
361 } |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
362 else |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
363 { |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
364 print( NL ); |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
365 info_print("Hex debug mode enabled..."); |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
366 CLIHexDebugMode = 1; |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
367 } |
109
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
368 } |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
369 |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
370 void cliFunc_help( char* args ) |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
371 { |
108
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
372 // 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
|
373 // (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
|
374 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
|
375 { |
112
0cb43cb8f683
Adding dictionary titles.
Jacob Alexander <haata@kiibohd.com>
parents:
110
diff
changeset
|
376 // Print the name of each dictionary as a title |
239
2a4c99da1276
HUGE AVR RAM optimization (~28%).
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
377 print( NL "\033[1;32m" ); |
2a4c99da1276
HUGE AVR RAM optimization (~28%).
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
378 _print( CLIDictNames[dict] ); // This print is requride by AVR (flash) |
2a4c99da1276
HUGE AVR RAM optimization (~28%).
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
379 print( "\033[0m" NL ); |
108
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
380 |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
381 // 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
|
382 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
|
383 { |
109
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
384 dPrintStrs(" \033[35m", CLIDict[dict][cmd].name, "\033[0m"); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
385 |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
386 // Determine number of spaces to tab by the length of the command and TabAlign |
239
2a4c99da1276
HUGE AVR RAM optimization (~28%).
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
387 uint8_t padLength = CLIEntryTabAlign - lenStr( (char*)CLIDict[dict][cmd].name ); |
109
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
388 while ( padLength-- > 0 ) |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
389 print(" "); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
390 |
239
2a4c99da1276
HUGE AVR RAM optimization (~28%).
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
391 _print( CLIDict[dict][cmd].description ); // This print is required by AVR (flash) |
2a4c99da1276
HUGE AVR RAM optimization (~28%).
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
392 print( NL ); |
108
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
393 } |
ecb57880e3bc
Added help command and function'ized the arugmentIsolator.
Jacob Alexander <haata@kiibohd.com>
parents:
107
diff
changeset
|
394 } |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
395 } |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
396 |
109
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
397 void cliFunc_led( char* args ) |
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 CLILEDState ^= 1 << 1; // Toggle between 0 and 1 |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
400 errorLED( CLILEDState ); // Enable/Disable error LED |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
401 } |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
402 |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
403 void cliFunc_reload( char* args ) |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
404 { |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
405 // 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
|
406 Output_firmwareReload(); |
109
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
407 } |
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 void cliFunc_reset( char* args ) |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
410 { |
110
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
411 print("\033c"); // Resets the terminal |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
412 } |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
413 |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
414 void cliFunc_restart( char* args ) |
98d940b60d12
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
109
diff
changeset
|
415 { |
109
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
416 // 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
|
417 Output_softReset(); |
109
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
418 } |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
419 |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
420 void cliFunc_version( char* args ) |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
421 { |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
422 print( NL ); |
109
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
423 print( " \033[1mRevision:\033[0m " CLI_Revision NL ); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
424 print( " \033[1mBranch:\033[0m " CLI_Branch NL ); |
294
834d69d22d47
Adding list of modified files to the cli version command.
Jacob Alexander <haata@kiibohd.com>
parents:
239
diff
changeset
|
425 print( " \033[1mTree Status:\033[0m " CLI_ModifiedStatus CLI_ModifiedFiles NL ); |
109
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
426 print( " \033[1mRepo Origin:\033[0m " CLI_RepoOrigin NL ); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
427 print( " \033[1mCommit Date:\033[0m " CLI_CommitDate NL ); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
428 print( " \033[1mCommit Author:\033[0m " CLI_CommitAuthor NL ); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
429 print( " \033[1mBuild Date:\033[0m " CLI_BuildDate NL ); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
430 print( " \033[1mBuild OS:\033[0m " CLI_BuildOS NL ); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
431 print( " \033[1mArchitecture:\033[0m " CLI_Arch NL ); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
432 print( " \033[1mChip:\033[0m " CLI_Chip NL ); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
433 print( " \033[1mCPU:\033[0m " CLI_CPU NL ); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
434 print( " \033[1mDevice:\033[0m " CLI_Device NL ); |
2c1a9e6ae70e
Added more CLI commands.
Jacob Alexander <haata@kiibohd.com>
parents:
108
diff
changeset
|
435 print( " \033[1mModules:\033[0m " CLI_Modules NL ); |
106
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
436 } |
15961894eaeb
Adding basic CLI functionality.
Jacob Alexander <haata@kiibohd.com>
parents:
105
diff
changeset
|
437 |