Files auf dem internen Speicher #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), size(4096)

Datei schließen (Schreiboperation)

(File Write Close)

#FWC

Zeit, Datum

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 Information senden

(File File Info)

#FFI

<Pfad> (aktuelles Arbeitsverzeichnis)

Datei umbenennen

(File File Rename)

#FFR

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

Datei kopieren

(File File Copy)

#FFC

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

Datei verschieben

(File File Move)

#FFM

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

Zeitstempel von Datei ändern

(File change Timestamp)

#FFT

<Pfad>, Zeit, Datum

Attribute von Datei ä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

Achtung:

Flash-Speicher haben Bauartbedingt begrenzte Lösch/Schreibzyklen. Das im uniTFTs eingesetzte Speichermodul kann typischerweise 100.000 Zyklen sicher ausführen. Um Daten zu schreiben kann es sein, dass ein Speicherblock gelöscht werden muss, typischerweise werden für das Löschen 30 ms benötigt, es können aber bis zu 400 ms werden. Das ist bei der Makroabfolge zu beachten, wenn Schreibbefehle ausgeführt werden.


Datei zum schreiben öffnen

#FWO

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

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. Die Dateigröße (size) muss angegeben werden. Ein vergrößern der Dateigröße im nach hinein ist möglich (ab V1.2).

Truncate

0

Daten überschreiben

1

Daten werden gelöscht


Datei schließen (Schreiboperation)

#FWC

Zeit, Datum

Der Befehl schließt eine geöffnete Datei (Schreiboperation). Der Schreibvorgang wird abgeschlossen und es wird sichergestellt, dass alle Daten geschrieben worden sind. Sind Zeit und Datum angegeben oder die Uhrzeit vorher gesetzt wird der Zeitstempel eingetragen, ansonsten bleibt 1.1.1980 und kann später eingetragen werden.


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.1)

#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.3)

#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.3)

#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.3)

#FQV

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

#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.3)

#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.3)

#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.3)

#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 Information senden

#FFI

<Pfad> (aktuelles Arbeitsverzeichnis)

Der Befehl stellt alle Informationen über die Datei (wie z.B. Zeitstempel, Größe) in den Sendepuffer. Sollte 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

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 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 kopieren

#FFC

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

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

Replace

0

Nicht umbenennen wenn Datei bereits vorhanden

1

Vorhandenen Datei löschen und dann umbenennen


Datei 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 ändern

#FFT

<Pfad>, Zeit, Datum

Der Befehl ändert den Zeitstempel 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 ändern

#FFA

<Pfad>, Attribut

Der Befehl setzt die Attribute 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

#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

#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.3)

#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.3)

#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.2)

#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.