ho una stringa così composta "12#1" cioè un numero intero compreso tra 0 e 23, un cancelletto, ed uno 0 o un 1.
devo seprare la stringa nelle due parti che chiamo, indirizzo e comando... faccio così;
int posizione; byte indirizzo, azione;
for( int i = 1; i <= indiceComando; i++)
{posizione = comando[i].indexOf("#");
indirizzo = atoi (comando[i].substring(0, comando[i].indexOf("#")));
azione = atoi (comando[i].substring(comando[i].indexOf("#")+1));
Serial.print("\n"); Serial.print("indirizzo:"); Serial.print(comando[i].substring(0, comando[i].indexOf("#")));Serial.print(" azione:"); Serial.print(comando[i].substring(comando[i].indexOf("#")+1));
}
ma atoi non funziona... mi da quest'errore in fase di compilazione:
DecoderDTMF6.cpp: In function 'void rilevaStringaDTMF()':
DecoderDTMF6:80: error: cannot convert 'String' to 'const char*' for argument '1' to 'int atoi(const char*)'
DecoderDTMF6:81: error: cannot convert 'String' to 'const char*' for argument '1' to 'int atoi(const char*)'
la separazione delle stringhe è giusta perchè se commento le due righe
// indirizzo = atoi (comando_.substring(0, comando*.indexOf("#")));_
// azione = atoi (comando_.substring(comando.indexOf("#")+1));
la stampa su seriale è perfetta, nel separare la componente indirizzo dalla componente azione.
suggerimenti????
devo necessariamente passare attraverso un'altra stringa prima di utilizzare il metodo atoi????
grazie
[quote author=Michele Menniti link=topic=114509.msg861642#msg861642 date=1342459601]
Ciao Paolo, se posso darti un suggerimento, sposta il Topic nella nuova sezione software, è la sua collocazione ideale, poi questo lo elimini.
[/quote]*
Grazie Michele... non mi ero neppure accorto di questa nuova sezione ...._
Qualcuno sa suggerirmi una soluzoine al mio problema senza dover trasformare l'oggetto String in Char * .. perchè mi si complica troppo il resto dello script ...