![]() |
![]() |
|
![]() |
![]() |
|
Registrieren | Hilfe/Forumregeln | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Master
![]() |
![]() hallo!
ich bin neu in delphi und muss die serielle schnittstelle ansprechen. wenn es jemand weiss und mir in kleinen schritten erklären kann wie ich in delphi 7 die serielle schnittstelle ansprechen kann, wäre ich sehr dankbar (habe mich eh schon im internet umgesehen, werde aber aus den ganzen posts nicht schlau). recht herzlichen dank
____________________________________
mfg roadrunner |
![]() |
![]() |
![]() |
#2 |
bitte Mailadresse prüfen!
Registriert seit: 17.03.2002
Beiträge: 198
|
![]() hallo,
such mal auf source forge nach Turbopower/asyncpro sg |
![]() |
![]() |
![]() |
#3 |
Jr. Member
![]() Registriert seit: 17.04.2003
Beiträge: 21
|
![]() Code:
function OpenCOMPort: Boolean; var DeviceName: array[0..80] of Char; ComFile: THandle; begin StrPCopy(DeviceName, 'COM1:'); ComFile := CreateFile(DeviceName, GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); if ComFile = INVALID_HANDLE_VALUE then Result := False else Result := True; end; function SetupCOMPort: Boolean; const RxBufferSize = 256; TxBufferSize = 256; var DCB: TDCB; Config: string; CommTimeouts: TCommTimeouts; ComFile: THandle; begin Result := True; if not SetupComm(ComFile, RxBufferSize, TxBufferSize) then Result := False; if not GetCommState(ComFile, DCB) then Result := False; // hier die Baudrate, Parität usw. konfigurieren Config := 'baud=9600 parity=n data=8 stop=1'; if not BuildCommDCB(@Config[1], DCB) then Result := False; if not SetCommState(ComFile, DCB) then Result := False; with CommTimeouts do begin ReadIntervalTimeout := 0; ReadTotalTimeoutMultiplier := 0; ReadTotalTimeoutConstant := 1000; WriteTotalTimeoutMultiplier := 0; WriteTotalTimeoutConstant := 1000; end; if not SetCommTimeouts(ComFile, CommTimeouts) then Result := False; end; procedure SendText(s: string); var BytesWritten: DWORD; begin s := s + #13 + #10; WriteFile(ComFile, s[1], Length(s), BytesWritten, nil); end; procedure ReadText: string; var d: array[1..80] of Char; s: string; BytesRead, i: Integer; begin Result := ''; if not ReadFile(ComFile, d, SizeOf(d), BytesRead, nil) then begin { Raise an exception } end; s := ''; for i := 1 to BytesRead do s := s + d[i]; Result := s; end; procedure CloseCOMPort; begin CloseHandle(ComFile); end; - Die Katze |
![]() |
![]() |
![]() |
#4 |
Master
![]() |
![]() thx werds probieren
____________________________________
mfg roadrunner |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|