import serial import os def scan(): """ gibt eine Liste von Strings der Namen der verfügbaren Ports zurück """ L = [] for i in range(10): try: s = serial.Serial('/dev/ttyS'+str(i)) L.append(s.portstr) s.close() except serial.SerialException: pass for i in range(10): try: s = serial.Serial('/dev/ttyUSB'+str(i)) L.append(s.portstr) s.close() except serial.SerialException: pass for i in range(10): try: s = serial.Serial('COM'+str(i)) L.append(s.portstr) s.close() except serial.SerialException: pass # Neuer Code für Mac OS X if os.uname()[0] == 'Darwin': try: s = serial.Serial('/dev/tty.usbserial') L.append(s.portstr) s.close() except serial.SerialException: pass for i in range(20): try: s = serial.Serial('/dev/tty.usbserial'+str(i)) L.append(s.portstr) s.close() except serial.SerialException: pass return L import tkinter as tk class View(tk.Tk): def __init__(self): tk.Tk.__init__(self) # Fenster self.title("serielle Schnittstellen") self.geometry('260x80+400+100') self.protocol("WM_DELETE_WINDOW",self.Halt) # Optionmenu L = scan() self.vS = tk.StringVar(master=self) self.vS.set(L[0]) self.oS = tk.OptionMenu(self,self.vS,*L, command=self.cbOption) self.oS.place(x=20,y=20,width=150) def cbOption(self,wert): print(wert) def Halt(self): v.quit() v.destroy() v = View() v.mainloop()