@@ -89,7 +89,7 @@ void _printCompleteHelp()
8989 }
9090 }
9191
92- std::size_t paddedLength = longestCommand + 1 + longestArgument + 1 ; // +1 for space, +1 for newline
92+ std::size_t paddedLength = longestCommand + 1 + longestArgument + 2 ; // +1 for space, +2 for newline
9393
9494 std::string buffer;
9595 buffer.reserve ((paddedLength * commandCount) + descriptionSize); // Approximate size
@@ -117,6 +117,7 @@ void _printCompleteHelp()
117117
118118 buffer.append (command.description ());
119119
120+ buffer.push_back (' \r ' );
120121 buffer.push_back (' \n ' );
121122 }
122123 }
@@ -129,7 +130,7 @@ void _printCommandHelp(Serial::CommandGroup& group)
129130{
130131 std::size_t size = 0 ;
131132 for (const auto & command : group.commands ()) {
132- size++ ; // +1 for newline
133+ size += 2 ; // +2 for newline
133134 size += group.name ().size ();
134135 size++; // +1 for space
135136
@@ -141,29 +142,29 @@ void _printCommandHelp(Serial::CommandGroup& group)
141142 size += arg.name .size () + 3 ; // +1 for space, +2 for <>
142143 }
143144
144- size++ ; // +1 for newline
145+ size += 2 ; // +2 for newline
145146
146147 if (command.description ().size () > 0 ) {
147- size = command.description ().size () + 3 ; // +2 for indent, +1 for newline
148+ size = command.description ().size () + 4 ; // +2 for indent, +2 for newline
148149 }
149150
150151 if (command.arguments ().size () > 0 ) {
151- size += 13 ; // +13 for " Arguments:\n"
152+ size += 14 ; // +14 for " Arguments:\r \n"
152153 for (const auto & arg : command.arguments ()) {
153154 size += arg.name .size () + 7 ; // +4 for indent, +2 for <>, +1 for space
154155 size += arg.constraint .size ();
155156 if (arg.constraintExtensions .size () > 0 ) {
156- size += 2 ; // +1 for ':', +1 for newline
157+ size += 3 ; // +1 for ':', +2 for newline
157158 for (const auto & ext : arg.constraintExtensions ) {
158- size += ext.size () + 7 ; // +1 for newline, +6 for indent
159+ size += ext.size () + 8 ; // +2 for newline, +6 for indent
159160 }
160161 } else {
161- size++ ; // +1 for newline
162+ size += 2 ; // +2 for newline
162163 }
163164 }
164165 }
165166
166- size += 15 ; // +15 for " Example: \n"
167+ size += 16 ; // +16 for " Example: \r \n"
167168 size += group.name ().size () + 1 ; // +1 for space
168169
169170 if (command.name ().size () > 0 ) {
@@ -174,15 +175,16 @@ void _printCommandHelp(Serial::CommandGroup& group)
174175 size += arg.exampleValue .size () + 1 ; // +1 for space
175176 }
176177
177- size++ ; // +1 for newline
178+ size += 2 ; // +2 for newline
178179 }
179180
180- size++ ; // +1 for newline
181+ size += 2 ; // +2 for newline
181182
182183 std::string buffer;
183184 buffer.reserve (size); // TODO: Should be exact size, is 20 bytes off, figure out why
184185
185186 for (const auto & command : group.commands ()) {
187+ buffer.push_back (' \r ' );
186188 buffer.push_back (' \n ' );
187189 buffer.append (group.name ());
188190 buffer.push_back (' ' );
@@ -199,16 +201,18 @@ void _printCommandHelp(Serial::CommandGroup& group)
199201 buffer.push_back (' ' );
200202 }
201203
204+ buffer.push_back (' \r ' );
202205 buffer.push_back (' \n ' );
203206
204207 if (command.description ().size () > 0 ) {
205208 buffer.append (2 , ' ' );
206209 buffer.append (command.description ());
210+ buffer.push_back (' \r ' );
207211 buffer.push_back (' \n ' );
208212 }
209213
210214 if (command.arguments ().size () > 0 ) {
211- buffer.append (" Arguments:\n " sv);
215+ buffer.append (" Arguments:\r\ n " sv);
212216 for (const auto & arg : command.arguments ()) {
213217 buffer.append (4 , ' ' );
214218 buffer.push_back (' <' );
@@ -217,19 +221,22 @@ void _printCommandHelp(Serial::CommandGroup& group)
217221 buffer.push_back (' ' );
218222 buffer.append (arg.constraint );
219223 if (arg.constraintExtensions .size () > 0 ) {
224+ buffer.push_back (' \r ' );
220225 buffer.push_back (' \n ' );
221226 for (const auto & ext : arg.constraintExtensions ) {
222227 buffer.append (6 , ' ' );
223228 buffer.append (ext);
229+ buffer.push_back (' \r ' );
224230 buffer.push_back (' \n ' );
225231 }
226232 } else {
233+ buffer.push_back (' \r ' );
227234 buffer.push_back (' \n ' );
228235 }
229236 }
230237 }
231238
232- buffer.append (" Example:\n " sv);
239+ buffer.append (" Example:\r\ n " sv);
233240 buffer.append (group.name ());
234241 buffer.push_back (' ' );
235242
@@ -243,8 +250,10 @@ void _printCommandHelp(Serial::CommandGroup& group)
243250 buffer.push_back (' ' );
244251 }
245252
253+ buffer.push_back (' \r ' );
246254 buffer.push_back (' \n ' );
247255 }
256+ buffer.push_back (' \r ' );
248257 buffer.push_back (' \n ' );
249258
250259 ::Serial.print (buffer.data ());
@@ -616,22 +625,22 @@ void SerialInputHandler::SetSerialEchoEnabled(bool enabled)
616625
617626void SerialInputHandler::PrintWelcomeHeader ()
618627{
619- ::Serial.print ( R"(
620- ============== OPENSHOCK ==============
621- Contribute @ github.com/OpenShock
622- Discuss @ discord.gg/OpenShock
623- Type 'help' for available commands
624- =======================================
625- ) " );
628+ ::Serial.println ( " \
629+ ============== OPENSHOCK ==============\r\n \
630+ Contribute @ github.com/OpenShock\r\n \
631+ Discuss @ discord.gg/OpenShock\r\n \
632+ Type 'help' for available commands\r\n \
633+ =======================================\r\n \
634+ " );
626635}
627636
628637void SerialInputHandler::PrintVersionInfo ()
629638{
630639 ::Serial.print (" \
631- Version: " OPENSHOCK_FW_VERSION " \n \
632- Build: " OPENSHOCK_FW_MODE " \n \
633- Commit: " OPENSHOCK_FW_GIT_COMMIT " \n \
634- Board: " OPENSHOCK_FW_BOARD " \n \
635- Chip: " OPENSHOCK_FW_CHIP " \n \
640+ Version: " OPENSHOCK_FW_VERSION " \r\ n \
641+ Build: " OPENSHOCK_FW_MODE " \r\ n \
642+ Commit: " OPENSHOCK_FW_GIT_COMMIT " \r\ n \
643+ Board: " OPENSHOCK_FW_BOARD " \r\ n \
644+ Chip: " OPENSHOCK_FW_CHIP " \r\ n \
636645" );
637646}
0 commit comments