Forum: Programmieren allgemein
by Alex_ITA01,
8. Aug 2008
Hallo OldGrumpy,
hast du etwas mit deinem Versuchsaufbau erreicht?
Ich habe gestern noch ein bisschen experimentiert und festgestellt, dass wenn ich ein ComPort nehme, den es Hardwaremäßig gar nicht gibt (z.B. ich nehme COM2 obwohl ich nur COM1 habe), dann gibt mir die Funktion GetCommModemStatus mit nachstehenden Vergleich (RI) True zurück...
Komisch...
Viele Grüße
Alex
Forum: Programmieren allgemein
by Alex_ITA01,
6. Aug 2008
Erstmal Danke für die Infos.
Habe folgendes probiert:
Anstatt
if SetCommMask(SerHandle, TmpMask) then
habe ich jetzt
Forum: Programmieren allgemein
by Alex_ITA01,
6. Aug 2008
Also das ist in alles in einer Komponente von unserer Firma. Daher nur der Ausschnitt oben...
Das Event ist nur eine Eigenschaft der Kompo aber die steht standardmäßig auf EV_RXCHAR.
Ich habe dann nur noch ein Thread außenrum, der zyklisch prüft, ob sich auf der Schnittstelle was tut...
if GetCommModemStatus(SerHandle, nStatus) then
begin
if ((nStatus and MS_CTS_ON) > 0) or
...
Forum: Programmieren allgemein
by Alex_ITA01,
6. Aug 2008
Folgendes steht in tmpMask drinne:
EV_RXCHAR (= 1)
Ich habe es auch schon probiert, indem ich tmpMask auf EV_RING (=256 = $100) setze aber das ändert auch nix...
Danke erstmal für deine Bemühungen.
Hoffentlich kannst du mir noch ein wenig helfen.
Kann es evtl. sein, dass GetCommModemStatus nicht mehr bei WinXP unterstützt wird?
Forum: Programmieren allgemein
by Alex_ITA01,
6. Aug 2008
hä? Ich benutze doch SetCommMask (siehe Source oben drüber)...
Viele Grüße
Alex
Forum: Programmieren allgemein
by Alex_ITA01,
6. Aug 2008
Hier zur Info (so initialisiere ich meine serielle Schnittstelle):
SerHandle := CreateFile (NullStr, Generic_Read or Generic_Write, 0, Nil,
Open_Existing,
FILE_FLAG_OVERLAPPED, 0);
if SerHandle <> INVALID_HANDLE_VALUE then
begin
if SetupComm (SerHandle, InBuffer, OutBuffer) then
begin
Forum: Programmieren allgemein
by Alex_ITA01,
6. Aug 2008
Hallo,
ich habe es jetzt wie folgt probiert:
if GetCommModemStatus(SerHandle, nStatus) then
begin
Result := (nStatus and MS_RING_ON) > 0;
end;
Forum: Programmieren allgemein
by Alex_ITA01,
5. Aug 2008
Hab jetzt die Funktion "GetCommModemStatus" gefunden.
Werde es erstmal damit testen...
Danke erstmal
Viele Grüße
Alex
Forum: Programmieren allgemein
by Alex_ITA01,
5. Aug 2008
Ja, das ist richtig wie du es sagst. Es geht um den RI.
Ich benutze dafür keine fertige Komponente sondern übertrage die Daten selber in meiner Software...
Gruß
Alex
Forum: Programmieren allgemein
by Alex_ITA01,
5. Aug 2008
Hallo zusammen,
ich habe eine serielle Schnittstelle und kann auch mit dem "Gegenüber" über das serielle Protokoll kommunizieren.
Leider gibt es noch ein Signal bei meinem "Gegenüber" welches entweder als High oder Low an Pin 9 anliegt und mir dieses "Bit" nicht über das Kommunikationsprotokoll mitschickt.
Kann ich irgendwie abfragen, ob Pin9 = High ist?
Viele Grüße
Alex