Wie programmgesteuert trennen & amp; ein beliebiges USB-Gerät anschließen?
Ich bin versucht zu reparieren, eine nicht ansprechbare USB-Gerät, das sich als virtueller COM-port. Manuelle Umstecken funktioniert, aber es kann bis zu 12 dieser Einheiten. Gibt es einen API-Befehl, um die programmatische Entsprechung der unplug/replug-Zyklus?
Kommentar zu dem Problem
mögliche Duplikate von Sicheres entfernen von USB-Laufwerk mithilfe von Win32-API?
Software wie USB Sicher Entfernen in der Lage ist, zu stecken unplugged USB-Gerät durch einen Neustart ganzen USB-hub (inlucing andere angeschlossene Geräte).
InformationsquelleAutor der Frage | 2008-09-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was über die Verwendung von Devcon.exe zu "entfernen" und dann auf "rescan"?
DR
InformationsquelleAutor der Antwort
Leider gibt es nicht eine, die ich kenne. Physisch trennen Sie die USB-Verbindung nicht bestimmte elektronische Dinge mit pullup-widerstände, so dass das Gerät weiß, es ist unplugged. Ich habe Sie nicht gestoßen, und ein host, die versuche simulieren zu können, ist diese Bedingung ohne körperliche abziehen.
InformationsquelleAutor der Antwort Greg Hewgill
Können Sie die C# Hardware Helper Lib und fügen Sie den ResetDevice Funktion.
InformationsquelleAutor der Antwort shahar_m
Gedacht: unter Geräte-Manager, können Sie der rechten Maustaste auf Ihrem computer-Symbol (oben in der Geräte-Baum) und "scan for changes". Ich bin mir nicht 100% sicher, aber ich denke, wenn Sie "Auswerfen" USB-Gerät " (software "trennen" entspricht), dann Scan für Hardware Änderungen, es wird sich zeigen, zurück, auch wenn es eigentlich nie den Hafen verlassen.
Wenn ich mich Recht daran, Sie können möglicherweise verwenden Sie die Microsoft.Win32.Shell Klasse zu emulieren öffnen der Systemsteuerung --> Verwaltung --> Geräte-Manager und ausführen des Kontext-Menü-Punkt. Es ist einen Versuch Wert, sowieso.
InformationsquelleAutor der Antwort Coderer
Als Greg Hewgill gesagt, ich glaube nicht, dass es möglich ist.
Initiation der ganze usb-Autostart ausgelöst wird, durch die usb-slave (in Ihrem Fall Ihr Gerät). Usb-host (der pc) kann eine Nachricht senden, um das Gerät zu sagen, es herunterzufahren, aber sobald es fertig ist, dass es das Gerät zu starten wieder nach oben. Der host kann es nicht erzwingen.
Noch schlimmer zu machen werden Sie sehr wahrscheinlich feststellen, dass das usb-Gerät erkennt die Stecker eingefügt wird (durch die Erkennung der usb-Spannung auf den Stromleitungen) zu starten. Dies gilt insbesondere für bus-powered devices.
Es klingt wie es gibt Unterschiede zu Ihrer situation und den Fall, dass er versucht einen unmount/remount usb-Laufwerke. Wenn der usb-Stick wird ausgehängt, es gibt keinen Grund, so kann das nicht bleiben, aufgezählt auf den pc. Du bist nicht wirklich zurücksetzen der usb-Laufwerk, nur macht es das Dateisystem inaktiv ist.
InformationsquelleAutor der Antwort Andrew Edgecombe
Ist, habe ich mich an diese für automatisierte tests. Die beste Lösung, die wir uns ausgedacht, scheint die Fähigkeit zu sein, von USB-hubs zu trennen von Geräten, wenn Sie ziehen zu viel Strom. Von einem USB-pserspective, es erscheint der USB-host möglicherweise anweisen, einen hub zu tun. Mit 12 Geräten, Sie haben hubs, also ich würde vorschlagen, zu untersuchen, dass Pfad.
InformationsquelleAutor der Antwort MSalters
Ich hatte dies für meine Auto-computer-Projekt eine Weile zurück. Der touchscreen-Treiber nicht, wie das gehen in den Ruhezustand und benötigt werden umgebogen, wenn der computer wieder aus dem Ruhezustand. Die Art und Weise landete ich die Lösung war der Einsatz von Devcon.exe wie DigitalRacer vorgeschlagen. Der trick war allerdings, dass das entfernen/auf rescan der controller nicht funktioniert hat. Ich hatte zu tun, das entfernen/rescan auf einem HUB-stromaufwärts von der Vorrichtung (die später getrennt, alle angeschlossenen Geräte).
InformationsquelleAutor der Antwort Dolphin
Hier sind einige Hände auf Führung:
http://digital.ni.com/public.nsf/allkb/1D120A90884C25AF862573A700602459
Dies ist mehr hardcore:
http://support.microsoft.com/kb/311272
Ich würde sagen, dass die Verwendung devcon.exe vielleicht einige Probleme lösen, nicht mir, obwohl. Angenommen, Sie bauen eine box mit arrays von USB-ports, wo die Stromleitung ist unterbrochen mit FETs gesteuert, die von einer MCU. Die MCU sollte reden etwas basic und zuverlässig, wie RS-232. Es könnte ein arduino-board, das vereinfacht die beängstigend hardware arbeiten.
InformationsquelleAutor der Antwort NoJoshua
Wenn du mehr als eine dieser auf einem bestimmten host-Computer, können Sie einige Zeit/frustration, indem Sie diese in Ihre eigene dedizierte USB-hub-out von der Maschine - es ist immerhin nur ein Kabel-Stecker/Stecker neu starten, ein paar Geräte zu einem Zeitpunkt.
Wahrscheinlich haben Sie gedacht, natürlich. 🙂
InformationsquelleAutor der Antwort robsoft
Programmgesteuert trennen Sie ein USB-Laufwerk getan werden kann, aber ich weiß nicht, ob die Montage erfolgt über code.
InformationsquelleAutor der Antwort jop
Verwendeten wir diese zu programmierbaren trennen von usb-Geräten.
InformationsquelleAutor der Antwort Ilya
Dem Gerät selbst kann in der Lage sein, dies zu tun (dh, führen Sie einen USB-disconnect/reconnect-Sequenz).
Haben Sie kontaktiert den Hersteller des Geräts, oder wenn Sie sind ein Hersteller, der EE ist, dass es entworfen?
Ich hatte, dies zu tun, wenn ich einen USB-embedded-Gerät - Programmierung erreicht werden könnte, die über USB, aber das Gerät musste in der Lage sein zu trennen und erneut verbinden mehrere Punkte, um den Vorgang abzuschließen.
Darüber hinaus gibt es die brute-force-Methode zum deaktivieren der USB-host-Gerät im Geräte-manager (ich nehme an, dies getan werden kann, in software) und dann wieder aktivieren.
Wenn nichts anderes, Phidget USB gesteuerte relais-boards, die Sie verwenden können, um Strom anschließen oder die USB-Linien, die sich hubs oder einzelne Geräte.
-Adam
InformationsquelleAutor der Antwort Adam Davis
In Auswerfen von USB-Festplatten mit C# (Das Code-Projekt) Aussehen:
InformationsquelleAutor der Antwort Treb