Funktionsparser in LV
Hallo.
Ich habe leider kein passendes Forum dafür gefunden, ich bin mal so frei und poste es dennoch hier her.
Ich bin gerade damit beschäftigt, für meinen Arbeitgeber eine Auswertungssoftware zu schreiben, die dann per Intranet im Browser darstellbar sein soll.
Die zu berechnenden Daten kommen aus einer MySQL Tabelle.
Meine grundlegende Idee war jetzt, die statistischen Berechnungen auf ein externes Programm auszulagern und php nur für die Darstellung und das Ziehen der berechneten Daten zu verwenden. Da diese Auswertung nur tagesaktuell sein muss, würde die Berechnung über Nacht laufen.
Die Auswertungstabelle (tb_auswertung) besitzt eine Kopie (tb_auswertung_config). Die Felder der Configtabelle sind allerdings vom Typ VarChar und diese Tabelle besitzt außer eine weitere ID zur Kennung, die gleichen Felder.
Idee dahinter war, diese Configtabelle mit den Datenpositionen zur Berechnung und die Berechnungsvorschriften in jeweils 2 Zeilen zu speichern um später, wenn neue Produkte statistisch erfasst werden sollen, die Erweiterbarkeit sicherzustellen OHNE am eigentlichen Berechnungsprogramm rumzufummeln. Quasi muss dann nur das Frontend und die Configtabelle erweitert werden.
LabVIEW zieht sich ordnungsgemäß sämtliche Datenpositionen und damit auch die erforderlichen Zahlenwerte.
Problem ist allerdings, dass die Berechnungsvorschriften aus der 2. Zeile der Configtabelle ja in Stringform ausgelesen werden.
zB:
"(a+b-c)*d"
Lange Rede, kurzer Sinn.
Gibt es in LV eine Art Funktionsparser oder sowas in der Art? Und wenn nicht, jemand einen Vorschlag, wie ich dennoch an meinem grundlegenden Design festhalten kann?
Eine weitere Idee war, die Strings vorher in MathML zu verpacken und dann einen Parser dafür in LV zu realisieren, ist aber vom Zeitaufwand sehr hoch.
Die Idee den String nacheinander nach arithmetischen Operationen zu durchsuchen hat bis jetzt kein befriedigendes Ergebnis gebracht.
|