TELECOM BRETAGNE - F2B506 – 29/02/2012Description d’un dispositif UPnPLa description d’un dispositif UPnP se fait de façon...
<modelName>model name</modelName><!--Obligatoire; Nom du modèle : une string de moins de 32 caractères--><modelNumber>mode...
<!--Obligatoire; URI indiquant type de service UPnP ne devant pas contenir de ‘#’                                   Pour l...
Description d’un service d’un dispositif UPnPLa description d’un service d’un dispositif UPnP se fait également grâce à un...
<retval></retval>                                           <!-- Optionnelle; Valeur de retour. Identifie au moins un argu...
Prochain SlideShare
Chargement dans…5
×

Description d'un dispositif et d'un service UPnP

1 614 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 614
Sur SlideShare
0
Issues des intégrations
0
Intégrations
182
Actions
Partages
0
Téléchargements
6
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Description d'un dispositif et d'un service UPnP

  1. 1. TELECOM BRETAGNE - F2B506 – 29/02/2012Description d’un dispositif UPnPLa description d’un dispositif UPnP se fait de façon relativement simple grâce à un fichier description.xml. Celui-ci est de la forme :Source : http://upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.1.pdf<?xml version="1.0"?><root xmlns="urn:schemas-upnp-org:device-1-0" configId="configuration number"> <!--configId spécifie le numéro de la configuration à laquelle cette description appartient--> <specVersion> <!-- Spécifie la plus petite version de larchitecture supportée UPnP Device par le dispositif--> <major>1</major> <!--Obligatoire; Numéro de version principal (avant le point) ; Vaut 1 pour larchitecture 1.0--> <minor>0</minor> <!--Obligatoire; Numéro de version secondaire (avant le point) ; Vaut 0 pour larchitecture 1.0--> </specVersion> <device> <!--Balise contenant la description du dispositif --> <deviceType>urn:schemas-upnp-org:device:deviceType:v</deviceType> <!--Obligatoire; URI indiquant le type de dispositif UPnP. Pour les dispositifs standards, URI de la forme : urn:schemas-upnp-org:device: + deviceType + : + n°Version. Les fonctions définis dans le type standard doivent alors être implémentées dans le device. Pour les dispositifs non standards, URI de la forme : urn: + vendorDomainName + :device: + deviceType + : + n°Version. Dans les 2 cas, deviceType ne doit pas comporter plus de 64 caractères. --> <friendlyName>short user-friendly title</friendlyName> <!--Obligatoire; Nom du dispositif pour les utilisateurs : une string de moins de 64 caractères--> <manufacturer>manufacturer name</manufacturer> <!--Obligatoire; Nom du fabricant : une string de moins de 64 caractères--> <manufacturerURL>URL to manufacturer site</manufacturerURL> <!--Optionnel; url du site web du fabricant--> <modelDescription>long user-friendly title</modelDescription> <!-- Recommandé; Description du modèle du dispositif : une string de moins 128 caractères--> 1
  2. 2. <modelName>model name</modelName><!--Obligatoire; Nom du modèle : une string de moins de 32 caractères--><modelNumber>model number</modelNumber><!-- Recommandé; Numéro du modèle : une string de moins de 32 caractères--><modelURL>URL to model site</modelURL><!---Optionnel; url du site web du modèle--><serialNumber>manufacturers serial number</serialNumber><!--Recommandé; numéro de série : une string de moins de 64 caractères--><UDN>uuid:UUID</UDN><!--Obligatoire; identifiant unique du dispositif : une string commençant par "uuid:" suivi dun suffixe au format UUID--><UPC>Universal Product Code</UPC><!--Optionnel; numéro universel du produit : un nombre de 12 chiffres--><iconList> <!--Obligatoire si et seulement si le dispositif a une ou plusieurs icônes. Contient une balise icon par image--> <icon> <!--Recommandé; contient la description dune icône représentant le dispositif--> <mimetype>image/format</mimetype> <!--Obligatoire; mime type de licone--> <width>horizontal pixels</width> <!--Obligatoire; largeur de limage en pixels : un entier--> <height>vertical pixels</height> <!--Obligatoire; hauteur de limage en pixels : un entier--> <depth>color depth</depth> <!--Obligatoire; nombre de bits colorés par pixel : un entier--> <url>URL to icon</url> <!--Obligatoire; url pointant vers le fichier image de licône. Doit être relative par rapport au fichier courant --> </icon></iconList><serviceList><!--Optionnel; contient la liste des services offerts par le dispositif--> <service> <!--Optionnel; contient la description dun service--> <serviceType>urn:schemas-upnp-org:service:serviceType:v</serviceType> 2
  3. 3. <!--Obligatoire; URI indiquant type de service UPnP ne devant pas contenir de ‘#’ Pour les dispositifs standards, URI de la forme urn:schemas-upnp-org:service: + serviceType + : + n°Version. (rattachement du service à un service standard) Pour les non standards, URI de la forme urn: + vendorDomainName + :service: + serviceType + : + n°Version Dans les 2 cas, serviceType ne doit pas comporter plus de 64 caractères. --> <serviceId>urn:upnp-org:serviceId:serviceID</serviceId> <!--Obligatoire; URI identifiant du service. Doit être unique dans la description du dispositif. Pour les dispositifs standards, URI de la forme urn:upnp-org:serviceId: + serviceId Pour les non standards, URI de la forme ‘urn:’ + vendorDomainName + :serviceId: + serviceId Dans les 2 cas, serviceId ne doit pas comporter plus de 64 caractères. --> <SCPDURL>URL to service description</SCPDURL> <!--Obligatoire: url vers le fichier description du service. Doit être relative par rapport au fichier courant --> <controlURL>URL for control</controlURL> <!--Obligatoire: url vers le répertoire control du service. Doit être relative par rapport au fichier courant. URL utilisée pour sabonner et pour faire des actions. Si pas de répertoire control, balise vide --> <eventSubURL>URL for eventing</eventSubURL> <!--Obligatoire: url vers le répertoire eventSub du service. Doit être relative par rapport au fichier courant. URL utilisée pour s’abonner à des évènements. Deux services ne peuvent pas avoir la même url d’eventSub --> Si pas de répertoire control, balise vide --> </service> </serviceList> <deviceList> <!--Obligatoire si et seulement si le dispositif possède des dispositifs intégrés. Contient des balises device --> </deviceList> <presentationURL>URL for presentation</presentationURL> <!-- Recommandé; url vers le fichier presentation.html du dispositif. Doit être relative par rapport au fichier courant --> </device></root> 3
  4. 4. Description d’un service d’un dispositif UPnPLa description d’un service d’un dispositif UPnP se fait également grâce à un fichier description.xml. Celui-ci est de la forme :Source : http://upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.1.pdf<?xml version="1.0"?><scpd xmlns="urn:schemas-upnp-org:service-1-0" xmlns:dt1="urn:domain-name:more-datatypes" xmlns:dt2="urn:domain-name:vendor-datatypes" configId="configuration number"> <specVersion> <!-- Spécifie la plus petite version de larchitecture supportée UPnP Device par le dispositif--> <major>1</major> <!--Obligatoire; Numéro de version principal (avant le point) ; Vaut 1 pour larchitecture 1.0--> <minor>0</minor> <!--Obligatoire; Numéro de version secondaire (avant le point) ; Vaut 0 pour larchitecture 1.0--> </specVersion> <actionList> <!-- Obligatoire si et seulement si le service offre des actions. Contient des balises ‘action’--> <action> <name>actionName</name> <!--Obligatoire; Nom de l’action. Ne doit pas contenir de ‘#’ ou de ‘-‘. Sensible à la casse. Les trois premières ne doivent pas être ‘xml’. Doit commencer par une lettre (‘A’-‘Z’, ‘a’-‘z’), un chiffre (‘0’-‘9’), ou un ‘_’ Le reste doit être composé de lettres (‘A’-‘Z’, ‘a’-‘z’), chiffres (‘0’-‘9’), ‘_’ ou ‘.’ Pour les actions standards, ne doit pas commencer par ‘X_’ ou ‘A_’. Pour les actions non standards, doit être de la forme : ‘X_’ + vendorDomain + ‘_’ + vendorAssignedActionName Le tout est une string de moins de 32 caractères. --> <argumentList> <!-- Liste des arguments de l’action. Contient des balises argument. --> <argument> <name>argumentNameIn1</name> <!-- Obligatoire; Nom de l’argument. Soumis aux mêmes règles que la balise action-name--> <direction>in</direction> <!--Obligatoire ; deux valeurs possibles : ‘in’ ou ‘out’ (jamais les deux) Indique si l’argument est un input ou un output. Les arguments ‘in’ doivent être déclarés avec les arguments ‘out’ --> 4
  5. 5. <retval></retval> <!-- Optionnelle; Valeur de retour. Identifie au moins un argument output--> <relatedStateVariable>stateVariableName</relatedStateVariable> <!--Obligatoire ; Doit être le nom d’une variable d’état --> </argument> </argumentList> </action> </actionList> <serviceStateTable> <!-- Contient la liste des variables d’états du service. --> <stateVariable sendEvents="yes"|"no" multicast="yes"|"no"> <!-- sendEvents (« yes » ou « no », « yes » par défaut) définit si des évènements seront générés quand la valeur de cette variable sera modifiée. multicast (« yes ou « no », « no » par défaut) définit si des évènements seront générés avec du multicast--> <name>variableName</name> <!--Obligatoire ; Nom de la variable. Soumis aux mêmes règles que le nom de l’action --> <dataType>basic data type</dataType> <!-- Obligatoire ; type de la variable. La liste des types possibles est disponible dans le document source page 53--> <defaultValue>default value</defaultValue> <!-- Recommandé. Valeur initiale de la variable. Doit correspondre au type de la variable. Doit respecter les contraintes des balises allowedValueRange et allowedValueList --> <allowedValueRange> <!-- Recommandé ; Définit les limites de valeurs pour une variable numérique. Ne doit être présente que pour types integer ou float--> <minimum>minimum value</minimum> <maximum>maximum value</maximum> <step>increment value</step> </allowedValueRange> <allowedValueList> <!-- Recommandé ; Enumère les valeurs possibles de la variableCette balise ne doit être utilisée que pour une variable de type string--> <allowedValue>enumerated value</allowedValue> </allowedValueList> </stateVariable> </serviceStateTable></scpd> 5

×