#!/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))