[Webduino]Convertire dato ricevuto da web

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.

Secondo voi cosa può essere??? Grazie!!!

Nessuno? :disappointed_relieved: :disappointed_relieved:

Non tutti passano ore davanti al computer come me :wink:
Dai tempo a qualcuno che ha usato Webduino di darti una mano.

Se nessuno risponde, invece di fare un up prova:

  1. a fare una ricerca sul forum
  2. a chiedere nella sezione internazionale del forum (ci sono più utenti, quindi più probabilità di ricevere aiuto).

leo72:
Non tutti passano ore davanti al computer come me :wink:
Dai tempo a qualcuno che ha usato Webduino di darti una mano.

Se nessuno risponde, invece di fare un up prova:

  1. a fare una ricerca sul forum
  2. 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!!!!! :blush: :blush:

Tutte le ricerche che ho fatto mi riportano al metodo atoi() che ho utilizzato....per quanto riguarda la sezione internazionale non vorrei fare crossposting.

Attendo... :slight_smile:

Non posso aiutarti con Webduino (le mie conoscenze di rete sono prossime a zero) ma potrei provare a darti mano con atoi.
Qual è il problema?

allora…

dalla pagina html arriva questo str_giorno=10 io devo prendere il valore e convertirlo in int

Considerando sempre il valore ‘10’ questo è quello che vedo nella seriale (aggiungendo qualche riga di codice)

value 10
value[0] 1
value[1] 0
int_value 0 <-------sbagliato

prova 10
prova[0] 1
prova[1] 0
int_prova 10 <------questo è quello che vorrei ottenere con i dati ricevuti da web

Grazie, quando torno a casa provo...

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.

O c'è qualcos'altro che hai omesso?

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

Non in quel punto. Lì è vuoto.

leo72:
Non in quel punto. Lì è vuoto.

Quasi (anzi...senza quasi) mi vergogno a dirvi che ho risolto(anzi.....hai risolto) :blush: :blush:
Avevi ragione, mi è bastato spostare

int_value = atoi(value);

dopo

repeat = server.readPOSTparam( name, 16, value, 16);

Grazie!!!!! :blush: :blush: :blush: