Homepage von Michael Pieper
BeOS Programme
PalmBeach
PSION Link Protokollbeschreibung

RFSV-Protokollbeschreibung


Allgemeine Beschreibung

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.


Starten des RFSV-Protokolls

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!

Senderichtung (Kommando) im Schnittstellenformat

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

Empfangsrichtung (Ergebnis) im Schnittstellenformat

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

Einbindung des RFSV in das PLP (PSION Link Protokoll)

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!


RFSV-Kommandos

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

Bekannte Einschränkungen

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


Letzte Änderung 03.10.1999 von Michael Pieper