Homepage von Michael Pieper | |||||
BeOS Programme | |||||
PalmBeach | |||||
PSION Link Protokollbeschreibung |
Auf dieser Seite wird das RemoteFileService-Protokoll des PSION beschrieben, das bereits in den Palmtop eingebaut ist. Dieses Protokoll dient dazu auf das Dateisystem des jeweils anderen Computers zugreifen zu können.
Auf einem PSION erscheinen alle Laufwerke des verbundenen Computer unter dem Devicenamen REM::. Leider unterstützt der PSION kein casesensitives Filesystem, sodaß ein kompletter Zugriff nicht immer gewährleistet ist.
Das RFSV-Protokoll kann bis zum PSION 3c sowohl als Serverprotokoll, als auch als Clientprotokoll betrieben werden. Der PSION 5 unterstützt das Protokoll nur als Server. Daher kann von einem PSION 5 nicht mehr auf einen PC zugegriffen werden.
Dieses Protokoll ist nirgends dokumentiert. Daher habe ich versucht die entsprechenden Kommandos auszutesten. Mir stand ein Sourcecode zur Verfügung aus dem man einiges herauslesen konnte. Daher kann ich keine Garantie für die Richtigkeit dieser Beschreibung übernehmen. Die Beschreibung entspricht der Realisierung in meinem Programm, das ein Interfaceprogramm darstellt um den PSION mit dem Betriebssystem BeOS zu verbinden.
Um das RFSV-Protokoll zu starten, muß das NCP (NetworkControllProtokoll) bereits gestartet sein. Der PSION 3c fordert dann von sich aus auf dem Kanal 3 den Prozess SYS$RFSV an.
Dazu wird das Kommando NCP-CONNECT-TO-SERVER verwendet. Der angeforderte Prozess muß als RFSV-Server dienen. Der PSION 5 hat dieses Protokoll leider nicht mehr eingebaut, sodaß vom PSION 5 kein Zugriff auf den PC erfolgen kann. Wurde der Prozess erfolgreich gestartet, so ist dies mit dem Kommando NCP-CONNECT-RESPONSE die Kanalnummer an den PSION zu liefern, unter welchem der RFSV-Server auf dem PC erreichbar ist.
Der PC kann ebenso selber den Server SYS$RFSV auf dem PSION starten, damit ein Zugriff vom PC auf den PSION möglich ist. Der Startbefehl vom PSION aus sieht entprechend aus und muß einen eigenen Kanal benutzen!
Das Kommando NCP-CONNECT-TO SERVER ist folgendermaßen in das PLP eingebaut:
Header | Sequenzid | NCP-Kanal | NCP-CONNECT-TO-SERVER | Footer | CRC | ||
---|---|---|---|---|---|---|---|
16 10 02 | 32 | 00 | Psion-Kanal 03 |
Kommando 03 |
Prozesskennung "SYS$RFSV.*" |
10 03 | 12 34 |
Die Antwort auf die Anforderung liefert den Kanal auf der PC-Seite und ein Ergebnisbyte:
Header | Sequenzid | NCP-Kanal | NCP-CONNECT-RESPONSE | Footer | CRC | |||
---|---|---|---|---|---|---|---|---|
16 10 02 | 33 | 00 | PC-Kanal 02 |
Kommando 04 |
Psion-Kanal 03 |
Ergebnis 00 |
10 03 | 12 34 |
Wurde der Start erfolgreich durchgeführt und bestätigt, dann kann über die reservierten Kanäle das RFSV-Protokoll bedient werden. Das Protokoll selber ist in das PLP eingebunden. Zur Identifizierung dienen die Kanalnummern. Der NCP muß damit dafür sorgen, daß die richtigen Protokolle auf die richtigen Kanäle gesendet werden.
Schematisch ist das RFSV-Protokoll folgendermaßen in das PLP eingebunden:
Header | Sequenzid | Kanalnummern | Zähler | RFSV-Protokoll | Footer | CRC-Summe | |||
---|---|---|---|---|---|---|---|---|---|
16 10 02 | 32 | Empfänger 03 |
Sender 02 |
01 | Kommando 2a 00 |
Größe 04 00 |
Daten 00 01 02 ... |
10 03 | 12 34 |
fette | Werte stellen feste Werte dar, die exakt so verwendet werden! |
kursive | Werte stellen Beispiele dar, die anhand des Befehls eine unterschiedliche Bedeutung haben. |
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!
Folgende Kommandos sind im RFSV-Protokoll der Version 2 definiert:
Die Darstellung erfolgt aus der Sicht des Programmierers und nicht aus Sicht der Schnittstelle. Dort wird das niederwertigste Byte zuerst übertragen!
Befehl | Name | Beschreibung |
---|---|---|
00 00 | FOPEN | Öffnet eine Datei, einen Ordner oder ein ganzes Device |
00 02 | FCLOSE | Schließt eine geöffnete Datei, Ordner oder Device |
00 04 | FREAD | Liest Daten aus einer vorher geöffneten Datei |
00 06 | FDIRREAD | Holt weitere Informationen zu einem Directoryeintrag |
00 08 | FDEVICEREAD | Holt Informationen zu allen vorhandenen Devices |
00 0a | FWRITE | Schreibt Daten in eine vorher geöffnete Datei |
00 0c | FSEEK | Positioniert den Filezeiger einer geöffneten Datei auf eine bestimmte Position |
00 0e | FFLUSH | Dient vermutlich dazu den Schreibbuffer auf dem Remotesystem zu leeren. |
00 10 | FSETEOF | Legt die Länge einer Date fest. Kürzt oder erweitert diese entsprechend. |
00 12 | FRENAME | Benennt Dateien oder Ordner um. Das geht auch Deviceübergreifend! |
00 14 | FDELETE | Löscht eine Datei oder einen Ordner |
00 16 | FINFO | Erfragt Informationen zu einer bestimmten Datei ohne sie zu öffnen |
00 18 | SFSTAT | Verändert diverse Statusinformationen einer Datei |
00 1a | PARSE | Überprüft den übergebenen Filenamen auf Gütigkeit und liefert einen korrekten absoluten Filenamen zurück |
00 1c | MKDIR | Erstellt einen Ordner |
00 1e | OPENUNIQUE | ?? |
00 20 | STATUSDEVICE | Holt Informationen zu einem bekannten Device |
00 22 | PATHTEST | Überprüft, ob der angegebene Pfadname korrekt ist oder nicht. |
00 24 | STATUSSYSTEM | Holt allgemeine Informationen zum Filesystem ein. |
00 26 | CHANGEDIR | Erfragt das Zielverzeichnis, eines "cd"-Befehls |
00 28 | SFDATE | Setzt das Erstellungsdatum einer Datei. |
00 2a | RESPONSE | Enthält die Antwort auf die entsprechenden Befehle |
Der im PSION 3c eingebauete RFSV-Client (für den Zugriff auf das PC-Filesystem) beherrscht zwar lange Dateinamen, hat aber mit einem casesensitiven Filesystem Probleme. Das Protokoll deckt die Möglichkeiten ab, aber die Implementation hat hier diverse Fehler.
Homepage von Michael Pieper | |||||
BeOS Programme | |||||
PalmBeach | |||||
PSION Link Protokollbeschreibung |