Hallo alle zusammen,
ich habe folgende Problem:
Ich habe eine Software entwickelt, wo ich mir Messdaten einlesen und
auch in eine DataBase schreibe.
Dieses Software ist in C++ und Qt 4.8 geschrieben.
--> Bis hier ist alles Okay und es funktioniert das ganze genau wie es
sein muss.
Nun möchte ich diese Messdaten auswerten und gegebenfall Visualisieren
(Das wird in eine getrennte Software).
Ich kann mich ehrlich gesagt nicht entscheiden: mit welche
Programmiersprache soll das ganze programmiert werden.
In C++ ist machbar aber halt umständlich vorallem die Visualisierung und
die Auswertung (mehrere Kurven werden nötig sein).
Ich bin durch einen zufall auf Python gestossen und bin einfach
begeistert vorallem von der Mächtigkeit dieser Sprache.
Ich bin am überlegen meine neue Software in dieses sprache zu schreiben.
Was mir bei dieses Sprache sehr gut gefallen hat, ist die einfachheit
der Benuzung von "Matplotlib" und das ist genau was ich in meine
Anwendung brauche.
Was meint ihr dazu?
Wie umständlich wird für mich das Einstieg in Python?
Kann man mit überhaupt mit Python eine Installer (exe) machen ?
was meint ihr dazu?
Kann dir zu Python leider nichts sagen.
Trotzdem: Abhängig davon, wie (wenig) kompliziert die Auswertung ist
wäre evtl. Gnuplot eine Möglichkeit. Es ist eine sehr mächtige
Plotsoftware mit eingeschränkter Möglichkeit der Datennachbearbeitung
(Spalten miteinander verrechnen, um-skalieren, mathematische Ausdrücke
auf Spalten anwenden). Du kannst es interaktiv oder über Kommandodateien
im Textformat steuern.
Gerhard
Hallo,
natürlich eignet sich jede Programmiersprache zur Berechnung und
Visualisierung, aber wie schon geschrieben ist die Frage was Du machen
willst, wie Deine Daten aussehen, wie soll die Graphik sein, etc. dafür
notwendig.
Will ich schnell zum Ziel kommen, oder soll das Programm nachher
weitergegeben werden. Oder weitergegeben werden um es zu
modifizieren.... alles spielt bei der Entscheidungsfindung eine Rolle.
Ich habe mit C++ und der Bibliothek Euler schon einiges gemacht, weil
man so relativ gut in Vektoren oder Matrizen rechnen kann. Visualisiert
habe ich das dann mit QT und QWT Plot.
Auf der anderen Seite habe ich auf der Arbeit Matlab für
Entwicklungsprojekte. Dort kommt es eher darauf an schnell was zu
entwickeln und ausprobieren zu können. Mal eben die Daten berechnen,
normieren, quadrieren und plotten alles kein Problem. Ich brauche auch
nichts neu übersetzen.
Wenn mein Code dann steht und ich es benötige kann ich dann davon
immernoch ein C++ Programm erstellen.
Für Python ist meines erachtens die Erweiterung numphy, sciphy sehr
interessant. Ich denke Im Internet findest dazu einiges an
Dokumentation. Ist quasi eine Erweiterung von python um mit Vektoren und
Matrizen zu rechnen und diese zu plotten.
Auch LabView setzte ich ab und an für solche Zwecke ein, wobei ich immer
mehr zur Erkenntnis komme, dass man aufwändige Code-Teile lieber in C
und als DLL einbindet. Es mag sein, dass neuere LabView Varianten besser
bezüglich VCS Systemen ist, aber diese grafische Programmierung hat halt
auch seine Nachteile - der Vorteil ist dass die Kollegen damit besser
klarkommen als ein reines C++ Programm.
Robert schrieb:> Kann man mit überhaupt mit Python eine Installer (exe) machen ?
Klar geht das. Dazu brauchst du noch ein Programm dass das fuer dich
macht:
- cx_Freeze,
- PyInstaller, oder
- Py2Exe
Robert schrieb:> Wie umständlich wird für mich das Einstieg in Python?
Alles kein Hexenwerk, der Umstieg ist sehr einfach.
Ich kann da dieses Buch sehr empfehlen, falls du eins brauchst:
http://www.amazon.de/Python-umfassende-Sprachgrundlagen-Objektorientierung-Modularisierung/dp/3836219255/ref=sr_1_1?ie=UTF8&qid=1419948206&sr=8-1&keywords=python+3
Python hat den Vorteil das du schnell zu einem Ergebnis kommst. Da du ja
erfahrung mit Qt zu haben scheinst:
Es gibt auch PyQt. Das gleiche wie Qt nur halt fuer Python, der
Qt-Designer zum oberflaechen zusammen klicken ist der gleiche.
Mit Numpy, Matplotllib und Co. hat man dein Projekt schnell
zusammengeschraubt.
Robert schrieb:> Dieses Software ist in C++ und Qt 4.8 geschrieben.> In C++ ist machbar aber halt umständlich vorallem die Visualisierung und> die Auswertung (mehrere Kurven werden nötig sein).
Wenn der Rest eh schon in C++ mit Qt geschrieben ist, würde sich doch
anbieten, das auch damit zu machen. Das schon genannte Qwt bietet für
Graphen passende Klassen, die recht einfach zu nutzen sind.
Robert schrieb:> Was mir bei dieses Sprache sehr gut gefallen hat, ist die einfachheit> der Benuzung von "Matplotlib"
Es würde mich doch sehr wundern, wenn es für C/C++ nichts Vergleichbares
gäbe.
Ausserdem ist es nicht besonders schwierig, eine Kurve aus Messwerten in
ein Achsenkreuz zu zeichnen, das programmiert man so nebenher, auch mit
stufenloser Skalierung (notfalls bis herunter auf einen Windows-Button).
Aufwendiger wird es bei Kuchen oder 3D.
Georg
Robert schrieb:> Nun möchte ich diese Messdaten auswerten und gegebenfall Visualisieren> (Das wird in eine getrennte Software).
Hast Du schon mal über gnuplot nachgedacht?
Um schnell zu Ergebnissen zu kommen, ist Python zusammen mit den schon
genannten Bibliotheken sicherlich ideal. Wenn Dein Kunde auch mit
eigenen Auswertealgorithmen oder Visualisierugen experimentieren möchte,
dann umso mehr.
Ich würde Dir die Distribution PythonXY
(https://code.google.com/p/pythonxy/) empfehlen. Da kommt schonmal alles
in einem hübschen Installer daher. Ob und wie man eigene Software da
einklinken kann, weiß ich allerdings nicht.
Ich bin nicht ganz sicher, ob man damit interaktive Oberflächen bauen
kann, die z.B. bei Klick auf einen Datenpunkt weitere Details anzeigen,
oder ein Menu mit dem man z.B. verwandte Daten anfordern kann. Wenn man
so etwas braucht ist es evtl. besser, selbst ein oder mehrere QWidgets
in C++ zu programmieren.
Was auch gut geht: Pythonxy als Anwendung in einem WebServer (MS IIS)
laufen zu lassen. Dann braucht man auf den Clients evtl. gar keine
Software zu installieren. Dafür darf die Installation auf dem Server
dann ruhig etwas schwieriger sein.
ahoj,
ich habe letztens bei einer solchen aufgabe einen ganz anderen weg
beschritten: die auswertung an sich in C#, die visualisierung per HTML5
canvas wahlweise im browser auf dem desktop oder quasi als kostenloses
nebenprodukt auch auf dem handy oder tablet.
der kram lief mit mono dann auch unter linux perfekt, falls windows
nicht in frage kommen sollte.
lg von der moldau
Rufus Τ. Firefly schrieb:> Robert schrieb:>> Nun möchte ich diese Messdaten auswerten und gegebenfall Visualisieren>> (Das wird in eine getrennte Software).>> Hast Du schon mal über gnuplot nachgedacht?
Daran habe ich nicht nachgedacht und das kenne ich gar nicht.
Kann man das auch in visual studio einbinden?
Was ich vorhabe ist aufjedenfall in c++ machbar, aber da es python im
verbindung mit qt ist viel flexibler meine meinung nach und nich wie ich
genannt habe nicht so aufwendig wie c++.
Dazu ist für mich die zeit reif um was neues zu lernen zb. Python
Was mir allerdings wichtig ist, ist eine installer daraus zu machen und
das wurde schon beantwortet.
Kaj G. schrieb:> Robert schrieb:>> Kann man mit überhaupt mit Python eine Installer (exe) machen ?> Klar geht das. Dazu brauchst du noch ein Programm dass das fuer dich> macht:> - cx_Freeze,> - PyInstaller, oder> - Py2Exe>> Robert schrieb:>> Wie umständlich wird für mich das Einstieg in Python?> Alles kein Hexenwerk, der Umstieg ist sehr einfach.> Ich kann da dieses Buch sehr empfehlen, falls du eins brauchst:> http://www.amazon.de/Python-umfassende-Sprachgrund...>> Python hat den Vorteil das du schnell zu einem Ergebnis kommst. Da du ja> erfahrung mit Qt zu haben scheinst:> Es gibt auch PyQt. Das gleiche wie Qt nur halt fuer Python, der> Qt-Designer zum oberflaechen zusammen klicken ist der gleiche.>> Mit Numpy, Matplotllib und Co. hat man dein Projekt schnell> zusammengeschraubt.
Robert schrieb:> Was mir allerdings wichtig ist, ist eine installer daraus zu machen und> das wurde schon beantwortet.>> Kaj G. schrieb:>> Robert schrieb:>>> Kann man mit überhaupt mit Python eine Installer (exe) machen ?>> Klar geht das. Dazu brauchst du noch ein Programm dass das fuer dich>> macht:>> - cx_Freeze,>> - PyInstaller, oder>> - Py2Exe
Mit den genannten Programmen machst du (genaugenommen) keinen Installer,
sondern erstmal nur eine .exe-Datei, damit du das auf Windowsrechnern
ausfuehren kannst, ohne Python installieren zu muessen.
Einen Installer (setup.exe) kannst du aber mit Inno-Setup
(http://www.jrsoftware.org/isdl.php) erstellen.
Robert schrieb:> Was ich vorhabe ist aufjedenfall in c++ machbar, aber da es python im> verbindung mit qt ist viel flexibler meine meinung nach und nich wie ich> genannt habe nicht so aufwendig wie c++.> Dazu ist für mich die zeit reif um was neues zu lernen zb. Python
Oder deutsche Sprache?
Hallo alle zusammen,
nach lange überlegung habe ich mich entschlossen meinen Projekt mit
Python zu programmieren.
habt ihr vielleicht einen Empfehlenden Buch, der mir das Einstieg in
Python erleichtert.
Es wäre super schön, wenn es dieses Buch auch Qt Beispiele beinhaltet.
Noch schöne wäre es auch, wenn es auch Entwurf, Konzept, Design und ...
(was zu Objektorientierte Konzept) beinhaltet.
Noch mal danke für eure Ratschläge.
4. fenstersturz schrieb:> ich habe letztens bei einer solchen aufgabe einen ganz anderen weg> beschritten: die auswertung an sich in C#, die visualisierung per HTML5> canvas wahlweise im browser auf dem desktop oder quasi als kostenloses> nebenprodukt auch auf dem handy oder tablet.
Wenn du die Daten als XML ausgeben kannst, dann schau dir für
Visualisierungen (für "Clients") ggf. mal das Flex-Framework mit dessen
"DataServices" und "Charts" an. (zum teil OpenSource...) Es ist hald
dann ActionScript3 Flash oder die Air-Runtime, und für grafische Sachen
und vielen Daten wirklich sau schnell. Und es läuft mit einem einzigen
binary auch überall (Win Mac Linux Tablet IOS Android SmartTv etc etc.)
Das geht quasi alles mit der Maus und man kommt da recht schnell zu
sichtbaren Ergebnissen. CodeSyntax ist wie ECMA Java C# / etc, falls
du überhaupt noch Code brauchst, um eventuell einige Sortierungen, Ein-
und Ausblenden der Spalten, oder auch Vergrößerungen der Charts
(Detailansichten), etc etc einzubauen.