Posted 25 August 2023
After (I hope) getting WallE3’s wall-switching feature figured out, I am trying to clean up the code in WallE3_Complete_V5:
- Enums: Removed NavCases, TrackingState enums. Removed ‘OPEN_CORNER’, ‘OPEN_DOORWAY’ and ‘TRACKING_WRONG_WALL’ anomaly codes from AnomalyCode enum list, and corresponding strings from AnomalyStrArray. Removed TRACKING_LEFT/RIGHT_CAPTURE entries from WallTrackingCases enum list, and corresponding strings from WallTrackStrArray. Now there are only three enums in enums.h.
- Cleaned out unused/commented-out PID values from WALL_FOLLOW_SUPPORT #pragma region
- Deleted previously commented-out global boolean variables (see this post for details)
- Removed dead code from loop() #pragma region WALL_TRACKING section. Now this section contains only one line – ‘HandleAnomalousConditions(gl_CurTrackingCase);’
- Removed dead code from UpdateAllEnvironmentParameters()
- Removed IsOpenCorner() (was already commented out)
- Removed IsTrackingWrongWall() (was already commented out)
- Removed CheckForAnomalies() (was already commented out)
- Added braces to ANOMALY_NONE: case in HandleAnomalousConditions() to eliminate any possible scoping issues.
- Removed dead code from ExecuteStuckRecoveryManeuver()
- Removed dead code from ExecuteRearObstacleRecoveryManeuver()
When done, The code cleanup resulted in about 700 fewer lines of code (~6400 vs ~7100)