SixML - Allgemeine Vorgaben

Jedes SCF-Gerät muss Nachrichten mit einer Gesamtgröße von 64 Bytes empfangen können.

Jeder SCF-Klient muss Nachrichten mit einer Gesamtgröße von 64 Bytes empfangen können.

SCF-Klienten, welche Dienstbeschreibungen abrufen, müssen Nachrichten mit einer Gesamtgröße von 448 Bytes empfangen können.

Die Gesamtgröße von SCF-Nachrichten ohne Gateway-Informationen (Access- bzw. Response-Entities) darf 1024 Bytes nicht überschreiten.

Die Gesamtgröße von SCF-Nachrichten inklusive Gateway-Informationen (Access- bzw. Response-Entities) darf 1408 Bytes nicht überschreiten.

Die Tupelreihenfolge muss für alle Nachrichtentypen der Reihenfolge in den entsprechenden Beschreibungen entsprechen.

Strings und URLs werden stets als UTF-8 kodiert, dies gilt auch für den Gerätenamen. Dienst- und Aktionsnamen dürfen nur Zeichen aus dem ASCII-7 Zeichenvorrat benutzen.

Discovery

Als Lebenszeit für ein Gerät ohne abgerufene Gerätebeschreibung werden 30 Minuten angenommen.

Geräte senden Announcement-Nachrichten regelmäßig und zusätzlich nach Änderungen, welche eine Änderung der Beschreibung nach sich ziehen, z.B. dem Setzen von DeviceName. Meldet sich ein Gerät nicht erneut während seiner angenommenen Lebenszeit, so muss es aus Klienten entfernt oder als offline markiert werden.

Das maximale Sendeintervall für Announcement-Nachrichten ist die halbe erwartete Lebenszeit, der minimale Abstand zwischen zwei Announcement-Nachrichten ist 60 Sekunden.

Das minimale Intervall für die automatisierte Suche nach Geräten (ohne Benutzerinteraktion) ist 30 Sekunden.

Das minimale Intervall für die manuelle Suche (mit Benutzerinteraktion) ist 3 Sekunden.

Geräte haben für die Beantwortung von Suchnachrichten bis zu 10 Sekunden Zeit, um Überlastungen im Netzwerk zu vermeiden. Bei geringer Last sollte die Antwort innerhalb einer Sekunde gesendet werden.

Description

Geräte können auf das Versenden von Dienstbeschreibungen für standardisierte Dienste verzichten, in diesem Fall liefert der Aufruf von GetServiceDescription den Fehler DeviceUnsupportedRequest zurück.

Control

Jede Aktion darf maximal 10 Ein- und/oder Ausgabeparameter enthalten.

Aktions- und Argumentnamen dürfen maximal 30 Bytes groß sein.

Für herstellerspezifische Aktionen dürfen nur IDs >= 64 verwendet werden.

Um Platz in den Dienstbeschreibungen zu sparen, werden für die Benennung von Aktionen Konventionen vereinbart. Setter beginnen mit dem Präfix S, Getter mit dem Präfix G.

Beispiel: SValue, GValue

Eventing

Die minimale Default-Zeit zwischen zwei Event-Nachrichten ist 5 Sekunden.

Die minimale manuell wählbare Zeit zwischen zwei Event-Nachrichten ist 0.1 Sekunden.

Dienste müssen so definiert werden, dass die Größe von Events 128 Bytes (ohne Routinginformationen) nicht übersteigt. Für standardisierte Dienste ist die Eventgröße auf 64 Bytes (ohne Routinginformationen) beschränkt.

Dienste

Herstellerspezifische Dienste

Es ist nicht gestattet, Dienste zu definieren, welche bereits existierende Funktionalität einfach anders realisiert. Dies verbietet zum Beispiel die Definition eines reinen Temperatur-Dienstes oder eines alternativen MediaControl-Dienstes.

Es ist nicht gestattet, Dienste zu definieren, welche den Zugriff auf ein Gerät künstlich beschränken oder auf ausgewählte Klienten limitieren.

Dienste dürfen keine Aktionen bereitstellen, welche durch mehrfachen Nachrichtenempfang zu Fehlverhalten führen. Damit sind z.B. Aktionen für das Toggeln eines Wertes nicht zulässig.