Title: Gnration automatique du code d'un device UPnP
1Génération automatique du code d'un device UPnP
- Utilisation de l'utilitaire de Didier Donsez
Présentation écrite par Michel DHooge
2Principe
- Génération du code basée sur des feuilles de
style XSLT à partir des descriptions XML du
device et des services associés.
3Fichiers à créer pour la génération
- build.xml
- project.Device.properties
- Device.xml
- Service.xml
4build.xml
ltproject name"OSGi UPnP Device Driver Source
Generation" default"main" basedir"."gt lttarget
name"main" depends"init, generate.class"gt lt/targ
etgt lttarget name"init"gt ltmkdir
dir"generated"/gt lt/targetgt lttarget
name"generate.class"gt ltant antfile"build.device
.xml" target"generate.class" inheritall"true"gt lt
property name"properties" value"res/project.Devi
ce.properties" /gt lt/antgt lt/targetgt lttarget
name"clean"gt ltdelete dir"generated"/gt lt/targetgt
lt/projectgt
- Fichier Ant
- Appelle build.device.xml avec les propriétés
contenues dans le fichier project.Device.propertie
s
5project.Device.properties
- Fichier contenant
- Le chemin du fichier Device.xml
- Le package dans lequel on veut mettre le device
- Nom du device
device.description.xml.file chemin du
Device.xml package package de
destination device.name nom du Device
6Device.xml et Service.xml
- Fichiers de description du device et des services
qu'il comporte.
7Fichiers nécessaires à la génération
- build.device.xml
- device2build.xslt
- device2class.xslt
- ssdp2class.xslt
- ssdp2itf.xslt
8Fichiers à créer
build.xml
Fichiers fournis
Fichiers générés
project.Device.properties
génération
(1)
appel Ant
build.Device.xml
Device.xml
(2)
(3)
device2build.xslt
build.sources.xml
Service.xml
Service.java
Service.java
Device.xml
(5)
(4)
device2class.xslt
ssdp2class.xslt
ssdp2itf.xslt
ServiceItf.java
Service.java
Service.java
Service.java
Service.java
Service.java
Device.java
9Remarques
- Pour éviter des bugs il faut écrire dans les
fichiers xml le texte et les balises sur une même
ligne - ltserviceTypegturnceced-orgservicecommand1lt/serv
iceTypegt
10Fichiers créés
Device
AbstractUpnpDevice
1
n
Service
AbstractUpnpService
Service
1
1
n
n
AbstractUpnpAction
AbstractUpnpStateVar
Action
Service
StateVar
Service
11Pour finir
- Implémenter le modèle de comportement en passant
des classes implémentant les ServiceItf - Mettre en place la gestion des évènements