GraphEditByMouse in LabVIEW:
XY-Graf mit Maus editieren.
Beim Loslassen der Maus nebenstehende Wertetabelle aktualisieren.
Funktioniert schon recht gut!!
Über ein Parametrierungs-Array wird festgelegt,
welche Grenzen einzuhalten sind, welche Auflösung vorhanden ist
(etwa um sinnlose Kommastellen zu vermeiden)
und ob Monotonie eingehalten werden muss (hier: bei der Zeitachse).
Bei der Zeitachse wird hier so _strenge_ Monotonie eingehalten
(Mindestdifferenz = Auflösung) sowie der erste Punkt
bei Null fixiert.
Das ist über ein U8-Flag-Member bitkodiert.
Ziel ist die Anwendung an einem Ofen,
wo Analog- und Digitalsignale mit einer überschaubaren Anzahl an
Stützstellen (Zeitpunkten) ein (Heiz-)Verlauf vorgegeben werden soll.
Die Digitalsignale steuern Gasventile, Lüftungsklappen u.ä.
Weitere Analogsignale könnten Digitalausgänge per PWM steuern.
Der Graf soll weitere Kurven beinhalten können (bspw. Ist-Temperaturverläufe),
die nicht angefasst werden (können) sollen.
Verzeichnisse:
0..5 = Entwicklungsstufen für XY-Graf
Mischsignalgraf = Versuch mit Mischsignalgraf
Wegen der vielen Bugs des Mischsignalgrafs lasse ich die Entwicklung daran.
Änderungs-Log:
5 = visuell sinnvoll mit digital aussehenden Grafen (waagerechte Linien),
Funktion prinzipiell auch mit DigitalGraph und SignalGraph.
Allerdings kann man beim SignalGraph naturgemäß keine X-Werte verändern.
TODO: Einigermaßen echte Digitalsignale gesondert bearbeiten:
Mausklick auf Gerade toggelt, Punkt wie bisher (Drag X/Y);
Erkennung / Unterscheidung: Min+Delta=Max in der MetaInfo.
Damit können die Digitalsignale an eine (unsichtbare?) rechte Achse gebunden werden.
TODO: Leichtere Anwendbarkeit mit externer Schleife während Drag-Operation.
TODO: Universelle Plot-Lese/Schreibfunktion (ohne Typecast)
TODO: Das Ganze für Win32 sowie JavaScript
heha, 200212
Vorgefundene Kodierung: UTF-8 | 0
|