Like you, I *really* hate having ANY intellisense errors in my code - it drives me completely batty. I created a new Arduino project, created a companion 'enums.h' file, and slowly added pre-setup and setup() code to see how well intellisense responds. Unfortunately I was unable to eliminate the red 'squiggles' from intellisense. AFAICT, *all* the enum identifiers are still being flagged as 'identifier 'x' is not defined', as shown in one of my many functions referencing enums
and here is my 'enums.h' file, which is included at the top of my main file.
#pragma once
#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif
enum NavCases
{
NAV_NONE = 0,
NAV_WALLTRK,
NAV_OBSTACLE,
NAV_STEPTURN,
NAV_STUCK,
NAV_OPENCNR
};
//04/10/20 Experiment with porting heading based tracking capability from two wheel robot
enum TrackingState
{
TRK_RIGHT_NONE,
TRK_RIGHT_CAPTURE,
TRK_RIGHT_MAINTAIN,
TRK_RIGHT_BACKUP_AND_TURN,
TRK_RIGHT_STEP_TURN
};
const char* NavStrArray[] = { "WallTrack", "Obstacle", "StepTurn", "Stuck", "OpenCorner" };
//03/08/17 added for new mode/state definitions; see http://fpaynter.com/2017/03/wall-e2-operating-mode-review/
enum OpModes
{
MODE_NONE = 0, //04/04/17 chg from MODE_DEFAULT and moved to top (zero) position
MODE_CHARGING,
MODE_IRHOMING,
MODE_WALLFOLLOW,
MODE_WALLCAPTURE, //added 07/16/21 to manage wall offset capture operations
MODE_DEADBATTERY, //added 01/16/18 to handle dead battery case
MODE_DISCHARGE //added 03/04/20 to safely discharge the battery
};
enum AnomalyCode
{
NO_ANOMALIES = 0,
STUCK_AHEAD,
STUCK_BEHIND,
OBSTACLE_AHEAD,
WALL_OFFSET_DIST_AHEAD,
OBSTACLE_BEHIND,
OPEN_CORNER,
DEAD_BATTERY,
//CHG_STN_AVAIL, //added 04/14/22 c/o 06/12/22 back in 06/14/22 c/o again 06/16/22
CHARGER_CONNECTED //added 05/22/22
};
const char* AnomalyStrArray[] = { "NO_ANOMALIES", "STUCK_AHEAD", "STUCK_BEHIND", "OBSTACLE_AHEAD",
"WALL_OFFSET_DIST_AHEAD","OBSTACLE_BEHIND", "OPEN_CORNER", "DEAD_BATTERY", "CHARGER_CONNECTED" };//06/12/22 CHG_STN_AVAIL removed
const char* ModeStrArray[] = { "None", "Charge", "Home", "Wall", "Capture", "DeadBatt", "Discharge" };
const char* LongModeStrArray[] = { "None", "Charging", "IR Homing", "Wall Following", "Wall Capture", "Dead Battery", "Discharging" };
enum WallTrackingCases
{
TRACKING_NONE = 0,
TRACKING_LEFT,
TRACKING_LEFT_CAPTURE, //added 02/26/22
TRACKING_RIGHT,
TRACKING_RIGHT_CAPTURE, //added 02/26/22
TRACKING_NEITHER
};
const char* TrkStrArray[] = { "None", "Left", "Left Capture", "Right", "Right Capture", "Neither" };
const char* WallFollowTelemHdrStr = "Msec\tLF\tLC\tLR\tSteer\tDeg\tCos\tLCCorr\tSet\tErr\tOutput\tLSpd\tRSpd\n";
const char* WallFollowTelemStr = "%lu\t%d\t%d\t%d\t%2.2f\t%2.2f\t%2.2f\t%2.1f\t%2.1f\t%2.1f\t%2.1f\t%d\t%d\n";
enum VL53L0X_REQUEST
{
VL53L0X_READYCHECK, //added 11/10/20 to prevent bad reads during Teensy setup()
VL53L0X_CENTERS_ONLY,
VL53L0X_RIGHT,
VL53L0X_LEFT,
VL53L0X_ALL, //added 08/06/20, replaced VL53L0X_BOTH 10/31/20
VL53L0X_REAR_ONLY //added 10/24/20
};
What am I doing wrong here?