Homepage von Michael Pieper | |||||
BeOS Programme | |||||
PalmBeach | |||||
PSION Link Protokollbeschreibung | |||||
RFSV Protokollbeschreibung |
Das Kommando FWRITE wird verwendet um Daten in eine zuvor geöffnete Datei, zu schreiben. Es muß das gleiche Filehandle verwendet werden, wie beim Befehl FOPEN zurückgeliefert wurde.
Da bei FWRITE sehr große Datenmengen übertragen werden können, ist darauf zu achten, daß ein Kommando 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 FWRITE ist folgendermaßen in das PLP eingebaut:
Header | PLP | RFSV-FWRITE | Footer | CRC | |||
---|---|---|---|---|---|---|---|
16 10 02 | 32 03 02 01 | Kommando 0a 00 |
Größe 12 34 |
Filehandle 01 00 |
Daten 01 02 03 04 05 ... |
10 03 | 12 34 |
Ist der Befehl FWRITE auf mehrere Frames aufgeteilt, so wird das im Protokoll durch den Zähler markiert. Dieser befindet sich direkt vor dem RFSV-Protokoll und zählt abwärts. Folgendes Beispiel zeigt zwei Blöcke, die einen FWRITE-Befehl mit 512 Byte Daten zeigen. Der Zähler ist gelb markiert.
Header | PLP | Zähler | RFSV-FWRITE Teil 1 | Footer | CRC | |||
---|---|---|---|---|---|---|---|---|
16 10 02 | 32 03 02 | 02 | Kommando 0a 00 |
Größe 02 02 |
Filehandle 01 00 |
Daten 01 02 03 04 05 ... |
10 03 | 12 34 |
Header | PLP | Zähler | RFSV-FWRITE Teil 2 | Footer | CRC |
---|---|---|---|---|---|
16 10 02 | 33 03 02 | 01 | Daten 06 07 08 09 0a ... |
10 03 | 12 34 |
Bei der Realisierung fü das BeOS wird dieser Zähler allerdings bereits im Grundprogramm analysiert, sodaß die Blöcke immer zusammengefaßt and das add-on geliefert werden.
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 02 00 |
Ergebnis 00 00 |
10 03 | 12 34 |
Das Kommando FWRITE besteht aus 4 Informationseinheiten. Diese haben folgende Bedeutungen:
Länge in Byte | mögliche Werte | Bedeutung | |
---|---|---|---|
Kommando | 2 Byte | 00 0a (fest) | Die Kommandokennung hat immer den gleichen Wert! |
Größe | 2 Byte | variabel | Es wird die Länge des kompletten Befehles angegeben. Wird dieser auf zwei Frames aufgeteilt, dann entspricht die Angabe der Länge beider Frames. |
Filehandle | 2 Byte | variabel | Es ist der Filehandle zu übergeben, in dessen Datei geschrieben werden soll. |
Daten | variabel | variabel | Hier folgen die Daten, die geschrieben werden sollen. Die Anzahl ist im Feld Größe angegeben. |
Das Kommando FWRITE 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 | 00 02 (fest) | Es werden immer 2 zsuätzliche Byte geliefert! | |||
Ergebnis | 2 Byte | variabel | Das Ergebnis kann folgende Werte erhalten:
|
Homepage von Michael Pieper | |||||
BeOS Programme | |||||
PalmBeach | |||||
PSION Link Protokollbeschreibung | |||||
RFSV Protokollbeschreibung |