我有一个带有所有串行端口列表的复选框,并且用户从组合框中选择一个,以便以后与arduino进行交互。
这里是有趣的部分:
# --- functions ---
def serial_ports():
return serial.tools.list_ports.comports()
def on_select(event=None):
# get selection from event
print("event.widget:", event.widget.get())
# or get selection directly from combobox
print("comboboxes: ", cb.get())
# --- functions ---
label0 = tk.Label(frame1, text="Select the COM port that the device is plugged in: ")
label0.config(font=("TkDefaultFont", 8))
label0.place(relx = 0.1, rely=0.3, relwidth=0.3, relheight=0.5)
cb = ttk.Combobox(frame1, values=serial_ports())
cb.place(relx=0.5, rely=0.5, anchor='center')
# assign function to combobox
cb.bind('<<ComboboxSelected>>', on_select)
cb.bind()
将选择移至on_select()
。但是,当我使用on_select()
功能打印用户选择的数据时,我得到:
event.widget: COM14 - Arduino Mega 2560 (COM14)
我只想获取COM端口,例如'COM14
'这样就可以在变量中分配它,然后像这样使用它:
ser = serial.Serial('COM14', baudRate, timeout=0, writeTimeout=0)
这里不是'COM14
',我只是有我的变量。]>
是否有pySerial的方法,以便仅获取COM端口,而没有完整的描述?
我有一个包含所有串行端口列表的复选框,用户从组合框中选择一个,以便以后与arduino进行交互。以下是有趣的位:#---函数--- def ...
serial.tools.list_ports.comports()
的结果是serial.tools.list_ports.ListPortInfo
实例的列表。