WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 05.10.2003, 18:59   #1
roadrunner
Master
 
Registriert seit: 31.07.2001
Alter: 45
Beiträge: 675


roadrunner eine Nachricht über ICQ schicken
Standard wie serielle Com in Delphi ansprechen

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
roadrunner ist offline   Mit Zitat antworten
Alt 12.10.2003, 19:32   #2
delphirocks
bitte Mailadresse prüfen!
 
Registriert seit: 17.03.2002
Beiträge: 198


Standard

hallo,
such mal auf source forge nach Turbopower/asyncpro

sg
delphirocks ist offline   Mit Zitat antworten
Alt 12.10.2003, 20:55   #3
Katze
Jr. Member
 
Registriert seit: 17.04.2003
Beiträge: 21


Standard

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;
Es grüsst

- Die Katze
Katze ist offline   Mit Zitat antworten
Alt 12.10.2003, 23:11   #4
roadrunner
Master
 
Registriert seit: 31.07.2001
Alter: 45
Beiträge: 675


roadrunner eine Nachricht über ICQ schicken
Standard

thx werds probieren
____________________________________
mfg roadrunner
roadrunner ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:13 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag