recuperer une réponse d'un serveur
Bonjour, je reviens vers vous avec mon problème de serveur.
Mon code arduino doit renvoyer une réponse au client (ici mon app iOS)
et je ne sais pas trop comment récuperer cette réponse.
j'imagine que c'est un objet NSData qui doit faire ça, mais malgré les nombreux tutos, je rame !
Si une âme charitable pouvait me donner un soupçon de réponse, ça serait top.
void loop() {
EthernetClient client = server.available();
if (client) {
boolean currentLineIsBlank = true;
stringInput = "";
if (client.connected()) {
while (client.available()) {
char c = client.read();
if(stringInput.length() < sizeString) {
stringInput.concat(c);
}
if (c == '\n' && currentLineIsBlank) {
client.println("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
client.println("<estadoDomotica>");
// You can configure all pins (digitals or analog) here, copy and paste the block, and configure the pin
// // P2
client.print("<Pin>");
client.print("<namePin>Pin 2</namePin>");
client.print("<digitalPin>");
// Digital pin to control
client.print(Pin2);
client.print("</digitalPin>");
client.print("<Estado>");
client.print(digitalRead(Pin2));
client.print("</Estado>");
client.print("</Pin>");
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Je pense que tu peux t'inspirer de ça et d'utiliser des NSStream.
Merci Larme pour ta réponse.
Entre temps, j'ai un peu avancé.
J'arrive à me connecté au serveur arduino et à recevoir une réponse (mon NSLog en témoigne )
Par contre j'aimerai maintenant récupérer la valeur de l'état des pins qui se trouve dans la réponse du serveur et l'afficher dans un label
Mon code :
et voici ce que mon NSLog m'affiche :
La valeur a récupérer est soit 0 ou 1 à coté de : <Estado>0</Estado>
2015-03-15 20:57:59.841 agriduino[763:289187] <?xml version="1.0" encoding="utf-8"?>
<estadoDomotica>
<Pin><Nombre>Pin 2</Nombre><Estado>0</Estado></Pin><Pin><Nombre>Pin 3</Nombre><Estado>0</Estado></Pin><Pin><Nombre>Pin 4</Nombre><Estado>0</Estado></Pin><Pin><Nombre>Pin 5</Nombre><Estado>0</Estado></Pin><Pin><Nombre>Pin 6</Nombre><Estado>0</Estado></Pin><Pin><Nombre>Pin 7</Nombre><Estado>0</Estado></Pin><Pin><Nombre>Pin 8</Nombre><Estado>0</Estado></Pin><Pin><Nombre>Pin 9</Nombre><Estado>0</Estado></Pin><Pin><Nombre>Analog 0</Nombre><Estado>200</Estado></Pin><Pin><Nombre>Analog 1</Nombre><Estado>213</Estado></Pin><Pin><Nombre>Analog 2</Nombre><Estado>184</Estado></Pin><Pin><Nombre>Analog 3</Nombre><Estado>184</Estado></Pin><Pin><Nombre>Analog 4</Nombre><Estado>217</Estado></Pin><Pin><Nombre>Analog 5</Nombre><Estado>127</Estado></Pin></estadoDomotica>
Va falloir regarder du côté des parsers XML (NSXMLParser par exemple)