Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Laufwerk emulieren für ein USB-Gerät (https://www.delphipraxis.net/197317-laufwerk-emulieren-fuer-ein-usb-geraet.html)

tdeck 30. Jul 2018 11:02

Laufwerk emulieren für ein USB-Gerät
 
Hallo Leute,

es gibt doch im Windows-Dateimanager oft Laufwerke (z.B. Smartphone, Kamera usw.), die über das einstecken des
USB-Kabel im Dateiexplorer angezeigt werden. Aber eigentlich keine richtigen Laufwerke sind.

Ich gehe mal davon aus, das dies irgendwie über eine Emulation oder Treiber erstellt wird.
Ich möchte sowas mit einem ATMEL-XMEGA-Gerät machen, hat Jemand eine Idee wo ich Infos bekommen kann?

Im Moment weiss ich noch nicht mal nach welchen Begriffen ich hier suchen muß.

Thorsten

KodeZwerg 30. Jul 2018 11:15

AW: Laufwerk emulieren für ein USB-Gerät
 
Zeig mal einen Link von dem was Du hast.
Ich bekomme per Google gesagt das es sich um einen Microcontroller handelt und nicht wie Smartphone/Kamera etc um etwas mit Festspeicher.

generic 30. Jul 2018 11:20

AW: Laufwerk emulieren für ein USB-Gerät
 
Ein guter Kandidat ist das sicher das LUFA Framgework:
https://github.com/abcminiuser/lufa/...assStorageHost

Für "Geschwindkeit" sind die Atmel aber zu langsam.
Da würde sich ein Teensy empfehlen, der kann aber nur HID-Geräte - die aber ohne Firmware hacks.

Das LUFA/Hidunio hab ich selbst im Einsatz für diese Spielerei:
https://quantendrehung.de/cms/artikel/makey/

tdeck 30. Jul 2018 12:09

AW: Laufwerk emulieren für ein USB-Gerät
 
Zitat:

Zitat von KodeZwerg (Beitrag 1409074)
Zeig mal einen Link von dem was Du hast.
Ich bekomme per Google gesagt das es sich um einen Microcontroller handelt und nicht wie Smartphone/Kamera etc um etwas mit Festspeicher.

Ja, es ist ein Microcontroller. Ich würde ihn aber gerne als Wechsel-Speicher in das Windows einbinden. Der XMEGA funktioniert bereits als Gerät an meiner Windows-Software. Ich habe aber bis jetzt keine Idee, wie ich es als Wechselspeicher in dem Explorer reinbekomme. :-( Deswegen evtl. das Stichwort "Laufwerk emulieren"

Olli73 30. Jul 2018 12:17

AW: Laufwerk emulieren für ein USB-Gerät
 
Das Stichwort heißt MTP.
https://de.m.wikipedia.org/wiki/Media_Transfer_Protocol

tdeck 30. Jul 2018 12:18

AW: Laufwerk emulieren für ein USB-Gerät
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von generic (Beitrag 1409076)
Ein guter Kandidat ist das sicher das LUFA Framgework:
https://github.com/abcminiuser/lufa/...assStorageHost

Für "Geschwindkeit" sind die Atmel aber zu langsam.
Da würde sich ein Teensy empfehlen, der kann aber nur HID-Geräte - die aber ohne Firmware hacks.

Das LUFA/Hidunio hab ich selbst im Einsatz für diese Spielerei:
https://quantendrehung.de/cms/artikel/makey/

Danke schon mal für die Info.
OK, das lufa scheint einen USB-Stick zu simulieren.

Das Gerät läuft bereits inkl. der USB-Treiber.
Ich würde nur gerne mit einer Delphi-Lösung auf Windows eine Art Laufwerks-Emulation erstellen.
Wie bei einem Samsung-Handy (siehe Bild)

tdeck 30. Jul 2018 12:22

AW: Laufwerk emulieren für ein USB-Gerät
 
Zitat:

Zitat von Olli73 (Beitrag 1409087)

SUPER, Danke Olli73.
Genau das was ich suche. Dafür gibt es auch genug Infos. Dann werde ich mich mal reinlesen :-D

Rollo62 30. Jul 2018 12:26

AW: Laufwerk emulieren für ein USB-Gerät
 
Wie groß sind die die "Files" die du damit überträgst ?
Ich denke auch das der ATMega damit leicht überfordert ist.
Du könntest in deinem Design womöglich auch einen Zusatzchip einsetzen, hier FTDI, aber es gibt auch zig andere externe Lösungen.

Nur läuft das dann fast drauf hinaus, NICHT den AVR, und gleich einen schnelleren Controller zu nehmen.

Rollo

tdeck 30. Jul 2018 12:33

AW: Laufwerk emulieren für ein USB-Gerät
 
Zitat:

Zitat von Rollo62 (Beitrag 1409091)
Wie groß sind die die "Files" die du damit überträgst ?
Ich denke auch das der ATMega damit leicht überfordert ist.
Du könntest in deinem Design womöglich auch einen Zusatzchip einsetzen, hier FTDI, aber es gibt auch zig andere externe Lösungen.

Nur läuft das dann fast drauf hinaus, NICHT den AVR, und gleich einen schnelleren Controller zu nehmen.

Rollo

Es ist ein XMEGA mit 48MHz, der SD-Card Zugriff erfolgt im 4bit Mode. Ich denke der hat genug Dampf, es geht um Dateien bis ca. 400kb, Firmware,
Logbücher, Config-Files und Webseiten auf der angeschlossenen SD-Card. In meiner Software läuft es ja schon, aber ich würde dem Nutzer gerne die Möglichkeit bieten die Dateien per Windows-Datei-Explorer zu kopieren.

Designänderungen mache ich nicht mehr, das Gerät ist fertig, war schon im EMV-Labor und geht jetzt nur noch zum TÜV. Deswegen nur Software und es kann ruhig auch etwas langsamer sein, das ist dabei kein Problem.

freimatz 30. Jul 2018 13:02

AW: Laufwerk emulieren für ein USB-Gerät
 
ich weiß nich tob das eine Rolle spielt, aber: MTK simuliert kein USB-Laufwerk. Lediglich im Explorer sieht es so aus. Man hat z.B. keine Laufwerksbuchstaben. (Andererseits gibt es wieder Software die diesen Mangel ausgleichen.)

tdeck 30. Jul 2018 13:07

AW: Laufwerk emulieren für ein USB-Gerät
 
Zitat:

Zitat von freimatz (Beitrag 1409097)
ich weiß nich tob das eine Rolle spielt, aber: MTK simuliert kein USB-Laufwerk. Lediglich im Explorer sieht es so aus. Man hat z.B. keine Laufwerksbuchstaben. (Andererseits gibt es wieder Software die diesen Mangel ausgleichen.)

Hallo freimatz,

das ist schon OK, es soll nur eine zusätzliche Funktion sein. Zum kopieren von einigen Dateien reicht das völlig aus.
Ich wusste nur nicht wonach ich suchen muss. Unter MTP findet man ganz viel Info

himitsu 30. Jul 2018 13:54

AW: Laufwerk emulieren für ein USB-Gerät
 
Zitat:

Zitat von tdeck (Beitrag 1409092)
In meiner Software läuft es ja schon, aber ich würde dem Nutzer gerne die Möglichkeit bieten die Dateien per Windows-Datei-Explorer zu kopieren.

Du könntest das auch in deine Software einbauen, anstatt in die Hardware.

z.B. so wie es Windows bei ZIP-Dateien macht, wo programmseitig ein "virtuelles" Verzeichnis (was man auch als Laufwerk mounten kann) generiert und im Explorer eingebunden wird.
Oder du hast einen Fileserver (FTP, CIFS, SMS, MTP, ...) in deinem Programm, der als Netzlaufwerk nach localhost gemountet wird.

mensch72 30. Jul 2018 15:08

AW: Laufwerk emulieren für ein USB-Gerät
 
ihr denkt viel zu kompliziert!

=> das richtige Google Stichwort ist "USB MSD" (MassStorageDevice)

Es macht aber nicht viel Sinn, per USB Microcontroler nur die MSD Funktion zu realisieren.
Praktisch realisiert man stets ein DualDevice also MSD+HID oder meine bevorzugte Variante MSD+CDC, denn ein Laufwerk plus eine serielle Schnittstelle funktionieren da ganz ohne Treiber und spezial Software unter Win32/64, Linux, OSX und meist sogar OnToGo mit allen Android Geräten

himitsu 30. Jul 2018 15:16

AW: Laufwerk emulieren für ein USB-Gerät
 
Zu kompliziert?
TidFTPServer und 'ne einzeilige Weiterleitung zu der Funktion, welche er ja schon in seinem Programm hat. :stupid:


Aber jupp, das ist saupraktisch ... ich hab z.B. einen LabelPrinter, der simuliert ein CD-Laufwerk, auf welchem die Software liegt, die ohne Installation direkt gestartet werden kann.
(gut, ein Upgrade der "mitgelieferten" der Software ist so nicht direkt möglich, aber XP bis 10 hat auch direkt den COM-Port-Treiber via USB dabei und die Software läuft bisher überall)

tdeck 30. Jul 2018 15:41

AW: Laufwerk emulieren für ein USB-Gerät
 
Zitat:

Zitat von himitsu (Beitrag 1409107)
Zitat:

Zitat von tdeck (Beitrag 1409092)
In meiner Software läuft es ja schon, aber ich würde dem Nutzer gerne die Möglichkeit bieten die Dateien per Windows-Datei-Explorer zu kopieren.

Du könntest das auch in deine Software einbauen, anstatt in die Hardware.

z.B. so wie es Windows bei ZIP-Dateien macht, wo programmseitig ein "virtuelles" Verzeichnis (was man auch als Laufwerk mounten kann) generiert und im Explorer eingebunden wird.
Oder du hast einen Fileserver (FTP, CIFS, SMS, MTP, ...) in deinem Programm, der als Netzlaufwerk nach localhost gemountet wird.

Das mit dem "virtuelles" Laufwerk wäre noch eine Lösung, nur wie binde ich das in Windows ein? So was wurde früher mal mit einem "Container" in einer SIEMENS Software gemacht, dort konnte man dann auch auf die Dateien der Siemens S7-22x zugreifen. Aber mir fehlt da im Moment jede Idee, wie ich sowas in Windows einbide?

mensch72 30. Jul 2018 15:52

AW: Laufwerk emulieren für ein USB-Gerät
 
google: "ATMEL-XMEGA USB MSD"

damit hast du dein virtuelles Laufwerk, was sich automatisch in Windows einbindet, wenn du es USB seitig richtig konfigurierst... das kann dein kleiner Microcontroler!


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:22 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