Skip to content

Commit 348dec5

Browse files
More PR feedback changes
1 parent 3d336d0 commit 348dec5

File tree

6 files changed

+92
-163
lines changed

6 files changed

+92
-163
lines changed

src/Mount.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,7 @@ void Mount::configureFocusStepper(byte pin1, byte pin2, int maxSpeed, int maxAcc
414414
|| AZ_DRIVER_TYPE == DRIVER_TYPE_TMC2209_UART || ALT_DRIVER_TYPE == DRIVER_TYPE_TMC2209_UART \
415415
|| FOCUS_DRIVER_TYPE == DRIVER_TYPE_TMC2209_UART
416416
#if UART_CONNECTION_TEST_TXRX == 1 || defined(TEST_VERIFY_MODE)
417-
bool Mount::connectToDriver(String driverKind, uint16_t *rmsCurrent)
417+
bool Mount::connectToDriver(const String &driverKind, uint16_t *rmsCurrent)
418418
{
419419
MappedDict<String, TMC2209Stepper *>::DictEntry_t lookupTable[] = {
420420
#if RA_DRIVER_TYPE == DRIVER_TYPE_TMC2209_UART

src/Mount.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ class Mount
180180
#if RA_DRIVER_TYPE == DRIVER_TYPE_TMC2209_UART || DEC_DRIVER_TYPE == DRIVER_TYPE_TMC2209_UART \
181181
|| AZ_DRIVER_TYPE == DRIVER_TYPE_TMC2209_UART || ALT_DRIVER_TYPE == DRIVER_TYPE_TMC2209_UART \
182182
|| FOCUS_DRIVER_TYPE == DRIVER_TYPE_TMC2209_UART
183-
bool connectToDriver(String driverKind, uint16_t *rmsCurrent = nullptr);
183+
bool connectToDriver(const String &driverKind, uint16_t *rmsCurrent = nullptr);
184184

185185
#endif
186186
#if RA_DRIVER_TYPE == DRIVER_TYPE_TMC2209_UART

src/Utility.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ String *splitStringBy(String str, char splitChar)
260260
array[t++] = str.substring(r);
261261
}
262262

263-
// Mark the end of the array with nullptr
263+
// Mark the end of the array with ""
264264
array[t] = "";
265265

266266
return array;

src/Utility.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ int sign(long num);
173173
int fsign(float num);
174174

175175
#define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))
176+
#define CASERETURN(c, r) case c: return r
176177

177178
// Return an array of String* with a nullptr sentinel
178179
String *splitStringBy(String str, char splitChar);

src/f_serial.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ void serialEvent()
4646
void processTestState()
4747
{
4848
static char buffer[32];
49-
static int index = 0;
49+
static unsigned int index = 0;
5050
switch (TestMenu::getMenuState())
5151
{
5252
case testMenuState_t::CLEAR:
@@ -74,12 +74,12 @@ void processTestState()
7474
char ch;
7575
if (Serial.readBytes(&ch, 1) == 1)
7676
{
77-
if (ch > 31)
77+
if (isascii(ch))
7878
{
7979
buffer[index] = ch;
8080
if (ch == '#')
8181
{
82-
buffer[index + 1] = 0;
82+
buffer[index + 1] = '\0';
8383
TestMenu::getCurrentMenu()->onCommandReceived(buffer);
8484
TestMenu::setMenuState(testMenuState_t::WAITING_ON_INPUT);
8585
TestMenu::getCurrentMenu()->display();
@@ -88,7 +88,7 @@ void processTestState()
8888
else
8989
{
9090
index++;
91-
if (index > 30)
91+
if (index > ARRAY_SIZE(buffer) - 1)
9292
{
9393
Serial.println(F("Buffer overflow, too many chars received"));
9494
index = 0;

src/testmenu.cpp

Lines changed: 84 additions & 156 deletions
Original file line numberDiff line numberDiff line change
@@ -37,62 +37,34 @@ String getMenuLabel(menuText_t labelId)
3737
{
3838
switch (labelId)
3939
{
40-
case MENU_BACK:
41-
return F("Back");
42-
case MENU_CONNECT_RA:
43-
return F("Connect to RA Driver");
44-
case MENU_CONNECT_DEC:
45-
return F("Connect to DEC Driver");
46-
case MENU_CONNECT_ALT:
47-
return F("Connect to ALT Driver");
48-
case MENU_CONNECT_AZ:
49-
return F("Connect to AZ Driver");
50-
case MENU_CONNECT_FOC:
51-
return F("Connect to FOCUS Driver");
52-
case MENU_PRIMARY_RA_CW:
53-
return F("Move RA Axis 1h clockwise");
54-
case MENU_PRIMARY_RA_CCW:
55-
return F("Move RA Axis 1h counter-clockwise");
56-
case MENU_PRIMARY_DEC_UP:
57-
return F("Move DEC Axis 15deg up");
58-
case MENU_PRIMARY_DEC_DOWN:
59-
return F("Move DEC Axis 15deg down");
60-
case MENU_TOGGLE_TRK:
61-
return F("Stop/Start Tracking");
62-
case MENU_SECONDARY_RATE_1:
63-
return F("Set distance to 0.1 arcmin");
64-
case MENU_SECONDARY_RATE_2:
65-
return F("Set distance to 0.5 arcmin");
66-
case MENU_SECONDARY_RATE_3:
67-
return F("Set distance to 2 arcmin");
68-
case MENU_SECONDARY_RATE_4:
69-
return F("Set distance to 5 arcmin");
70-
case MENU_SECONDARY_RATE_5:
71-
return F("Set distance to 15 arcmin");
72-
case MENU_SECONDARY_ALT_UP:
73-
return F("Move ALT Axis Up");
74-
case MENU_SECONDARY_ALT_DOWN:
75-
return F("Move ALT Axis Down");
76-
case MENU_SECONDARY_AZ_LEFT:
77-
return F("Move AZ Axis Left");
78-
case MENU_SECONDARY_AZ_RIGHT:
79-
return F("Move AZ Axis Right");
80-
case MENU_FACTORY_RESET:
81-
return F("Factory Reset (Erase EEPROM)");
82-
case MENU_PASSTHROUGH_COMMAND:
83-
return F("Issue LX200 Command");
84-
case MENU_MAIN_LIST_HARDWARE:
85-
return F("List Hardware");
86-
case MENU_MAIN_CONNECT_DRIVERS:
87-
return F("Connect Drivers");
88-
case MENU_MAIN_PRIMARY_AXIS_MOVES:
89-
return F("Primary Axis Moves (RA/DEC)");
90-
case MENU_MAIN_SECONDARY_AXIS_MOVES:
91-
return F("Secondary Axis Moves (ALT/AZ)");
92-
case MENU_PRIMARY_SET_HOME:
93-
return F("Set current as Home");
94-
case MENU_PRIMARY_GO_HOME:
95-
return F("Go Home");
40+
CASERETURN(MENU_BACK, F("Back"));
41+
CASERETURN(MENU_CONNECT_RA, F("Connect to RA Driver"));
42+
CASERETURN(MENU_CONNECT_DEC, F("Connect to DEC Driver"));
43+
CASERETURN(MENU_CONNECT_ALT, F("Connect to ALT Driver"));
44+
CASERETURN(MENU_CONNECT_AZ, F("Connect to AZ Driver"));
45+
CASERETURN(MENU_CONNECT_FOC, F("Connect to FOCUS Driver"));
46+
CASERETURN(MENU_PRIMARY_RA_CW, F("Move RA Axis 1h clockwise"));
47+
CASERETURN(MENU_PRIMARY_RA_CCW, F("Move RA Axis 1h counter-clockwise"));
48+
CASERETURN(MENU_PRIMARY_DEC_UP, F("Move DEC Axis 15deg up"));
49+
CASERETURN(MENU_PRIMARY_DEC_DOWN, F("Move DEC Axis 15deg down"));
50+
CASERETURN(MENU_TOGGLE_TRK, F("Stop/Start Tracking"));
51+
CASERETURN(MENU_SECONDARY_RATE_1, F("Set distance to 0.1 arcmin"));
52+
CASERETURN(MENU_SECONDARY_RATE_2, F("Set distance to 0.5 arcmin"));
53+
CASERETURN(MENU_SECONDARY_RATE_3, F("Set distance to 2 arcmin"));
54+
CASERETURN(MENU_SECONDARY_RATE_4, F("Set distance to 5 arcmin"));
55+
CASERETURN(MENU_SECONDARY_RATE_5, F("Set distance to 15 arcmin"));
56+
CASERETURN(MENU_SECONDARY_ALT_UP, F("Move ALT Axis Up"));
57+
CASERETURN(MENU_SECONDARY_ALT_DOWN, F("Move ALT Axis Down"));
58+
CASERETURN(MENU_SECONDARY_AZ_LEFT, F("Move AZ Axis Left"));
59+
CASERETURN(MENU_SECONDARY_AZ_RIGHT, F("Move AZ Axis Right"));
60+
CASERETURN(MENU_FACTORY_RESET, F("Factory Reset (Erase EEPROM)"));
61+
CASERETURN(MENU_PASSTHROUGH_COMMAND, F("Issue LX200 Command"));
62+
CASERETURN(MENU_MAIN_LIST_HARDWARE, F("List Hardware"));
63+
CASERETURN(MENU_MAIN_CONNECT_DRIVERS, F("Connect Drivers"));
64+
CASERETURN(MENU_MAIN_PRIMARY_AXIS_MOVES, F("Primary Axis Moves (RA/DEC)"));
65+
CASERETURN(MENU_MAIN_SECONDARY_AXIS_MOVES, F("Secondary Axis Moves (ALT/AZ)"));
66+
CASERETURN(MENU_PRIMARY_SET_HOME, F("Set current as Home"));
67+
CASERETURN(MENU_PRIMARY_GO_HOME, F("Go Home"));
9668
default:
9769
return F("Unknown");
9870
}
@@ -102,64 +74,36 @@ String getMenuAction(menuText_t labelId)
10274
{
10375
switch (labelId)
10476
{
105-
case MENU_BACK:
106-
return F("Action:Back");
107-
case MENU_CONNECT_RA:
108-
return F("Action:Connect|RA");
109-
case MENU_CONNECT_DEC:
110-
return F("Action:Connect|DEC");
111-
case MENU_CONNECT_ALT:
112-
return F("Action:Connect|ALT");
113-
case MENU_CONNECT_AZ:
114-
return F("Action:Connect|AZ");
115-
case MENU_CONNECT_FOC:
116-
return F("Action:Connect|FOC");
117-
case MENU_PRIMARY_RA_CW:
118-
return F("Action:MoveRAAxis|CW");
119-
case MENU_PRIMARY_RA_CCW:
120-
return F("Action:MoveRAAxis|CCW");
121-
case MENU_PRIMARY_SET_HOME:
122-
return F("Action:SetHome");
123-
case MENU_PRIMARY_GO_HOME:
124-
return F("Action:GoHome");
125-
case MENU_PRIMARY_DEC_UP:
126-
return F("Action:MoveDECAxis|UP");
127-
case MENU_PRIMARY_DEC_DOWN:
128-
return F("Action:MoveDECAxis|DOWN");
129-
case MENU_TOGGLE_TRK:
130-
return F("Action:ToggleTRK");
131-
132-
case MENU_SECONDARY_RATE_1:
133-
return F("Action:SetSecDist|0.1");
134-
case MENU_SECONDARY_RATE_2:
135-
return F("Action:SetSecDist|0.5");
136-
case MENU_SECONDARY_RATE_3:
137-
return F("Action:SetSecDist|2");
138-
case MENU_SECONDARY_RATE_4:
139-
return F("Action:SetSecDist|5");
140-
case MENU_SECONDARY_RATE_5:
141-
return F("Action:SetSecDist|15");
142-
143-
case MENU_SECONDARY_ALT_UP:
144-
return F("Action:MoveALTAxis|UP");
145-
case MENU_SECONDARY_ALT_DOWN:
146-
return F("Action:MoveALTAxis|DOWN");
147-
case MENU_SECONDARY_AZ_LEFT:
148-
return F("Action:MoveAZAxis|LEFT");
149-
case MENU_SECONDARY_AZ_RIGHT:
150-
return F("Action:MoveAZAxis|RIGHT");
151-
case MENU_FACTORY_RESET:
152-
return F("Action:FactoryReset");
153-
case MENU_PASSTHROUGH_COMMAND:
154-
return F("Action:PassthroughCmd");
155-
case MENU_MAIN_LIST_HARDWARE:
156-
return F("Action:ListHardware");
157-
case MENU_MAIN_CONNECT_DRIVERS:
158-
return F("Submenu:ConnectDrivers");
159-
case MENU_MAIN_PRIMARY_AXIS_MOVES:
160-
return F("Submenu:PrimaryAxisMoves");
161-
case MENU_MAIN_SECONDARY_AXIS_MOVES:
162-
return F("Submenu:SecondaryAxisMoves");
77+
CASERETURN(MENU_BACK, F("Action:Back"));
78+
CASERETURN(MENU_CONNECT_RA, F("Action:Connect|RA"));
79+
CASERETURN(MENU_CONNECT_DEC, F("Action:Connect|DEC"));
80+
CASERETURN(MENU_CONNECT_ALT, F("Action:Connect|ALT"));
81+
CASERETURN(MENU_CONNECT_AZ, F("Action:Connect|AZ"));
82+
CASERETURN(MENU_CONNECT_FOC, F("Action:Connect|FOC"));
83+
CASERETURN(MENU_PRIMARY_RA_CW, F("Action:MoveRAAxis|CW"));
84+
CASERETURN(MENU_PRIMARY_RA_CCW, F("Action:MoveRAAxis|CCW"));
85+
CASERETURN(MENU_PRIMARY_SET_HOME, F("Action:SetHome"));
86+
CASERETURN(MENU_PRIMARY_GO_HOME, F("Action:GoHome"));
87+
CASERETURN(MENU_PRIMARY_DEC_UP, F("Action:MoveDECAxis|UP"));
88+
CASERETURN(MENU_PRIMARY_DEC_DOWN, F("Action:MoveDECAxis|DOWN"));
89+
CASERETURN(MENU_TOGGLE_TRK, F("Action:ToggleTRK"));
90+
91+
CASERETURN(MENU_SECONDARY_RATE_1, F("Action:SetSecDist|0.1"));
92+
CASERETURN(MENU_SECONDARY_RATE_2, F("Action:SetSecDist|0.5"));
93+
CASERETURN(MENU_SECONDARY_RATE_3, F("Action:SetSecDist|2"));
94+
CASERETURN(MENU_SECONDARY_RATE_4, F("Action:SetSecDist|5"));
95+
CASERETURN(MENU_SECONDARY_RATE_5, F("Action:SetSecDist|15"));
96+
97+
CASERETURN(MENU_SECONDARY_ALT_UP, F("Action:MoveALTAxis|UP"));
98+
CASERETURN(MENU_SECONDARY_ALT_DOWN, F("Action:MoveALTAxis|DOWN"));
99+
CASERETURN(MENU_SECONDARY_AZ_LEFT, F("Action:MoveAZAxis|LEFT"));
100+
CASERETURN(MENU_SECONDARY_AZ_RIGHT, F("Action:MoveAZAxis|RIGHT"));
101+
CASERETURN(MENU_FACTORY_RESET, F("Action:FactoryReset"));
102+
CASERETURN(MENU_PASSTHROUGH_COMMAND, F("Action:PassthroughCmd"));
103+
CASERETURN(MENU_MAIN_LIST_HARDWARE, F("Action:ListHardware"));
104+
CASERETURN(MENU_MAIN_CONNECT_DRIVERS, F("Submenu:ConnectDrivers"));
105+
CASERETURN(MENU_MAIN_PRIMARY_AXIS_MOVES, F("Submenu:PrimaryAxisMoves"));
106+
CASERETURN(MENU_MAIN_SECONDARY_AXIS_MOVES, F("Submenu:SecondaryAxisMoves"));
163107
default:
164108
return F("Unknown");
165109
}
@@ -230,7 +174,7 @@ TestMenu::TestMenu(int level, String name, String parent, TestMenuItem *choices,
230174
}
231175
}
232176
}
233-
String getComponent(String comp)
177+
String getComponent(const String &comp)
234178
{
235179
if (comp == "AUTO_AZ_ALT")
236180
{
@@ -256,7 +200,7 @@ String getComponent(String comp)
256200
if (comp == "LCD_I2C_MCP23008")
257201
{
258202
return F("LCD display (MCP23008)");
259-
};
203+
}
260204
if (comp == "LCD_I2C_MCP23017")
261205
{
262206
return F("LCD display (MCP23017)");
@@ -593,44 +537,29 @@ void TestMenu::onKeyPressed(int key)
593537

594538
void TestMenu::displayStepperPos() const
595539
{
596-
String statusRaDec;
597-
statusRaDec = F(" RA: ");
598-
statusRaDec += rightJustify(String(mount.getCurrentStepperPosition(RA_STEPS)), 8);
599-
statusRaDec += mount.isAxisRunning(RA_STEPS) ? "^" : " ";
600-
statusRaDec += F(" ALT: ");
601-
#if (ALT_STEPPER_TYPE != STEPPER_TYPE_NONE)
602-
String altSteps = "n/a";
603-
#else
604-
String altSteps = String(mount.getCurrentStepperPosition(ALTITUDE_STEPS));
605-
#endif
606-
statusRaDec += rightJustify(altSteps, 8);
607-
statusRaDec += mount.isAxisRunning(ALTITUDE_STEPS) ? "^" : " ";
608-
statusRaDec += F(" TRK: ");
609-
statusRaDec += rightJustify(String(mount.getCurrentStepperPosition(TRACKING)), 8);
610-
statusRaDec += mount.isSlewingTRK() ? "^" : " ";
611-
612-
String statusAltAz;
613-
statusAltAz = F(" DEC: ");
614-
statusAltAz += rightJustify(String(mount.getCurrentStepperPosition(DEC_STEPS)), 8);
615-
statusAltAz += mount.isAxisRunning(DEC_STEPS) ? "^" : " ";
616-
statusAltAz += F(" AZ: ");
617-
#if (ALT_STEPPER_TYPE != STEPPER_TYPE_NONE)
618-
String azSteps = "n/a";
619-
#else
620-
String azSteps = String(mount.getCurrentStepperPosition(AZIMUTH_STEPS));
621-
#endif
622-
statusAltAz += rightJustify(azSteps, 8);
623-
statusAltAz += mount.isAxisRunning(AZIMUTH_STEPS) ? "^" : " ";
624-
statusAltAz += F(" FOC: ");
625-
#if (ALT_STEPPER_TYPE != STEPPER_TYPE_NONE)
626-
String focSteps = "n/a";
627-
#else
628-
String focSteps = String(mount.getCurrentStepperPosition(FOCUS_STEPS));
629-
#endif
630-
statusAltAz += rightJustify(focSteps, 8);
631-
statusAltAz += mount.isAxisRunning(FOCUS_STEPS) ? "^" : " ";
632-
Serial.println(statusRaDec);
633-
Serial.println(statusAltAz);
540+
char buffer[64];
541+
snprintf(buffer,
542+
sizeof(buffer),
543+
" RA: %8ld%s ALT: %8ld%s TRK: %8ld%s",
544+
mount.getCurrentStepperPosition(RA_STEPS),
545+
mount.isAxisRunning(RA_STEPS) ? "^" : " ",
546+
mount.getCurrentStepperPosition(ALTITUDE_STEPS),
547+
mount.isAxisRunning(ALTITUDE_STEPS) ? "^" : " ",
548+
mount.getCurrentStepperPosition(TRACKING),
549+
mount.isSlewingTRK() ? "^" : " ");
550+
Serial.println(buffer);
551+
552+
snprintf(buffer,
553+
sizeof(buffer),
554+
" DEC: %8ld%s AZ: %8ld%s FOC: %8ld%s",
555+
mount.getCurrentStepperPosition(DEC_STEPS),
556+
mount.isAxisRunning(DEC_STEPS) ? "^" : " ",
557+
mount.getCurrentStepperPosition(AZIMUTH_STEPS),
558+
mount.isAxisRunning(AZIMUTH_STEPS) ? "^" : " ",
559+
mount.getCurrentStepperPosition(FOCUS_STEPS),
560+
mount.isAxisRunning(FOCUS_STEPS) ? "^" : " ");
561+
Serial.println(buffer);
562+
634563
}
635564

636565
void TestMenu::display() const
@@ -655,7 +584,7 @@ void TestMenu::display() const
655584
{
656585
Serial.print(F("---------------- "));
657586
Serial.print(freeMemory());
658-
Serial.println(F(" bytes ------------"));
587+
Serial.println(F(" bytes -------------"));
659588
displayStepperPos();
660589
Serial.println(F("-----------------------------------------"));
661590
Serial.print(" ");
@@ -664,7 +593,6 @@ void TestMenu::display() const
664593
Serial.println(F("--------------------------"));
665594
}
666595

667-
//Serial.println(F("Please choose:"));
668596
for (int i = 0; i < _numChoices; i++)
669597
{
670598
_choices[i].setKey(i + 1);

0 commit comments

Comments
 (0)