Entwickler-Ecke

Windows API - Daten (Antwort) aus seriellem Port auslesen


Querkopf - Mi 05.03.03 23:03
Titel: Daten (Antwort) aus seriellem Port auslesen
Hi, bin ein neues Mitglied !!

Ich habe folgendes Problem:

Ich spreche mit AfSync 1.04 über den seriellen Port eine Relaiskarte an. Ich schicke ihr 4 Byte zum Initialisieren in folgender Form :


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
Kommando := 1;
Adresse := 1;
Daten := 0;
Kontrolle := Kommando xor Adresse xor Daten;
SendeDaten := chr (Kommando) + chr (Adresse) + chr (Daten) + chr (Konrtolle);
ComPort.Open;
ComPort.WriteString(SendeDaten);
ComPort.Close;


Dem Programm, das ich für die Steuerung geschrieben habe, ist es ziemlich egal, ob nichts, die Relaiskarte oder vielleicht etwas anderes am COM-Port sitzt. Und das ist nun mal nicht so toll... Auf diese 4 verschickten Bytes schickt mir nun die Karte 4 Byte als Antwort zurück, die wiefolgt aufgebaut sind :

Byte 1 = 255 - Kommando -> 254
Byte 2 = Anzahl der Karten + 2 -> 2
Byte 3 = SoftwareInfo -> ?
Byte 4 = XOR von Byte 1 bis 3


Erstens: Wie kann ich feststellen, dass überhaupt etwas am ComPort ist?
Zweitest: Wie kann ich die Antwort der Karte (auch zB beim Schalten der Relais) abrufen?

Hab schon folgendes probiert :


Quelltext
1:
2:
3:
4:
ComPort.Open;
ComPort.WriteString(SendeDaten);
ComPort.ReadString(AntwortDaten);
ComPort.Close;


und


Quelltext
1:
2:
3:
4:
5:
6:
ComPort.Open;
ComPort.WriteString(SendeDaten);
ComPort.Close;
ComPort.Open;
Comport.ReadString(AntwortDaten);
ComPort.Close;


Hat leider alles nichts gebracht, un die anderen Funktionen, Methoden usw. check ich leider nicht so ganz.

Hoffe, es kann mir jemand helfen

Thxle im Voraus


M. Raab - Do 06.03.03 15:33

Hallo,


also: Deine Funktione checke ich nicht ganz da ich Dein Programm nicht nutze. Ich selber habe mir aber mal ne SERIAL Com Komponente geschrieben und habe damit keine Probleme. An meiner Schnittstelle hängt ein externer Laserscanner zum Erfassen der Oberflächen von Objekten - im Prinzip also so was wie mit Deiner Karte. Ich habe das ganze für DELPHI gemacht und kann es Dir geben, falls Du interesse hast. Dort wäre Dein Problem mit COMM.Connected ? gelöst. Bei Interesse: gib mir mal Deine Mail Adresse und ich sende Dir ne kleine DEMO, wo alles erklärt ist.

Gruss


Markus


Querkopf - Do 06.03.03 15:42

Danke Markus für die Antwort

meine eMail steht jetzt im Profil :wink:

Gruss, Pierre