Wie kann ich feststellen, ob an COM1 ein Gerät angeschlossen ist?

    • Wie kann ich feststellen, ob an COM1 ein Gerät angeschlossen ist?

      Siehe Titel!

      Ich habe hier (in der Firma) PCs mit einem seriellen Port an COM1. Ich müsste für ein Programm irgendwie feststellen ob ein serielles Gerät an diese Schnittstelle angestöpselt ist, um im Programm bei Fehlen des Gerätes bestimmte Optionen auszublenden. Hat jemand eine Idee? (In XProfan; Delphi geht aber auch.)

      Gruß
      Roland
      Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD / ATI Radeon HD4770 512 MB / Windows 7(32) - XProfan X3
      AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 (onboard) / Windows 10(64) - XProfan X3


      http://www.xprofan.de
    • Keine Antwort, nur eine Idee: Im guten alten DOS wüsste ich mir zu helfen:
      c>mode com1: /status >status.txt
      und schauen, ob sich durch Anstecken/Abstecken etwas am Status der Pins ändert.
      Insb. RI Ring-Indicator (pin 9 am DE9-Stecker des Compis) wäre da interessant.
      Vielleicht klappt das mittels cmd.exe-Fenster noch?

      Sagt z.B. c>HELP MODE was? Bei mir (Win64) kommt

      MODE COMm[:] [BAUD=b] [PARITY=p] [DATA=d] [STOP=s]
      [to=on|off] [xon=on|off] [odsr=on|off] [octs=on|off] [dtr=on|off|hs]
      [rts=on|off|hs|tg] [idsr=on|off]

      und ich denke, DSR = DATA SET READY müsste sich ändern...

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von p. specht ()

    • Neu

      Mit MODE bekomme ich nur die Einstellungen der Schnittstelle heraus, nicht den aktuellen Zustand. Deine Programmzeile hat bei angestecktem und nicht angestecktem Gerät exakt die gleiche Ausgabe.

      (Und ja, das Gerät ist mit Strom versorgt und betriebsbereit.)

      Gruß
      Roland

      Früher hätte man mit IN und OUT noch Infos bekommen ... aber das geht seit XP nicht mehr.
      Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD / ATI Radeon HD4770 512 MB / Windows 7(32) - XProfan X3
      AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 (onboard) / Windows 10(64) - XProfan X3


      http://www.xprofan.de
    • Neu

      Wenn es so einfach wäre. Wenn es angeschlossen ist (ein Smart-Card-Reader), kommt auch keine Antwort.

      Gruß
      Roland
      Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD / ATI Radeon HD4770 512 MB / Windows 7(32) - XProfan X3
      AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 (onboard) / Windows 10(64) - XProfan X3


      http://www.xprofan.de
    • Neu

      Ja natürlich. Das Gerät bringt eine eigene DLL mit und funktioniert ja auch ganz hervorragend. Es geht nur darum, dass das zugehörige Programm halt auch ohne angeschlossenes Gerät genutzt werden soll und die Funktionen, die das Gerät benötigen, dann ausgegraut oder gar nicht erst sichtbar sind. Und die DLL-Funktionen machen keinen Unterschied, ob das Gerät nicht angeschlossen ist oder nur zur Zeit keine Karte draufliegt. Und eine Initialisierungsfunktion, die einen Fehler bei nicht angerschlossenem Gerät zurückliefert, gibt es auch nicht.

      Gruß
      Roland
      Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD / ATI Radeon HD4770 512 MB / Windows 7(32) - XProfan X3
      AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 (onboard) / Windows 10(64) - XProfan X3


      http://www.xprofan.de
    • Neu

      Ähnliches Problem hier, angeblich existiert in C# eine Lösung. Sonst hilft nur mit DSR, DTR-Handshake ON und/oder CTS/RTS zu testen ob sich nicht doch was ändert... War ja vor der plug&pray-Zeit :-(
      Manchmal reagieren Geräte auf ein CR/LF. Vielleicht weiss ja der Hersteller eine Lösung?

      Von MSDN gibts ein Tool, das COM-Ports schalten und auflisten kann. Ob es Aktivität am Port meldet, konnte ich nicht prüfen.
      Gruss

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von p. specht ()