tkinter python3 RC522 - PullRequest
       23

tkinter python3 RC522

0 голосов
/ 07 октября 2018

Я создаю графический интерфейс с использованием tkinter, который отображает информацию с карты RC522 RFID.Здесь я хочу, чтобы каждые 0,5 секунды rfid записывал себе новые данные, добавляя 100 из своих предыдущих данных.Сценарий rc522 основан на https://github.com/simonmonk/clever_card_kit (read.py, write.py, SimpleMFRC522.py)

Class rcinfo(tk.Frame):
def __init__(self, parent, master)
self.master = master

GPIO.setwarnings(False)
continue_reading = True
reader = SimpleMFRC522.SimpleMFRC522()

while continue_reading:
text = reader.read()
info = tk.StringVar
label = tk.Label(master, text = ' ', bg="white", textvariable=info, font=("Calibri",16,bold))
label.place(x=100, y=100, width=600, height=85)
info.set(text)

me = int(text) + 100        ///// convert previous value to integer and add 100
text = str(me)              ///// convert 'me' to string
text = reader.write(text)   ///// new data is written

time.sleep(0.5)
continue_reading = True

GPIO.cleanup()

Однако при запуске этого сценария возникает ошибка

Файл "/home/pi/Readme/Readme.py", строка 137, в init me = int (text) + 100 Аргумент TypeError: int () должен быть строкой или числом, а не 'tuple'

Пожалуйста, помогите.Я не знаю, где я не прав.

1 Ответ

0 голосов
/ 07 октября 2018

Ошибка говорит вам, что ваша переменная text не может быть преобразована в int, потому что это не str или другой тип числа - это кортеж.

Чтобы увидеть, что кортежсодержит, вы можете print(text) после назначения его и посмотреть, какой вывод вы получите.Я предполагаю, что вам нужен прямой доступ к элементу кортежа, чтобы получить данные, которые вы ищете:

me = int(text) + 100 становится me = int(text[0]) + 100.

...