Digilnet MTDS Touchscreen SD-Karten Problem

Hallo zusammen,

ich habe mir oben aufgeführtes Display zugelegt. Das Display als solches funktioniert und auch das Laden von Grafiken läuft. Nun Versuche ich auf die Verzeichnisse der SD-Karte direkt zuzugreifen. Dafür bringt die Library des Herstellers Routinen mit, die ich aber nicht zum laufen bekomme:

Worum es mir geht, ist die MTFS::ReadDir(dir, pinf) Funktion. Diese soll mir, wenn ich es richtig verstehe Zeilenweise die Dateien eines Verzeichnisses auflisten können.

Initialisieren tue ich wie folgt:

#include <mtds.h>
#include <string.h>
#include <stdint.h>
#include <stdio.h>
HFIL       directory;
FINF       information;

void setuo() {
// Abwarten, bis das Display auch online ist

  bool fStat;
  while (true) {
    fStat = mtds.begin(pinMtdsSelStd, frqMtdsSpiDefault);
    if (fStat) {
      Serial.println("mtds.begin() succeeded");
      break;
    }
    else {
      Serial.println("mtds.begin() failed");
      delay(1000);
    }
  }

  // Das Display in der Vertikal Modus setzen
  mtds.SetDisplayOrientation(dsoLandscape);
  hdsDisp = mtds.GetDisplayDs();

  while (true) {
    if (mtfs.MountFs(true, true)) {
      Serial.println("mtds.MountFs() succeeded");
      break;
    }
    else {
      Serial.println("mtds.MountFs() failed");
      delay(1000);
    }
  }

Nun sollte es möglichen, wenn ich alles richtig verstehe das Verzeichnis zu öffnen und dann die Dateien zu lesen:

directory = mtfs.OpenDir("/");
mtfs.ReadDir(directory, information);
Serial.println(information.szName[]);
mtfs.CloseDir(directory);

Sobald ich aber kompiliere erhalte ich als Fehler:

no matching function for call to 'MTFS::ReadDir(HFIL&, FINF&)'

Was mache ich falsch? gibe ich für das Init

HFIL       information;

kompiliert er zwar, aber da das falsche Struct da ist kann ich die Infos nicht auslesen.

Denke ist mal wieder was blödes, was ich einfach stumpf übersehe. Leider habe ich bei Google keine Beispiele gefunden, sondern nur Verweise auf den Hersteller und den Demo-Code der aber das SD-FS nur rudimentär oder besser garnicht behandelt.

Danke schon mal

Steve

Referenz zu dem Display vom Hersteller

Du solltes mal eine Link zum Display, zur Dokumentation und zu Bibliothek uns geben.
Grüße Uwe

Hallo Uwe,

Das habe ich unter dem Link in dem ersten Beitrag „Referenz zu dem Display vom Hersteller“ ist oben rechts ein Download namens „Arduino IDE“

In dieser zip-Datei sind alle Beispiele, Lob, und Dokumentation enthalten.
Ist ein wenig irreführend beschriftet. Mehr gibt es zu dem Display leider nicht, oder ich habe nicht mehr gefunden.

Grüße

Steve

Du musst eine Variable vom Typ FINF (MtdsDefs.h) anlegen und einen Zeiger darauf an die Methode übergeben.

Gruß Tommy

Oh mann alles danke für den Tip. Läuft nun

FINF *infzeiger;
 infzeiger = &information;

directory = mtfs.OpenDir("/");
mtfs.ReadDir(directory, information);
Serial.println(information.szName[]);
mtfs.CloseDir(directory);

So funktioniert es wie es soll Danke

Steve

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.