Forum: PC Hard- und Software mit Visual Basic Daten über tragen und visuell auswerten


von g_reichert (Gast)


Lesenswert?

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

von Peter II (Gast)


Lesenswert?

ü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.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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.

von Peter II (Gast)


Lesenswert?

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.

von g_reichert (Gast)


Lesenswert?

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.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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.

von Peter II (Gast)


Lesenswert?

zeige uns doch mal ein Beispiel code aus dem Buch. Daran sollte man 
schon erkennen ob das VB.net oder VB6.0 ist.

von Peter II (Gast)


Lesenswert?

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.

von g_reichert (Gast)


Angehängte Dateien:

Lesenswert?

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.

von g_reichert (Gast)


Lesenswert?

Was macht eigentlich die Setup.exe (Setup Bootstrap ...)?

von Peter II (Gast)


Lesenswert?

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.

von Frank M. (frank_m35)


Lesenswert?

Also für dein Problem braucht man eigentlich kein Buch. Es gibt fertige 
Beispiele, diese muss man nur zusammensetzen.

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. Die Umgebung ist gleich, 
die Idee hinter der Sprach gleich. Der Syntax etwas verschieden. Der 
eine eben an Basic angelehnt, der andere an C. Je nachdem was dir lieber 
ist.

Für die serielle Schnittstelle suchst du am einfachsten nach COM Port, 
dann findest du zahlreiche Beispiele und erklärungen:
http://www.lvr.com/serial_ports_dotnet.htm
http://forum.arduino.cc/index.php?PHPSESSID=urtpuptafq82jdn4dgqnpe6ga4&topic=185085.msg1371171#msg1371171
http://www.innovatic.dk/knowledg/SerialCOM/SerialCOM.htm

Zur visuellen Anzeige kannst du auf fertige Controls zurückgreifen:
http://blogs.msdn.com/b/davidlean/archive/2009/04/20/free-chart-controls-for-net-windows-and-web-handy-links.aspx

oder du zeichnest den Graphen von selbst. Ist auch keine Kunst.


Das ganze gibt es auch fertig:
http://www.codeproject.com/Articles/42557/Arduino-with-Visual-Basic

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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.

von g_reichert (Gast)


Lesenswert?

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?

von Peter II (Gast)


Lesenswert?

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.

von Peter II (Gast)


Lesenswert?

g_reichert schrieb:
> Dann muss man in jedem Fall .NET Framework installiert haben.

auf welchen aktuellen Windows ist das es denn nicht drauf?

von g_reichert (Gast)


Lesenswert?

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).

von Frank M. (frank_m35)


Lesenswert?

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.

von Karl Käfer (Gast)


Lesenswert?

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

von Peter II (Gast)


Lesenswert?

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.

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
Noch kein Account? Hier anmelden.