Design Entscheidung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
Mr_Snede
User
Beiträge: 387
Registriert: Sonntag 8. Februar 2004, 16:02
Wohnort: D-Dorf, Bo

Sonntag 28. Dezember 2014, 19:37

Hallo,
ich möchte gerne Messwerte in einer QT4 Anwendung mit Hilfe von matplotlib in Echtzeit darstellen.
Quellcode und ein Screenshot sind unter https://github.com/MrSnede/BalancingWheelRobot/wiki zu finden.


Mein Problem ist nun, dass ich mir nicht sicher bin, an welcher Stelle ich die Messwerte unterbringe.


Die Projektstruktur sieht so aus:

Code: Alles auswählen

BotControlGUI.py
    holt und sendet Werte über eine Serielle Schnittstelle
    ich habe hier ein Signal, dass bei Eintreffen eines neuen Messswertes ausgelöst wird. Das nutze ich schon, um jeden Messwert in ein Textfeld zu schreiben.
    importiert mainWindow.py
      
mainWindow.py
    enthält alle Widgets, erzeugt durch QTDesigner
    importiert mplwidget.py

mplwidget.py
    bettet matplotlib in ein QTCanvas ein
Meine bisherige Idee:
- Die aktuell anzuzeigenden Messwerte(deque) werden ins mplwidget eingebaut.
- Dort kann dann matplotlib über FuncAnimation die Messwerte laufend abfragen und eben anzeigen.
- Jeder neue Messwert, der über die serielle Schnittstelle eintrifft wird von BotControlGUI.py dem deque in mplwidget.py hinzugefügt.

Meine Fragen:
[1] - Macht das so Sinn? Oder belasse ich mplwidget.py als dummes Widget und ordne die Messwerte in BotControlGUI.py ein?
[2] - was passiert in dem Moment, in dem ich einen neuen Wert den deque hinzufüge und gleichzeitig matplotlib den deque einliest?

Danke Sebastian
Antworten