Hoe Write commando afsluiten met een return - Raspberry Pi Forums
hallo,
nieuw op forum en nieuw met raspberry pi!
deze draait ondertussen.
via usb een seriële aansluiting gemaakt op een besturingsprint.
deze poort kan ik uitlezen.
dit heb ik werkend gemaakt met behulp van de website: http://gejanssen.com/howto/slimme-meter-uitlezen/
wat ik nu wil een write commando schrijven naar een besturing en het antwoordt inlezen en tonen via een webpagina.
probleem nu dat ik niets terug krijg.
via een normale windows terminal schrijven wij bijvoorbeeld: mdd_read 10 gevolgd door een enter.
wij krijgen dan een waarde terug.
wat doe ik niet goed?
onderstaande code aangepast alleen werkt dus niet.
nieuw op forum en nieuw met raspberry pi!
deze draait ondertussen.
via usb een seriële aansluiting gemaakt op een besturingsprint.
deze poort kan ik uitlezen.
dit heb ik werkend gemaakt met behulp van de website: http://gejanssen.com/howto/slimme-meter-uitlezen/
wat ik nu wil een write commando schrijven naar een besturing en het antwoordt inlezen en tonen via een webpagina.
probleem nu dat ik niets terug krijg.
via een normale windows terminal schrijven wij bijvoorbeeld: mdd_read 10 gevolgd door een enter.
wij krijgen dan een waarde terug.
wat doe ik niet goed?
onderstaande code aangepast alleen werkt dus niet.
code: select all
# dsmr p1 uitlezen # (c) 10-2012 - gj - gratis te kopieren en te plakken versie = "1.1" import sys import serial ############################################################################## #main program ############################################################################## print ("dsmr p1 uitlezen", versie) print ("control-c om te stoppen") print ("pas eventueel de waarde ser.port aan in het python script") #set com port config ser = serial.serial() ser.baudrate = 115200 ser.bytesize=serial.sevenbits #ser.parity=serial.parity_even ser.parity=serial.parity_none ser.stopbits=serial.stopbits_one ser.xonxoff=0 ser.rtscts=0 ser.timeout=20 ser.port="/dev/ttyusb0" #open com port try: ser.open() except: sys.exit ("fout bij het openen van %s. aaaaarch." % ser.name) print ("we gaan een waarde uitlezen, mdd 10") ser.write("mdd_read 10" "\r") #ser.write("\r\n") #initialize #p1_teller mijn tellertje voor van 0 tot 20 te tellen p1_teller=0 while p1_teller < 1: p1_line='' #read 1 line van de seriele poort try: p1_raw = ser.readline() except: sys.exit ("seriele poort %s kan niet gelezen worden. aaaaaaaaarch." % ser.name ) p1_str=str(p1_raw) p1_line=p1_str.strip() # als je alles wil zien moet je de volgende line uncommenten print (p1_line) p1_teller = p1_teller +1 print ("we hebben de waarde uitgelezen van mdd 10") #close port , show status try: ser.close() except: sys.exit ("oops %s. programma afgebroken. kon de seriele poort niet sluiten." % ser.name ) # http://pyserial.sourceforge.net/shortintro.html
zou je de regel niet moeten veranderen naar: ???
de "\r" staat namelijk (volgens mij) voor een 'carriage return' en wat je nodig hebt een 'line feed', en die wordt weergegeven (althans in c) door een "\n" (newline).
succes,
gerard
code: select all
ser.write("mdd_read 10" "\r")code: select all
ser.write("mdd_read 10" "\n")de "\r" staat namelijk (volgens mij) voor een 'carriage return' en wat je nodig hebt een 'line feed', en die wordt weergegeven (althans in c) door een "\n" (newline).
succes,
gerard
raspberrypi
Comments
Post a Comment