Homepage von Michael Pieper | |||||
BeOS Programme | |||||
PalmBeach | |||||
PSION Link Protokollbeschreibung | |||||
RFSV Protokollbeschreibung |
Das Kommando FREAD wird verwendet um Daten aus einer zuvor geöffneten Datei, zu lesen. Es muß das gleiche Filehandle verwendet werden, wie beim Befehl FOPEN zurückgeliefert wurde.
Es wird maximal die Anzahl der angeforderten Bytes geliefert. Ist die Datei kleiner, als die Anzahl der angeforderten Daten, dann wird nur die Anzahl der noch vorhandenen Daten geliefert. Ist der Dateizeiger am Ende der Datei, so wird bei einem nächsten Leseversuch der Fehler ERR_FILE_EOF (-33) zurückgeliefert.
Das Protokoll im PSION 3c verträgt nur eine maximale Anforderung von 511 Byte! Mehr macht auch nicht viel Sinn, da sonst die Übertragungszeiten zu lang werden! Werden mehr Byte angefordert stürzt das Protokoll im PSION 3c ab!
Da bei FREAD sehr große Datenmengen übertragen werden können, ist darauf zu achten, daß eine Antwort aus mehreren Frames bestehen kann! Im PLP-Protokoll ist dafür der Zähler eingebaut, der absteigend die Anzahl der noch zu erwartenden Blöcke (inclusive des eigenen) angibt.
Es ist zu beachten, daß alle Werte, die größer sind als 8 Bit in umgekehrter Reihenfolge übertragen werden. Das LOW-Byte wird als erstes über die Leitung geschickt und erst dann folgt das HIGH-Byte!
Der Befehl FREAD ist folgendermaßen in das PLP eingebaut:
Header | PLP | RFSV-FREAD | Footer | CRC | |||
---|---|---|---|---|---|---|---|
16 10 02 | 32 03 02 01 | Kommando 04 00 |
Größe 04 00 |
Filehandle 01 00 |
Anzahl 01 02 |
10 03 | 12 34 |
Eine gültige Antwort erfolgt mit dem Kommando RESPONSE und liefert einen Fehlercode zurück.
Header | PLP | RFSV-RESPONSE | Footer | CRC | |||
---|---|---|---|---|---|---|---|
16 10 02 | 33 02 03 01 | Kommando 2a 00 |
Größe 0c 00 |
Ergebnis 00 00 |
Daten 01 02 03 04 05 ... |
10 03 | 12 34 |
Das Kommando FREAD besteht aus 3 Informationseinheiten. Diese haben folgende Bedeutungen:
Länge in Byte | mögliche Werte | Bedeutung | |
---|---|---|---|
Kommando | 2 Byte | 00 04 (fest) | Die Kommandokennung hat immer den gleichen Wert! |
Größe | 2 Byte | 00 04 (fest) | es werden immer 4 Byte im Kommando übermittelt. |
Filehandle | 2 Byte | variabel | Es ist der Filehandle zu übergeben, aus dessen Datei gelesen werden soll. |
Anzahl | 2 Byte | variabel | Anzahl der Bytes, die gelesen werden sollen. Können auch mehr sein, als tatsächlich vorhanden sind. Es werden dann lediglich die Bytes geliefert, die in der Datei enthalten sind. |
Das Kommando FREAD wird mit einem RESPONSE beantwortet. Dieser liefert als Ergebnis einen Fehlercode zurück. Wird 00 00 zurückgeliefert, dann ist kein Fehler aufgetreten.
Länge in Byte | mögliche Werte | Bedeutung | |||||||
---|---|---|---|---|---|---|---|---|---|
Kommando | 2 Byte | 00 2a (fest) | Die Kommandokennung hat immer den gleichen Wert! | ||||||
Größe | 2 Byte | variabel | Dieser Wert ist abhängig von der Größe der gelieferten Daten. | ||||||
Ergebnis | 2 Byte | variabel | Das Ergebnis kann folgende Werte erhalten:
|
||||||
Daten | variabel | variabel | Hier folgen die Daten, die geschrieben werden sollen. Die Anzahl kann aus dem Feld Größe ermittelt werden. |
Homepage von Michael Pieper | |||||
BeOS Programme | |||||
PalmBeach | |||||
PSION Link Protokollbeschreibung | |||||
RFSV Protokollbeschreibung |