Files auf der SD-Card #F

Befehlsgruppe um Dateizugriffe zu realisieren


Ordner

Ordner erstellen

(File Directory Create)

#FDC

<Pfad>

Ordner löschen

(File Directory Delete)

#FDD

<Pfad>, Löschen

Arbeitsverzeichnis setzen

(File Directory Set)

#FDS

<Pfad>

Arbeitsverzeichnis senden

(File Directory Get)

#FDG


Alle Ordner und Dateien des Verzeichnisses senden

(File Directory Read binary)

#FDR

<Pfad> (aktuelles Arbeitsverzeichnis)

Alle Ordner und Dateien des Verzeichnisses senden (ASCII)

(File Directory read Ascii)

#FDA

<Pfad> (aktuelles Arbeitsverzeichnis)

Alle Ordner des Verzeichnisses senden

(File Directory read dironly List)

#FDL

<Pfad> (aktuelles Arbeitsverzeichnis)

Dateien

Datei zum schreiben öffnen

(File Write Open)

#FWO

<Dateiname>, Position [32-Bit] (Ende), Truncate(1)

Datei schließen (Schreiboperation)

(File Write Close)

#FWC


Schreibposition von Datei setzen

(File Write Position)

#FWP

Position [32-Bit]

Daten in die Datei schreiben

(File Write Data binary)

#FWD

Anzahl [32-Bit], Binäre Daten

ASCII-String in die Datei schreiben

(File Write Ascii)

#FWA

"String"

Unicode-String in die Datei schreiben

(File Write Unicode)

#FWU

"String"

Registerwerte in die Datei schreiben

(File Write Register)

#FWR

Register-ID, ...

Stringregister in die Datei schreiben

(File Write Stringregister)

#FWS

String-ID, ...

Array in die Datei schreiben

(File Write Array)

#FWY

Array-ID, ...

Binärdaten aus Register in die Datei schreiben

(File Write Register binary)

#FWV

Typ, Register-ID, Register-ID+1, ...

Binärdaten aus numerischen Array in die Datei schreiben

(File Write numeric Array binary)

#FWX

Typ, Array-ID, Startindex(0), Anzahl(1), ...

Binärdaten aus Stringarray in die Datei schreiben

(File Write Stringarray binary)

#FWQ

Array-ID, Startindex(0), Anzahl(1), ...

Datei zum lesen öffnen

(File Read Open)

#FRO

<Dateiname>, Position [32-Bit] (Anfang)

Datei schließen (Leseoperation)

(File Read Close)

#FRC


Leseposition von Datei setzen

(File Read Position)

#FRP

Position [32-Bit]

Daten lesen und senden

(File Read Data binary)

#FRD

Anzahl [32-Bit] (ganze Datei)

ASCII-String lesen und in ein Stringregister schreiben

(File Read Ascii)

#FRA

String-ID, ...

Unicode-String lesen und in ein Stringregister schreiben

(File Read Unicode)

#FRU

String-ID, ...

Daten in ein Register laden

(File Read Register)

#FRR

Register-ID, ...

Daten in ein Stringregister laden

(File Read Stringregister)

#FRS

String-ID, ...

Daten lesen (8-Bit) und in ein Stringregister schreiben

(File Read Bytes to stringregister)

#FRB

String-ID, Anzahl, Anzahl [ID+1],...

Daten lesen (16-Bit) und in ein Stringregister schreiben

(File Read Words to stringregister)

#FRW

String-ID, Anzahl, Anzahl [ID+1],...

Daten in ein Array laden

(File Read Array)

#FRY

Array-ID, ...

Binäre Daten lesen und in ein Register schreiben

(File Read binary Data to register)

#FRV

Typ, Register-ID, Register-ID+1, ...

Binäre Daten lesen und in ein numerisches Array schreiben

(File Read binary Data to numeric array)

#FRX

Typ, Array-ID, Startindex(0), Anzahl(1), .

Binäre Daten lesen und in ein Stringarray schreiben

(File Read binary Data to string array)

#FRQ

Array-ID, Startindex(0), Anzahl(1), ...

Datei löschen

(File File Delete)

#FFD

<Dateiname>

Allgemeine Befehle

Datei/Ordner Information senden

(File File Info)

#FFI

<Pfad> (aktuelles Arbeitsverzeichnis)

Datei/Ordner umbenennen

(File File Rename)

#FFR

<Pfad>, <Neuer Dateiname>, Replace (0)

Datei/Ordner kopieren

(File File Copy)

#FFC

<Pfad>, <Neuer Pfad>, Replace (0)

Datei/Ordner verschieben

(File File Move)

#FFM

<Pfad>, <Neuer Pfad>, Replace (0)

Zeitstempel von Datei/Ordner ändern

(File change Timestamp)

#FFT

<Pfad>, Zeit, Datum

Attribute von Datei/Ordner ändern

(File change Attribut)

#FFA

<Pfad>, Attribut

Dateinamen in ein Stringregister laden

(File Names Files to stringregister)

#FNF

<Pfad> (aktuelles Arbeitsverzeichnis), ID (1)

Unterverzeichnisse in ein Stringregister laden

(File Names Directory to stringregister)

#FND

<Pfad> (aktuelles Arbeitsverzeichnis), ID (1)

Dateinamen in ein Stringarray laden

(File Names Files to stringarray)

#FNA

Array-ID, SchreibPointer(0), <Pfad>, Regex-ID

Unterverzeichnisse in ein Stringarray laden

(File Names Directory to stringarray)

#FNB

Array-ID, SchreibPointer(0), <Pfad>, Regex-ID

Verschlüsselung aufheben

(File Kryption Format)

#FKF

<Format.all>


Ordner

Ordner erstellen

#FDC

<Pfad>

Der Befehl legt einen neuen Ordner an. Der Parameter <Pfad> gibt den Namen und den Ort an.

...

#FDC <Project/NewPath>

...


Ordner löschen

#FDD

<Pfad>, Löschen

Der Befehl löscht einen Ordner. Der Parameter <Pfad> gibt den Namen und den Ort an.

Löschen

0

Ordner mit Inhalt wird gelöscht

1

Nur der Inhalt wird gelöscht

...

#FDD <Project/NewPath>,0

...


Arbeitsverzeichnis setzen

#FDS

<Pfad>

Der Befehl setzt das aktuelle Arbeitsverzeichnis. Mit dem Pfad </> erreicht man das Root-Verzeichnis.

...

#FDS <Project>

...


Arbeitsverzeichnis senden

#FDG

Der Befehl stellt das aktuelle Arbeitsverzeichnis in den Sendepuffer.  Die Rückmeldung ist folgendermaßen aufgebaut:

ESC

F

D

G

Pfad

...


$1B

$46

$44

$47

'String' mit $00

abgeschlossen


Alle Ordner und Dateien des Verzeichnisses senden

#FDR

<Pfad> (aktuelles Arbeitsverzeichnis)

Der Befehl stellt alle Ordner und Dateien des aktuellen Arbeitsverzeichnisses in den Sendepuffer. Die Rückmeldung ist folgendermaßen aufgebaut:

ESC

F

D

R

Verzeichnis-/

Dateiname

Größe

Attribut

Zeit

Datum

...

Abschluss

$1B

$46

$44

$52

'String' mit $00

abgeschlossen

32-Bit Wert

8-Bit Wert

16-Bit Wert

16-Bit Wert

$00


Attribut

$01

Schreibgeschützt

$02

Versteckt

$04

System

$20

Archiv


...

#FDR

...


Alle Ordner und Dateien des Verzeichnisses senden (ASCII)

#FDA

<Pfad> (aktuelles Arbeitsverzeichnis)

Der Befehl stellt alle Ordner und Dateien des aktuellen Arbeitsverzeichnisses als ASCII Strings in den Sendepuffer.

ESC

F

D

A

String

Abschluss

...

$1B

$46

$44

$41

Größe, Attribut, Zeit, Datum, Name

CRLF

...

#FDA

...


Alle Ordner des Verzeichnisses senden

#FDL

<Pfad> (aktuelles Arbeitsverzeichnis)

Der Befehl stellt alle Ordner des aktuellen Arbeitsverzeichnisses in den Sendepuffer. Die Rückmeldung ist folgendermaßen aufgebaut:

#

F

D

L

Verzeichnisname

...

Abschluss


$1B

$46

$44

$4C

'String' mit $00

abgeschlossen

$00

Dateien

Datei zum schreiben öffnen

#FWO

<Dateiname>, Position [32-Bit] (Ende), Truncate(1)

Der Befehl öffnet (nur schreiben) bzw. erstellt eine Datei. Der Parameter Position (32-Bit Wert) gibt die Stelle in der Datei an, an die geschrieben werden soll.


Truncate

0

Daten überschreiben

1

Daten werden gelöscht


Datei schließen (Schreiboperation)

#FWC

Der Befehl schließt eine geöffnete Datei (Schreiboperation). Der Schreibvorgang wird abgeschlossen und es wird sichergestellt, dass alle Daten geschrieben worden sind.


Schreibposition von Datei setzen

#FWP

Position [32-Bit]

Der Befehl setzt die Schreib-Position (32-Bit Wert) an die bestimmte Stelle in der Datei. Bei einem Wert <0 wird die Postion vom Dateiende aus berechnet


Siehe auch fposW()


Daten in die Datei schreiben

#FWD

Anzahl [32-Bit], Binäre Daten

Der Befehl schreibt eine Anzahl (32-Bit Wert) an Binären Daten in die geöffnete Datei. Für die Makroprogrammierung ist dieser Befehl ungeeignet. Er dient zur Übertagung von binären Daten über die Schnittstelle.


ASCII-String in die Datei schreiben

#FWA

"String"

Mit dem Befehl wird ein ASCII-String (8 Bit pro Zeichen) in die geöffnete Datei geschrieben.

...

#FWO <Project/File.txt>

#FWA "Hello World"

#FWC

...


Unicode-String in die Datei schreiben

#FWU

"String"

Mit dem Befehl wird ein Unicode-String (16 Bit pro Zeichen) in die geöffnete Datei geschrieben.

...

#FWO <Project/File.txt>

#FWU "Hello World"

#FWC

...


Registerwerte in die Datei schreiben

#FWR

Register-ID, ...

Mit dem Befehl wird der Registerwert (Register-ID) in die geöffnete Datei geschrieben. Ausgelesen werden kann der Wert mit dem Befehl #FRR. Für jedes Register werden 5 Bytes benötigt.


Stringregister in die Datei schreiben

#FWS

String-ID, ...

Mit dem Befehl wird der Inhalt des Stringregisters (String-ID) in die geöffnete Datei geschrieben. Ausgelesen werden kann der String mit dem Befehl #FRS. Für jedes Register werden 2·(n+1) Bytes (n=Anzahl der Buchstaben) benötigt.


Array in die Datei schreiben (ab V1.4)

#FWY

Array-ID, ...

Mit dem Befehl wird der Inhalt des Arrays (Array-ID) in die geöffnete Datei geschrieben. Ausgelesen werden kann der String mit dem Befehl #FRY. Für jedes Integer oder Float Array werden 6+4·n Bytes (n=Länge des Arrays) benötigt. Ein Unicode StringArray benötigt 11+ Maximale Entrysize * Länge des Arrays Bytes.


Binärdaten aus Register in die Datei schreiben (ab V1.7)

#FWV

Typ, Register-ID, Register-ID+1, ...

Mit dem Befehl wird der Inhalt des Registers (Register-ID) im Binärformat in die geöffnete Datei geschrieben. Ausgelesen werden kann das Register mit dem Befehl #FRV.

Typ

7

Signed Byte

1 Byte

little endian

8

Unsigned Byte

1 Byte

15

Signed Integer

2 Byte

16

Unsigned Integer

2 Byte

23

Signed Integer

3 Byte

24

Unsigned Integer

3 Byte

31

Signed Integer

4 Byte

32

Unsigned Integer

4 Byte

33

Float

4 Byte

115

Signed Integer

2 Byte

big endian

116

Unsigned Integer

2 Byte

123

Signed Integer

3 Byte

124

Unsigned Integer

3 Byte

131

Signed Integer

4 Byte

132

Unsigned Integer

4 Byte

133

Float

4 Byte


Binärdaten aus numerischen Array in die Datei schreiben (ab V1.7)

#FWX

Typ, Array-ID, Startindex(0), Anzahl(1), ...

Mit dem Befehl wird der Inhalt eines numerischen Arrays (Array-ID) im Binärformat in die geöffnete Datei geschrieben. Ausgelesen werden kann das numerische Array mit dem Befehl #FRX.

Typ

7

Signed Byte

1 Byte

little endian

8

Unsigned Byte

1 Byte

15

Signed Integer

2 Byte

16

Unsigned Integer

2 Byte

23

Signed Integer

3 Byte

24

Unsigned Integer

3 Byte

31

Signed Integer

4 Byte

32

Unsigned Integer

4 Byte

33

Float

4 Byte

115

Signed Integer

2 Byte

big endian

116

Unsigned Integer

2 Byte

123

Signed Integer

3 Byte

124

Unsigned Integer

3 Byte

131

Signed Integer

4 Byte

132

Unsigned Integer

4 Byte

133

Float

4 Byte


Binärdaten aus Stringarray in die Datei schreiben (ab V1.7)

#FWQ

Array-ID, Startindex(0), Anzahl(1), ..

Mit dem Befehl wird der Inhalt eines Stringarrays (Array-ID) im Binärformat in die geöffnete Datei geschrieben. Ausgelesen werden kann das Stringarray mit dem Befehl #FRQ.


Datei zum lesen öffnen

#FRO

<Dateiname>, Position [32-Bit] (Anfang)

Der Befehl öffnet (nur lesen)  eine Datei. Der Parameter Position (32-Bit Wert) gibt die Stelle in der Datei an, ab der gelesen werden soll.


Datei schließen (Leseoperation)

#FRC

Der Befehl schließt eine geöffnete Datei (Leseoperation).


Leseposition von Datei setzen

#FRP

Position [32-Bit]

Der Befehl setzt die Lese-Position (32-Bit Wert) an die bestimmte Stelle in der Datei. Bei einem Wert <0 wird die Postion vom Dateiende aus berechnet


Siehe auch fposR()


Daten lesen und senden

#FRD

Anzahl [32-Bit] (ganze Datei)

Der Befehl liest eine Anzahl (32-Bit Wert) an Bytes aus der geöffneten Datei aus und stellt die Daten in den Sendepuffer. Die Rückmeldung ist folgendermaßen aufgebaut:

ESC

F

R

D

Anzahl

Daten 1

Daten 2

...

Daten n

...


$1B

$46

$52

$44

32-Bit Wert

8-Bit Wert

8-Bit Wert

8-Bit Wert


ASCII-String lesen und in ein Stringregister schreiben

#FRA

String-ID, ...

Mit dem Befehl wird ein ASCII-String (8 Bit pro Zeichen) bis zum Zeichen "\n" gelesen und in ein Stringregister (String-ID) gespeichert.


Unicode-String lesen und  in ein Stringregister schreiben

#FRU

String-ID, ...

Mit dem Befehl wird ein Unicode-String (16 Bit pro Zeichen) bis zum Zeichen "\n" gelesen und in ein Stringregister (String-ID) gespeichert.


Daten in ein Register laden

#FRR

Register-ID, ...

Der Befehl liest ein mit #FRW geschriebenes Register zurück und speichert es in das Register (Register-ID).


Daten in ein Stringregister laden

#FRS

String-ID, ...

Der Befehl liest ein mit #FRS geschriebenes Stringregister zurück und speichert es in das Stringregister (String-ID).


Daten lesen (8-Bit) und in ein Stringregister schreiben

#FRB

String-ID, Anzahl, Anzahl [ID+1],...

Der Befehl liest eine beliebige Anzahl (1...250) an Bytes und speichert es in das Stringregister (String-ID).


Daten lesen (16-Bit) und in ein Stringregister schreiben

#FRW

String-ID, Anzahl, Anzahl [ID+1],...

Der Befehl liest eine beliebige Anzahl (1...250) an Words und speichert es in das Stringregister (String-ID).


Daten in ein Array laden (ab V1.4)

#FRY

Array-ID, ...

Der Befehl liest ein mit #FWY geschriebenes Array zurück und speichert es in das Array (Array-ID).


Binäre Daten lesen und in ein Register schreiben (ab V1.7)

#FRV

Typ, Register-ID, Register-ID+1, ...

Der Befehl liest ein mit #FWV binär geschriebenes Register zurück und speichert es in das Register (Register-ID).

Typ

7

Signed Byte

1 Byte

little endian

8

Unsigned Byte

1 Byte

15

Signed Integer

2 Byte

16

Unsigned Integer

2 Byte

23

Signed Integer

3 Byte

24

Unsigned Integer

3 Byte

31

Signed Integer

4 Byte

32

Unsigned Integer

4 Byte

33

Float

4 Byte

115

Signed Integer

2 Byte

big endian

116

Unsigned Integer

2 Byte

123

Signed Integer

3 Byte

124

Unsigned Integer

3 Byte

131

Signed Integer

4 Byte

132

Unsigned Integer

4 Byte

133

Float

4 Byte


Binäre Daten lesen und in ein numerisches Array schreiben (ab V1.7)

#FRX

Typ, Array-ID, Startindex(0), Anzahl(1), ...

Der Befehl liest ein mit #FWX binär geschriebenes numerisches Array zurück und speichert es in das Array (Array-ID).

Typ

7

Signed Byte

1 Byte

little endian

8

Unsigned Byte

1 Byte

15

Signed Integer

2 Byte

16

Unsigned Integer

2 Byte

23

Signed Integer

3 Byte

24

Unsigned Integer

3 Byte

31

Signed Integer

4 Byte

32

Unsigned Integer

4 Byte

33

Float

4 Byte

115

Signed Integer

2 Byte

big endian

116

Unsigned Integer

2 Byte

123

Signed Integer

3 Byte

124

Unsigned Integer

3 Byte

131

Signed Integer

4 Byte

132

Unsigned Integer

4 Byte

133

Float

4 Byte


Binäre Daten lesen und in ein Stringarray schreiben (ab V1.7)

#FRQ

Array-ID, Startindex(0), Anzahl(1), ..

Der Befehl liest ein mit #FWQ binär geschriebenes Stringarray zurück und speichert es in das Array (Array-ID).


Datei löschen

#FFD

<Dateiname>

Der Befehl löscht die Datei (<Dateiname>)

Allgemeine Befehle

Datei/Ordner Information senden

#FFI

<Pfad> (aktuelles Arbeitsverzeichnis)

Der Befehl stellt alle Informationen über den Ordner / die Datei (wie z.B. Zeitstempel, Größe) in den Sendepuffer. Sollte der Ordner / die Datei nicht vorhanden sein, wird ein  Leerstring zurückgegeben, die restlichen Parameter werden nicht mehr übertragen. Die Rückmeldung ist folgendermaßen aufgebaut:

ESC

F

F

I

Verzeichnis-/

Dateiname

Größe

Attribut

Zeit

Datum

...


$1B

$46

$46

$49

'String' mit $00

abgeschlossen

32-Bit Wert

8-Bit Wert

16-Bit Wert

16-Bit Wert


Siehe auch fileS(), fileA(), fileT()


Datei/Ordner umbenennen

#FFR

<Pfad>, <Neuer Dateiname>, Replace (0)

Der Befehl ändert den angegeben <Pfad> in ein neuen Namen (<Neuer Dateiname> ist nur der neue Name, ohne Pfad).

Replace

0

Nicht umbenennen wenn Ordner/Datei bereits vorhanden

1

Vorhandenen Ordner/Datei löschen und dann umbenennen


Datei/Ordner kopieren

#FFC

<Pfad>, <Neuer Pfad>, Replace (0)

Der Befehl kopiert den angegeben Ordner, die angegebene Datei (<Pfad>) an einen neuen Ort (<Neuer Pfad>).

Replace

0

Nicht umbenennen wenn Ordner/Datei bereits vorhanden

1

Vorhandenen Ordner/Datei löschen und dann umbenennen


Datei/Ordner verschieben

#FFM

<Pfad>, <Neuer Pfad>, Replace (0)

Der Befehl verschiebt den angegeben Ordner, die angegebene Datei (<Pfad>) an einen neuen Ort (<Neuer Pfad>).

Replace

0

Nicht umbenennen wenn Ordner/Datei bereits vorhanden

1

Vorhandenen Ordner/Datei löschen und dann umbenennen


Zeitstempel von Datei/Ordner ändern

#FFT

<Pfad>, Zeit, Datum

Der Befehl ändert den Zeitstempel des Ordners, bzw. der Datei (<Pfad>):


Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Zeit

Stunde [0...23]

Minute [0...59]

Sekunde/2 [0...29]

Datum

Jahr (ab 1.1.1980 0:0:0 Uhr) [0...127]

Monat [1...12]

Tag [1...31]


Umrechnungsbeispiel:

Zeit = (Stunde<<11) + (Minute<<5) + (Sekunde>>1);

Datum = ((Jahr-1980)<<9) + (Monat<<5) + Tag;


Siehe auch fatT(datetime), fatD(datetime), fattime(Fat-Time, Fat-Date)


Attribute von Datei/Ordner ändern

#FFA

<Pfad>, Attribut

Der Befehl setzt die Attribute des Ordners/ der Datei. Die Attribute können mit Bitveroderung gleichzeitig gesetzt werden.

Attribut

$01

Schreibgeschützt

$02

Versteckt

$04

System

$20

Archiv


Siehe auch fileA()


Dateinamen in ein Stringregister laden (ab V1.1)

#FNF

<Pfad> (aktuelles Arbeitsverzeichnis), ID (1)

Der Befehl speichert alle Dateinamen die im <Pfad> vorhanden sind in die Stringregister (String-ID = ID...IDn). Die Anzahl wird im Register (Register-ID = ID) abgelegt. (Es kann mit Widlcards ?/* gesucht werden z.B. *.txt legt alle Textdateien ab)


Unterverzeichnisse in ein Stringregister laden (ab V1.1)

#FND

<Pfad> (aktuelles Arbeitsverzeichnis), ID (1)

Der Befehl speichert alle Ordnernamen die im <Pfad> vorhanden sind in die Stringregister (String-ID = ID...IDn). Die Anzahl wird im Register (Register-ID = ID) abgelegt. (Es kann mit Widlcards ?/* gesucht werden  z.B. *Neu* legt alle Verzeichnisse ab in denen das Wort "Neu" vorkommt)


Dateinamen in ein Stringarray laden (ab V1.7)

#FNA

Array-ID, SchreibPointer(0), <Pfad>, Regex-ID

Der Befehl speichert alle Dateinamen die im <Pfad> vorhanden sind in das StringArray (Array-ID).


Unterverzeichnisse in ein Stringarray laden (ab V1.7)

#FNB

Array-ID, SchreibPointer(0), <Pfad>, Regex-ID

Der Befehl speichert alle Ordnernamen die im <Pfad> vorhanden sind in das StringArray (Array-ID).


Verschlüsselung aufheben (ab V1.6)

#FKF

<Format.all>

Die durch den uniTFTDesigner verschlüsselte SD-Karte wird formatiert (Achtung: alle Daten gehen verloren) und die Verschlüsselung entfernt. Der Parameter muss exakt identisch angegeben werden.