51 lines
1.2 KiB
Python
51 lines
1.2 KiB
Python
#!/usr/bin/python3
|
|
|
|
import serial
|
|
import syslog
|
|
from datetime import datetime
|
|
import time
|
|
import csv
|
|
import serial.tools.list_ports
|
|
|
|
|
|
while True:
|
|
|
|
myports = [tuple(p) for p in list(serial.tools.list_ports.comports())]
|
|
port1 = '/dev/ttyUSB0'
|
|
port2 = '/dev/ttyUSB1'
|
|
ports = [port1, port2]
|
|
collecting = False
|
|
|
|
for x in myports:
|
|
for port in ports:
|
|
if port in x:
|
|
try:
|
|
print("Trying port " + str(port))
|
|
ser = serial.Serial(port,9600,timeout=5)
|
|
print("Running on port: " + str(port))
|
|
collecting = True
|
|
except:
|
|
print("Failed to open " + str(port))
|
|
|
|
while collecting:
|
|
try:
|
|
ser.reset_input_buffer()
|
|
raw_msg = ser.readline()
|
|
msg = raw_msg.rstrip().decode('utf-8')
|
|
with open('test.csv', 'a+', newline='') as csvfile:
|
|
spamwriter = csv.writer(csvfile, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL)
|
|
if msg != "":
|
|
now = datetime.now()
|
|
dt_string = now.strftime("%d/%m/%Y %H:%M:%S")
|
|
spamwriter.writerow([dt_string, msg])
|
|
if msg != "":
|
|
time.sleep(2)
|
|
except:
|
|
print("Error on port " + str(port)+ " ,terminating")
|
|
collecting = False
|
|
time.sleep(2)
|
|
|
|
print("Stopped.")
|
|
|
|
# caffeine.off()
|