AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Zur Verfügung stehende serielle Ports ermitteln !
Thema durchsuchen
Ansicht
Themen-Optionen

Zur Verfügung stehende serielle Ports ermitteln !

Ein Thema von Florian · begonnen am 1. Mär 2003 · letzter Beitrag vom 1. Mär 2003
Antwort Antwort
Florian

Registriert seit: 1. Nov 2002
Ort: Österreich
41 Beiträge
 
#1

Zur Verfügung stehende serielle Ports ermitteln !

  Alt 1. Mär 2003, 14:53
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 !
mfg Flo
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#2
  Alt 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
  Mit Zitat antworten Zitat
janjan

Registriert seit: 16. Jan 2003
Ort: Bonn ("links über Königswinter ")
240 Beiträge
 
Delphi 4 Standard
 
#3
  Alt 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/
Die Wichtigkeit eines Postings im Forum ist reziprok zur Anzahl der enthaltenenen, kumulierten Ausrufungszeichen!!!
  Mit Zitat antworten Zitat
Florian

Registriert seit: 1. Nov 2002
Ort: Österreich
41 Beiträge
 
#4
  Alt 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
mfg Flo
  Mit Zitat antworten Zitat
Florian

Registriert seit: 1. Nov 2002
Ort: Österreich
41 Beiträge
 
#5
  Alt 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?
mfg Flo
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#6
  Alt 1. Mär 2003, 15:28
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
  Mit Zitat antworten Zitat
Florian

Registriert seit: 1. Nov 2002
Ort: Österreich
41 Beiträge
 
#7
  Alt 1. Mär 2003, 15:34
ah versteh schon
thx nur text is falsch, ich mach ihn auf wenn er NICHT offen ist
mfg Flo
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#8
  Alt 1. Mär 2003, 15:58
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
  Mit Zitat antworten Zitat
Florian

Registriert seit: 1. Nov 2002
Ort: Österreich
41 Beiträge
 
#9
  Alt 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
mfg Flo
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#10
  Alt 1. Mär 2003, 17:02
Sollte natürlich Nein heissen.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:28 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