Мой код kivy должен плавно перемещать виджет из точки A в точку B, а также получать UDP-пакет по Ethernet-кабелю. На данный момент виджет плавно перемещается от A к C (C между строкой AB), а затем прекращает получать данные (может быть от 0,5 до 1 секунды), а затем виджет перемещается снова.
Движение не плавное из-за этого. Есть идеи, как решить эту проблему?
Я использую модуль сокета от Python для приема данных.
Я даже пытался программировать потоки. Это не помогло, такая же проблема.
class DemoCreator(AnchorLayout):
ev_status = NumericProperty(None) # get ev status(UDP packet)
def receive_ev_status(self):
r = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
r.bind(('', 5555))
prev_data = 0
data, _ = r.recvfrom(1024)
if not data:
data = prev_data
return int.from_bytes(data, 'little')
def update_ev_status(self, dt):
self.ev_status = self.receive_ev_status()
class DemoApp(App):
def build(self):
hmi = DemoCreator()
hmi.map_box.host_car.start((450, 0)
Clock.schedule_interval(hmi.update_ev_status, 0.5)
Clock.schedule_interval(hmi.map_box.update_car, 1 / 60)
return hmi
if __name__ == '__main__':
DemoApp().run()
как получать данные, используя порты для приложения kivy, не нарушая его графику?