serial port - How to begin a new line in Excel during continous data logging -
i'm new programming , finish ba 1 of "quests" write programm continous data logging oxygen-meter. far managed data, write them in excel file predifened time span. unfortunately values written in 1 row see last measure in excel. question is: how tell programm put each measure new row? in advance , please paitient me started programming 5 days ago.
import serial import time import xlsxwriter port = "com1" baud = 2400 bytesize = serial.eightbits parity = serial.parity_even stopbits = serial.stopbits_one ser = serial.serial(port, baud, bytesize, parity, stopbits, timeout=1) while ser.isopen(): ser.write("o") time.sleep(5) #messung wird aller ()s abgerufen while ser.inwaiting()>0: s = ser.readline() nummer = s[2:4] konzentration = s[9:13] + " mg/l" temperatur = s[19:23] + " °" + s[25:26] temperatur2 = s[19:23] zeit = s[27:32] + " uhr" datum = s[33:38] + ".2017" t = nummer+" "+konzentration +" "+temperatur +" "+zeit +" "+datum print t workbook = xlsxwriter.workbook ('sauerstoffmessung.xlsx') worksheet = workbook.add_worksheet() row=0 col=0 seq = [] count = 1 rowheaders =['nummer', 'konzentration', 'temperatur', 'zeit', 'datum'] rowvalues = [nummer, konzentration, temperatur2, zeit, datum] worksheet.write_row(row, col, tuple(rowheaders)) worksheet.write_row(row, col, tuple(rowvalues)) workbook.close() if zeit == "08:38 uhr": ser.close() print "uebertragung beendet" first of thank you. second, below new code. every new recieved measure written in new row, old ones disappear. tried figure out myself ended make worse. there chance tell programm keep data in written row , write next measure next row?
import serial import time import xlsxwriter import io port = "com1" baud = 2400 bytesize = serial.eightbits parity = serial.parity_even stopbits = serial.stopbits_one row=0 col=0 ser = serial.serial(port, baud, bytesize, parity, stopbits, timeout=1) while ser.isopen(): ser.write("o") time.sleep(5) #messung wird aller ()s abgerufen workbook = xlsxwriter.workbook ('sauerstoffmessung.xlsx') worksheet = workbook.add_worksheet() rowheaders =['nummer', 'konzentration', 'temperatur', 'zeit', 'datum'] worksheet.write_row(0, 0, tuple(rowheaders)) while ser.inwaiting()>0: s = ser.readline() nummer = s[2:4] konzentration = s[9:13] + " mg/l" temperatur = s[19:23] + " °" + s[25:26] temperatur2 = s[19:23] zeit = s[27:32] + " uhr" datum = s[33:38] + ".2017" t = nummer+" "+konzentration +" "+temperatur +" "+zeit +" "+datum print t rowvalues = [nummer, konzentration, temperatur2, zeit, datum] worksheet.write_row(row, col, tuple(rowvalues)) row += 1 if zeit == "08:38 uhr": ser.close() print "uebertragung beendet" workbook.close()
you don't increment row counter
import serial import time import xlsxwriter port = "com1" baud = 2400 bytesize = serial.eightbits parity = serial.parity_even stopbits = serial.stopbits_one ser = serial.serial(port, baud, bytesize, parity, stopbits, timeout=1) row=0 col=0 while ser.isopen(): ser.write("o") time.sleep(5) #messung wird aller ()s abgerufen while ser.inwaiting()>0: s = ser.readline() nummer = s[2:4] konzentration = s[9:13] + " mg/l" temperatur = s[19:23] + " °" + s[25:26] temperatur2 = s[19:23] zeit = s[27:32] + " uhr" datum = s[33:38] + ".2017" t = nummer+" "+konzentration +" "+temperatur +" "+zeit +" "+datum print t workbook = xlsxwriter.workbook ('sauerstoffmessung.xlsx') worksheet = workbook.add_worksheet() seq = [] count = 1 rowheaders =['nummer', 'konzentration', 'temperatur', 'zeit', 'datum'] rowvalues = [nummer, konzentration, temperatur2, zeit, datum] worksheet.write_row(row, col, tuple(rowheaders)) worksheet.write_row(row, col, tuple(rowvalues)) row+=1 workbook.close() if zeit == "08:38 uhr": ser.close() print "uebertragung beendet"
Comments
Post a Comment