AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Rechner über RS232 herunterfahren lassen
Thema durchsuchen
Ansicht
Themen-Optionen

Rechner über RS232 herunterfahren lassen

Ein Thema von DoktorD · begonnen am 4. Okt 2007 · letzter Beitrag vom 5. Okt 2007
 
DoktorD

Registriert seit: 13. Dez 2005
153 Beiträge
 
#8

Re: Rechner über RS232 herunterfahren lassen

  Alt 5. Okt 2007, 08:58
Danke für deinen Hinweis. Aber geht das auch anders? Das ich beim öffnen der Schnittstelle einfach RTS und DTR auf High setze?

Hier mein Quellcode beim öffnen der Schnittstelle:
Delphi-Quellcode:
Function TForm1.Com_VerbindungStart (comport:Byte; baudrate:Word; Byte,Parity,StopBits:Byte; var Handle :THandle):Boolean;
Var
    // Variablen für das öffnen der Com-Verbindug
    port : pansichar;
    b_fsuccess, b_RSetMask : Boolean;
    Dcb : TDCB;
    TCOM_com : TCOMMTIMEOUTS;
begin
  case comport of
    1: port := 'com1'; 2: port := 'com2'; 3: port := 'com3';
    4: port := 'com4'; 5: port := 'com5'; 6: port := 'com6';
    7: port := 'com7'; 8: port := 'com8'; 9: port := 'com9';
  end;
  Result := True;
//************** Com-Schnittstellen konfigurieren und öffnen *******************
//******************************************************************************
  Handle:=createfile(port,GENERIC_READ or GENERIC_WRITE,0,nil,OPEN_EXISTING, 0, 0);
  IF Handle=INVALID_HANDLE_VALUE then begin
    Result := False;
    //Application.Terminate;
    MessageDlg('Port "'+port+'" nicht gefunden.', mtWarning, [mbOK], 0);
  end;
//************** Com setzen: *****************************************
  // Lesen der Schnittstellenparameter:
  b_fsuccess := GetcommState(Handle,dcb);
  //-------------------------------------
  dcb.BaudRate := baudrate;
  Dcb.ByteSize := byte;
  Dcb.Parity := Parity; {0-4     = None, Odd, Even, Mark, Space} 
  Dcb.StopBits := StopBits; {0, 1, 2 = 1, 1.5, 2                   }
  dcb.flags :=$1011;



  //Schreiben der Schnittstellenparameter:
  b_fsuccess := SetcommState( Handle, Dcb );
  If b_fsuccess = False Then begin
  Result := False;
  MessageDlg( 'Fehler beim schreiben der Schnittstellenparameter', MtError, [MbOk], 0 );
  end;

  // SPECIFIES A SET OF EVENTS TO BE MONITORED :
  b_RSetMask := SetCommMask( Handle, EV_RXCHAR );
  //-------------------------------------------
  If b_RSetMask = False Then begin
    Result := False;
// MessageDlg( 'SPECIFIES A SET OF EVENTS TO BE MONITORED : FAIL', MtError, [MbOk], 0 );
  end;
  // Festlegen der TimeOuts für die Kommunikation
  TCOM_com.ReadIntervalTimeOut := 500;
  TCOM_com.ReadTotalTimeoutMultiplier := 10;//MAXDWORD;
  TCOM_com.ReadtotalTimeOutConstant := 100;
  //--------------------------------------
  // Setzten des TimeOuts für die Kommunikation
  SetCommTimeouts(Handle,TCOM_com);
  //-----------------------------------
  // Größe von INPUT- und OUTPUT-BUFFER festlegen:
  b_fsuccess := SetupComm( Handle, 2000, 2000 );
  //--------------------------------------------
  If b_fsuccess = False Then begin
    Result := False;
    MessageDlg( 'Festlegen der Größe für Input- und Output-Buffer ist fehlgeschlagen', MtError, [MbOK], 0 );
  end;
end;
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:20 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-2025 by Thomas Breitkreuz