PHP e C sono 2 linguaggi che hanno una sintassi simile ma un concetto di stringhe totalmente diversa.
È meglio che ci dici come vengono trasmessi i dati e cerchiamo di fare un sketch per leggerle.
Ciao Uwe
Leggo nella tua presentazione che hai Arduino e Raspberry. Questo codice è per Raspy?
Non conosco json. Ma a me sembra che quel codice chiami una pagina php ed "estrapoli" dei dati tabellari, e di questi prenda un campo chiamato GPTOT.
Non credo che su Arduino giri json, ma potrei sbagliarmi. Prova a cercare in internet come si usa la libreria json su Arduino e come si effettua una sua chiamata. Il resto non dovrebbe essere difficile.
Comunque se vuoi tradurre quel codice php su Arduino, penso sia utile un minimo di informazioni. Che Arduino hai ? Hai la scheda ethernet ? Quale scheda, WIZ5100 o la ENC (visto che usano librerie diverse) ?
Attendi risposte più precise.
P.S. sai come pilotare un display 20x2 su Arduino (di solito si trovano i 16x2) ?
L'utente @Lesto mi sembra ne sappia molto su parte web e Arduino. Se passa di qui penso possa aiutarti. Oppure potresti mandargli un msg in privato PM ed invitarlo a leggere questo tuo topic.
allora, json è un formato di memorizzazione dati mooolto espansivo, paragonabile all'XML. In pratica difficilmente arduino (uno/mega) contiene in memoria stringhe di 100 lettere.
La stessa richiesta POST (in tal caso direi parliamo di post) è mooolto più grande.
Il che vuol dire che al contrario di PHP non puoi pre-analizzare la stringa completa, ma ad ogni byte letto devi controllare che sia necessario.
Se cerchi ho fatto una libreria parser che ti permetterà di estrarre il corpo (JSON), se esso è < 100 char (e non usi troppa ram in altre cose), allora potrai anallizzare con calma il json (no, la decode non esiste, in quanto un array ASSOCIATIVO non esiste nel C, devi fartelo (e di nuovo problemi ram/prestazioni)), ed estrarre i tuoi dati. Se non erro il JSNON che ti aspetti sarà fatto più o meno così:
il che, per quanto verboso, è molto semplice da analizzare
Se invece i dati sono > 100 byte (circa) allora la libreria sarà da modificare in modo che l'analisi è fatta mano a mano che si ricevono i byte, e l'algoritmo diventa un pò più complesso.
@nid69ita: grazie, ma conosco poco i protocolli TCP/UDP, il resto è google, per il resto non ho nemmeno una eth shield!