[?]eingang der seriellen schnittstelle auswerten

Raz0r1

Cadet 1st Year
Registriert
Apr. 2007
Beiträge
11
so ich hab da wieder ei problem, aber diesmal wirklich auf programmieren bezogen...
die programmiersprache ist wiederrum egal...

mein problem sieht wie folgt aus:
ich habe ein gerät an einen seriellen anschluss meines pc angeschlossen, weiß aber nicht welche signale (wie ja die tastatur bestimmte befehle sendet wenn eine bestimmte taste gedrückt wird) dieses gerät sendet. gibt es eine möglichkeit sich diese befehle ausgeben zu lassen um danach zb bei einem signal, das den wert "S10" hat, etwas bestimmtes zu machen?

hoffe ihr wisst was ich meine*g*

hoffe hier kann mir jmd helfen. thx voraus

MfG
Raz0r1
 
wie das geht, hängt sehr stark vom os ab. wäre daher nett, wenn du schreibst, welches du benutzt...

btw. es hängt auch von deinem seriellen anschluss ab. welchen nimmst?
 
also os is WinXP
und als schnittstelle würd ich wohl den com-port nehmen?!

MfG
 
aufmachen geht so:
HANDLE handle = CreateFile ("COM1", GENERIC_WRITE|GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0);
danach kannst du das quasi wie eine datei benutzen, also am einfachsten mit ReadFile und WriteFile rein schreiben/daraus lesen.
wenn du nicht die standard-einstellungen nutzen willst, kannst du noch mit GetCommState und SetCommState das entsprechend anpassen.
da würde ich dir aber mal empfehlen, selber die api-doku lesen, damit es auch zu deinem problem passt.
 
Zuletzt bearbeitet: (das read noch ergänzt.)
und welche sprache soll das sein?
vb? c? c++?

erkenn das irgendwie nicht^^

MfG
 
kann zwar c++ is aber lange her...müsste dann wieder auffrischen...

gibts da auch ne vergleichbare lösung für vb(.net)?^^

MfG
 
du kannst die gleichen aufrufe auch in vb nutzen, allerdings weiß ich nicht, wie man die korrekt einbindet.

wie ich schon schrieb: schau dir die api selber an, die gibt es auch für vb.
 
Hallo Raz0r1,

kann dir nachher ein Programm von mir schicken was den Serial Port ansteuert.
Ist allerdings in C# geschrieben. Aber dort werden die gleichen Klassen wie in VB.net benuzt.

Grüße

tewes
 
hab mal ein projekt mit VB 6.0 über die Com Schnittstelle laufen lassen. Kann mal schauen was ich noch finde wenn es die interessiert.


Gruß Charmin
 
Hallo Raz0r1,

hier die wichtigen teile aus dem Programm:
Code:
//Importieren der Klasse
using System.IO.Ports

//Öffnen des Com-Ports
public static SerialPort MyComPort = new SerialPort();

//Ein High-Bit Senden
MyComPort.DtrEnable = true;
MyComPort.RtsEnable = true;
MyComPort.RtsEnable = false;

//Ein Low-Bit Senden
MyComPort.DtrEnable = true;
MyComPort.RtsEnable = false;
MyComPort.RtsEnable = false;

Hoffe es hilft dir weiter

Grüße

tewes
 
Hallo ,

wie meine Vorredner schon sagten.

Nimm .Net 2.0, dort ist das kannst du sehr bequem und schnell die serielle Schnittstelle anprogrammieren. (Vorallem findest auch ne menge beispiele.)

Zu Deinem Problem:
Welche Signale das Gerät sendet. Hast keine API/ Technische beschreibung für das Gerät?

Wenn nein, besorg dir diese und du sparts dir viel zeit. (Besonders wenn du auch Befehle an das Gerät senden willst)

Was ist das für ein Gerät?

lg
Kreadon

EDIT: Geht auch in VB.NET, ich arbeite lieber mit C#
 
Zuletzt bearbeitet:
so muss schon wieder ein update machen...

also erstma danke für die tipps :) habs sie schon ausprobiert und funktionieren auch^^

aber jez is das prob folgendes:
ich muss verbindung über die RS232 schnittstelle herstellen und die reinkommenden daten auffangen und in mysql-db reinschreiben muss aber auch gleichzeitig eine dauerhafte abfrage über diesen port machen...dh das prog schickt pausenlos während der runtime ein signal (ENQ=das signal) und wenn dann das gerät am RS232 port mit "NAK" antwortet, dann soll er halt das was danach kommt in ne mysql-db schreiben...

das schwerste is eigentlich das mit der schnittstelle, weil ich davon wirklich null ahnung habe...das kommt jez grad son bissl aus heiterem himmel^^
den rest krieg ich wohl selbst hin...

wenn jmd ne seite kennt, wo sowas steht, könnte er die mal posten?

um weitere so gute hilfe würde ich bitten :)

MfG
Raz0r1
 
Zurück
Oben