twobuttonstimer/timetoserial.py

45 lines
1.1 KiB
Python

#!/usr/bin/env python
# https://forum.arduino.cc/index.php?topic=92457.msg2803014#msg2803014
import time
import serial.tools.list_ports
import serial
import signal # For trapping ctrl-c or SIGINT
import sys # For exiting program with exit code
def SIGINT_handler(signal, frame):
print('Quitting program!')
ser.close()
sys.exit(0)
signal.signal(signal.SIGINT, SIGINT_handler)
port_names=[]
a=serial.tools.list_ports.comports()
for w in a:
port_names.append(w.device)
port_names.sort()
print('\nDetected the following serial ports:\nDon\'t choose /dev/ttyAMA0.')
i=0
for w in port_names:
print('%d) %s' %(i,w))
i=i+1
total_ports=i # now i= total ports
user_port_selection=input('\nSelect port: (0,1,2...)')
if (int(user_port_selection)>=total_ports):
exit(1) # port selection out of range
ser=serial.Serial(port=port_names[int(user_port_selection)],baudrate=9600,timeout=1)
# ser=serial.Serial("COM1",baudrate=9600,timeout=10)
while(1):
mycmd=ser.read()
if (len(mycmd)>0):
# 10800 is GMT+3
epoch='T' + str(int(time.time()) + 10800) + '\n'
ser.write((epoch).encode())
print (str(epoch))