AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Kommunikation mit virtuellem ComPort?
Thema durchsuchen
Ansicht
Themen-Optionen

Kommunikation mit virtuellem ComPort?

Ein Thema von HorstBS · begonnen am 12. Jan 2006 · letzter Beitrag vom 17. Jan 2006
 
HorstBS

Registriert seit: 10. Jan 2006
21 Beiträge
 
#3

Re: Kommunikation mit virtuellem ComPort?

  Alt 12. Jan 2006, 12:16
Hi, also ich versuch mal meinen Code hier auszugeben damit man ungefaehr nachvollziehen kann was ich bisher gemacht hab.

const comport = 'ELV USB-AD-Wandler';
Delphi-Quellcode:
procedure TForm1.VerbindenClick(Sender: TObject);
  var DCB : TDCB;
  var TimeOut : TCommTimeouts;
begin
  connect:=false;
  i:=1;
  while (ComHandle <= 0) and (i < 10) do
  begin
    ComHandle := CreateFile(pchar(comport), GENERIC_READ or GENERIC_WRITE,
                            0, nil, OPEN_EXISTING, 0, 0);
    inc(i);
  end;

  if (i > 10) then
  begin
    memo1.lines.add('Verbindung fehlgeschlagen');
    i:=0;
  end;

  if (ComHandle > 0) then
  begin
    memo1.lines.add('Verbindung hergestellt');
    memo1.Lines.add(inttostr(ComHandle));
    connect:=true;

    DCB.DCBlength := SizeOf(DCB);
    DCB.ByteSize := 8;
    DCB.Parity := NoParity;
    DCB.StopBits := ONESTOPBIT;
    DCB.BaudRate := 38400;
    DCB.Flags := 5123; { Wenn 2 Pins belegt sind }
    DCB.EofChar := #0;
    DCB.ErrorChar := #0;
    DCB.EvtChar := #0;
    DCB.XoffChar := #0;
    DCB.XoffLim := 0;
    DCB.XonChar := #0;
    DCB.XonLim := 0;
    SetCommState(ComHandle, DCB);
    GetCommTimeOuts(ComHandle, TimeOut);

    TimeOut.ReadIntervalTimeOut := 100;
    TimeOut.ReadTotalTimeoutMultiplier := 0;
    TimeOut.ReadTotalTimeoutConstant := 250;

    TimeOut.WriteTotalTimeoutMultiplier := 0;
    TimeOut.WriteTotalTimeoutConstant := 200;
    SetCommTimeouts(ComHandle, TimeOut);
  end;
end;
So versuche ich Kontakt zum ComPort bzw. zu dem AD-Wandler aufzubauen.
Mein PC selber hat zwei ComPorts: Com1 und Com3.
Wenn ich diese ansteuer (also comport:='com1';)
erhalte ich als Antwort
Zitat:
Verbindung hergestellt
96
und bei com3:
Zitat:
Verbindung hergestellt
112
Wenn ich jetzt irgendwelche anderen Ports angebe zb. comport:='com5'; , dann erhalte ich folgende Meldung:
Zitat:
Verbindung hergestellt
4294967295
Also eine Art Fehlermeldung. Und eben di erhalte ich auch wenn ich verscuhe 'ELV USB-AD-Wandler' anzusprechen.

Ansonste versuche ich noch Informationen an das Geraet zu senden mit folgendem Code:
Delphi-Quellcode:
procedure TForm1.SendenClick(Sender: TObject);
  var send : Integer;
  var text : String;
begin

  if (connect) then
  begin
    text:= chr(50); //ASCII "1"
    send := FileWrite(ComHandle, Text[1], Length(Text));

    //Fehlerueberpruefung
    if (send <> Length(Text)) then memo1.lines.add('Senden fehlgeschlagen')
    else memo1.lines.add('Senden OK');
    form1.Antwort.Caption:='"'+inttostr(send)+'" und '+inttostr(length(Text))+'"';
  end;
end;
Bei Com1 und Com3 bekomme ich "Senden OK" , bei den anderen Eingaben erhalte ich als Antwort "Senden fehlgeschlagen", wobei send=-1 und length(Text)=1 sind.

Ich hab echt kein Plan wie ich auf das Ding zugreifen soll und von dem C++ Programm versteh ich wie gesagt nicht viel.. Da es aus mehreren Dateien besteht die alle aufeinander zureuckgreifen ist es auch schwer irgendwas zurueck zuerfolgen oder irgendeinen Code zu posten.
Hoffe meine Angaben stellen das Problem ein bisschen besser dar.
MfG HorstBS
  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 05:48 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