Hello
I need to move some functions from INO to a CPP file to make the program more readable.
the INO contains:
// stuff
#include "CheckSerial.h"
void loop {
//do stuff
CheckSerialInput();
//do stuff
}
void SwitchLight(int number, bool state) {
//do stuff
}
// stuff
the CheckSerial.cpp contains:
// stuff
void CheckSerialInput(){
//do stuff
SwitchLight(number, state); <--- Error
//do stuff
}
// stuff
How can i #include main INO file in CheckSerial.h/cpp to call a function back?
Thank you
Jack
The best way is to move the function in the cpp or create another cpp and include its header file in both your cpp and the ino.
If you realy want to keep it int the ino file, you must give it as parameter of the function
In your cpp
void CheckSerialInput(void (*f)(int, bool) )
{
//do stuff
(*f)(number, state);
//do stuff
}
In your .ino
void SwitchLight(int number, bool state);
void loop {
//do stuff
CheckSerialInput(SwitchLight);
//do stuff
}
void SwitchLight(int number, bool state) {
//do stuff
}
If you are using the Arduino IDE, you could put the functions into tabs. The tabs will be saved as .ino files in the sketch folder.
Thank you for the quick answer!
Both solutions works perfectly
The solution from xartefact (function pointer) is more flexible, while the solution from groundFungus (just add another file) is easyer for newbie on Arduino and seems to use 70 bytes of program storage less.
Thanks
Jack