Rieccomi di nuovo a chiedere aiuto.
Come da oggetto ho problemi a convertire un dato inviato ad arduino tramite jquery.
In pratica mi serve un intero da scrivere sulla EEprom ma la conversione mi restituisce sempre 0!!!
Questa la funzione Jquery
$("#invio_dataOra").click(function(){
var giorno = $("select#select_giorno").val();
var mese = $("select#select_mese").val();
var anno = $("select#select_anno").val();
var ora = $("select#select_ora").val();
var minuti = $("select#select_minuti").val();
$.ajax({
type:"POST",
dataType:"text",
url:"http://xx.xx.xxx.xxx",
data:{str_giorno:giorno,str_mese:mese, str_anno:anno, str_ora:ora, str_minuti:minuti}
});
});
E questa la funzione che elabora i dati ricevuti:
void formCmd(WebServer &server, WebServer::ConnectionType type, char *url_tail, bool tail_complete)
{
bool repeat;
char name[16];
char value[16];
int int_value;
char prova[10] = {"10"}; //PROVA
int int_prova; //PROVA
do{
int_value = atoi(value);
int int_prova = atoi(prova); //PROVA
repeat = server.readPOSTparam( name, 16, value, 16);
Serial.println(value); //Restituisce il dato corretto ricevuto dalla pagina html
Serial.println(int_value); //Restituisce sempre 0
Serial.println(prova); //Restituisce 10(corretto)
Serial.println(int_prova); //Restituisce 10(corretto)
}
while (repeat);
set_replacements_array();
// dalla pseudopagina FORM torno alla root
server.httpSeeOther("/");
return;
}
Sperando di aiutarvi a farvi capire qual'è il problema ho eliminato alcune parti e aggiunto alcuni commenti.
Il codice di prova è una sorta di simulazione con un dato dichiarato anzichè trasmesso dalla pagina html, in questo caso atoi() funziona correttamente.
leo72:
Non tutti passano ore davanti al computer come me
Dai tempo a qualcuno che ha usato Webduino di darti una mano.
Se nessuno risponde, invece di fare un up prova:
a fare una ricerca sul forum
a chiedere nella sezione internazionale del forum (ci sono più utenti, quindi più probabilità di ricevere aiuto).
Hai ragione, conosco molto bene la netiquette dei forum e non è mia abitudine...ma sono bloccato da giorni su questo problema!!!!!
Tutte le ricerche che ho fatto mi riportano al metodo atoi() che ho utilizzato....per quanto riguarda la sezione internazionale non vorrei fare crossposting.
Però ancora non mi spiego perchè "simulando" lo stesso dato ricevuto da web ( int prova[10] = {"10"}) la conversione funziona.. come puoi vedere dalla seriale postata poco sopra, i due dati vengono trattati allo stesso modo da arduino :~
Scusami ma quello è il codice che usi?
Perché è normale che non funzioni: nella funzione formCmd dichiari char value[10] ma poi dentro non ci metti nessun carattere. Ci credo che poi atoi(value) restituisca 0.
leo72:
Scusami ma quello è il codice che usi?
Perché è normale che non funzioni: nella funzione formCmd dichiari char value[10] ma poi dentro non ci metti nessun carattere. Ci credo che poi atoi(value) restituisca 0.
O c'è qualcos'altro che hai omesso?
value viene riempito dalla stringa inviata dal form html