dove in realtà 80 sarà preso da una costante salvata altrove, ma non la costante il problema.
Non riesco a creare la initializar list, ricevo svariati errori (tra cui una re-definizione di MyWebServer), sicuramente perchè la richiamo in maniera errata. qualcuno può darmi un pezzo di codice funzionante da usare come costruttore nel file .cpp ?
Grazie.
sembra funzionare, non ricevo più errori in compilazione, ma sono perennemente incastrato con lo scope delle classi. Includo i 4-5 oggetti del progetto (è relativamente piccolo, ma molto compartimentato) nel file ino. Creo gli oggetti fuori da tutto, ad esempio:
MyWebServer mywebserver(80);
poi nel setup faccio l'init, come da esempio sopra.
Mi aspetterei, dato che l'oggetto mywebserver è stato creato fuori da tutto, fosse visibile ovunque, incluso nei file inclusi con altre classi, ma non è così.
Qualche sistema in c++/arduino per creare oggetti globali ?
A meno che, e mi andrebbe bene ugualmente, re-includere l'oggetto negli altri file, non faccia altro che ritornare il puntatore all'oggetto inizializzato dal main.ino, con tutto ciò che ne consegue. Una sorta di Singleton.
Vabbè, Arduino ci mette un po' del suo nell'incasinare le cose, comunque se nel tuo file incluso vuoi riferirti ad una variabile dichiarata globale nell' .ino principale, la keyword da usare è extern, es.:
Include "MyWebServer.h"
extern MyWebServer MyServer; //ovviamente con il nome che usi
Così facendo stai appunto indicando al compilatore che esiste una variabile di quel tipo dichiarata altrove, l'associazione verrà fatta al momento del linking. Se il linker non trova la variabile avrai un errore alla fine della compilazione.
Ciao, Ale.
P.S.: leggi anche questa discussione, dove è stato affrontato un problema simile.