Hallo,
ich will Daten seriell über einen USB-Adapter an den PC übermitteln und
dort mit einem einfachen Programm auswerten.
Das Programm soll nach Möglichkeit mindestens unter XP und Win7 laufen.
Habe das Buch "USB in der Elektronik" von J. Hulzebosch vorliegen. Dort
sind viele Programmbeispiele zur Datenübertragung für Visual Basic (VB)
aufgeführt. Das Buch ist von 2008.
Leider werden dort, so weit ich das sehe, keine weiteren Angaben
gemacht, welche Visual Basic Version verwendet werden soll.
Kenne mich leider mit VB in der Praxis bisher nur wenig aus.
Habe einige Literatur zu Visual Basic 2008 ( = VB.NET?) besorgt, das
scheint aber eine ganz neue, eigene Entwicklung von VB zu sein und ich
bezweifle, dass sie so ohne weiteres mit den Beispielen im Buch
funktioniert (bitte gegebenenfalls korrigieren!).
Wahrscheinlich wird eher Visual Basic 6 (Visual Basic Classic)
benötigt?!
Frage: Welche VB-Version wäre nun für mein Ansinnen ausreichend?
Hier noch mal die Anforderungen:
- Programm soll mindestens unter XP und Win7 laufen
- nach Möglichkeit einfacher Installationsaufwand
- serieller Datenaustausch über USB möglich
- einfache graphische Darstellung von Messwerten in einem
Koordinatensystem
- nach Möglichkeit downloadbare kostenlose Entwicklungsumgebung
überhaupt kein VB.
Mache es mit C# - Seriell ist dort überhaupt kein Problem. Läuft auf
alles aktuellen Windows Versionen ohne Zusatz Installation.
Kannst es auch mit VB.net machen, aber wenn du es erst lernen musst
macht es wenig sinn. Dann kannst du auch C# lernen. Dafür findest du
auch genug Beispiele im Netz.
g_reichert schrieb:> Das Buch ist von 2008.> Leider werden dort, so weit ich das sehe, keine weiteren Angaben> gemacht, welche Visual Basic Version verwendet werden soll.
Ich halte es für ziemlich unwahrscheinlich, daß ein 2008 erschienenes
Buch sich noch mit der Steinzeitversion VB6 beschäftigt. VB6 ist nicht
von 2006, sondern von 1998. VB.net gibt es seit 2002.
Dieses Buch wird sich von daher auf irgendeine VB.net-Variante beziehen.
Peter II schrieb:> überhaupt kein VB.>> Mache es mit C#
Das ist nicht nötig. Die grundlegenden Mechanismen sind bei allen
.Net-Sprachen identisch, nur der obendrüberliegende syntaktische
Zuckerguss unterscheidet sich.
Rufus Τ. Firefly schrieb:> Das ist nicht nötig. Die grundlegenden Mechanismen sind bei allen> .Net-Sprachen identisch, nur der obendrüberliegende syntaktische> Zuckerguss unterscheidet sich.
nötig nicht. Aber ich halte es für sinnvoll. VB ist vom Syntax her immer
anders als übliche Programmiersprachen. mit C# wissen kann man später
mehr anfangen also mit VB-Wissen.
Hallo,
Danke für die schnellen Antworten!
Mir persönlich ist es eigentlich relativ egal ob VB oder C#, da ich mich
eigentlich nur von früher mit Quickbasic und von der µC-Programmierung
halbwegs mit C auskenne und beides wohl weder mit VB, noch mit C#
nennenswert verwandt sein dürfte.
Peter II schrieb:> mit C# wissen kann man später> mehr anfangen als mit VB-Wissen.
Wenn dem so ist würde ich tatsächlich eher zu C# tendieren.
Tja, das liegt im Auge des Betrachters. Der Threadersteller hat ein Buch
mit Programmbeispielen, und mit --davon gehe ich zumindest aus--
weiterführenden Erläuterungen, da wäre es schon sinnvoll, wenn er das
Buch auch anwenden und umsetzen kann.
Ein Buch ist irgendwelchen "Online-Tutorials" gegenüber überlegen.
Rufus Τ. Firefly schrieb:> Tja, das liegt im Auge des Betrachters. Der Threadersteller hat ein Buch> mit Programmbeispielen, und mit --davon gehe ich zumindest aus--> weiterführenden Erläuterungen, da wäre es schon sinnvoll, wenn er das> Buch auch anwenden und umsetzen kann.
wobei wir nicht wissen ob es für VB6.0 oder VB.net ist - und das ist
nicht das gleiche.
Peter II schrieb:> zeige uns doch mal ein Beispiel code aus dem Buch. Daran sollte man> schon erkennen ob das VB.net oder VB6.0 ist.
Im Anhang der Inhalt des Ordners von Beispiel 1 und die Datei Module.bas
Rufus Τ. Firefly schrieb:> Ein Buch ist irgendwelchen "Online-Tutorials" gegenüber überlegen.
Hallo Rufus, gut erkannt! Wenn ich auf die Schnelle keine
Hardware-Literatur zu C# bekomme, bleibt es bei VB.
g_reichert schrieb:> Im Anhang der Inhalt des Ordners von Beispiel 1 und die Datei Module.bas
das sieht wirklich nach alten VB aus - das hilft also nicht wirklich
weiter.
Peter II schrieb:> das sieht wirklich nach alten VB aus
Dann ist das eingetreten, was ich für unwahrscheinlich hielt.
Tja, die Ewiggestrigen, die an VB6 festhalten, die scheint es übrigens
immer noch zu geben.
Danke für die Antworten!
Frank M. schrieb:> Ob man dann VB.NET oder C# nimmt ist vollkommen egal. Beide sind vom> .NET Framework abhängig, somit laufen sie (wenn man von umständlichen> inoffiziellen Tricks absieht) nur auf Windows.
Dann muss man in jedem Fall .NET Framework installiert haben.
Frank, Danke für die Links!!!
Ok, dann denke ich mal in Ruhe darüber nach, was der nä#chste Schritt
wird.
Falls jemand noch weitere Ideen, Hinweise und/oder Anregungen zu Thema
hat, immer her damit!
Eine Frage hätte ich noch: Was wären die Vor(?)/Nachteile bei Verwendung
des alten VB?
Frank M. schrieb:> Beide sind vom> .NET Framework abhängig, somit laufen sie (wenn man von umständlichen> inoffiziellen Tricks absieht) nur auf Windows.
apt-get install mono
ist das schon ein inoffiziellen Trick?
Meine Programm laufen zumindest unter Linux bis jetzt ohne Probleme.
Peter II schrieb:> auf welchen aktuellen Windows ist das es denn nicht drauf?
Ist die Frage, was man unter aktuell versteht. Mein
Bastel/Programmier-Rechner hat noch XP drauf (soll demnächst Win7 drauf,
im Moment wie gesagt aber noch XP installiert).
Peter II schrieb:> Frank M. schrieb:>> Beide sind vom>> .NET Framework abhängig, somit laufen sie (wenn man von umständlichen>> inoffiziellen Tricks absieht) nur auf Windows.>> apt-get install mono>> ist das schon ein inoffiziellen Trick?>> Meine Programm laufen zumindest unter Linux bis jetzt ohne Probleme.
Ich gebe vorweg zu, ich habe mich nicht ausführlich mit dem Thema
beschäftigt, also lasse ich mich gerne eines besseren belehren.
C#, VB.NET, ... sind von MS entwickelte und gepflegte Sprachen, die die
von MS offiziell vertriebene .NET Laufzeitumgebung benötigen, welche nur
auf Windows läuft.
Mono ist ein Versuch .NET Progarmme auch auf Linux etc. zum Laufen zu
bringen, in kurz die CLI platformübergreifend zu implementieren. Somit
ist es in meinen Augen eine inoffizielle Erweiterung, da MS, die Firma
die viele Rechte/Patente auf ihre Sprachen besitzt, Mono nicht
unterstützt, sondern als 'Pseudokonkurrent', vermutlich gerne,
toleriert.
Schaut man bei Wikipedia mal auf die CLI-übersicht:
http://de.wikipedia.org/wiki/Common_Language_Infrastructure
So steht dort:
".NET von Microsoft (Implementierung für Windows, die den Standard um
zahlreiche weitere Klassenbibliotheken erweitert)"
Was mir eben sorgen bereiten würde, da durch diese Erweiterungen ich die
Sorge hätte, dass eben nicht jedes .NET Programm auf Mono läuft.
Und tatsächlich, unter Mono findet man auf Wikipedia:
http://de.wikipedia.org/wiki/Mono-Projekt
"Anwendungen, die auf .NET 3.0, .NET 3.5 oder .NET 4.0 basieren, sind
derzeit unter Mono unter Umständen nicht lauffähig, da bislang nur eine
Teilmenge umgesetzt ist. Es fehlen Windows Presentation Foundation,
Windows Workflow Foundation und teilweise Windows Communication
Foundation"
Da ich selbst viel in Visual Basic Classic programmiere kann ich mich ja
kaum beschweren, da auch VB 6.0 ein Framework braucht und noch stärker
an Windows gebunden ist. Andereseits sehe ich daran die großen Nachteile
einer solchen Abhängigkeit von einem einzigen Hersteller und ärgere mich
jedes mal aufs neue, dass MS langsam aber sicher VB Classic Programme
inkompatibel zu neueren Windows Versionen macht.
Schaut man in die Zukunft, so ist es offensichtlich, dass der Großteil
aller 'Computer' (ob Smartphone, Tablet, Laptop, ...) im Haushalt nicht
mehr mit Windows laufen und daher vielleicht gerne seine Programme auch
auf Nicht-Windows Maschinen laufen lassen würde. Da stelle ich mir
andere Sprachen sinnvoller vor.
Nichts desto trotz, es war nur als Anmerkung gemeint, dass falls er in
Zukunft planen sollte bspw. die Auswertung auf seinem iOS/Android
Smartphone/Tablet zu visualisieren er vielleicht besser dran ist eine
andere Sprache zu verwenden/erlernen also nun viel Zeit in eine .NET
Sprache zu investieren.
Hallo,
g_reichert schrieb:> Mir persönlich ist es eigentlich relativ egal ob VB oder C#, da ich mich> eigentlich nur von früher mit Quickbasic und von der µC-Programmierung> halbwegs mit C auskenne und beides wohl weder mit VB, noch mit C#> nennenswert verwandt sein dürfte.
Wenn Du ohnehin eine neue Programmiersprache lernen möchtest, warum dann
nicht gleich eine moderne und plattformunabhängige Skripsprache wie
Python?
Der Zugriff auf serielle Schnittstellen ist dank des "serial"-Moduls im
wahrsten Sinne des Wortes ein Kinderspiel und die Visualisierung der
Daten kann über etliche verschiedene Wege erfolgen -- über die
Python-eigene GUI mit Tkinter/Tix, über eine externe GUI-Library wie Qt
oder wxWidgets oder über das grandiose Python-Modul Matplotlib, das
gerne im wissenschaftlichen Umfeld verwendet wird und nahezu keine
Wünsche offen läßt. Und als kleines Extra funktioniert das Ganze dann
auch unter Windows, MacOS und Linux.
HTH,
Karl
Karl Käfer schrieb:> Wenn Du ohnehin eine neue Programmiersprache lernen möchtest, warum dann> nicht gleich eine moderne und plattformunabhängige Skripsprache wie> Python?
weil es immer noch Scriptsprachen sind. Also Fehler erst zu Laufzeit
auffallen.
Frank M. schrieb:> Mono ist ein Versuch .NET Progarmme auch auf Linux etc. zum Laufen zu> bringen, in kurz die CLI platformübergreifend zu implementieren. Somit> ist es in meinen Augen eine inoffizielle Erweiterung, da MS, die Firma> die viele Rechte/Patente auf ihre Sprachen besitzt, Mono nicht> unterstützt, sondern als 'Pseudokonkurrent', vermutlich gerne,> toleriert.
was MS hat sind Module sie sie in ihrer Runtime hinzufügen. Wie bei Java
einige Klassen von SUN (Oracle)
> Es fehlen Windows Presentation Foundation,> Windows Workflow Foundation und teilweise Windows Communication> Foundation"
ja, aber das braucht man nun nicht wirklich. Viele Projekte laufen unter
WindowsForms und die "Windows Communication Foundation" hat nichts mit
Seriell oder LAN direkt zu tun. Sie stellt also keine Einschränkung für
diese diesen Anwendungsfall dar.
.net ist läuft auf ARM, x86 und 64bit ist damit also schon recht
Platformunabängig.
> Zukunft planen sollte bspw. die Auswertung auf seinem iOS/Android> Smartphone/Tablet zu visualisieren er vielleicht besser dran ist eine> andere Sprache zu verwenden/erlernen also nun viel Zeit in eine .NET> Sprache zu investieren.
und was glaubst du wie Windows Phones Programmiert werden?
Adroid ist Java, Ios ist ObektivC also hier ist man mit keiner Sprache
überall dabei.