recuperation valeur roomba
Publié : 13 août 2017, 10:17
bonjour j'appel a l'aide car je n'arrive pas a recuperer des valeurs dans un xml. J'ai essayé en s'inpirant d'un script sur un autre cas mais impossible.
voila je recupere un xml de cette forme
je veux recuperer la valeur de r14
je fais donc une boucle en utilisant mais celui ci me retourne 'Charge'2696. J'ai essayé de le passer par une fonction tonumber() mais celle ci me retourne rien
plan B
je recupere un xml de cette forme
je veux recuperer la valeur de r14
j'utilise toujours le meme principe une boucle avec ce code if string.find(line,"r14") then. La la valeur de line est bien 3 mais quand je veux utiliser la variable de line dans une boucle if(line == 3) then cette condition n'est jamais vrai. Je pense que c'est du au fait que line est consideré comme chaine de caratere et non un entier. j'ai donc essayer encore la fonction tonumber(line) mais celle ci me retourne rien.
Voila si vous avez des idées ou hypothese je suis preneur et surtout desesperé
merci d'avance et bon dimanche
voila je recupere un xml de cette forme
Code : Tout sélectionner
<response>
<r0><name>'Bumps Wheeldrops'</name><value>3</value></r0>
<r1><name>'Wall'</name><value>0</value></r1>
<r2><name>'Cliff Left'</name><value>1</value></r2>
<r3><name>'Cliff Front Left'</name><value>1</value></r3>
<r4><name>'Cliff Front Right'</name><value>1</value></r4>
<r5><name>'Cliff Right'</name><value>1</value></r5>
<r6><name>'Virtual Wall'</name><value>0</value></r6>
<r7><name>'Motor Overcurrents'</name><value>0</value></r7>
<r8><name>'Dirt Detector - Left'</name><value>0</value></r8>
<r9><name>'Dirt Detector - Right'</name><value>0</value></r9>
<r10><name>'Remote Opcode'</name><value>0</value></r10>
<r11><name>'Buttons'</name><value>0</value></r11>
<r12><name>'Distance'</name><value>0</value></r12>
<r13><name>'Angle'</name><value>0</value></r13>
<r14><name>'Charging State'</name><value>3</value></r14>
<r15><name>'Voltage'</name><value>16699</value></r15>
<r16><name>'Current'</name><value>63</value></r16>
<r17><name>'Temperature'</name><value>32</value></r17>
<r18><name>'Charge'</name><value>2696</value></r18>
<r19><name>'Capacity'</name><value>2696</value></r19>
</response>
je fais donc une boucle en utilisant
Code : Tout sélectionner
if string.find(line,"'Charge'") thenplan B
je recupere un xml de cette forme
Code : Tout sélectionner
<response>
<r0>3</r0>
<r1>0</r1>
<r2>1</r2>
<r3>1</r3>
<r4>1</r4>
<r5>1</r5>
<r6>0</r6>
<r7>0</r7>
<r8>0</r8>
<r9>0</r9>
<r10>0</r10>
<r11>0</r11>
<r12>0</r12>
<r13>0</r13>
<r14>3</r14>
<r15>16699</r15>
<r16>63</r16>
<r17>32</r17>
<r18>2696</r18>
<r19>2696</r19>
</response>
j'utilise toujours le meme principe une boucle avec ce code if string.find(line,"r14") then. La la valeur de line est bien 3 mais quand je veux utiliser la variable de line dans une boucle if(line == 3) then cette condition n'est jamais vrai. Je pense que c'est du au fait que line est consideré comme chaine de caratere et non un entier. j'ai donc essayer encore la fonction tonumber(line) mais celle ci me retourne rien.
Voila si vous avez des idées ou hypothese je suis preneur et surtout desesperé
merci d'avance et bon dimanche