Hallo Leute Also ich habe vor in den Weihnachtsferien mal wieder ein wenig zu basteln B-) Naja jedenfalls hab ich auf der Uni ein wenig C++ gelernt. Und wollte jetzt mal fragen wie ich da am besten Daten sichtbar mache. Ich meine wir haben da immer nur so Konsolenprogramme geschrieben mit allen nur erdenklichen Zeugs (dyn Speicher, Arrays, Strings, File IO, Streams, etc..), aber eine grafische Ausgabe haben wir nie gemacht. Auch kein Benutzerinterface. Ist das sehr schwer? Ich meine ich will mir ein Programm schreiben, dass mir 10 oder 8 Bit Werte die von der seriellen Schnittstelle(später wenn die neuen USB Chips von Microchip kommen auch mit USB) kommen, darstellt und speichert. Und nein ich will eigentlich nicht LabView verwenden, auch wenns verlockend ist ;-) Also die elektronische Schaltung ist kein Problem, habe ich auch schon mal aufgebaut und mit VisualBasic dann ausgewertet, aber das VB ist einfach zu langsam und bietet mir nicht genug möglichkeiten. Also da ich absolut keinen Tau davon habe wie ich da Grafiken / Diagramme mit C++ erstellen kann, frage ich mal ob mir hier jemand eine kleine Anleitung, oder eine gute Internetadresse geben könnte, DrGoogle hat leider wieder mal versagt... Danke im Voraus MfG Martin W
Empfehlung: Eine der portierbaren C++-GUI-Klassenbibliotheken, wie beispielsweise wxWidgets. Auf www.wxwidgets.org sind neben der Klassenbibliothek selber auch etliche Beispiele und Tutorials zu finden. Wenn es - aus welchen Gründen auch immer - MFC erforderlich ist. dann finden sich unter www.codeproject.com etliche Beispiele, Codefragmente und Tutorials. wxWidgets hat den Vorteil, daß es im Gegensatz zur MFC auch auf anderen Plattformen als Windows verwendbar ist ... Zur Kommunikation mit USB-Devices scheint die von mir hier bereits mehrfach empfohlene LibUSB auch eine Lösung zu sein, die gibt's ebenfalls für mehrere Plattformen (Win32, Linux und wohl auch MacOS X). Wohlauf, viel Spaß!
Ok, wenn du in Zukunft regelmäßig ähnliche Tools erstellen willst, dann arbeite dich in die C++ - Geschichte ein. Wenn es dagegen ein einmaliges Projekt ist, dann nimm LabView. Damit hast du in einem Nachmittag Ergebnisse, die du sonst nur in wochenlanger Arbeit und Tüftelei erreichen wirst. Gerade für solche kleinen und einmaligen Projekte ist LabView ideal. Wenn du nicht gerade Softwareentwickler bist/wirst, wäre es sinnvoller sich in LabView als in die Windows-GUI-Programmierung einzuarbeiten.
Hallo Also naja ich studiere Elektrotechnik / Informationstechnik ist zumindestens sicher nicht von Nachteil wenn man mit der Windows GUI umgehen kann oder ;-) Naja ich habe mich inzwischen schon ein wenig eingearbeitet mit der Hilfe von: http://pronix.linuxdelta.de/C/win32/win32_1.shtml Kann jetzt schon Fenster erzeugen und verändern und so, nur irgendwie find ich das schon recht kompliziert. Klasse anmelden, Fenster aufrufen mit Parametern, Message Handling, etc... Außerdem bin ich auch noch nicht richtig drauf gekommen wie ich die Daten dann anzeigen kann. Ich meine es gibt zwar wieder dieses Microsoft Chart Tool mit dem man einfache Diagramme erstellen kann, aber das gleiche hatte ich in Visual Basic auch schon und war nicht zufrieden damit. Vielleicht kann mir da ja wer einen Tip geben ob es da noch was anderes gibt was ich nicht finde ;-) Was ist eigentlich dieses MFC++ von dem ich überall lese? MfG Martin W
Martin, der von Dir angefangene Weg ist sicherlich der steinigste, wenn er auch das beste Grundlagenwissen vermittlen wird. MFC ist - wie das von mir empfohlene wxWidgets - eine C++ - Klassenbibliothek, die mehr oder weniger gut die Win32-API vor Dir "versteckt" und vor allem nervige Tipparbeit (Fensterklasse registrieren, monströse switch-Statements in den Messagehandlern etc.) abnimmt. MFC ist recht unbeliebt, da einerseits von Microsoft, und daher andererseits nicht portierbar. MFC-Programme schreibt man am besten mit einem Microsoft-Compiler und dessen App- und ClassWizards (das sind recht primitive Quellcodegeneratoren). Man kann mit der MFC genausogute Ergebnisse erzielen, wie mit anderen Klassenbibliotheken auch - nur muss man sich dann auch sehr gründlich mit deren Einschränkungen auseinandersetzen. Portierbare Klassenbibliotheken bieten den Vorteil, daß das erlerte Wissen nicht plattformabhängig ist - was IMHO ein nicht von der Hand zu weisender Vorteil ist. Verbreitete plattformübergreifende Klassenbibliotheken sind QT von Trolltech und eben wxWidgets (früher wxWindows). QT ist wunderbar, kann nur unter Windows nicht eingesetzt werden, da der Quelltext, der zum Verstehen einer Klassenbibliothek, zum Debuggen etc. erforderlich ist, nur gegen sehr viel Geld (1500 EUR) zur Verfügung gestellt wird. Würdest Du unter Linux entwickeln, machte das nichts, da die Linux-Variante von QT offen zur Verfügung steht. wxWidgets ist frei, offen und mit diversen Compilern einsetzbar. Ein Codegenerator und GUI-Builder ist DialogBlocks von Anthemion, der allerdings kostet etwas Geld (unter 100 EUR).
Hallo, wir würden uns freuen wenn Sie sich einmal www.LabViewForum.de ansehen. Wir sind ein Forum für LabVIEW (*1) Entwickler und Interessierte. Das LabViewForum.de (*2) entwickelt sich zum grössten Forum rund um LabVIEW im deutschsprachigen Raum (D-A-CH). Durch rege Teilnahme an Diskussionen konnten schon so manche Problem erfolgreich gelöst werden :-) Wir würden uns freuen wenn Sie uns einmal auf Ihrer Seite erwähnen würden und verbleiben Mit freundlichem Gruss Dennis Moser Rosenweg 4 57577 Hamm-Sieg Tel. 0172 8 444 129 Webmaster@LabViewForum.de Zu *1: LabVIEW ist eine Objektorientierte Programmiersprache aus dem Hause National Instruments www.ni.com mit der es möglich ist innerhalb von kürzester Zeit komplexe Anwendungen für fast jeden Bereich zu realisieren, da nicht wie mit herkömmlichen Programmiersprachen ohne Quelltext programmiert wird. *2: Das LabViewForum.de wurde durch Initiative von Dennis Moser im August 2004 gegründet, um nach jahrelanger Programmiererfahrung mit LabVIEW das Wissen mit gleichgesinnten auszutauschen und KnowHow zu bündeln. Für viele ist das LVF zentraler Anlaufpunkt geworden, um sich über Problemlösungen auszutauschen.
Hallo Ich kann mehr oder weniger gut C++ Builder. Eigentlich habe ich nur Probleme mit dem Syntax gehabt. Wenn man sich ein bisschen mit Grafikprogrammierung auskennt ist es ein Klacks 2D-Grafiken zu programmieren. Du wirst das sicher auch locker hinkriegen. Vielleicht am Anfang nicht so schnell aber wenn man den Dreh dann raus hat ist es kein Problem mehr. Wenn es nur darum geht erfasste Daten darzustellen könnte man die Sache nach Excel exportieren Ich selber halte auch nicht viel von andere Elemente wie LabView.Wenn LabView sicher auch nicht schlecht ist. Gruss Der Weihnachtsmann
"LabVIEW ist eine Objektorientierte Programmiersprache " Naja...
MFC ist nicht nur wegen dieser zwei Gründe ("von MS" und "windows-only") unbeliebt, sondern insbesondere auch wegen des schlechten Designs. Zum Einen werden durchweg Präfixe anstelle namepaces benutzt. Wieso das äußerst schlecht ist, kann man hier nachlesen: http://www.c-plusplus.de/forum/viewtopic.php?t=41464 Prefixe stammen aus früheren Tagen und sind heute bestenfalls völlig überflüssig. Vor allem war nie beabsichtigt, dass "normale Programmierer" ihren Klassen das C-Präfix verpassen. Dies war ursprünglich nur für MFC-Klassen vorgesehen, um sie eben vom Anwendercode zu unterscheiden. Andererseits ist die MFC nicht sehr kompatibel zur STL. std::string kann man quasi nicht benutzen, std::vector ist auch nicht kompatibel zu CArray und so weiter. Wenn du GUIs programmieren willst, würde ich eher zu "Windows Forms" (ist dann kein reines C++, sondern "managed C++" .NET) raten. Das ist nicht ganz so schlimm wie MFC. Damit kann man sehr schnell gute GUIs programmieren. Noch besser (aber leider auch wieder komplizierter) wäre eine plattformunabhängige GUI-Lib, wie z.B. das oben genannte wxWidgets. Alternativ könntest du auch gtkmm oder qt benutzen (wobei letzteres unter Windows nicht kostenlos ist). gtkmm läuft mit dem gcc sowie dem MS C++ Compiler 7.1 (nicht 7.0! 7.1 gehört zu "Visual Studio 2003").
naja, wenn man die entscheidung, ob man eine library verwenden will oder nicht davon abhängig macht ob die lib namespaces verwendet oder nicht, kann man gleich einige sehr nette libraries vergessen (und damit mein ich jetzt nicht nur gui libraries). übrigens verwendet unter anderem auch wxWidgets (noch) keine namespaces, um es auch auf plattformen kompilieren zu können auf denen nur c++ compiler verfügbar sind, die namespaces gar nicht oder nicht richtig unterstützen.
also warum nicht gleich perl und gtk ?? bzw phyton oder was auch immmer... sollte doch auch mit div widgetsets laufen weil c/cpp libs kann man draus aufmachen.. sonnst tcl/tk... wär doch auch was... und gegen die mfc kann ich nix einwenden..liegt warscheinlich daran das ich alles was ich an klassen usw brauche schon selbst (nach) programmiert habe ... damits a) schneller ist und b) das tut was ich will... wobei das immer spezialfälle waren... für den otto-normal-user sollte die mfc eigentlich alle stückerl spieln... zum thema labview... das kostet viel geld... dann noch nicht offen.. und nebenbei kann ich mir unter cpp meinen code selbst schnitzen...was zwar arbeit ist und zeit kostet...aber wie sagt doch bob ross so toll... das ist mein universum ... hier kann ich sogar berge versetzen g darf ich mal fragen welche uni das ist?? bei uns in graz wollen die uns angeblich vstudio.net "beibringen" wogegen ich allergisch bin.. aber mal schaun... hab noch ein paar wochen bis zum nächsten semester ;) 73 de oe6jwf / hans
Hallo @Hans Ja ich gehe auf die TU Graz. Ja wir arbeiten mit VS.Net... aber ich habe auch nie mit was anderem gearbeitet, also kann ich net sagen wie schlimm es wirklich ist ;-) Also LabView bekomme ich dann von der Uni sicher auch gratis, ich mein mit der muss ich als Informationstechniker sicher noch viel arbeiten. Genauso wie PSpice, ElEfAnT3D, VS.net, etc... Müsste ich mich umfragen vielleicht bekomm ich so eine Studentenversion... Ist die Frage ob ich mich dann ganz ohne Hilfe da auskenne. Kann ich da Problemlos auf serielle Schnittstelle und später USB zugreifen, von dort kommen nämlich die Daten des Oszillsokops? Damit müsste man dann ja auch prima FFT machen können oder? Reicht für ein gutes FFT 128k Datenpunkte á ein Byte? Also ich hab nachdem es mir ja stark angeraten wurde auch wxwidgets probiert. Muss aber sagen, dass ich es extrem unhandlich. Also außenstehender sich da einzuarbeiten ist trotz vieler Tuturien im Netz net wirklich lustig und wirklich durchblicken wie und welche Bibliotheken eingebunden bzw compiliert werden sollen tu ich noch immer net, auch wenn ich schon ein einfaches Fenster machen kann... Jippi gg Die Verwaltung der Kurve ist kein Problem. Auch auf die serielle Schnittstelle hab ich schon zugreifen können. Aber da ein ordentliche grafische Darstellung einer Kurve zu machen... Fragts mich in 3 Jahren noch mal gg MfG Martin
Martin, die von Dir geschilderten Probleme dürften in der einen oder anderen Form aber bei jeder C++-Klassenbibliothek auftreten. Das Einbinden von Bibliotheken gehört in die Kategorie "Bedienung des Compilers/der IDE" und hat mit der Klassenbibliothek selbst nichts zu tun. Wenn Du Dir eine aktuelle Version von DialogBlocks besorgtest, hättest Du eine - vom fehlenden integrierten Debugger abgesehen - nahezu vollständige IDE mit Quellcode-Editor, Projektverwaltung und GUI-Builder, die eine ganze Reihe von (auch freien) C-Compilern unterstützt. Zu Deinem eigentlichen Thema kann ich nur auf http://www.wxwidgets.org/technote/plotting.htm verweisen, das klingt doch ziemlich nach Deiner Anwendung.
tjo.. VS.net... najo mich stört da das .net ...das ist meines wissens zu sehr schlimmbessert worden... nun gut drüber lässt sich streiten... ich bleib bei meinem studio 6 ;) also am besten wenn du VS.Net hast... www.codeproject.com sonnst... ka .. sind schon viele dinge hier gefallen... ich kenn mich ganz gut mit der mfc aus... für weitere dinge hatte ich bis jetzt keine zeit... hab ja erst seit juni die matura und dann in den ferien wieder arbeiten... da bleibt einfach keine zeit um sich mal eben ein eine neue tool-sammlung einzuarbeiten... im prinzip müssten alle widgetsets gleich arbeiten... fenster ist nunmal fenster... ob man jetzt funktionen die auf ereignisse reagieren so, oder so einbindet ist ja eigentlich wurscht... und ob man sich jetzt im VS oder in einem anderen programm seine oberfläche zurechtklickt ist ja auch ned so die tragik... du sagst informationstechnik.. hmm auch e-technik oder hast nur IT gemeint ;) 73 de oe6jwf / hans
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.