Come si usano la nuove funzionalità?
semplice, spero:
per trasferire byte si fa dimensionare un array chiamato arraybyte
si fa dimensionare siglìnifica che lo dimensiona la libreria, basta, prima di includerla creare la macro ARRAYBYTE (notare il maiuscolo) con una #define, da calcoli miei il massimo indice utilizzabile è 78
non sono pochi come sembra, se avete da trasferire più di 78 variabili byte (o un numero corrispondente di variabili più ingombranti) c'è qualcosa che non va nella maniere di come avete "diviso i compiti" tra le varie macchine
la funzione
int remoteByteRead(char indirizzo, byte elemento) acctta come argomenti l'indirizzo della macchina remota e l'indice dell'elemento dell'array da leggere (va da se che sia minore o oguale a quanto grande avete dimensionato l'array)
invece la int remoteByteWrite(char indirizzo, byte elemento, byte valore)
scrive il valore nell'elemento dell'array, per il resto uguale è
se con la macro ARRAYFUNZIONI si fa dimensionare alla libreria un arrai di puntatori a funzioni (anche qui massimo 78 elementi, e se li usate tutti avete GROSSI problemi di divisione dei compiti)
create le funzioni
byte funzione (byte){} e usate il nome della funzione per popolare (modo di dire studiato che significa: scrivere dentro) l'array
la funzione int remoteFunBCall(char indirizzo, byte elemento, byte valore)
chiama sulla macchina remota la funzione puntata dall'elemento dell'array e ne riporta il risultato
due parole sui tipi
lo so', c'è un po' di confusione, in alcuni punti ho usato int dove basta (e anzi ho citato ) byte, metterò a posto
ma per ora così va e fa tutto quello che deve
il programma di esempio?
in allegato
allafieradellarray.ino (9.27 KB)