Левый столбец представляет данные о температуре, а правый столбец представляет данные о влажности. Я могу разделить данные от Arduino до Python. Но когда я запускаю его в Python, я могу отображать только данные о влажности. Тем не менее, данные о температуре также должны отображаться в середине экрана. Почему данные о температуре не отображаются на экране?
Воткод на Python:
Файл test.py
import serial
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen, ScreenManager
from kivy.properties import StringProperty
from kivy.clock import mainthread
import threading
class NaviWindow(Screen):
temp_text = StringProperty("")
humid_text = StringProperty("")
def __init__(self, **kwargs):
super(NaviWindow, self).__init__(**kwargs)
threading.Thread(target=self.tm).start()
def __init__(self, **kwargs):
super(NaviWindow, self).__init__(**kwargs)
threading.Thread(target=self.hm).start()
def tm(self):
while (1):
with serial.Serial('COM4', 9600) as ser:
data = str(ser.readline().strip().decode('ascii'))
temp = data.split("|")[0]
ser.close()
self.update_temp(temp)
def hm(self):
while (2):
with serial.Serial('COM4', 9600) as ser:
data = str(ser.readline().strip().decode('ascii'))
humid = data.split("|")[1]
ser.close()
self.update_humid(humid)
@mainthread
def update_temp(self, temp):
self.temp_text = temp
def update_humid(self, humid):
self.humid_text = humid
class WindowManager(ScreenManager):
pass
kys = Builder.load_file("test.kv")
class MyMainApp(App):
def build(self):
return kys
if __name__ == "__main__":
MyMainApp().run()
Файл test.kv
WindowManager:
NaviWindow:
<NaviWindow>:
Label:
size: 75, 50
size_hint: 1, 1
text: root.temp_text
Label:
size: 75, 50
size_hint: 0.7, 0.7
text: root.humid_text