Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zur Verfügung stehende serielle Ports ermitteln ! (https://www.delphipraxis.net/3220-zur-verfuegung-stehende-serielle-ports-ermitteln.html)

Florian 1. Mär 2003 14:53


Zur Verfügung stehende serielle Ports ermitteln !
 
Lol , Fragen über Fragen.
Hi, heute zum 2ten mal.

Nun es geht darum zu ermitteln welche serielle Ports der PC hat.
Hierbei sind eben nicht nur home pcs gemeint die meist nur bis max. COM3 gehen sondern auch industrie - pcs wo man gern coms im oberen Bereich verwendet. -> Com 8 - 15!

ALso nun die Frage!
Ich benutzt diese ComPort264 Komponente!
Allerdings möchte ich so eine Art Autoerkennung für meinen Analyser realisieren. Im Prinzip kein Problem nur,............
Ich will unterscheiden können zwischen Port nicht vorhanden und port
wird gerade von einer anderen anwendung in beschlag genommen.
so weit ich mich da vorgearbeitet hab geht des in richtung errormessage handling, stimmt das oder ist dies der falsche weg ?

Ich hab mir des so vorgestellt:
1. Programm wird gestartet
2. Schleife welche Ports von 1 - 15 nacheinander zu öffnen versucht
2.1. In der schleife (wenn port offen) -> zeichen an Anal. schicken
dieser antwortet mit seiner ErkennungsID
2.2. Wenn erkennungs ID erkannt merk ich mir die Com
2.3. Wenn ich allerdings mit try....except feststelle dass ich die
Com nicht aufmachen kann, will ich eben noch unterscheiden
ob die com besetzt ist oder ob es sie gar nicht gibt.
und genau das ist das Problem. Alles andere funkt!

Ich hoffe ihr habt vorschläge, anregungen für mich :-)
danke schon im voraus ! :coder:

Daniel B 1. Mär 2003 15:01

Hallo Florian,

ein Blick in die Library, hätte Dir dieses gebracht.
Du musst es nur noch um einen Filter erweitern, den so werden auch Virtuelle Modems eingetragen. Das heisst, alle Namen die nicht COM1 bis COM 15 heissen, einfach aus der ComboBox wieder rauslöschen. Schon geht es.

Grüsse, Daniel :hi:

janjan 1. Mär 2003 15:11

Für Com-Port Programmierung benutz ich nur noch die TurboPower Async Professional Komponenten die vor ein paar Wochen als OPen-Source veröffentlicht worden.

Miener Meinung nach der komfortabelste Weg auf den Com-Port zuzugreifen.

http://sourceforge.net/projects/tpapro/

Florian 1. Mär 2003 15:12

hmpf lol
nun gesucht hab ich, per suche
aber den threat hat er mir nicht angezeigt :-(
vielen dank auf alle fälle , des ist genau das was ich suche
thx daniel

Florian 1. Mär 2003 15:18

Moment mal, gut gut
aber wie mach ich jetzt den check ob sie von einer anderen Anwendung benutzt wird ?
einfach mit try...except und wenns nicht geht wird sie von nem anderen programm benutzt ?
so in die richtung?

Daniel B 1. Mär 2003 15:28

Zitat:

Zitat von Florian
Moment mal, gut gut
aber wie mach ich jetzt den check ob sie von einer anderen Anwendung benutzt wird ?
einfach mit try...except und wenns nicht geht wird sie von nem anderen programm benutzt ?
so in die richtung?

Ich benutze auch schon ewigkeiten die TComPort 2.6x. Ist wirkich klasse.
Aber, Du kannst damit ganz einfach prüfen ob ein ComPort offen ist.
Und zwar:
Mach eine Schleife,
Delphi-Quellcode:
for i := 0 to ComboBox.Items.Count -1 do
begin
  ComPort1.Port := ComboBox.Item[i];
  if ComPort1.Connected then
    //Setze nächsten Port zum überprüfen
  else
  ComPort.Open;
  end;
end;
Du musst einfach nur den Port setzen, schauen ob der schon offen ist und wenn nein dann öffnen, ansonsten den nächsten anschauen.

Grüsse, Daniel :hi:

Florian 1. Mär 2003 15:34

ah versteh schon :-)
thx nur text is falsch, ich mach ihn auf wenn er NICHT offen ist ;-)

Daniel B 1. Mär 2003 15:58

Zitat:

Zitat von Florian
ich mach ihn auf wenn er NICHT offen ist ;-)

Hab ich ja geschrieben:
Delphi-Quellcode:
  ComPort1.Port := ComboBox.Item[i];
  if ComPort1.Connected then
    //Setze nächsten Port zum überprüfen
  else
    ComPort.Open;
  end;
Wenn der Port Connected ist, dann setze den nächsten zum überprfüen, wenn nicht, dann öffne ihn.

Grüsse, Daniel :hi:

Florian 1. Mär 2003 16:43

Zitat:

schauen ob der schon offen ist und wenn ja dann öffnen
hmmmmm wie soll ich das dann verstehen :p
:-)

Daniel B 1. Mär 2003 17:02

Sollte natürlich Nein heissen. ;)

Grüsse, Daniel :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz