AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Garmin Edge Navi nicht mehr als Laufwerk mit Buchstabe
Thema durchsuchen
Ansicht
Themen-Optionen

Garmin Edge Navi nicht mehr als Laufwerk mit Buchstabe

Ein Thema von DelphiFan2008 · begonnen am 15. Dez 2024 · letzter Beitrag vom 15. Dez 2024
Antwort Antwort
DelphiFan2008

Registriert seit: 4. Dez 2008
84 Beiträge
 
Delphi XE2 Starter
 
#1

Garmin Edge Navi nicht mehr als Laufwerk mit Buchstabe

  Alt 15. Dez 2024, 12:17
Hallo,

ich habe ein Delphi Programm geschrieben, welches die aufgezeichneten Daten im *.FIT Format vom Navi auf den PC kopiert. Zugriff erfolgt über GetDriveType. Hier werden alle gelisten Laufwerksbuchstaben durchlaufen und bei Existenz auf GetVolumeInformation Device-Name "Garmin" gefiltert. Gibt es Laufwerksbuchstabe und Device-Name + Prüfung Quell-Verzeichnis, dann werden die Dateien vom Navi auf den PC kopiert. Lief viele Jahre ohne Probleme.

Nun gab es bei Garmin Edge ein Software-Update. Das Navi erscheint nicht mehr mit einem Buchstabe als Laufwerk, sondern unter "Dieser PC" als "Edge 840", vergleichbar z.B. "Apple iPhone"

Wie kann ich nun auf das Vorhandensein des Navi prüfen und auf die Verzeichnisstruktur zugreifen?

Danke und Gruß DelphiFan2008
Miniaturansicht angehängter Grafiken
edge-directory_01.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
755 Beiträge
 
#2

AW: Garmin Edge Navi nicht mehr als Laufwerk mit Buchstabe

  Alt 15. Dez 2024, 12:30
Es ist jetzt kein Laufwerk mehr sondern über das MTP Protokoll eingebunden. Du kannst darauf NICHT wie auf Dateien zugreifen. Am einfachsten wäre es mal zu schauen, ob das Gerät zurück auf "Laufwerk" stellen kannst.

Ansonsten: https://stackoverflow.com/questions/...nd-ptp-devices
  Mit Zitat antworten Zitat
DelphiFan2008

Registriert seit: 4. Dez 2008
84 Beiträge
 
Delphi XE2 Starter
 
#3

AW: Garmin Edge Navi nicht mehr als Laufwerk mit Buchstabe

  Alt 15. Dez 2024, 13:36
Hi Olli73,

danke für die schnelle Antwort. Habe keine Möglichkeit in den Einstllungen des Navi gefunden um per Laufwerk/Buchstabe darauf zuzugreifen. Kennt jemand eine einfache Möglichkeit um per MTP - Library, ein paar wenige Funktionen - darauf zuzugreifen.

Meine Anforderung:
- Device "Garmin Edge 840" verfügbar?
- Zugriff auf "\Edge 840\Internal Storage\Garmin\Activities\" einrichten, siehe Bild im Anhang
- Dateien aus dem Verzeichnis auf PC kopieren

eigentlich nicht viel...

Danke und Gruß DelphiFan2008
Miniaturansicht angehängter Grafiken
edge-directory_02.jpg  

Geändert von DelphiFan2008 (15. Dez 2024 um 16:43 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
755 Beiträge
 
#4

AW: Garmin Edge Navi nicht mehr als Laufwerk mit Buchstabe

  Alt 15. Dez 2024, 13:46
Schau Mal ob Copilot die Wahrheit sagt:

Zitat:
Kann man ein Garmin edge Navi von MTP auf Massenspeichermodus umstellen?
Ja, du kannst ein Garmin Edge Navi von MTP auf den Massenspeichermodus umstellen. Dies ist oft notwendig, wenn du Dateien direkt auf dem Gerät verwalten möchtest1. Hier sind die Schritte, um dies zu tun:

Garmin Express installieren: Wenn du es noch nicht hast, lade Garmin Express von der offiziellen Garmin-Website herunter und installiere es.

Garmin Edge an den Computer anschließen: Verwende ein USB-Kabel, um dein Garmin Edge Navi mit dem Computer zu verbinden.

Garmin Express öffnen: Starte Garmin Express und wähle dein Garmin Edge Navi aus der Liste der Geräte aus.

USB-Massenspeichermodus aktivieren: In Garmin Express gibt es eine Option, um den USB-Massenspeichermodus zu aktivieren. Diese Option findest du normalerweise unter den Einstellungen oder im Geräte-Menü1.

Bitte beachte, dass die genauen Schritte je nach Modell und Firmware-Version deines Garmin Edge Navis leicht variieren können. Es ist immer eine gute Idee, die Bedienungsanleitung deines Geräts zu konsultieren oder die Garmin Support-Seite zu besuchen, wenn du weitere Hilfe benötigst.

Hast du schon einmal den Massenspeichermodus verwendet, oder ist das das erste Mal, dass du dies versuchst?
  Mit Zitat antworten Zitat
DelphiFan2008

Registriert seit: 4. Dez 2008
84 Beiträge
 
Delphi XE2 Starter
 
#5

AW: Garmin Edge Navi nicht mehr als Laufwerk mit Buchstabe

  Alt 15. Dez 2024, 14:11
Hallo,

anscheinend geht die Umstellung bei vielen Garmin Navis - jedoch beim Edge nicht

Danke und Gruß DelphiFan2008
  Mit Zitat antworten Zitat
shebang

Registriert seit: 7. Feb 2020
131 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Garmin Edge Navi nicht mehr als Laufwerk mit Buchstabe

  Alt 15. Dez 2024, 15:06
Schau Mal ob GPT die Wahrheit sagt:
Zitat von GPT-4o mini:
Um eine Datei von einem bestimmten Pfad über die Windows Portable Devices (WPD) API in Delphi zu laden, müssen Sie die WPD-API verwenden, um mit dem MTP-Gerät zu kommunizieren. Hier ist ein einfaches Beispiel, das zeigt, wie Sie eine Datei von einem MTP-Gerät abrufen können.

### Voraussetzungen
Stellen Sie sicher, dass Sie die WPD-API in Ihrem Delphi-Projekt verwenden können. Möglicherweise müssen Sie die entsprechenden COM- und WPD-Header-Dateien einbinden.

### Beispielcode
Hier ist ein einfaches Beispiel, das zeigt, wie Sie eine Datei von einem MTP-Gerät abrufen können:

Delphi-Quellcode:
uses
  Windows, ActiveX, ComObj, WPD;

procedure DownloadFileFromMTP(const DeviceId: string; const FilePath: string);
var
  DeviceManager: IWpdDeviceManager;
  Device: IWpdDevice;
  ObjectId: string;
  FileStream: TFileStream;
  hr: HRESULT;
begin
  CoInitialize(nil);
  try
    // Erstellen Sie eine Instanz des WpdDeviceManager
    hr := CoCreateInstance(CLSID_WpdDeviceManager, nil, CLSCTX_INPROC_SERVER, IWpdDeviceManager, DeviceManager);
    if Succeeded(hr) then
    begin
      // Holen Sie sich das Gerät
      hr := DeviceManager.GetDevice(PWideChar(DeviceId), Device);
      if Succeeded(hr) then
      begin
        // Hier können Sie die Datei vom Gerät abrufen
        // Beispiel: Angenommen, Sie haben die ObjectId der Datei, die Sie herunterladen möchten
        ObjectId := 'Ihre_ObjectId'; // Setzen Sie hier die ObjectId der Datei ein

        // Erstellen Sie einen Stream, um die Datei zu speichern
        FileStream := TFileStream.Create(FilePath, fmCreate);
        try
          // Verwenden Sie die Methode, um die Datei herunterzuladen
          hr := Device.Transfer(ObjectId, FileStream);
          if Succeeded(hr) then
            ShowMessage('Datei erfolgreich heruntergeladen!')
          else
            ShowMessage('Fehler beim Herunterladen der Datei.');
        finally
          FileStream.Free;
        end;
      end
      else
        ShowMessage('Fehler beim Abrufen des Geräts.');
    end
    else
      ShowMessage('Fehler beim Erstellen des Device Managers.');
  finally
    CoUninitialize();
  end;
end;
### Hinweise
1. **DeviceId**: Sie müssen die `DeviceId` des MTP-Geräts angeben, mit dem Sie kommunizieren möchten. Diese ID können Sie durch Abfragen der angeschlossenen Geräte erhalten.
2. **ObjectId**: Sie müssen die `ObjectId` der Datei angeben, die Sie herunterladen möchten. Diese ID können Sie ebenfalls durch Abfragen des Geräts erhalten.
3. **Fehlerbehandlung**: In einem echten Anwendungsfall sollten Sie eine umfassendere Fehlerbehandlung implementieren.
4. **WPD-Header**: Stellen Sie sicher, dass Sie die richtigen Header-Dateien für die WPD-API in Ihr Delphi-Projekt einfügen.

### Fazit
Dieses Beispiel zeigt die grundlegenden Schritte zum Herunterladen einer Datei von einem MTP-Gerät in Delphi. Je nach Ihren Anforderungen müssen Sie möglicherweise zusätzliche Funktionen implementieren, um die Liste der Geräte und Dateien abzurufen. Wenn Sie weitere Fragen haben oder spezifische Probleme auftreten, lassen Sie es mich wissen!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:38 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