USB-Port ansprechen



  • Geht es dir darum, sowas selber zu schreiben, oder würdest du dich auch mit nem fertigen Programm zufrieden geben 🤡



  • Hallo!

    Konnte gestern leider nicht mehr antworten. Ich wollte es eigentlich selber schreiben (habe ich auch zum Teil schon), aber wenn Du ein Programm bereits hast, würde ich mich freuen 🙂 . Könnte daraus 'ne Menge lernen, vor allem was ich bisher falsch gemacht habe.



  • Hallo !
    Ich würde gerne auch so etwas machen. Ich gehe über eine TK-Anlage, die an den USB-Port angeschlossen wird, ins Internet. Und ich würde gerne einen PacketSniffer schreiben, für den USB-Port, so wie es schon Ethereal und andere für RJ45 gibt. Weis einer wie so etwas zu machen ist? Was benutze ich und wo finde ich Infos ?



  • Ist leider afaik kein Source-Code mit dabei: http://www.sysinternals.com/ntw2k/freeware/portmon.shtml



  • flenders schrieb:

    Ist leider afaik kein Source-Code mit dabei:

    Genau, der ist ohne Quellen. Und eignet sich auch nicht für USB, sondern nur für LPT und COM.

    proga schrieb:

    Was benutze ich und wo finde ich Infos?

    Im User-Mode ist da schon mal gar nichts zu machen, deswegen solltest Du Dich zunächst mit dem DDK und dessen Dokumentation auseinandersetzen.

    Wenn es aber dann doch etwas fertiges sein darf: http://www.hhdsoftware.com/ (Habe ich aber selber auch noch nicht benutzt, ich bin glücklich mit meinem in Hardware gegossenen Analyzer).



  • -King- schrieb:

    Und eignet sich auch nicht für USB, sondern nur für LPT und COM.

    Sorry, hatte mir das Programm nicht so genau angeschaut (nur mit dem COM-Port hatte ich es mal getestet) 🙄



  • Hallo Leute!
    Ich habe einfach mal hier weitergeschrieben.
    Mittlerweile bin ich in meinem Praktikum ein ganzes Stück weitergekommen, habe jetzt aber ein neues Problem:
    Letztendlich will ich mit einer SPS (speicherprogrammierbaren Steuerung) arbeiten und sie steuern, da das Programm der Herstellerfirma zu teuer ist.
    Zur Kommunikation mit dem PC dient ein USB/PPI-Adapterkabel(USB ähnliches Protokoll), was sich unter

    Eingabegeräte(HID)-->USB-HID(HID) im Gerätemanager anmeldet.
    So spreche ich es an:

    HANDLE hTreiber = INVALID_HANDLE VALUE;
    int main()
    {
        hTreiber = CreateFile("\\\\.\\USB#Vid_0909_&Pid_0200#5&dfa6a2&0&!#{a5dcbf10-6530--11d2-901f-00c04fb951ed}",
        GENERIC_READ | GENERIC_WRITE,
        0,
        NULL,
        OPEN_EXISTING,
        0,
        NULL)
    
        if (hTreiber == INVALID_HANDLE_VALUE)
        {
             printf("Verbindung zum USB-Port konnte nicht hergestellt werden!\nError:\n", GetLastError());
             CloseHandle(hTreiber);
             return 0;
        }
        else
        {
         .
         .
         .
        }
    }
    

    Mit dem Prog WinObj, hier aus dem Forum, habe ich den SymbolicLink herausbekommen, nicht wundern, ist das gleiche wie "\\\.\\LPT1" zum Beispiel.

    Mein Problem ist, ich kann so auf jedes andere Gerät draufzugreifen(z.B. mit meinem USB-Stick funkionierts).
    Bei GetLastError() bringt er mir: Error: 6.
    Meine Vermutung, es könnte vielleicht an der Baudrate
    (PPI 9,6;19,2;187,5 kBitps) liegen, oder dass sich der Adapter als HID anmeldet.
    Hat jemand 'ne Ahnung?



  • baschti schrieb:

    Meine Vermutung, es könnte vielleicht an der Baudrate
    (PPI 9,6;19,2;187,5 kBitps) liegen, oder dass sich der Adapter als HID anmeldet.

    Eher letzteres. Das ist doch aber überaus erfreulich. Was besseres als ein HID kann Dir doch gar nicht passieren. Du kannst die Namen einfachst Enumerieren, brauchst den Namen von WinObj nicht fest zu codieren (sicher, man kann auch die Ports selbst enumerieren, nur lange nicht so einfach). Die Daten werden weiterhin per ReadFile/ WriteFile übertagen. Das Format kannst Du durch einfaches Parsen der Reports herausbekommen.



  • Hallo King!
    Danke für Deine Antwort. Hört sich gut an, könntest mir trotzdem bitte 'n bissl Code posten bzw. sagen worauf ich achten muß und wo ich Hilfe finde? Bin noch immer kein Profi in der harwarenahe Programmierung. Bis jetzt habe ich aber ganz gut durchgesehen.
    Thx 🙂



  • Mir ist übrigens gerade aufgefallen, daß der Name nicht stimmen kan:

    6530--11d2
    

    Da ist ein '-' zuviel.

    Und Code? Hier findest Du jedenfalls schonmal was zum Thema Enumerieren:
    http://www.c-plusplus.net/forum/viewtopic.php?t=14977&

    In diesem Beispiel wird das SetupApi verwendet. Du mußt natürlich noch den GUID anpassen. Den HID-GUID bekommst Du von HidD_GetHidGuid.

    Zum Parsen der Report-Descriptoren stehen Dir dann einige andere Funktionen zur Verfügung.



  • Prima, danke. Werde mich gleichmal dahinter klemmen.
    Sorry war'n Schreibfehler von mir.

    6530--11d2
    

    sollte eigentlich

    6530-11d2
    

    heißen.



  • hiii

    wie schauts auf...hattest du schon erfolg das usb port anzusprechen???

    mfg surf.



  • Da geh ich mal von aus, daß er das hinbekommen hat. So schwierig ist es dann nun auch wieder nicht. Sag doch einfach, was Du wissen willst. Dann kan man gezielte Hinweise geben.



  • hi! ich wollte fragen ob du da ein tu über usb und ansteuerung mit winapi hast?
    ich will mich mal da in das thema einlesen.....will so eine camera über usb mit c++ also winapi ansteuern....

    mfg surf.



  • Nein, ich kenne kein tu. Aber was ist denn das für eine Kamera? Was kannst Du denn da alles Steuern? Und warum willst Du mit aller Gewalt direkt mit der Kamera sprechen?



  • hab so ein benzinauto (vielleicht hast du den film 2 fast 2 furious gesehen;-)
    ...ich hab folgende verbindungen:
    - Sender: über einen 433 mhz transceiver will ich das auto lenken können
    - Empfänger: über usb fahr ich zu einem video reseiver...der die bilder empfängt.....da usb schnell ist....will ich dann die bilder auf dem notebook visualisieren....

    dazu will ich mich da zuerst mal bissi mit usb und ansteuerung mit c++ auskennen....
    bin über jede hilfe dankbar...

    mfg surf.



  • http://www.bcb-box.de/fstart.htm

    hab da was gefunden;-)
    wie wäre es wenn jemand mal ein tu machen würde...? mir kommt e vor das das relativ oft gefragt wird...

    mfg surf.



  • Die einfachste Möglichkeit zum Darstellen von Bildern ist Video for Windows. Da zauberst Du Dir in 3 Zeilen Quell das Bild auf den Schirm. Wenn Du noch mehr Kontrolle benötigst, solltest Du Dir DirectShow ansehen. Bei beiden Möglicjkeiten mußt Du über USB nichts wissen.

    Mit den Informationen aus dem von Dir geposteten Link kannst Du in Deinem Fall gar nichts anfangen. Der Cypress-Controller ist ein LowSpeed Device, das ist für Video-Daten zu wenig.



  • hi aber möchte das gerne selber proggen die ansteuerung...damit ich mich dann auch gut mit usb auskenne.....
    hast du schon mal mit usb und c++ was gemacht?

    cu



  • surf. schrieb:

    hi aber möchte das gerne selber proggen die ansteuerung...damit ich mich dann auch gut mit usb auskenne.....

    Na klar. Das machst Du am Besten mit dem CY7C63001. Der digitalisiert das Video-Signal mal eben so 'on the fly'. Das Komprimieren macht er dann sowieso im Schlaf, schliesslich arbeitet er intern mit satten 12MHz. Das Video-RAM bekommst Du auch prima an die 20Pins angeschlossen. Über den sage und schreibe 8 Bytes umfassenden FIFO übertragen sich die Daten ruckzuck an den PC. 25 Bilder/ Sekunde sind keine Hexerei.

    So, und dann schreibst Du schnell noch den passenden Treiber und alles wird gut. Hallo?

    hast du schon mal mit usb und c++ was gemacht?

    Ja, habe ich. Für Video verwende ich aber handelsübliche Hardware und zum Zugriff darauf die üblichen Schnittstellen.

    Kauf Dir lieber ein ordentliches Buch!


Anmelden zum Antworten