2015-12-12 4 views
3

Я собираюсь создать очень простое приложение Kivy для чтения последовательного порта и показать его в Label, в консоли Python я могу видеть серийные данные, но в Pycharm и Kivy результат неверен.Последовательный порт Pycharm Kivy Читать

Result window image

from kivy.app import App 
from kivy.uix.gridlayout import GridLayout 
from kivy.uix.label import Label 
import serial 
class LoginScreen(GridLayout): 

def __init__(self, **kwargs): 

    ser = serial.Serial('COM3', 9600, timeout=0) 
    ser.read() 
    super(LoginScreen, self).__init__(**kwargs) 
    self.cols = 2 
    self.rows = 2 
    self.add_widget(Label(text=str(ser))) 
class MyApp(App): 

    def build(self): 
    return LoginScreen() 
if __name__ == '__main__': 
    MyApp().run() 

ответ

2

Вы передаете серийный объект str. Вот почему это выглядит так: строковое представление серийного объекта.

self.add_widget(Label(text=str(ser))) 

Вы должны сначала прочитать из сериала:

data = ser.read() 

Теперь вы можете обрабатывать эти данные или преобразовать его в строку и отображения на Kivy.

self.add_widget(Label(text=str(data))) 
+0

спасибо, что это работает. –

Смежные вопросы