Serielle Schnittstelle auslesen

Hallo,

die Frage ist off-topic aber dennoch findet sich hier der Eine oder Andere der das wissen kann. In meinen Windows-PC fließen Messdaten via RS232 ein. Kann mir jemand einen Tip geben wie ich die Daten per C-Programm in dem Speicher des Computers bekomme? Den Baustein direkt auslesen, irgendwelche Bibliotheken erforderlich? Mir reicht schon die Richtung in der ich suchen muß, bin etwas planlos.

Sven

Reply to
Sven Schulz
Loading thread data ...

Sven Schulz schrieb:

Windows API verwenden. Das entsprechende Kapitel im MSDN ist

formatting link

CU Christian

--
Christian Zietz  -  CHZ-Soft  -  czietz (at) gmx.net
WWW: http://www.chzsoft.com.ar/
PGP/GnuPG-Key-ID: 0x6DA025CA
Reply to
Christian Zietz

Hallo,

es muss schon die API genutzt werden, doch auch da gibt es verschiedene Möglichkeiten. Das einfachste ist natürlich einfach immer die Schnittstelle auslesen, wenn man mal per Win API einen Datei- Zeiger generiert hat und so.

Man sollte aber tunlichst, um Ressourcen zu sparen, um die Reaktanz des Programms aufrecht zu erhalten, die Funktionen WaitForMultipleObjects oder für GUI- Programme MsgWaitForMultipleObjects nutzen, damit das Programm beim warten, auch auf mehrere Schnittstellen, blockiert wird.

Quellen dazu wären:

formatting link
formatting link
formatting link
formatting link

Ich habe nach dem Lesen dieser Artikel und anderer Dinge im Netz entschieden, dass ich die Entwicklung auf Windows- Basis einstelle, aber das bleibt ja jedem selbst überlassen.

Schöne Grüße!

Ulrich

Reply to
Ulrich Langenbach

Hallo Sven,

Falls du das mit dem Platform SDK selbst programmieren moechtest, ist der ultimative Artikel dazu wohl immer noch "Serial Communication in Win32" siehe:

formatting link
Da findet sich auch das MS MyTTY Beispiel Programm.

Die Platform SDK API fuer serielle Kommunikation ist ziemlich maechtig und damit auch alles andere als trivial, das heisst, das ist nur machbar, wenn du bereits ausreichende Kenntnisse der Windowsprogrammierung hast. Selbst dann ist das durchaus eine Herausforderung, insbesondere falls du dich entscheiden solltest overlapped I/O zu benutzen. Je nachdem wie hoch deine Anforderungen sind und wieviel Erfahrung du mit Windowsprogrammierung hast, kann das auf einige Wochen Programmieraufwand hinauslaufen.

Gruss Klaus

Reply to
Klaus Bahner

"Klaus Bahner" schrieb im Newsbeitrag news: snipped-for-privacy@ieee.org...

Wochen Programmieraufwand? Ich bin entsetzt. Ich möchte doch nur einige kleine Bytes von meiner seriellen Schnittstelle zügig lesen und noch weniger senden. Das klingt ja so als wäre ich in einem Hieronymus Bosch Gemälde gefangen.

Gibst da nicht irgendwas von der Stange, irgendwas was ich mir flott einbinde und dann komme ich an meine Bytes?

Sven

Reply to
Sven Schulz

"Ulrich Langenbach" schrieb im Newsbeitrag news:f2ag5a$in3$ snipped-for-privacy@news01.versatel.de...

Windows ist sicher nicht die erste Wahl. Wobei ich wirklich nur für einen kurzen Zeitraum die Windows-Büchse als Rechenknecht benötige.

Sven

Reply to
Sven Schulz

Sven Schulzschrieb: "

formatting link
formatting link

läßt sich auch auf C umschreiben. Wenn man für Windows "tiefere" Software entwickeln möchte, sollte man sich aber C++ angewöhnen.

mfG Dirk

Reply to
Dirk Ruth

Hallo Sven,

Es war einmal... anno 3/2002 in der elektor, da machte Paul Goosens den Versuch, der Fangemeinde den windows-kompatiblen Umgang mit RS232 zu vermitteln. Da das nicht so recht fruchten wollte, legte man bei Elektor ein Jahr später eine dll nach, mit der selbst ich es geschafft habe, die Messdaten eines Moduls auszulesen und meine Maschinensteuerung so zu machen, wie ich es wollte. Die DLL kannst Du bei Elektor runterladen, sammt Delphi-Quellcode. Keine Sorge, das Demo funktioniert nicht nur bei Dir nicht, aber die DLL ist OK, wenn man die druckfehler der Beschreibug anhand des Quellcodes gefunden hat, dann hat man das Teil auch begriffen ;-) Kaum weiss man wie es geht, ist das ganze kinderleicht.

Marte

Reply to
Marte Schwarz

Sven Schulz am Mon, 14 May 2007 23:12:49 +0200:

Hier schreibt jemand mit Perl auf einen seriellen port (~25 Zeilen):

formatting link

Aus

formatting link

folgt dann das man für perl unter win32 nur ein anderes Modul braucht

-----8

Reply to
Ervin Peters

Sven Schulz schrieb:

Vermutlich gibt es da irnkwas fertiges.

Für Delphi gibt es z.B. nette kleine Komponenten, mit denen man einen recht komfortablen Zugriff auf die Schnittstellen bekommt - warum sollte es sowas nicht auch für C geben?

Falls Du nun doch lieber Delphi nehmen möchtest (is eh besser :-P ), nenne ich Dir auch eine passende Komponente... :-)

Tilmann

--
http://www.autometer.de - Elektronik nach Maß.
Reply to
Tilmann Reh

Sven Schulz schrieb:

Falls Du wirklich nur wenig senden mußt und ein Log der Empfangsdaten ggf. ausreicht (spätere Auswertung des Logfiles mit separatem Programm), dann sieh Dir mal Docklight an - ein klasse Tool für Tests mit Schnittstellenbezug.

Tilmann

--
http://www.autometer.de - Elektronik nach Maß.
Reply to
Tilmann Reh

formatting link
formatting link

Axo. Na vielleicht ist trotzdem die eine oder andere Info brauchbar.

B
Reply to
Bernd Stolle

Cygwin existiert. :-) Mein "berühmtes" Demoprogramm gibts in einer mittlerweile Cygwin-tauglichen Fassung hier:

formatting link

Gruß Henning

Reply to
Henning Paul

Sven Schulz schrub:

Auf einem unixoiden System würde ich 'ckermit' scripten. (Gibt's afaik auch für Windosen, und wäre evtl. eine Alternative.)

Ansgar

--
Mails an die angegebene Adresse erreichen mich - oder auch nicht! Gültige  
Adresse gibt's bei Bedarf!
Mails to the given address may or may not reach me - valid return address  
will be given when required!
Reply to
Ansgar Strickerschmidt

"Ervin Peters" schrieb

die

Perl ist sicher portabel, Python ist lesbarer (IMHO):

#!/usr/bin/python # reads GPS data from a Garmin device # you'll need to install # python - from

formatting link
# pyserial - from
formatting link

import serial

tty = serial.Serial("COM1", 4800) while (True): line = tty.readline() #print line, if (line.startswith("$GPGGA")): print line, (verb,time,Nval,NS,Eval,EW,valid,NSat,HDOP,Alt,AltUnit,rest) = line.split(",", 11) print "valid %s time %s Pos %s %s %s %s Alt %s %s #Sat %s rest %s" \ % (valid, time, Nval, NS, Eval, EW, Alt, AltUnit, NSat, rest)

HTH Martin

Reply to
Martin Blume

Hallo,

doch, da gibt es mscomm.ocx, das ist eigentlich für die Benutzung unter MS VB 5 oder 6, lässt sich aber auch von C ansprechen. Wenn Du aber C# benutzt, da gibt es auch was anderes fertiges dafür, aber nur ab .Net 2.0 Welches C von wem auf welcher Platform benutzt Du eigentlich? Offenbar unter Windows, aber welche Version?

Bye

Reply to
Uwe Hercksen

Ulrich Langenbach schrieb:

Durch hinreichend kleine Suszeptanz bleibt die Reaktanz beliebig gross. Durch Impedanzerhöhung sinkt allerdings die Admittanz. Konduktanzvergrössernd wirkt sich hingegen eine Reduktion der Resistanz aus.

SCNR

--
mfg Rolf Bombach
Reply to
Rolf_Bombach

"Uwe Hercksen" schrieb im Newsbeitrag news:op.tsdjwchvni00lm@hercksen3...

Hallo Uwe,

da ich erst loslaufen will wenn ich auch die Richtung kenne habe ich mich mit der Entwicklungsumgebung noch nicht festgelegt. Prinzipiell bin ich da offen und kann mich noch entscheiden.

Sven

Reply to
Sven Schulz

Sven Schulz schrieb:

Hallo Sven,

wenn du es dir ganz einfach machen willst, dann beschaffe dir die c't Heft 11/2007. Dort ist eine DVD mit der Vollversion von LabView 6.1 dabei. Ist zwar nicht die aktuellste Version, aber mit dieser Version habe ich vor ein paar Jahren eine Applikation geschrieben (gezeichnet:) ), die Daten von der seriellen Schnittstelle eingelesen, dargestellt und auf Festplatte geschrieben hat. Auf der DVD sind auch noch jede Menge anderer Programme zu MSR.

Gruß Rolf

Reply to
Rolf Mennekes

Kleinigkeiten erledige ich gerne mal mit dem C# 2005 Express von

*Winzigweich*. Hat IIRC seriell als Klasse mit implementiert, ist gratis zum Ziehen aus dem Netz (so wie auch C++ den ich auch durchaus gerne als Editor für andere C-Projekte verwende weil ich den Editor mittlerweile gut kenne) und geht flott von der Hand. Zumindest wenn man einen blassen Tau von C und/oder Java hat.

Oder man hat Aversionen gegen MS/Win. :-]

Heinz, der die Plattform einsetzt, die gefordert ist

Reply to
Heinz Liebhart

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.