Выберите Baudrate из выпадающего списка, чтобы непрерывно отображать последовательные данные в оболочке Python - PullRequest
0 голосов
/ 27 декабря 2018

Я пытаюсь создать раскрывающееся меню и, выбрав правильную скорость передачи данных в раскрывающемся списке, данные должны отображать данные последовательного порта в оболочке Python, а также в окне сообщения,

Упомянутое ниже:мой код:

import serial
from tkinter import *
import tkinter as ttk
from tkinter import *



top = Tk()
top.title("Tk dropdown example")

# Add a grid
mainframe = Frame(top)
mainframe.grid(column=10,row=10, sticky=(N,W,E,S) )
mainframe.columnconfigure(0, weight = 1)
mainframe.rowconfigure(0, weight = 1)
mainframe.pack(pady = 100, padx = 100)

# Create a Tkinter variable
tkvar = StringVar(top)

# Dictionary with options
choices = { '9600','19200','34800'}
tkvar.set('9600') # set the default option

popupMenu = OptionMenu(mainframe, tkvar, *choices)
Label(mainframe, text="Baudrate").grid(row = 1, column = 1)
popupMenu.grid(row = 2, column =1)


ard = serial.Serial('COM4', timeout=1)
ard.baudrate = drop
k = ard.readline().decode('ascii')
print(k)

# on change dropdown value
def change_dropdown(*args):
    global drop;
    drop = int(tkvar.get());
    #ard.baudrate = drop;
    print( drop )
    return drop


# link function to change dropdown
tkvar.trace('w', change_dropdown)

top.mainloop()

Но при выполнении этого кода я сталкиваюсь с некоторой ошибкой,

============== RESTART: C:\Users\Misha\Desktop\test\dropTest.py ==============
Traceback (most recent call last):

      File "C:\Users\Misha\Desktop\test\dropTest.py", line 31, in <module>
        ard.baudrate = drop
    NameError: name 'drop' is not defined

Я пытался из любой точки, но я не могу решить эту проблему.Любое предложение по запуску этого кода будет большой помощью.

...