Announcement

Collapse
No announcement yet.

Ist ein bestimmtes Gerät am USB-Port vorhanden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ist ein bestimmtes Gerät am USB-Port vorhanden

    Hallo,

    eine fremde Applikation stellt, angeschlossen über ein USB Port, eine XML Datei ab, die ich aufnehme und verarbeite.

    Laut Pflichtenheft soll eine Meldung erscheinen wenn das USB Kabel entfernt wurde. Wie aber bekomme ich mit, dass das Kabel entfernt wurde, oder aber nach einem Neustart nicht mehr verbunden ist?

    Heiko

  • #2
    Bitte nochmal richtig das Problem schildern.
    "eine fremde Applikation stellt, angeschlossen über ein USB Port" das ist Unsinn.
    Laeuft da eine Applikation auf dem Rechner und laeuft sie von einen USB Stick oder kommen die Daten von einem USB-Geraet

    Comment


    • #3
      Also, ein Gerät das zum Lesen von Fahrzeugschlüsseln dient wird an einen USB Anschluss gesteckt.

      Lokal läuft eine Software des Herstellers, diese bringt einen Treiber für den USB Port mit und kommuniziert mit dem Gerät über eben jenen USB-Port. Die Informationen aus dem Schlüssel werden dann von der Software in einem XML-File aufgezeichnet und in der Folge von unserer Applikation verarbeitet, oder von unserer Apllikation wird eine XML-Datei erstellt und eben von der Herstellersoftware auf den Schlüssel geschrieben.

      Ich muss nun sicherstellen, ggf. Anmeckern, wenn sich an den verfügbaren USB-Ports kein Kartenlesegerät befindet, bzw. keine Kommunikation hergestellt werden kann.

      Ich hoffe das kling nun etwas plausibler...

      Heik

      Comment


      • #4
        Es ist zwar genaugenommen immer noch Unsinn, aber jetzt verstehe ich worum es geht :-)
        Erst mal gibt es keinen USB-Port. Man kommuniziert mit Geraeten ueber einen Bus. Man muss also die vorhandenen Geraete enumerieren.

        Bevor wir da einsteigen will ich aber noch wissen ob es nicht einfach ein RS232 ueber USB Geraet ist.
        Bitte also nachpruefen ob im Geraetemanager ein COM Port erscheint wenn man das Geraet ansteckt oder ob es dort einen COM Port gibt, der eine Beschreibung mit Bezug zu diesem Geraet hat.
        Sollte das der Fall sein, so muessen die COM Ports enumeriert werden.

        Das Enumerieren ist aber prinzipiell fuer alle Geraete gleich. Es geht dann nur um unterschiedliche GUIDs.
        Holen Sie sich erst mal von http://jedi-apilib.sf.net die Module scapi und win32api.
        In scapi ist ein Beispiel zur Enumerierung aller COM Ports. Auf diesem Beispiel werden wir dann aufbauen

        Comment


        • #5
          [Admin: Mhhh... wo ist meine Antwortmail hin???] Also nochmal...

          @Robert: Vielleicht habe ich mich zu kompliziert ausgedrückt.
          Angeschlossen an den PC wird über USB Port ein Gerät zum auslesen von Fahzeugschlüsseln. Die lokal installierte Software des Gerätes stellt eine XML-Datei ab, die ich weiter verarbeite...

          Die fremde Software überwacht ein Verzeichnis, findet sie dort eine bestimmte leere Datei (die ich anlege) legt sie los, liest den Fahrzeug-Schlüssel aus und füllt mir meine leere Datei.

          Wenn aus meiner Applikation geschrieben oder gelesen werden soll, obwohl kein Lese-Gerät angeschlossen ist, soll eine Meldung erscheinen "kein Gerät verfügbar ..." ausgegeben werden. Ich muss also irgendwie feststellen können, ob dieses Gerät sich an irgendeinem der USB Ports befindet.

          Hoffentlich versteht man mich jetzt. Vielen Dank für die Mühe

          Heik

          Comment


          • #6
            Ich habe mir die Module heruntergeladen und unter Delphi 7 die entsprechenden Verzeichnisste in die Umgebungsoptionen eingetragen.

            Leider scheitert es bereits an der USB-View Demo, da er eine .dcu nicht finden kann (MODULLOADER). :-(

            Heik

            Comment


            • #7
              Dann braucht man noch die JVCL http://jvcl.sf.net
              Ist es nun ein COM Port oder nicht

              Comment


              • #8
                >Ist es nun ein COM Port oder nicht?

                ja es ist ein COM Port!

                Gruss
                Heik

                Comment


                • #9
                  Na dann muss man nur noch ueberpruefen ob sich das Geraet immer als der gleiche COM Port meldet egal ob man ihn an unterschiedliche USB Ports steckt (das haengt vom Treiber ab).
                  Ansonsten sollte das Beispiel jetzt alle Fragen loesen. Zur Not kann man auch einfach pruefen ob man den COM Port mit CreateFile aufbekommt oder nicht.
                  Das ist uebrigens aus Sicht aller Software ein gewoehnlicher COM Port und daher sollten Tools zum Belauschen der COM Ports funktionieren. Damit sollte sich das Protokoll leicht erschliessen und man kann dann das Hersteller-Programm aussen vor lassen und es selber machen

                  Comment


                  • #10
                    >Ansonsten sollte das Beispiel jetzt alle Fragen loesen

                    Wenn die JVCL installierbar wäre würde ich mir dieses Beispiel gerne ansehen. Leider ist es - wie bei so vielen Fremdkomponenten - nicht gelungen diese Sammlung zu installieren.

                    Von welchen Tools zum "belauschen" schreibst du?
                    Heik

                    Comment


                    • #11
                      Hi Heiko,
                      .
                      es ist eigentlich ganz einfach die Jedi-Komponenten zu installieren. Du musst nur darauf achten, dass Du während der Installation auch die JCL installierst. Das geht aus dem Installer nicht so ohne weiteres hervor.
                      .
                      Im JVCL-Verzeichnis gibt es eine "install.bat". Diese rufe aus nem CMD heraus auf. Der Rest ist eigentlich selbsterklärend.
                      .
                      Sonst beschreib mal Dein Problem beim Installieren und welche Version Du hast.
                      .
                      mfg
                      Michae

                      Comment


                      • #12
                        Hallo Michael,

                        ich habe die letzte verfügbare Version - also gerade erst herutergeladen! Klar, ich rufe INSTALL.BAT auf, diese kompiliert auch den INSTALL WIZARD. Wenn es aber zum Punkt 2 geht, kann ich die CheckBox für Delphi 7 nicht markieren, dementsprechend wird mir eine weiters navigieren verwehrt. Egal welches Verzeichnis ich im Suchbaum im unteren Bereich angebe er sagt mir immer "JCl197 not found"....

                        Sch.... Fremdkomponenten..

                        Heik

                        Comment


                        • #13
                          Als Tool zum belauschen kann ich Dir den Serial Monitor empfehlen. Du bekommst Ihn unter http://www.hhdsoftware.com/sermon.html

                          Comment


                          • #14
                            Erstens muss man die JVCL garnicht installieren. Es geht nur um das File ModuleLoader.pas das mit enthalten ist.
                            Zweitens sollte man erst die JCL installieren und dann die JVCL

                            Comment


                            • #15
                              Hallo Robert,

                              es ist egal, was ich installieren will! Die JCL bringt eben beim kompilieren den Fehler dass das File ModulLoader fehlt. Die JVCL .. wie oben beschrieben. Ich habe bereits versucht alles auf einem neu aufgesetztem Rechner, also nur Betriebssystem, und Delphi7 probiert, mit exakt dem selben Ergebnis

                              Comment

                              Working...
                              X