Python et lecture xml sur port série
Publié : 31 mars 2015, 13:03
Bonjour,
J'ai un équipement connecté à un serveur Windows qui envoie des données de conso électrique via un port COM dans un flux xml.
Je voudrais essayer de parser le flux xml mais je suis embêté par qq caractères qui me bloquent dans mon code.
Voici le code :
Et c'est là que ça coince, avec les fins de lignes, les \r\n que je n'arrive pas à enlever dans la variable line
Si des habitués du python peuvent me venir en aide, je leur en serai reconnaissant.
J'ai un équipement connecté à un serveur Windows qui envoie des données de conso électrique via un port COM dans un flux xml.
Je voudrais essayer de parser le flux xml mais je suis embêté par qq caractères qui me bloquent dans mon code.
Voici le code :
Code : Tout sélectionner
import serial
import os
import requests
from lxml import etree
#Constants
COMPORT = "COM4"
COMPORT_BAUD = 57600
DOMOTICZ_URL = "http://192.168.0.36:8080"
# connect to the CurrentCost meter
ser = None
try:
ser = serial.Serial(port=COMPORT, baudrate=COMPORT_BAUD, timeout=30)
except serial.SerialException:#, msg:
print("Failed to connect to CurrentCost meter :: " + str(msg))
exit(1)
print ("Connected to "+COMPORT+" at "+str(COMPORT_BAUD)+" Baud!")
print (ser.name)
print ("Trying to read lines now....")
while True:
line = str(ser.readline())
line = line.lstrip('b')
line = line.replace('\n','').replace('\r','')
print (line) # Uncomment out this row if you want to see the raw XML
#line = '<msg><src>CC128-v0.11</src><dsb>01784</dsb><time>16:40:19</time><tmpr>10.6</tmpr><sensor>2</sensor><id>03711</id><type>1</type><ch1><watts>00116</watts></ch1></msg>'
#node = etree.fromstring(line)
#print (node.tag)
#print (node.findtext('src'))
exit(0)Code : Tout sélectionner
'<msg><src>CC128-v0.11</src><dsb>01801</dsb><time>11:52:21</time><tmpr>13.3</tmpr><sensor>2</sensor><id>03711</id><type>1</type><ch1><watts>00043</watts></ch1></msg>\r\n'
'<msg><src>CC128-v0.11</src><dsb>01801</dsb><time>11:52:23</time><tmpr>13.3</tmpr><sensor>1</sensor><id>01912</id><type>1</type><ch1><watts>00057</watts></ch1></msg>\r\n'