Buongiorno ragazzi. Sto migliorando il mio progetto (volendolo rendere universale e più flessibile) con una classe. Non avendolo mai fatto colgo l'occasione per migliorarmi anche da un punto di vista conoscitivo (forse lo faccio più per questo che per il motivo indicato precedentemente).
Ho creato il .h e il .cpp. Ho dichiarato le varie variabili che tutti gli oggetti avranno in comune e i metodi sia per settarle che per prelevarle, nonche il metodo che alla richiesta mi restituirà il json con tutte le informazioni sullo stato dell'oggetto.
Ok, tutto ciò funziona come dovrebbe, a parte il problema relativo al json che ho illustrato in un'altra discussione e che al momento ho risolto abbreviandolo in modo da avere al massimo una lunghezza di 90 caratteri da inviare con client.print().
Veniamo al dunque, ciò che vi volevo chiedere è:
Ho l'oggetto con variabili in comune, quali temperatura, mode di funzionamento, ventola, stati ecc... E dovrei dichiararne alcune altre che variano a seconda di una proprietà dell'oggetto che vado a creare.
Chessò, se dichiaro come brand 1 devo dichiarare:
//dato COMFEE
byte comandocuc[12] = {0xB, 0x2, 0x4, 0xD, 0xB, 0xF, 0x4, 0x0, 0x0, 0x0, 0xF, 0xF};
int datacuc[12] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0};
int sleepcuc[12] = {0xB, 0x2, 0x4, 0xD, 0xE, 0x0, 0x1, 0xF, 0x0, 0x3, 0xF, 0xC};
const byte tempcuca[14] = {0x0, 0x1, 0x3, 0x2, 0x6, 0x7, 0x5, 0x4, 0xC, 0xD, 0x9, 0x8, 0xA, 0xB};
const byte offcuc[12] = {0xB, 0x2, 0x4, 0xD, 0x7, 0xB, 0x8, 0x4, 0xE, 0x0, 0x1, 0xF};
const byte sweepcuc[12] = {0xB, 0x2, 0x4, 0xD, 0x0, 0xF, 0xF, 0x0, 0xE, 0x0, 0x1, 0xF};
const byte ventolacuca[4] = {0xB, 0x9, 0x5, 0x3};
const byte modecuca[3] = {0x0, 0x4, 0xC};
byte t=0;
mentre se dichiaro come brand 2 devo dichiarare:
//dato ZEPHIR
unsigned long data[5] = {0x000000, 0x000000, 0x000000, 0x000000, 0x000000};
byte primo[6] = {0x6, 0x5, 0xC, 0x6, 0x0, 0x0};
byte secondo[6] = {0x0, 0x0, 0x0, 0x2, 0x0, 0xC};
byte terzo[6] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0};
byte quarto[6] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0};
byte quinto[6] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0};
const byte tempcama[17] = {0xC, 0xD, 0xE, 0xF, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xA, 0xB, 0xC};
const byte modecama[3] = {0x2, 0x3, 0x1};
const byte ventcama[4] = {0x0, 0x2, 0x3, 0x1};
Se metto entrambi nell'h per poi crearli nel costruttore a seconda di quello che mi serve, probabilmente, anzi sicuramente lui alla creazione dei due (non ha importanza di che brand dichiaro) lui alloca lo spazio per entrambi e per due volte perchè alla compilazione la ram utilizzata è oltre il 90% mentre quando erano all'interno dello sketch occupavano al max 60%.
Come posso fare per far si di dichiarare solo il gruppo di variabili che mi servono per un determinato brand???
Spero di aver esposto bene il problema. Ringraziandovi anticipatamente vi auguro una serena giornata.