function name not declared in this scope... but it is!

arduino_new:

void executeCommand(Commands::command cmd) {

Serial.println("Processing Command");
}




I don't think that is a valid syntax for function parameter

sure it is... if the Commands::command type is public:

class Test {
  public:
    using funcPtr = void(*)(void);
};

void helloWorld(void){
  Serial.println("hello world");
}

void setup() {
  Serial.begin(9600);
  myFunction(helloWorld);
}

void loop() {
  
}

void myFunction(Test::funcPtr ptr) {
  ptr();
}