![]() |
Relais am Com-Port [Lösung aus C in Delphi nutzerbar?]
Hallo,
ich habe mir auf meinem Linux mal vor einiger Zeit eine Möglichkeit zusammengebaut um am COM-Port direkt die Spannung auf einigen Pinnen zu bestimmen. Diese Lösung war in C und ich habe sie unten hingeschrieben. Die Frage ist nun, kann man dies auch in Delphi unter Windows so direkt ansteuern?
Code:
sentinal
int main(int argc, char *argv[])
{ int fd = 0, currstat = 0; if((fd = open(argv[1], O_RDWR | O_NDELAY)) < 0) { printf("Fehler: Device \"%s\" kann nicht geöffnet werden.\n", argv[1]); return 2; } currstat |= TIOCM_RTS; // RTS an ioctl(fd, TIOCMSET, &currstat); usleep(500000); currstat &= ~TIOCM_RTS; // RTS aus ioctl(fd, TIOCMSET, &currstat); close(fd); return 0; } |
Re: Relais am Com-Port [Lösung aus C in Delphi nutzerbar?]
Kommt auf die Windows-Version an.
Win9x und ME sind kein Problem, bei allem darüber brauchst du nen Treiber o.ä. MFG Florian :hi: |
Re: Relais am Com-Port [Lösung aus C in Delphi nutzerbar?]
Hallo,
es geht um Server 2003... Kann man den Port nicht einfach öffnen so wie bei Linux? sentinal |
Re: Relais am Com-Port [Lösung aus C in Delphi nutzerbar?]
Es laesst sich machen. Schlimmstenfalls braucht man einen Treiber.
Am besten ist es in der Modding-Szene zu suchen. Dort moechte man mit wenig Geld die unmoeglichsten Gimmicks ansteuern. Konsequenterweise gibt es dort Software fuer serielle und parallele Schnittstellen. ![]() |
Re: Relais am Com-Port [Lösung aus C in Delphi nutzerbar?]
Moin moin,
dein C -code sollte in delphi so aussehen...
Delphi-Quellcode:
PS: Denke mal es funktioniert so, schlagt mich aber nicht wenn ich falsch liege
procedure TForm1.Button1Click(Sender: TObject);
var Comport : String; FHandle : THandle; begin ComPort := '\\.\COM1'; // Für Com1 FHandle := THandle( CreateFile(PChar(ComPort), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL or FILE_FLAG_OVERLAPPED, 0)); if FHandle = INVALID_HANDLE_VALUE then Exit; try // RTS An if Not EscapeCommFunction(FHandle, SETRTS) then // Error ?! Exit; Sleep(500); // RTS Aus if Not EscapeCommFunction(FHandle, CLRRTS) then // Error ?! Exit; finally FileClose(FHandle); end; end; (Habe nicht wirklich nen Plan von der Materie) |
Re: Relais am Com-Port [Lösung aus C in Delphi nutzerbar?]
hi,
hab auch mal sowas gebaut. den code habe ich von ![]() benutze winXP und es hat funktioniert. ich denke es solte auch auf Server 2003 laufen... gruss urbanbruhin |
Re: Relais am Com-Port [Lösung aus C in Delphi nutzerbar?]
Hallo,
also der Code von x000x klappt super. Nun muss ich mich nurnoch mit ISDN-Karten und Diensten rumschlagen. Mal sehen ob man von Delphi irgendwie auf die ISDN-Karte zugreifen kann, aber das gehört dann ja nicht mehr in dieses Thema. Besten Dank!! sentinal |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz