-
Der
so genannte Home Audio Video Interoperability (HAVi)-Aufbau ist
ein Versuch, eine hohe so genannte Interkonnektivität (Möglichkeit
der Zusammenschaltung) über
einen IEEE 1394 Serienbusnetz mit hoher Geschwindigkeit für die Transaktion
von audio/visuellen Daten zu erreichen. Diese Initiative war insbesondere
beabsichtigt für
die Notwendigkeiten der elektronischen Consumer-Geräte, eine
Interaktivität
zu ermöglichen
(Beteiligung in einem Benutzergerät-Interaktions-Paradigma) und
Interoperabilität
(ohne Benutzerbeteilung) einer Gerät/Gerät-Interaktionsparadigma. Außerdem gibt
es in HAVi eine starke Bemühung
zur Ermöglichung
von strömenden
Anwendungen zusätzlich
zu den Steueranwendungen. Ein Beispiel einer Flussanwendung wäre eine
Anwendung zur Übertragung
eines Videostroms von einem Aufzeichnungsgerät zu einem Decoder oder Wiedergabegerät, während ein
Beispiel einer Steueranwendung eine Anwendung für die Programmierung des Verhaltens
der Geräte
wäre. Dieses
beinhaltet eine Unterstützung
für isochrone
und asynchrone Transaktionen.
-
Für Zwecke
der Verwaltung von isochronen Strömen benutzt HAVi einen Stromverwalter,
der es ermöglicht,
isochrone Verbindungen zwischen funktionalen Komponenten von einem
oder mehreren Geräten
zu bilden. Funktionale Komponenten können gesteuert werden durch
so genannte Functional Component Modules, die anwendungsprogrammierbare
Schnittstellen definieren. Ein derartiges Functional Component Modul ist
das "AVDisc"-Modul, das gewidmet
ist der Steuerung von isochronen Audio- und/oder Videoströmen auf einem Träger, wie
einer so genannten Compact Disk (CD).
-
Wegen
seiner Widmung zu isochronen Strömen
ist das AVDisc-Modul nicht angepasst an die Verwaltung von hybriden,
isochronen und asynchronen Daten oder nur asynchronen Daten. Eine
derartige Datenart kann z. B. anwesend sein auf einer Festplatte
(hard disk) oder einem anderen Typ eines wiederbespielbaren Mediums,
das sowohl zur Speicherung isochroner Ströme wie Video und asynchronen
Daten, wie in dem Fall einer Fernsehanwendung, Programmführerdaten.
In ihrer laufenden Version bezeichnet HAVi kein Functional Component
Modul für
eine solche Art einer funktionalen Komponente.
-
Außerdem ermöglicht HAVi
derzeit wenig Steuerung über
das Neustarten einer Dateiübertragung, wenn
diese einmal aus verschiedenen Gründen abgebrochen worden ist.
-
Das
Dokument
EP 0 969 628
A2 beschreibt ein hybrides IEEE 1394-Rundfunknetz, in dem isochrone Daten übertragen
werden können.
-
Gegenstand
der Erfindung ist ein Verfahren zur isochronen Dateiübertragung
in einem HAVi-Netz mit folgenden Schritten bei einer Clienten-Anwendung:
- – Anforderung
der Öffnung
einer Verbindung zwischen einem Clienten-Gerät und einem Quellengerät,
- – Spezifizierung
einer zu übertragenden
Datei in einer isochronen Weise über
die Verbindung,
gekennzeichnet durch folgende Schritte:
- – Bezeichnung
eines Startpunkts in der Datei und von dem die Übertragung stattfinden soll,
- – Anforderung
des Beginns der Dateiübertragung
von dem Startpunkt.
-
Die
Erfindung ermöglicht
den Neustart der Übertragung
einer isochronen Datei von einem anderen Punkt als dem Beginn der
Datei.
-
Ein
weiterer Gegenstand der Erfindung ist ein Gerät zum Anschluss an ein HAVi-Netz
mit:
- – einem
Aufzeichnungsmedium zur Speicherung von isochronen Dateien, einem
funktionellen Komponentenmodul zur Bildung einer anwendungsprogrammierbaren
Schnittstelle für
den Zugriff zu dem Aufzeichnungsmedium durch einen Clienten,
dadurch
gekennzeichnet, dass
- – die
anwendungsprogrammierbare Schnittstelle ein Verfahren enthält für die Übertragung
einer isochronen Datei über
eine isochrone Verbindung zu dem Clienten, startend von einem Startpunkt
in der Datei, der durch den Clienten bezeichnet ist.
-
Ein
dritter Gegenstand der Erfindung ist ein Verfahren für eine isochrone
Dateiübertragung
in einem HAVi-Netz bei einem Quellengerät mit einem Aufzeichnungsmedium
zur Speicherung von isochronen Dateien, gekennzeichnet durch folgende
Schritte:
- – Empfang
von einem Clienten eines Verfahrensaufrufs für die Übertragung einer isochronen
Datei über eine
isochrone Verbindung mit dem Clienten von einem in der Anforderung
bezeichneten Startpunkt,
- – Auslösung der
Dateiübertragung
von dem Startpunkt.
-
Das
Datei-Manager-funktionale Komponentenmodul ermöglicht die Verarbeitung von
die Dateisysteme benutzenden Datenspeichermedien.
-
Weitere
Merkmale und Vorteile der Erfindung ergeben sich aus der Beschreibung
einer nicht einschränkenden
Ausführungsform,
die mit Hilfe der beigefügten
Zeichnung erläutert
wird. In der Zeichnung:
-
1 ist
ein Diagramm der Softwarestruktur eines Geräts gemäß der vorliegenden Erfindung,
-
2 ist
ein Beispiel eines globalen Verzeichnisses, aufgebaut durch einen
Datei-Manager-funktionales Komponentenmodul gemäß einer anderen Ausführungsform,
-
3 ist
ein Flussdiagramm der Bildung eines globalen Verzeichnisses gemäß der anderen
Ausführungsform.
-
Um
Hintergrundinformationen für
den Leser zu bieten, enthält
die vorliegende Beschreibung die folgenden drei Zusätze:
- – Zusatz
1 ist eine Liste von Referenzdokumenten, an die der Leser sich für weitere
Informationen wenden kann,
- – Zusatz
2 ist eine in der vorliegenden Anmeldung benutzte Liste von Anwendungen,
- – Zusatz
3 ist eine Aufstellung von in der vorliegenden Anmeldung benutzten
Ausdrücken.
-
1 ist
ein Diagramm einer Softwarestruktur eines Typs von HAVi-verträglichen
Geräten
gemäß der vorliegenden
Ausführungsform.
Zusätzlich
zu bekannten Komponenten einer derartigen Struktur enthält das Gerät außerdem ein
so genanntes File Manager Functional Component Module, das ein Software-Element
ist, das eine anwendungsprogrammierbare Schnittstelle mit anderen
Objekten liefert (die lokal oder entfernt sein können), insbesondere für Anwendungen,
um isochrone und asynchrone Verbindungen und Dateien zu steuern,
sowie Verzeichnisse eines Aufzeichnungsmediums. Gemäß der vorliegenden
Ausführungsform
ist das Aufzeichnungsmedium des Geräts von 1 ein Festplattenlaufwerk.
-
Der
Datei-Manager FCM benutzt den Service des Stream-Managers, wenn
eine isochrone Verbindung hergestellt wird.
-
Die
Anordnung des Datei-Managers bei einem Modul für eine funktionale Komponente,
im Gegensatz zu einem Service, so wie der Stream-Manager, das Verzeichnis
und der Resourcen-Manager hat den Vorteil, dass sie eine bestimme
Rückwärtskompatibilität ermöglicht.
Wenn der Datei-Manager derselbe Typ wie der Stream-Manager wäre, wäre es notwendig,
jedes volle AV-Gerät in dem
Netz mit einem Datei-Manager zu versehen, da eine Anwendung, die
einen Service anfordert, ihre Anforderung zu einem lokalen Service
machen muss, was möglicherweise
die Anforderung an den identischen Service der Fernbedieneinheiten
liefert. Wie ein FCM kann der Datei-Manager durch jede Anwendung
kontaktiert werden, sei es lokale Anwendung oder eine von einem
Fernbediengerät.
FCMs in Fernbediengeräten
können
festgestellt werden durch Anwendung des lokalen Verzeichnisservice,
der Kenntnis hat von den lokalen Softwareelementen und der Kapazität, entfernte
Verzeichnisse anzufragen, um Informationen darüber zu erlangen, welche Softwareelemente
sie registriert haben.
-
Gemäß der vorliegenden
Ausführungsform
bildet das Datei-Manager-funktionale Komponentenmodul Zugriff zu
einem Aufzeichnungsmedium, das Teil desselben Gerätes wie
der Datei-Manager FCM selbst ist.
-
Gemäß einer
anderen Ausführungsform
bildet ein Datei-Manager Funktionalkomponent-Modul ein Bild aller
Datei-Manager-kompatiblen Geräte
auf dem Netz. Um dies zu erreichen, detektiert er andere Datei-Manager
FCMs, wie in Option, auch AVDisc FCMs in dem Netz über seine
lokale Registry, bildet ihren Identifiierer und fordert dann den
Verzeichnisbaum jedes der entsprechenden Geräte auf, ein globales Verzeichnis zu
bilden. Ein derartiges globales Verzeichnis für ein Netz ist in 2 dargestellt.
Dieser Weg des Vorgehens hat den Vorteil, dass vermieden wird, dass
jede Anwendung eines Geräts
ihr lokales Verzeichnis selbst anfordert. Eine Anwendung muss nur
Informationen mit einem Datei-Manager-FCM austauschen. Der Datei-Manager
hat so eine globale Netzfunktion, wie einen Service, so wie der
Stream-Manager haben würde,
jedoch ohne die oben genanten Nachteile.
-
Die
funktionale Komponentenmodul (FCM) anwendungsprogrammierbare Schnittstelle
(API) trägt
einen Satz von gemeinsamen Operationen für nicht AVDiscs, die ein Dateisystem
haben.
-
Der
Datei-Manager FCM ist bestimmt für
eine umfangreiche (isochrone) Übertragung
und asynchrone Stromübertragung.
-
Wie
durch 2 beschrieben, ist ein angeschlossener Client
in der Lage, über
alle Geräte
des Netzes (lokal und logisch und/oder physisch) für die Anlage
zu navigieren.
-
Tabelle
1: zeigt den durch den Dateimanager gebildeten Service.
Service | Comm
Type | Lokalität | Zugriff | Resv
Prot |
FileManager::IsoConnect | M | global | all | |
FileManager::AsyncConnec
t | M | global | all | |
FileManager::FileOpen | M | global | all | |
FileManager::FileClose | M | global | all | |
FileManager::Get | M | global | all | |
<Client>::Get (dieser Service
wird für
den Client zugänglich
gemacht) | MB | global | File
System (all) | |
FileManager::Put | M | global | all | |
FileManager::Abort | M | global | all | |
FileManager::Disconnect | M | global | all | |
FileManager::ChDir | M | global | all | |
FileManager::Rename | M | global | all | |
FileManager::Del | M | global | all | |
FileManager::RMDir | M | global | all | |
FileManager::MkDir | M | global | all | |
FileManager::Pwd | M | global | all | |
FileManager::Ls | M | global | all | |
Tabelle
1
- (1) Die Datenstrukturen des
Datei-Managers werden nunmehr im Detail beschreiben.
- (a) FileLoc
Prototype
enum FileLoc{START, MIDDLE,
END}
Beschreibung
zeigt an, ob die Nachricht von einem
Erzeuger zu einem Verbraucher die erste einer Übertragung (START) in der Mitte
einer Übertragung
(MIDDLE) oder die letzte einer Übertragung
(END) ist. END wird benutzt, wenn die Übertragung in einer einzigen
Nachricht erfolgt.
- (b) FileSystemTransactionMode
Prototype
enum FileSystemTransactionMode{NONE,
GET, PUT}
Beschreibung
zeigt die Transaktion an, die für die derzeit
offene Datei bearbeitet wird. Für
eine isochrone Verbindungsinitialisierung ist der Wert NONE nicht
verfügbar.
- (c) FileSystemOpenMOde
Prototype
enum FileSystemOpenMode{NORMAL,
APPEND, RESTART}
Beschreibung
definiert den Modus für die verbindung-offene-Operation
(Client → Server).
NORMAL: Übertragung
einer Kopie der Datei, spezifiziert in dem Pfadnamen. Der Status
und der Inhalt der Datei auf der Serverseite bleiben unbeeinflusst.
APPEND:
Wenn die in dem Pfadnamen spezifizierte Datei auf der Serverseite
existiert, dann werden die Daten an diese Datei angefügt. Anderenfalls
wird die in dem Pfadnamen spezifizierte Datei bei der Serverseite
gebildet.
RESTART: überspringt
den spezifizierten Datenpunkt innerhalb der Datei. Im Falle einer
asynchronen Verbindung folgt auf den offenen Befehl (FileManager::FileOpen
servicecall) unverzüglich
der richtige Servicebefehl, der bewirken soll, dass die Übertragung
wieder aufgenommen wird. Im Falle einer isochronen Verbindung ist
dies nicht erforderlich, da die Öffnung
der isochronen Verbindung implizit den richtigen Servicebefehl enthält.
- (2) die Datei-Manager-Methoden werden nunmehr im Detail beschrieben.
- (a) FileManager::IsoConnect
Prototype
Status FileMager::IsoConnect(
in
FileSystemTransactionMode transMode
in wstring fileName,
in
FileSystemOpenMode openMode,
in long restartPoint,
in
short plugnum
out long cid)
Parameter
transMode – Definiert
den Transaktionsmodus (Client → Server).
Sollte nicht NONE sein.
fileName – Dateiname, der den vollständigen Weg
für die
zu übertragende
Datei spezifiziert, wenn einer vorhanden ist.
openMode – Definiert
die Methode für
den verbindungsoffenen Betrieb. RestartPoint – Offset (in Byte) von dem
Beginn der Datei, bei der die Übertragung
neu gestartet wird. Relevant nur für ein RESTART offenen-Modus
plugnum – Steckernummer,
wie durch den Stream-Manager gebildet.
cid – Identifizierer der Verbindung.
Er ermöglicht
den Start verschiedener Verbindungen von einer einzigen Software-Komponente
und ermöglicht
außerdem
die Anpassung einer Antwort an eine Anforderung.
Beschreibung
Dieser
Service erlaubt es einem Client-Software-Element, eine isochrone
Verbindung mit einem Dateimanager FCM zu öffnen, beruhend auf den Stream-Manager-Möglichkeiten.
Vor
dem Aufruf dieser FileManager::IsoConncet-Funktion, das Client-Software-Element sollte zunächst:
Benutzung
der Fcm::GetPlugCont- und Dcm::GetPlugStatus-Methoden, um zu ermitteln,
welcher Stecker des Datei-Managers benutzt werden sollte für die Verbindung
zwischen ihm selbst (Client) und dem Datei-Manager.
Benutzung
des StreamManager::FlowTo-Methode zur Bildung einer isochronen Stromverbindung
zwischen sich selbst (Client) und dem Dateimanager. Sobald die Stecker
mit dem Stream-Manager verbunden sind, kann der Client die FileManager::IsoConnect-Funktion
aufrufen, um einen Identifizierer für die Datei-Manager-Verbindung
zu verlangen. Das obige Stream-Set-up ist ähnlich zu dem in der HAVi beschriebenen
Spezifikation (siehe Anhang), und man kann sich für weitere
Details auf dieses Dokument beziehen.
Außerdem bezeichnet der restartPoint-Parameter
den Server-Marker, von dem aus die Übertragung neu gestartet werden
soll. Dieser Befehlt verursacht die Dateiübertragung von dem spezifizierten
Daten-Chekpoint, in dem Fall, wo er angezeigt wurde.
Bemerke,
dass die FileManager::FileOpen, FileManager::FileClose, FileManager::Get
und FileManager::Put-Aufrufe in dem isochronen Übertragungsmodus nicht benutzt
werden sollten.
Fehler-Code
EINVALID PARAMETER: Der fileName
existiert nicht und der transMode ist GET, der restartPoint existiert nicht
in de fileName, transMode ist NONE ERESOURCE_LIMIT: keine weiteren
cids verfügbar,
kein zusätzlicher
Thread kann gebildet werden.
- (b) FileManager::AsyncConnect
Prototype
Statur FileManager::AsyncConnect(
in
long clientMesageMaxSize,
out long serverMessageMaxSize,
out
long cid)
Parameter
clientMessageMaxSize – zeigt
die maximale Größe (in Byte)
einer durch das Client-Software-Element angenommenen Nachricht.
Der Dateimanager FCM berücksichtigt
diesen Parameter während
der Sendung zu dem Client-Software-Element
der ankommenden Übertragungen
(die Referenz ist dabei der Datei-Manager).
serverMessageMaxSize – zeigt
die Maximalgröße (in Byte)
einer Nachricht an, die durch den Knoten angenommen wurde, in dem
der Datei-Manager FCM ruht. Das Clienten-Sofaware-Element berücksichtigt
diesen Parameter während der
Sendung von abgehenden Übertragungen
(die Referenz ist dabei der Dateimanager).
cid – Identifizierer
der Verbindung. Er erlaubt den Start verschiedener Verbindungen
von einer einzigen Softwarekomponente und ermöglicht außerdem die Anpassung einer
Antwort an eine Frage.
Beschreibung
Dieser Befehl ermöglicht es
einem Software-Element, eine isochrone Verbindung zu öffnen. Jeder
FileManager::AsyncConnect ermöglicht
es dem Datei-Manager FCM, einen Kontext für jeden angeschlossenen Clienten
zu verwalten (Verbindungsidentifizierer und Funktion zum Aufruf,
um Daten zu seinen Clienten zu senden).
Fehler-Code
ERESOURCE_LIMIT:
keine cid mehr verfügbar,
ein neuer Thread kann nicht gebildet werden
(c) FileManager::FileOpen
Prototype
Status
FileManager::FileOpen(
in long cid,
in wstring fileName,
in
FileSystemOpenMode mode,
in long restartPoint)
Parameter
cid – Identifizierer
der Verbindung zwischen der Clienten-Anwendung und dem Dateimanager
FCM (geliefert durch eine Clienten-Anwendung, die sie von dem Dateimanager über einen
AsyncConnect-Aufruf empfangen hat).
fileName – Dateiname,
der den vollständigen
Weg für
die Datei zu der Übertragung
spezifiziert – wenn
einer vorhanden ist (benutzt nur im Kontext der FileManager::Get
und FileManager::Put APIs).
mode – Definiert den Modus für die Verbindung-Öffnen-Operation
(Client → Server)
restartPoint – Offset
(in Byte) von dem Beginn der Datei, von dem die Übertragung neu gestartet werden muss.
Er ist gleich "–1", wenn kein Neustart
benötigt
wird.
Beschreibung
Dieser Befehlt ermöglicht es einem Software-Element,
die Datei zu identifizieren, die übertragen werden soll. Ein
Client kann nicht mehrere Dateien gleichzeitig mit derselben Verbindung öffnen.
Der
restartPoint-Parameter bezeichnet den Server-Marker, bei dem die Übertragung
neu gestartet werden soll. Dieser Parameter hat keine Bedeutung,
wenn die Datei nicht im RESTART-Modus geöffnet ist.
Dieser Befehl
bewirkt nicht die Dateiübertragung,
sondern springt über
die Datei zu dem spezifizierten Daten-Checkpoint (wenn einer vorhanden).
In diesem Kontext verursacht der geeignete folgende Befehl (FileManager::Put,
FileManager::Get), dass die Dateiübertragung wieder aufgenommen
wird.
Fehler-Code
EINVALID_PARAMETER: der cid-Parameterwert
existiert nicht, die cid wurde für
eine isochrone Verbindung gebildet, oder der Neustart-Punkt existiert
nicht in dem Dateinamen, und der offene Modus ist RESTART
EACCESS_VIOLATION:
die cid entspricht einer Datei, die bereits offen ist, der Dateiname
kann weder geöffnet
noch gebildet werden, oder der Client kann keinen Zugriff zu dieser
Verbindung erlangen
(d) FileManager::FileClose
Prototype
Statur
FileManager::FileClose (in long cid)
Parameter
cid – siehe
oben (c)
Beschreibung
Dieser Befehl ermöglicht es
einem Software-Element, alle Vorgänge zu beenden, die vorher
auf einer bestimmten Datei erfolgten.
Fehler-Code
ECONNECTION:
der cid existiert nicht oder der cid wurde für eine isochrone Verbindung
gebildet
EACCESS_VIOLATION: keine geöffnete Datei für die cid-Verbindung,
oder der Client hat keinen Zugriff zu dieser Verbindung.
(e)
FileManager::Get
Prototype
Status FileManager::Get (in
long cid,
in OperationCode opCode)
Parameter
cid – siehe
oben (c) opCode – der
Betriebscode, geliefert durch den Clienten, den der Dateimanager
FCM zur Sendung einer angeforderten Datei benutzen wird. Die durch
diesen Betriebscode gesendete Clienten-Funktion muss entsprechend
der <Client>::Get API bezeichnet
werden.
Beschreibung
Dieser Befehl verursacht die Initialisierung
des Servers, um die Daten zu empfangen, die übertragen werden sollen (cf. <Client>::Get). Wenn SUCCESS
zurückgesendet
wurde, dann empfängt
der Client den Inhalt der offenen Datei.
Die durch den Datei-Manager
gesendeten Nachrichten zur Übertragung
von Daten zu dem Clienten haben den opCode-Betriebscode (identifiziert
den <Client>::Get-Service).
Wenn
die Datei für
die spezifizierte Verbindung in dem RESTART-Modus geöffnet ist,
dann sendet der File-Manager FCM Daten, die bei dem restartPoint
in der Datei starten. Anderenfalls wird der Dateiinhalt vollständig übertragen.
Fehler-Code
EINVALID_PARAMETER:
der cid existiert nicht, oder der cid wurde für eine isochrone Verbindung
gebildet.
EACCESS_VIOLATION: keine offene Datei existiert für diese
cid-Verbindung, die vorangehende Dateiübertragung ist für diese
Verbindung nicht vollständig,
oder der Client hat zu dieser Verbindung keinen Zugriff.
EFILE_LOCKED:
ein anderer Client schreibt Daten in dieselbe Datei über eine
andere Verbindung
- (f) <Client>::Get
Prototype
Status>Client>::Get (in long cid,
in
FileLoc where,
in sequence<octet> data)
Parameter
cid – -siehe
oben (c)
where – informiert
den Software-Element-Clienten, dass die Nachricht das erste, das
letzte oder das mittlere Segment der zu übertragenden Daten enthält.
data – enthält einen
Teil (eine Multi-Segment-Übertragung)
oder die gesamten Daten, die durch den cid-Parameter für die Verbindung
identifiziert wurden.
Beschreibung
Dieser Befehl wird
durch den Server (Datei-Manager FCM) dazu benutzt, eine Kopie der
Datei zu übertragen,
spezifiziert in dem Pfadnamen. Der Zustand und der Inhalt der Datei
auf der Server-Seite bleiben unbeeinträchtigt.
Fehler-Code
EINVALID_PARAMETER – cid ist
für den
Clienten unbekannt
- (g) FileManager::Put
Prototype
Status FileManager::Put
(in long cid,
in FileLoc where,
in sequence<octet> data)
Parameter
cid – -siehe
oben (c)
where – informiert
den Software-Element-Clienten, dass die Nachricht das erste, das
letzte oder das mittlere Segment der zu übertragenden Daten enthält.
data – enthält einen
Teil (in dem Fall einer Multi-Segment-Übertragung) oder die gesamten
Daten für
die durch den cid-Parameter identifizierte Verbindung.
Beschreibung
Dieser
Befehl bewirkt, dass der Server die über die Datenverbindung übertragenen
Daten akzeptiert und die Daten als eine Datei auf der Server-Seite
speichert. Wenn die in dem Pfadnamen spezifizierte Datei auf der
Server-Seite existiert, dann wird ihr Inhalt durch die übertragenen
Daten ersetzt. Eine neue Datei wird auf der Server-Seite gebildet,
wenn die in dem Pfadnamen spezifizierte Datei noch nicht existiert.
Wenn
die Datei für
die spezifizierte Verbindung im Modus NORMAL geöffnet wurde und wenn die Dateilage START
ist (oder END, wenn nur eine API benötigt wird), dann wird der vorhandene
Dateiinhalt unterdrückt oder
verworfen.
Wenn die Datei im Modus RESTART geöffnet wurde
und wenn die Dateilage START ist (oder END, wenn nur eine API benötigt wird),
dann startet die Übertragung
beim restartPoint. Jegliche vorher gespeicherten Daten werden verworfen,
beginnend von dem restartPoint.
Fehler-Code
EINVALID_PARAMETER:
die cid existiert nicht, oder die cid wurde für eine isochrone Verbindung
geschaffen,
EACCESS_VIOLATION: keine offene Datei für die cid-Verbindung,
der Client kann nicht in die Datei schreiben, die vorangehende Dateiübertragung
wird für
diese Verbindung nicht veivollständigt,
oder der Client hat keinen Zugriff zu dieser Verbindung,
EFILE_LOC:
Fehler für
Blocklage in der Datei,
EFILE_LOCKED: ein anderer Client liest
noch den Inhalt oder schreibt Daten in dieselbe Datei.
- (h) FileManager::Abort
Prototype
Status FileManager::Abort
(in long cid)
Parameter
cid – Identifizierer für die Verbindung
zwischen der Client-Anwendung und dem Datei-Manager FCM (gebildet
durch einen Client, der auf einen AsyncConnect oder IsoConnect-Aufruf
folgt).
Beschreibung
Dieser Befehl fordert den Server
(File Manager FCM) auf, die vorangehenden Dateiübertragung abzubrechen (FileManager::Put, <Client>::Get). Es ist nichts
zu tun, wenn die vorangehende Übertragung
abgeschlossen ist.
Fehler-Code
EINVALID_PARAMETER: cid
existiert nicht,
EACCESS_VIOLATION: der Client hat keinen Zugriff
zu dieser Verbindung
- (i) FileManager::Disconnect
Prototype
Status FileManager::Disconnect
(in long cid)
Parameter
cid – siehe oben (h)
Beschreibung
Diese
Funktion ermöglicht
es einem Software-Element, eine Datei-Manager-Verbindung zu schließen. Wenn eine isochrone Verbindung
offen ist, sollte die Client-Anwendung den isochronen Strom zwischen sich
selbst und dem Datei-Manager
FCM durch die richtige Strom-Manager-Methode fallenlassen.
FehlerCode
EINVALID_PARAMETER:
cid existiert nicht
EACCESS_VIOLATION: der Client hat keinen
Zugriff zu dieser Verbindung
Bemerkungen
Senden einer
FileManager::Disconnect-Nachricht, die jede andere Verbindung abbricht.
Sobald ein Client die FileManager::Disconnect aufruft, können die
cid der Verbindungen nicht mehr benutzt werden.
- (j) FileManager::ChDir
Prototype
Status FileManager::ChDir
(in long cid,
in wstring newPathName)
Parameter
cid – siehe
oben (h).
newPathName – Pfadname,
der ein Verzeichnis oder ein anderes von den
Dateigruppenbestimmer
abhängiges
System.
Beschreibung
Dieser Befehl ermöglicht dem Benutzer mit einem
unterschiedlichen Verzeichnis für
die Speicherung oder Rückgewinnung
zu arbeiten.
Fehler-Code
EINVALID_PARAMETER: der cid existiert
nicht, oder der Pfadname existiert nicht oder ist leer
EACCESS_VIOLATION:
der Client hat keinen Zugriff zu dem spezifizierten Verzeichnis,
oder der Client hat keinen Zugriff zu dieser Verbindung
- (k) FileManager::Rename
Prototype
Status FileManager::Rename
(in long cid,
in wstring oldFileName,
in wstring newFileName)
Parameter
cid – siehe
oben (h)
oldFileName – alter
Pfadname der Datei, der umzubenennen ist
newFileName – neuer
Pfadname der Datei
Beschreibung
Dieser Befehl bewirkt,
dass eine Datei neu benannt wird.
Fehler-Code
EINVALID_PARAMETER:
die cid existiert nicht, der alte Dateiname existiert nicht, oder
der neue Dateiname hat ein schlechtes Format,
EACCESS_VIOLATION:
der Client ist nicht befugt, den Namen der Datei zu ändern, der
Client ist nicht befugt für
einen Zugriff zu dieser Verbindung, oder die Datei ist offen.
- (l) FileManager::Del
Prototype
Status FileManager::Del
(in long cid,
in wstring fileName)
Parameter
fileName – Der Dateiname,
der den vollständigen
Weg der zu löschenden
Datei spezifiziert
cid – siehe
oben (h)
Beschreibung
Dieser Befehl bewirkt, dass die
in dem Pfadnamen angegebene Datei auf der Server-Seite gelöscht wird.
Fehler-Code
EINVALID_PARAMETER:
der cid existiert nicht, oder der Dateiname existiert nicht,
EACCESS_VIOLATION:
der Client ist nicht berechtigt, die Datei zu löschen, der Client ist nicht
berechtigt für
einen Zugriff zu dieser Verbindung, oder die Datei ist offen
- (m) FileManager::RmDir
Prototype
Status FileManager::RmDir
(in long cid,
in wstring pathName)
Parameter
pathName – der das
Verzeichnis spezifizierende, zu löschende Pfadname cid – siehe
oben (h)
Beschreibung
Dieser Befehl bewirkt, dass das
in dem Pfadnamen angegebene Verzeichnis als ein Verzeichnis entfernt wird
(wenn der Pfadname absolut ist) oder als ein Unterverzeichnis des
derzeit arbeitenden Verzeichnisses (wenn der Pfadname relativ ist).
Fehler-Code
EINVALID_PARAMETER:
der cid existiert nicht, oder der Pfadname existiert nicht
EACCESS_VIOLATION:
der Client ist nicht befugt, das Verzeichnis zu löschen, der
Client hat keinen Zugriff zu dieser Verbindung, das Verzeichnis
wird in einer Verbindung benutzt
- (n) FileManager::MkDir
Prototype
Status FileManager::MkDir
(in long cid,
in wstring pathName)
Parameter
pathName – der das
zu bildende Verzeichnis spezifizierende Pfadname cid – siehe
oben (h).
Beschreibung
Dieser Befehl bewirkt, dass das
in dem Pfadnamen spezifizierte Verzeichnis als ein Verzeichnis (wenn
der Pfadname absolut ist) oder als ein Unterverzeichnis des laufenden
Arbeitsverzeichnisses (wenn der Pfadname relativ ist) gebildet wird.
Fehler-Code
EINVALID_PARAMETER:
der cid existiert nicht, oder der Pfadname existiert bereits
EACCESS_VIOLATION:
der Client ist nicht befugt zur Bildung eines Verzeichnisses, der
Client hat keinen Zugriff zu dieser Verbindung
- (o) FileManager::Pwd
Prototype
Staus FileManager::Pwd
(in long cid,
out wstring pathName)
Parameter
pathName – Pfadname,
der das laufende Arbeitsverzeichnis angibt cid – siehe oben (h)
Beschreibung
Dieser
Befehl bewirkt, dass der Name des laufenden Arbeitsverzeichnisses
in die Antwort zurückgeführt wird.
Fehler-Code
EINVALID_PARAMETER:
der cid existiert nicht, oder der Client hat keinen Zugriff zu dieser
Verbindung
- (p) FileManager::Ls
Prototype
Status FileManager::Ls
(in long cid,
in wstring pattern,
out sequence <wstring> fileNameList)
Parameter
pattern – Pfadname,
der das aufzulistende Verzeichnis angibt oder einen Ausdruck für die Liste
von Dateien, deren Informationen zurückgeführt werden müssen. Das
Musterformat ist in dem Datenbeschreibungsabschnitt dieses Dokuments
beschrieben.
fileNameList – Liste
von Dateinamen in dem spezifizierten Verzeichnis. cid – siehe
oben (h).
Beschreibung
Dieser Befehl bewirkt, dass eine
Liste von dem Server (dem Datei-Manager FCM) zu dem passiven Client gesendet
wird. Wenn der Pfadname ein Verzeichnis oder eine andere Gruppe
von Dateien spezifiziert, sollte der Server eine Liste von Dateien
und/oder Verzeichnissen in dem spezifizierten Verzeichnis übertragen. Wenn
der Pfadname eine Datei angibt, dann sollte der Server auf der Datei
(Typ, Größe, Besitzer,
letztes Änderungdatum,
usw.) senden. Ein leeres Argument enthält das laufende Arbeitsverzeichnis
des Benutzers. Die Datenübertragung
erfolgt im ASCII-Typ.
Fehler-Code
EINVALID_PARAMETER:
cid existiert nicht, der Client hat keinen Zugriff zu dieser Verbindung,
oder der Pfad ist unbekannt
Bemerkungen
Wenn pathName
leer oder gleich "." ist, bezeichnet
er das laufende Verzeichnis. Wenn pathName ein regulärer Ausdruck
ist, bezeichnet er eine Liste von Dateien. In diesem Fall bezeichnet
jedes Element in fileNameList Informationen für eine Datei.
In anderen
Fallen bezeichnet pathName entweder eine Datei (mit einer Dateierweiterung)
oder ein Verzeichnis (ohne Dateierweiterung).
- (3) Die innere Datenstruktur des Datei-Managers wird jetzt beschrieben.
- (a) FileSystemConnectionType
Prototype
enum FileSystemConnectionType
{NONE, ISOCHRONOUS,
ASYNCHRONOUS}
Beschreibung
Bezeichnet
den Typ der zwischen dem Client und dem Dateimanager hergestellten
Verbindung. Wert NONE entspricht einer Verbindung, die unter Auflösung steht
und die von einem Client nicht benutzt werden kann.
- (b) FileSystemConnection Beschreibung
Clienten-Manager
und Verbindungs-Manager beziehen sich auf die anhand der Struktur
des FileSystemConnection beschriebenen Verbindungen.
cid-Feld
ist ein Verbindungsidentifizierer, der durch den Verbindungs-Manager
geliefert wird.
pid-Feld ist der Vorgangsidentifizierer des
Client-Manager-Thread, der Befehle für diese Verbindung bearbeitet.
clientGuid-Feld
bezeichnet das Gerät,
auf dem der Client, der diese Verbindung herstellt, liegt.
connectionSem-Feld
ist ein Semaphor, benutzt für
den Zugriff zu dem Verbindungstyp und laufenden Aktionsfeldern.
Dieses Semaphor ist notwendig, weil diese beiden Felder entweder
durch den ConnectionMgr- oder den ClientMgr-Thread modifiziert werden
können.
connectionType-Feld
zeigt an, ob dieses eine isochrone oder eine asynchrone Verbindung
ist. Dieses Feld wird durch den Connection-Manager oder den Clienten-Manager
dazu benutzt, zu prüfen,
ob ein Befehl erfolgen kann. Der Wert NONE bedeutet, dass entweder
die Verbindung noch nicht ausgelöst
ist oder die Verbindung nicht noch einmal verfügbar ist (nach einem FileManager::Disconnect-Befehl).
Dieses Feld ermöglicht
dem FileManager::Disconnect-Befehl, eine hohe Priorität gegenüber anderen
Befehlen zu haben.
currentAction-Feld gibt den Befehl, der
gerade für
die aktuelle offene Datei verarbeitet wird. Ein Wert NONE (beeinflusst
durch den ConnectionMgr-Thread) bedeutet, dass die vorangegangene
Aktion abgebrochen werden muss.
pathName enthält den Namen
des laufenden Verzeichnisses für
diese Verbindung.
fileName enthält den Namen der aktuellen
offenen Datei für
diese Verbindung.
Ein leerer Wert bedeutet, dass keine Datei
offen ist.
restartPoint-Feld ist der Wert des restartPoint-Parameters,
gegeben durch den Client mit dem Befehl FileManager::FileOpen.
openMode-Feld
ist der Wert des openMode-Parameters, gegeben durch den Client mit
dem Befehl FileManager::FileOpen.
filePos-Feld enthält die laufende
Position in der offenen Datei.
- (4) Datenbeschreibung
Es ist klar, dass die unten angegebenen
spezifischen Werte für
den HAVi-Kontext
gültig
sind und in einem anderen Kontext anders sein können.
- (a) HAVi Software-Element-Type
Dieser Wert wird von dem
Dateimanager FCM benutzt bei der Registrierung in der Verzeichnis-Datenbank:
Datei-Manager
FCM 0×8000
0000
- (b) API Code
File Manager FCM 0×8000
- (c) HAVi Betriebscodes
Diese Codes sind in der Tabelle
2 angegeben
-
HAVi
Nachricht | API
Code | Operations-ID |
FileManager::IsoConnect | 0×8000 | 0×00 |
FileManager::AsyncConnect | 0×8000 | 0×01 |
FileManager::FileOpen | 0×8000 | 0×02 |
FileManager::FileClose | 0×8000 | 0×03 |
FileManager::Get | 0×8000 | 0×04 |
FileManager::Put | 0×8000 | 0×05 |
FileManager::Abort | 0×8000 | 0×06 |
FileManager::Disconnect | 0×8000 | 0×07 |
FileManager::ChDir | 0×8000 | 0×08 |
FileManager::Rename | 0×8000 | 0×09 |
FileManager::Del | 0×8000 | 0×0a |
FileManager::RMDir | 0×8000 | 0×0b |
FileManager::MkDir | 0×8000 | 0×0c |
FileManager::Pwd | 0×8000 | 0×0d |
FileManager::Ls | 0×8000 | 0×0e |
Tabelle
2
- (d) Fehler-Codes
Fehler-Codes
sind in der Tabelle 3 angegeben
-
HAVI-Fehler-Name | API-Code | Fehler-Code |
FileManager::EFILE_LOC | 0×8000 | 0×80 |
FileManager::EFILE_LOCKE
D | 0×8000 | 0×81 |
Tabelle
3
- (5) Beispiele der Einrichtung
der Dateiübertragung
Eine
asynchrone Verbindung wird dadurch hergestellt, dass zunächst die 'AsyncConnect'-Methode aufgerufen
wird. Die 'FileOpen'-Methode wird dann
benutzt zur Spezifizierung des Namens der zu übertragenden Datei. Eine 'Get' oder 'Put'-Methode wird dann
aufgerufen, um die Datei zurückzugewinnen
bzw. zu senden. Die 'Abort'-Methode kann von
der Client-Anwendung benutzt werden, um eine Übertragung zu unterbrechen.
Ein 'FileClose'-Methodenaufruf dient
zum Schließen
der Datei, während
ein 'Disconnect'-Methodenaufruf dann
dazu dient, die Verbindung zu beenden.
-
Während die
Verbindung offen ist, können
andere Methodenaufrufe erfolgen, wenn keine Datei offen ist, um
eine Änderung
des Verzeichnisses, Umbenennung einer Datei usw. auszulösen. Diese
Methoden benötigen
nicht unbedingt den Kontext einer offenen Datei.
-
Eine
isochrone Verbindung wird in einer etwas anderen Weise durchgeführt. Durch
Aufruf der 'IsoConnect'-Methode wird eine
Verbindung hergestellt, eine Datei wird identifiziert, und die Richtung
der Übertragung wird
definiert. Somit wird nur eine Methode benötigt, die Übertragung auszulösen. Das
ist möglich,
weil es in einem isochronen Modus nicht notwendig ist, die Eingangs-
oder Ausgangspuffergröße (d. h.
maximale Nachrichtenlänge)
auszutauschen, bevor die Übertragung
beginnt. Die Datei wird automatisch geschlossen, wenn die Übertragung
beendet ist. Ein 'disconnect' kann dazu benutzt
werden, die Verbindung zu beenden.
-
In
anderen Systemen ist keine Paketwiederholung für eine isochrone Datenübertragung
vorgesehen. Gemäß der vorliegenden
Ausführungsform
kann zusätzlich
zu einer freiwilligen Unterbrechung in der Übertragung einer isochronen
Datei die Client-Anwendung die Übertragung
von einem Datenpunkt neu starten, den er bestimmt. Die Unterbrechung
kann verschiedene Gründe
haben, entweder bei der Client-Anwendung oder dem Quellengerät, oder
kann einfach durch ein System verursacht werden, das aufgrund eines
Stromausfalls abschaltet. Der Checkpoint kann entsprechend dem letzten
Teil von richtig empfangenen Daten gewählt werden.
-
Der
Daten-Checkpoint, benutzt als ein Parameter ('restartPoint') in der 'IsoConnect'-Methode, ist in dem Fall der vorliegenden
Ausführungsform
ein Offset in Byte, verglichen mit dem Beginn der Datei. Der Daten-Checkpoint-Wert
wird durch den Datei-Manager FCM nur dann berücksichtigt, wenn der Modus,
in dem die isochrone Verbindung geöffnet werden soll, der 'RESTART'-Modus ist, wie definiert
in der Datenstruktur 'FileSystemOpenMode'.
-
Anfügung
1: Druckschriften
-
- [1] IEEE Standard for a High Performance Serial Bus IEEE
std 1394-1995/30. August 1996
- [2] File Transfer Protocol RFC 765/Oktober 1985
- [3] The HAVi (Home Audio/Video interoperability) Specification
Version 1.0/18. Januar 2000
-
Anfügung
2: Akronyme
Akronym | Beschreibung | Akronym | Beschreibung |
API | Application
Progam Interface | HAVi | Home
Autio/Video Interoperatility |
AV
date | Audio/Video
date | HMS | Home
Media Server |
BAT | Bouquet
Association Tale | DIE | Intelligent
Drive Electronics (or Integrated Drive Electronics |
CAT | Conditional
AccessTable | ITdata | Information
Technology date |
CMM | CommunicationMedia
Manager | NIT | Network
Infromation TAlbe |
CMP | Communication
Management Procedures | NTFS | NT
File System |
CSR | Command
and Status Regsiter | OS | Operating
System |
DCM | Device
Control Module | PAT | Program
Assiciation Table |
DVB | Digital
Video Broadcasting | PMT | Program
Map Table |
DMA | Digital
Memory Access | PCI | Peripheral
Component Interconnect |
EIT | Event
Information Table | PCR | Plug
Control Register |
FAT | File
Allocation Table | PMT | Program
Map Table |
FCM | Functional
Component Module | SBM | Serial
Bus Management |
FCP | Function
Control Protocol | SI | Service
Information |
FIFO | First
In First Out | TAM | Transport
Adaptation Module |
FPGA | Field-Programmable
Gate Array | TS | MPEG2
Transport Stream |
FS | File
System | UDF | Universal
Disk Format |
FM | File
Manager | USB | Universal
Serial Bus |
FTP | File
Transfer Protocol | | |
-
Anfügung
3:
-
- (a) Dateisystem-Terminologie
File Allocation
Table (FAT)
Das Dateisystem benutzt durch DOS und Fenster zur
Verwaltung der auf Festplatten, Floppy-Disks und anderen Plattenmedien
gespeicherte Daten.
File Manager (FM)
Satz von Werkzeugen
(APIs), die die Anwendung eines Speichermediums ohne jede Kenntnis über die physikalische
Datenorganisation ermöglichen.
File
System (FS)
Die Spezifikation der physikalischen Datenorganisation
auf dem Speichermedium (DVD, Festplattenlaufwerk, ...) wie eine
Organisation soll verschieden Anforderungen erfüllen (Sicherheit, mehrfacher
Zugriff, Echtzeitverarbeitung, usw.),
File Transfer Protocol
(FTP)
Benutzerorientiertes Protokoll für die Dateiübertragung zwischen den Hostrechnern.
- (b) IED 61883-Terminologie
Connection Management Procedure
(CMP)
Vorgänge,
die eine Anwendung benutzen sollen, um Verbindungen zwischen der
Eingangs- und der Ausgangsklemme von AV-Geräten durch Änderung der Anschluss-Steuerregister
(PCR) zu steuern.
Function Control Protocol (FCP)
Verschiedene
Befehlssätze
und verschiedene Steuertransaktionen zur Steuerung von Geräten, die über einen
IEEE 1394-Bus angeschlossen sind. Plug Control Register (PCR)
CSR-Register
für einen
speziellen Zweck, manipuliert durch die Verbindungs-Vewaltungsvorgänge (CMP) zur
Steuerung eines isochronen Datenflusses
- (c) HAVi-Terminologie
Communication Media Manager (CMM)
Eine
netzabhängige
Einheit in dem HAVi-Aufbau, die eine Schnittstelle bildet mit den
darunter liegenden Kommunikationsmedien zur Lieferung von Servicediensten
zu jeder anderen HAVi-Komponente oder Anwendungsprogramme in demselben
Gerät wie
es selbst.
Device Control Module (DCM)
Ein HAVi-Softwareelement,
das eine Schnittstelle zur Steuerung allgemeiner Funktionen eines
Gerätes
liefert.
Event Manager
Eine Software-Einheit in dem HAVi-Aufbau,
die einen Lieferservice für
Ereignisse bildet. Ein Ereignis ist eine Zustandsänderung
eines Softwareelements oder des Heimnetzwerks.
Functional Component
Module (FCM)
Ein HAVi-Software-Element, das eine Schnittstelle
für die
Steuerung einer speziellen funktionalen Komponente eines Geräts bildet.
Home
Audio/Video Interoperability (HAVi)
Der HAVi-Aufbau ist beabsichtigt
für die
Ausführung
auf elektronischen Consumer-Geräten
(CE) und Berechnungsgeräten
zur Lieferung eines Satzes von Serviceleistungen, die die Zusammenarbeit
oder Interoperabilität
und die Entwicklung von verteilten Anwendungen auf Heimnetzwerken
erleichtern.
Messaging System
Eine vom Netz und von den
Transportschichten unabhängige
Einheit in dem HAVi-Aufbau zur Bildung eines HAVi-Software-Elements
mit Kommunikationsmöglichkeiten.
Sie hat auch die Aufgabe der Zuordnung von Identifizierern (SEIDs)
für die
Softwareelemente dieses Geräts.
-
Registry
-
Ein
Systemservice, dessen Zweck es ist, ein Verzeichnis von Software-Elementen zu verwalten,
die in dem Heimnetzwerk verfügbar
sind. Es liefert eine API zur Registrierung und Suche für Software-Elemente.
-
Ressourcen-Manager
-
Eine
HAVi-Software-Einheit, die die Führung
der Software-Elemente für
den Satz von Ressourcen in dem Netzwerk übernimmt
-
Stream Manager
-
Eine
Software-Einheit in dem HAVi-Aufbau, die eine Erleichterung für die Benutzung
von API für
das Konfigurieren Ende-zu-Ende-isochronen ("streaming") Verbindungen bildet.
-
Transport Adaptation Module (TAM)
-
Ein
vom Medium abhängiger
Teil der Nachrichtensystem-Verwaltungsnachrichtenbildung und die Nachrichtenorderung
und ein Fehlerentdeckungsvorgang.