Procédés et dispositifs de commandes à distance par un service UPnP
La présente invention vise des procédés et des dispositifs de commande à distance par un service UPnP (acronyme de « Universal Plug and Play » pour brancher et utiliser universel). Elle s'applique notamment à la substitution de commandes transmises par rayonnements infrarouges par un service UPnP.
Le domaine technique de la présente invention concerne les services audiovisuels et, particulièrement, la commande à distance d'un dispositif commandable à distance en utilisant des commandes UPnP.
L'électronique numérique domestique a vu l'arrivée de dispositifs électroniques grand public autorisant l'utilisation de DLNA (acronyme de « Digital Living Network Alliance » pour alliance pour le réseau vivant numérique) et UPnP, tels que des décodeurs de télévision numériques, des dispositifs audio et des dispositifs vidéo et de jeux.
L'architecture « UPnP AV » (pour UPnP Audio & Vidéo), fait intervenir trois entités dans le réseau domestique pour la gestion des contenus audio, vidéo et photo :
- le « Media Server » (pour serveur de médias), ou « MS » : entité « esclave » qui partage ses médias (comme l'audio, la vidéo ou des images) avec les clients UPnP du réseau ;
- le « Control Point » (pour Point de Contrôle), ou « CP » : le client UPNP, l'entité « maître » du réseau, qui peut détecter les dispositifs ou entités
UPnP (appelés « devices » dans le standard UPnP) et leurs services, recevoir des événements de ces entités UPnP et les commander en leur envoyant des actions UPnP et
- le « Media Renderer » (pour restituteur de média), ou « MR » : entité « esclave » en charge de la restitution ou de l'affichage du contenu (par exemple, écran de télévision, chaîne Hifi, ...).
Généralement, les équipements dits « Media Renderers », sont aussi « Media Players » (pour lecteur de médias), ou « MP » et intègrent un « Media Controller » (pour contrôleur de média), ou « MC », capable de restituer, sur le dispositif lui-même, le contenu provenant d'un Media Server.
On note que l'on utilise aussi les termes de « DMS », « DMR » et
« DMC », en lieu et place des termes « MS », « MR » et « MC », respectivement, le « D » ajouté signifiant digital, ou numérique.
Chacune de ces entités implémente des services spécifiés par UPnP. En particulier, un « digital média renderer » doit comporter les services « ConnectionManager » (pour gestionnaire de connexion) et « RenderingControl » (pour contrôle de rendu) et, en général, comprendre le service « AVTransport » (pour transport audio-vidéo).
Le logiciel du Point de Contrôle, couplé à une interface homme- machine (ou « IHM »), permet à un utilisateur de sélectionner un contenu (par exemple vidéo, audio ou image) mis à disposition par un « média server » et de le diffuser sur le « média renderer » de son choix. Par exemple, le mobile Nokia N95 (marques déposées) comporte un « digital média controller » qui permet de consulter les contenus des média servers UPnP et de les pousser vers un « média renderer » UPnP (par exemple comme une chaîne Hifi UPnP ou un cadre photo UPnP).
Au sein d'UPnP, il est prévu d'enrichir le standard par des évolutions spécifiques. En effet, un industriel peut définir ses propres entités UPnP, et services associés, par exemple en étendant des services existants ou en ajoutant des « actions » en suivant le formalisme normalisé par UPnP, ces extensions sont nommées « vendor-specific » (pour spécifiques au vendeur).
Une fois que le Point de Contrôle ou le digital média controller a découvert une entité UPnP du réseau, il obtient une description de cette entité (appelée « device description ») au moyen d'une URL incluse dans le message de découverte. Puis, à partir d'URL contenue dans cette description de cette entité, il obtient pour chaque service mis en œuvre par cette entité, une description de service comprenant une liste des commandes UPnP ou actions invocables, ainsi que les paramètres éventuels pour chacune de ses actions. La
description de service comprend également une liste de variables d'état qui décrivent l'état courant du service lors de son exécution.
Cependant, il n'existe pas de service UPnP permettant un contrôle total d'un équipement.
Pour la télécommande d'un décodeur, la technique antérieure consiste à envoyer des codes infra rouges à ce décodeur. Cette technique reste une solution « directionnelle », ou « line of sight », c'est-à-dire qu'il est nécessaire qu'il n'y ait pas d'écran entre l'utilisateur qui pointe la télécommande et le récepteur du décodeur en question.
De plus, la télécommande classique est souvent alimentée par des piles qu'il faut remplacer, contrairement à des terminaux de type mobile qui ont, de série, des batteries rechargeables et des chargeurs associés.
Dans le cas de la télécommande classique, les communications sont unidirectionnelles, de la télécommande vers le décodeur.
La télécommande ne dispose en outre d'aucune capacité d'affichage ou de présentation d'information provenant du décodeur.
La télécommande n'est fournie qu'en un seul exemplaire avec un décodeur. Lorsqu'elle est endommagée ou égarée, la commande à distance devient impossible et une nouvelle télécommande compatible avec l'ancienne doit être obtenue. De même, lorsque deux personnes veulent successivement télécommander le même dispositif, elles doivent se passer la télécommande à la main.
De plus, en dehors des télécommandes dites « universelles », les télécommandes classiques ne servent à piloter qu'un seul dispositif et ses contenus associés. Il est donc nécessaire de disposer d'autant de télécommandes qu'il y a de dispositifs à télécommander, ce qui provoque une perte de place, une consommation importante de piles et un risque d'égarer une télécommande ou d'envoyer des commandes involontaires à un dispositif plutôt qu'à un autre, lorsque l'on confond les télécommandes de différents dispositifs.
Enfin, il existe, par exemple pour le Nokia N95, des applications permettant de piloter des dispositifs UPnP de type DMS ou DMR, mais ces
applications ne permettent qu'un pilotage des fonctions définies dans UPnP / DLNA, tandis que des fonctions élémentaires (telles que changement de canal de réception) ne sont accessibles qu'au moyen d'une télécommande à infrarouge.
La présente invention vise à remédier à ces inconvénients.
A cet effet, la présente invention vise, selon un premier aspect, un procédé de commande à distance d'un dispositif à commander mettant en œuvre un module de traitement de commandes, caractérisé en ce qu'il comporte une étape de mise en œuvre, sur ledit dispositif de commande, d'une application de commande à distance, qui, suite à une détection d'au moins une interaction d'un utilisateur avec une interface utilisateur associée à ladite application, invoque via un réseau au moins une action d'un service de réception de commande, mis en œuvre dans le dispositif à commander et transmettant audit module de traitement de commandes au moins un code de commande représentant ladite interaction.
On note que le terme de « service » s'entend ici au sens du standard UPnP ou d'un standard équivalent ou dérivé. Plus généralement, il s'agit d'un ensemble de fonctions d'une entité dont l'exécution est susceptible d'être déclenchée par une autre entité du réseau et que l'entité déclare. Dans UPnP, les entités UPnP déclarent les fonctions associées aux services qu'ils mettent en œuvre conformément à un mécanisme de découverte d'entités et d'interrogation des entités découvertes.
Grâce à la mise en œuvre de la présente invention, le dispositif à commander possède une nouvelle voie de commande à distance passant, depuis l'utilisateur, par l'interface utilisateur associée à l'application et par le service de réception de commande pour arriver au module de traitement de commandes du dispositif.
Selon un mode de réalisation dans lequel, une interface matérielle d'entrée de commande est utilisable pour la commande du dispositif à commander, le module de traitement de commandes est conçu pour recevoir le même dit code de commande en provenance de ladite interface matérielle d'entrée de commande. Le service de réception de commande offre ainsi un
nouveau mode de commande, complémentaire d'un mode de commande au moyen d'une interface matérielle. Le service de réception de commande permet en effet de réceptionner et transmettre au module de traitement de commande des codes de commandes provenant du dispositif de commande, ces codes de commandes étant identiques à ceux en provenance de l'interface matérielle.
Ceci revient donc à coupler un service de réception de commande à un module de traitement de commande, de manière à ce que ce même module de traitement de commande puisse servir à la fois au traitement de codes de commande provenant de l'interface matérielle et à la fois au traitement de ces mêmes codes de commande lorsqu'ils proviennent du dispositif de commande distant et sont générés suite à l'invocation d'une action de ce service de commande.
Selon un mode de réalisation, les codes de commandes transmis au module de traitement représentent des actions susceptibles d'être opérées sur une interface matérielle d'entrée de commande dudit dispositif à commander.
La mise en œuvre de la présente invention permet la mise en place de nouveaux mécanismes de commande à distance par remplacement de codes infrarouges par une syntaxe de commande UPnP.
De manière générale, l'invention permet de substituer à une interface matérielle d'entrée de commande (télécommande à infrarouge, clavier, boutons, molettes ou autres actionneurs sur les boîtiers des équipements, etc .), utilisable pour la commande du dispositif à commander, une interface logicielle pour la génération de codes de commandes représentatifs d'actions susceptibles d'être opérées sur une telle interface matérielle d'entrée de commande.
Cela signifie que, non seulement l'utilisateur a le contrôle de l'entité UPnP DMR (acronyme de Digital Media Renderer pour restituteur de média numérique) dans l'équipement connecté au réseau UPnP, (de type décodeur, ou « STB », acronyme de « Set-top box », téléviseur, chaîne hifi, etc .), mais qu'il a aussi l'équivalent des boutons situés sur le boîtier de l'équipement ou des boutons de télécommande, par l'intermédiaire d'un nouveau service pour la
commande à distance, notamment UPnP, à partir de toute application de commande apte à invoquer ce nouveau service de réception de commande.
Pour complètement contrôler le décodeur à un niveau UPnP, ce nouveau service UPnP a été défini et implémenté à la fois du côté du Point de Contrôle UPnP, pour la partie invocation d'actions, et du côté du dispositif à commander, pour la mise en œuvre du service de réception de commandes.
L'invention fournit donc des moyens de remplacer une commande locale (clavier du dispositif à commander) ou à distance, notamment télécommande classique (à rayons et codes infra rouge), d'un dispositif mettant en œuvre le nouveau service de réception de commande.
Selon des caractéristiques particulières, au cours de l'étape de mise en œuvre, l'application de commande obtient un fichier définissant la ou les actions à invoquer et/ou paramètres d'action éventuels en fonction des interactions de l'utilisateur avec l'interface utilisateur.
On note que la présente invention ne se limite pas aux codes de touches de télécommandes infrarouge mais s'étend à tout code de commande représentatifs d'actions susceptibles d'être opérées sur une interface matérielle d'entrée de commande, pourvu que le service de réception de commandes soit identifié par l'application de commande à distance.
Selon des caractéristiques particulières, le procédé objet de la présente invention, tel que succinctement exposé ci-dessus, comporte une étape de configuration de l'interface utilisateur conformément à un fichier de configuration, obtenu par ladite application et définissant des éléments graphiques représentant des éléments d'entrée de commande d'une interface matérielle d'entrée de commande dudit dispositif à commander.
Selon des caractéristiques particulières, le fichier de configuration est propre au dispositif à commander.
Selon des caractéristiques particulières, le fichier de configuration spécifie un type d'interactions de l'utilisateur avec chaque élément de l'interface utilisateur avec lequel l'utilisateur peut interagir, les actions invoquées et/ou paramètres éventuels de ces actions étant fonction du type d'interaction détecté.
Selon un deuxième aspect, la présente invention vise un procédé de commande à distance d'un dispositif à commander mettant en œuvre un module de traitement de commandes, caractérisé en ce qu'il comporte une étape de mise en œuvre, sur le dispositif à commander, d'un service de réception de commande qui exécute des actions invoquées via un réseau par une application de commande à distance et qui transmet audit module de traitement de commandes des codes de commandes représentant des interactions de l'utilisateur avec une interface utilisateur associée à ladite application de commande à distance.
Selon des caractéristiques particulières, ladite application est intégrée dans une entité UPnP et le service de réception de commande est un service UPnP.
Selon des caractéristiques particulières, le procédé objet de la présente invention, tel que succinctement exposé ci-dessus, comporte une étape de découverte, par l'application de commande à distance, d'un dispositif d'un réseau mettant en œuvre le service de réception de commande à distance et, au moins au cas où plus d'un tel dispositif est découvert, une étape de présentation des dispositifs découverts et une étape de sélection, par l'utilisateur, de l'un des dispositifs découverts, lesdites invocations étant adressées au dispositif sélectionné.
La commande à distance objet de la présente invention peut être utilisée pour piloter l'ensemble des équipements à télécommande Infra Rouge, et plus généralement ceux présentant une interface matérielle d'entrée de commande. L'invention vise en particulier à mettre à disposition des entités du réseau auquel est connecté l'équipement, un service de réception de commande conçu pour transmettre des codes de commandes à un module de traitement de commande, ce module étant susceptible / conçu pour recevoir ces mêmes codes de commandes d'une interface matérielle d'entrée de commande.
Selon des caractéristiques particulières, les codes de commandes représentent des actions susceptibles d'être opérées sur une interface matérielle d'entrée de commande dudit dispositif à commander.
Selon des caractéristiques particulières, les codes de commandes représentent des interactions simples, doubles ou longues de l'utilisateur avec une touche d'une interface matérielle d'entrée de commande dudit dispositif à commander.
Selon des caractéristiques particulières, au moins une action invoquée représentent une chaîne de caractères saisie avec ladite interface utilisateur.
La présente invention permet ainsi de nouvelles fonctionnalités, comme, par exemple, la recherche, à distance, de fichiers ou d'œuvre par leur titre, leur auteur, leur interprète ou toute autre référence utilisant une chaîne de caractères.
Selon des caractéristiques particulières, les codes de commandes représentent un appui ou un relâché de touche d'une interface matérielle d'entrée de commande dudit dispositif à commander.
Ainsi, typiquement, un type de gestion touche par touche comporte les appuis et relâchés d'éléments de l'interface utilisateur et un autre type de gestion ne les comporte pas. Ces appuis et relâchés permettent au service de réception de commande à distance de tenir compte de la durée de l'interaction et de différencier un appui long d'un appui court.
Selon un troisième aspect, la présente invention vise un dispositif de commande et un dispositif à commander.
Le dispositif de commande à distance d'un dispositif à commander mettant en œuvre un module de traitement de commandes, caractérisé en ce qu'il comporte un moyen de mise en œuvre d'une application de commande à distance, adapté, suite à une détection d'au moins une interaction d'un utilisateur avec une interface utilisateur associée à ladite application, à invoquer, via un réseau, au moins une action d'un service de réception de commande, mis en œuvre dans le dispositif à commander et transmettant audit module de traitement de commandes au moins un code de commande représentant ladite interaction.
Le dispositif à commander mettant en œuvre un module de traitement de commandes, caractérisé en ce qu'il comporte un moyen de mise en œuvre d'un service de réception de commande adapté à exécuter des actions
invoquées via un réseau par une application de commande à distance et à transmettre audit module de traitement de commandes des codes de commandes représentant des interactions de l'utilisateur avec une interface utilisateur associée à ladite application de commande à distance.
Les avantages, buts et caractéristiques de ces dispositifs étant similaires à ceux du procédé objet de la présente invention, tels que succinctement exposés ci-dessus, ils ne sont pas rappelés ici.
D'autres avantages, buts et caractéristiques de la présente invention ressortiront de la description qui va suivre faite, dans un but explicatif et nullement limitatif, en regard des dessins annexés, dans lesquels :
- la figure 1 représente, schématiquement, un mode de réalisation particulier du système objet de la présente invention se substituant à une télécommande infrarouge
- la figure 2 représente des requêtes émises par un mode de réalisation simplifié du procédé et du système objet de la présente invention et
- la figure 3 représente, sous forme d'un logigramme, des étapes mises en œuvre dans un mode de réalisation particulier du procédé objet de la présente invention.
Dans toute la description qui suit, on utilise indifféremment les termes de « touche », « clé » ou « icône » pour désigner des éléments, matériels ou logiciels, d'actionnement avec lesquels un utilisateur peut interagir, ces éléments étant, par exemple, présents sur un clavier ou sur une interface matérielle d'entrée de commande du dispositif à commander.
La figure 1 ne représente qu'un seul dispositif de commande et qu'un seul dispositif à commander. Cependant, la présente invention s'applique aussi à la télécommande d'une pluralité de dispositifs à commander par un seul dispositif de commande.
On observe, en figure 1 , un dispositif à commander à distance 105, une télécommande classique à infrarouge 1 10 et un dispositif de commande à distance 150.
Le dispositif à commander 105 est n'importe quel équipement intégrant une entité UPnP, mettant en œuvre un service UPnP défini dans le standard UPnP (par exemple un média server UPnP, un média renderer UPnP ou une imprimante Digital Media Printer, ou « DMPr », etc) et mettant en œuvre en outre un service de réception de commande tel que défini dans la présente invention.
Le dispositif à commander 105 est par exemple un décodeur, une chaîne Hifi, un ordinateur d'usage général, une radio, un téléviseur, ou une set- top-box que l'on peut commander par un clavier local, par des signaux optiques ou électriques, par courant porteur, par WiFi ou Bluetooth (marques déposées). Dans l'exemple illustré en figure 1 , le dispositif à commander peut être commandé par une interface matérielle d'entrée de commande, par exemple par une télécommande à infrarouges 1 10. A cet effet, la télécommande 1 10 possède des touches de clavier 1 15, un codeur 1 17 qui fournit un code de touche pour chaque appui sur l'une des touches du clavier 1 15 et un émetteur de signaux infrarouges 120 qui module des signaux infrarouges représentatifs des codes de touches générés par le codeur 1 17. Côté dispositif à commander 105, un récepteur de signaux infrarouges 125 reçoit ces signaux et les démodule avant de les transmettre à un module de traitement de commande 130. Le module de traitement de commande 130, après interprétation de codes de touches reçus, active une ou plusieurs des fonctions 135 du dispositif 105.
Conformément à la présente invention, on ajoute des moyens de télécommande mis en œuvre à la fois dans un dispositif de commande 150 et au moins un dispositif à commander 105. Ici, le dispositif de commande 150 est un dispositif portable, par exemple un téléphone mobile, un assistant numérique personnel, ou PDA, ou un ordinateur de poche ou portable.
Dans le mode de réalisation illustré en figure 1 , le dispositif de commande 150 comporte :
- un écran graphique 155,
- une application 160 implémentant une interface utilisateur sur l'écran graphique et un contrôleur d'interface utilisateur qui détecte des interactions de l'utilisateur avec l'interface utilisateur et invoque
des actions d'un service de réception et d'interprétation de commande 170 du dispositif à commander 105 et
- un module de communication à distance 165.
Le module de communication à distance 165 communique à travers un réseau local (non représenté) avec un module de communication à distance 167 du dispositif à commander 105. Le service de réception et d'interprétation de commande 170 reçoit, via le module 167, des requêtes d'invocation d'action UPnP, interprète ces commandes et leur éventuels paramètres, et transmet au module de traitement de commandes 130 des codes de commandes résultant de cette i nterprétati on .
Le service 170, nommé par la suite service « RemoteControl », sert ainsi d'interface permettant de rendre accessibles aux entités UPnP du réseau local, le mode de commande mis en œuvre par le module 130 de traitement de commandes et les fonctions 135.
Le module de traitement de commandes 130 est susceptible de recevoir et traiter à la fois des codes de touches, émis au moyen d'un signal infrarouge à partir de la télécommande 120, et des codes de commande, dérivés de commandes UPnP véhiculées à travers le réseau local par invocation d'actions UPnP proposées par le service « RemoteControl » 170.
Le dispositif à commander 105 met en œuvre également une entité
UPnP de type « digital média renderer » ou DMR 175, qui, conformément au standard UPnP, met en œuvre les services « ConnectionManager » (pour gestionnaire de connexion) et « RenderingControl » (pour contrôle de rendu) et, en général, comprend le service « AVTransport » (pour transport audio-vidéo). Cet ensemble de services standard est représenté sur la figure 1 par la référence 171 . Les requêtes d'invocation d'actions de ces services sont également transmises à travers le module de communication à distance 165, le réseau local et le module de communication à distance 167.
Le service « RemoteControl » 170 est réalisé préférentiellement en tant que service UPnP d'une entité / d'un dispositif UPnP. Dans le mode de réalisation décrit ici à titre d'exemple, le service « RemoteControl » 170 est mis en œuvre par l'entité UPnP 175 (ou device DMR, selon la terminologie UPnP).
De cette manière, au moyen de l'application de commande 160 et d'une interface utilisateur associée à cette application, un utilisateur est susceptible de commander complètement les fonctions du dispositif à commander 105 : d'une part, les fonctions élémentaires usuellement déclenchées par commandes infrarouges, et, d'autre part, les fonctions de restitution d'un DMR proposées via les services « ConnectionManager », « RenderingControl » et « AVTransport ».
Le dispositif à commander 105 peut aussi être un équipement intégrant une entité UPnP mettant en œuvre, comme seul service, le service de réception de commande UPnP tel que défini dans la présente invention.
La figure 2 représente un échange de messages pour changer de canal sur un décodeur 105. On suppose que l'application 160 permettant la commande à distance fonctionne sur un téléphone mobile 150 et, par l'intermédiaire de son interface utilisateur, affiche à l'utilisateur une liste de canaux identifiés, chacun, par un numéro de canal et des éléments graphiques représentant des touches d'un clavier numérique, portant les chiffres « 0 » à « 9 ».
En fonction des interactions détectées sur cette interface utilisateur, l'application de commande invoque des actions du service « RemoteControl » 170.
Par exemple, si l'utilisateur choisit le canal numéro « 12 », en sélectionnant successivement les touches « 1 » et « 2 » sur la partie de l'interface utilisateur du DMC représentant un clavier numérique, le DMC invoque les actions suivantes :
- l'action « SendKeyPressEvent() » avec les paramètres suivants :
KeyCode=«D1 » et PressType=« SINGLEPRESS » et
l'action « SendKeyPressEvent() » avec les paramètres suivants : KeyCode=«D2» et PressType=« SINGLEPRESS »,
où le paramètre « KeyCode » identifie la touche appuyée et le paramètre « PressType » identifie le type d'interaction, en l'occurrence le type d'appui de touche.
L'application DMC a connaissance, pour tous les éléments d'interface utilisateur permettant une interaction d'un utilisateur, de chaque action à invoquer (par exemple une action ou une séquence d'actions, éventuellement déclenchées par des « macros »), des codes de touches (« key codes ») à utiliser en paramètres et du type des interactions à détecter.
Selon le même principe d'invocation d'actions, une action peut être invoquée pour une pluralité d'interactions détectées. L'application DMC 160 peut par exemple être utilisée pour envoyer une chaîne de caractères alphanumériques qu'un utilisateur aurait saisie par interactions multiples avec une partie de l'interface utilisateur représentant un clavier alphanumérique. Dans ce cas, la chaîne de caractères est par exemple transmise en tant que paramètre d'une action « SendKeyCodeSequence » conçue dans ce but.
Les requêtes d'invocation d'actions, comprenant les codes de touches et les éventuelles informations sur le type d'appui de touche, sont émises par l'application 160 et adressées au service « RemoteControl » 170 et détectées conformément au protocole de découverte prévu dans UPnP. A réception d'une requête d'invocation d'une action par le service « RemoteControl » 170 et de ses éventuels paramètres, celui-ci traduit cette requête en codes de commandes puis transmet ces codes de commandes au module de traitement 130.
On présente, ci-après, une mise en œuvre de la présente invention pour une application 160 permettant la commande à distance de plusieurs dispositifs à commander 105, application qui est générique et configurable quel que soit le dispositif à commander 105. L'application 160 est par exemple intégrée dans un DMC UPnP de manière à ce que l'ensemble des actions UPnP comprenant,
- d'une part, les actions UPnP définies dans le standard UPnP pour le service de restitution d'un DMR UPnP et,
- d'autre part, les actions UPnP définies selon la présente invention pour le service « RemoteControl » 170,
soit mis en œuvre au sein d'une seule et même application 160. Dans cette optique, l'application 160 est également nommée « application DMC ».
L'application DMC 160 désigne ainsi l'application qui permet à un utilisateur de piloter des dispositifs UPnP d'un réseau domestique qui implémentent le service « RemoteControl » 170. L'application DMC 160 est composée d'une interface utilisateur (« Ul » pour « User Interface ») et d'un module DMC UPnP enrichi par la capacité de détecter et d'invoquer des actions du service « RemoteControl » 170.
Du fait de sa compatibilité avec le service « RemoteControl » 170, l'application 160 est capable de présenter à l'utilisateur, sur l'écran 155, d'une manière spécifique, les dispositifs UPnP qui mettent en œuvre le service « RemoteControl » 170. Par exemple, lorsque l'application 160 affiche la liste des dispositifs UPnP du réseau domestique, chaque dispositif mettant en œuvre le service « RemoteControl » 170 est identifié par une icône de télécommande. En sélectionnant cette icône, l'utilisateur rentre dans un mode « télécommande » du dispositif 105 considéré et des écrans spécifiques à cette commande à distance lui sont affichés sur l'écran 155, par l'interface utilisateur.
Afin de privilégier une application DMC 160 générique, préférentiellement, on définit des écrans de l'interface utilisateur dont les boutons et autres éléments graphiques interactifs sont configurables. En effet, la liste des boutons et autres éléments graphiques interactifs, leur disposition et les codes de touches associés sont décrits dans un fichier de configuration XML que l'application dispositif de commande DMC 160 obtient lors de son initialisation. Ce fichier est soit préenregistré par l'application DMC dans un répertoire de fichier prédéfini, soit transmis par le service « RemoteControl » 170 à l'application DMC à réception d'une requête définie dans ce but ou encore obtenu au moyen d'une URL fournie par le service « RemoteControl » 170.
Nous supposons que chaque interaction au niveau d'un des boutons ou d'un autre élément graphique interactif de l'interface utilisateur provoque l'envoi d'un ou plusieurs codes de touches au moyen d'une requête d'invocation d'action UPnP. Le fichier de configuration définit dans ce but la ou les actions à invoquer et/ou paramètres d'action éventuels en fonctions des interactions de l'utilisateur avec l'interface utilisateur associée à l'application de commande.
L'action « SendKeyStrokeEvent » signale une frappe de touche au service « RemoteControl » 170. Elle comprend les paramètres suivants :
Argument Direction Variable d'état liée
KeyCode IN A_ARGTYP E_KeyCode
StrokeType IN A_ARGTYPE_StrokeType
Code d'erreur Description d'erreur Description
801 Invalid Key Code le code n'est pas valide
802 Invalid Stroke Type le type de frappe n'est pas valide L'action « SendKeyPressEvent » signale un appui de touche au service « RemoteControl » 170. Elle comprend les paramètres suivants :
Argument Direction Variable d'état liée
KeyCode IN A_ARGTYPE_KeyCode
PressType IN A_ARGTYPE_PressType
Code d'erreur Description d'erreur Description
801 Invalid Key Code Le code n'est pas valide
802 Invalid Press Type Le type de frappe n'est pas valide
Selon l'équipement à piloter, il peut être nécessaire de détecter différents types d'interaction de l'utilisateur sur l'interface utilisateur de l'application 160 :
- des appuis ou relâchés de touche, simulés par clic de souris sur un élément graphique représentant la touche considérée ou
- des durées d'appui de touche, simulés par clic de souris sur un élément graphique représentant la touche considérée.
Le service « RemoteControl » 170 permet en effet de gérer des durées d'appui de touches différentes (« SINGLE » pour un simple appui court, « DOUBLE » pour deux appuis courts et « LONG » pour un appui long) et des événements de plus bas niveau (de type appui ou relâché de touches). Le fichier de configuration spécifie donc le type d'interaction à détecter pour chaque élément graphique représentant un bouton, en particulier si l'interface utilisateur, le module Ul, doit effectuer la gestion du PUSH/RELEASE (ou appui/relâché) pour le bouton et, dans ce cas, envoyer les événements de bas
niveau « PUSH » (appui) et « RELEASE » (relâché) via l'action « SendKeyStrokeEvent() ».
En ce qui concerne « SendKeyCodeSequence() », cette action envoie une séquence de codes de touches au service « RemoteControl » 170.
Argument Direction Variable d'état liée
KeySequence IN A_ARGTYPE_KeyCodel_ist
En ce qui concerne l'envoi de caractères, avec le nouveau service de télécommande, on peut fournir des utilisations avancées, par exemple en permettant à l'utilisateur de chercher un fichier vidéo dans un catalogue VOD par saisie de son titre, son auteur, un de ses interprètes ou toute autre référence utilisant une chaîne de caractères. Cette fonctionnalité peut être aisément fournie en mettant en œuvre une application riche (« rich média application ») basée sur un DMC compatible avec le service « RemoteControl » 170.
A cet effet, deux options d'implémentation sont envisagées :
- utiliser l'action « SendKeySequence() » pour transmettre des caractères. Pour éviter des conflits avec des codes de touches de commande à distance, on peut mettre à part les caractères (par exemple avec un antislash ou barre oblique inversée, en anglais « backslash », suivi du caractère à transmettre), ou spécifier les codes ASCII ou UTF8 (par example « ASC48 » pour le caractère « a »),
- créer une action spécifique pour transmettre des caractères « UTF-8 » (par exemple, « SendCharacters() » comportant la chaîne à transmettre comme un argument « IN »).
Le nom du fichier de configuration des écrans peut être choisi en fonction de propriétés spécifiées dans la description de l'entité UPnP. La propriété « modeIName » d'une entité UPnP est par exemple utilisée pour retrouver le nom du fichier de configuration des écrans. Par exemple, si le modeIName d'un décodeur STB est « Décodeur TV », le fichier de configuration est « decodeur_tvRemoteConfig.xml ».
On donne, ci-dessous, un exemple de fichier XML de configuration : <?xml version=«1 .0» encoding=«UTF-8»>
<remoteConfig>
<button position=«1 » text=«Menu» icon=«menu.png»>
<key code=«MENU» type=«SINGLEPRESS»>
</button>
<button position=«2» text=«UP» icon=«up.png» keystroke=«UP»>
</remoteConfig>
L'exemple ci-dessus définit deux boutons :
- le bouton « MENU » qui correspond à la touche « MENU » de la télécommande. Sa sélection dans l'interface doit générer l'envoi du code de touche (« KeyCode ») « MENU » avec une variable de type d'appui (« pressType ») valant « SINGLEPRESS » (appui simple) et
- le bouton « UP » qui correspond à la flèche « haut ». L'attribut « keyStroke » permet de spécifier au module Ul qu'il doit gérer les appuis/relâchés de bas niveau pour ce bouton.
L'attribut « position » permet de préciser une position du bouton dans l'écran. Par exemple, l'écran présente les boutons sous forme de grille et chaque case de la grille est numérotée et associée à un bouton.
En parallèle de la description des étapes illustrées en figure 3, on rappelle, ci-dessous, les fondements du standard UPnP.
UPnP permet la définition, la découverte et le contrôle d'entités UPnP présentes sur le réseau (« network devices »).
Au cours d'une étape 305, on initialise, sur le dispositif de commande
150, une application 160 implémentant une interface utilisateur, implémentée sur le dispositif de commande ou sur un dispositif déporté communiquant avec le dispositif de commande, qui détecte des interactions de l'utilisateur avec l'interface utilisateur et invoque des actions du service « RemoteControl » 170, correspondant auxdites interactions.
Au cours d'une étape 310, on initialise, sur au moins un dispositif à commander 105, un service « RemoteControl » 170, qui reçoit, en provenance de l'application 160, des requêtes d'invocation d'action, les traduit en codes de commandes puis transmet ces codes de commandes au module de traitement de commandes 130.
Lors d'une phase d'adressage (« addressing ») 315, chacun des dispositifs 105 et 150 rejoint le réseau UPnP, obtient automatiquement une adresse unique que les entités du réseau peuvent utiliser pour communiquer avec ce dispositif.
Au cours d'une phase de description 320, chacun des dispositifs 105 et
150 résume ses services et capacités dans un format standard. Notamment, le dispositif à commander 105 indique qu'il dispose du service « RemoteControl » 170. Lors de la phase de description, une entité UPnP donne une liste des services qu'il fournit, dans des documents basés sur XML. La description de l'entité UPnP comporte une URL permettant d'accéder à une description de chaque service fourni par cette entité. Une description de service fournit une information détaillée sur ce service, les actions que ce service fournit, les paramètres du service et sa valeur de retour.
Lors d'une phase de découverte (« discovery ») 325, le dispositif 105 est détecté par des Points de Contrôle UPnP, notamment par le dispositif 150, qui apprennent les capacités du dispositif 105 par obtention de sa description.
La phase de découverte définit comment une entité UPnP annonce sa présence et comment les Points de Contrôle UPnP la découvrent, en mettant en œuvre le protocole Simple Service Discovery Protocol (SSDP). Ce protocole SSDP étend les entêtes du protocole HTTP pour fournir un protocole de découverte simple basé sur une diffusion multicast.
Une fois qu'une entité UPnP a acquis une adresse IP, cette entité UPnP se signale périodiquement sur le réseau. Cette communication périodique ainsi que les réponses lors de phases de découvertes comportent une URL du document de description XML. Cette URL fournit aux Points de Contrôle UPnP les informations dont ils auront besoin pour retrouver les descriptions de cette entité UPnP et de ses services. Les documents de description sont retrouvés par les Points de Contrôle UPnP et scrutés, ou « parsés », pour bien connaître l'entité UPnP. Un fournisseur (« vendor ») peut ajouter des extensions au delà des fonctions de base et les inclure dans les documents de description. Ce mécanisme d'extension permet à un Point de
Contrôle UPnP de préférer une interface optionnelle ou spécifique au fournisseur (« vendor-specific interface ») à une interface standard.
Lors d'une phase de contrôle 330, le dispositif 105 traite les requêtes qui lui arrivent des Points de Contrôle UPnP, notamment du dispositif 150. Lors de la phase de contrôle, les Points de Contrôle UPnP invoquent les actions d'un service d'une entité UPnP. Lorsqu'un service reçoit un message de contrôle, ce service agit selon ce message. UPnP s'appuie sur le protocole SOAP (Simple Object Access Protocol) pour le contrôle d'une entité UPnP. Ce protocole unit XML et http pour fournir des messages basés sur la toile et des mécanismes de procédures d'appel à distance : XML exprime le contenu du message alors que HTTP envoie les messages à leurs destinations. Le protocole SOAP est spécifié comme un ensemble de conventions qui gouvernent le format et les règles de traitement de messages SOAP.
Lors d'une phase de traitement d'événement (« eventing ») 335, le dispositif 105 notifie aux Points de Contrôle ayant souscrit à cette notification, chaque modification de son état interne.
Lors d'une phase de présentation 340, le dispositif 105 fournit une interface d'administration basée sur du code HTML pour permettre la manipulation directe et la surveillance du dispositif 105. Chacune des phases UPnP est en relation avec des protocoles. On note que le dispositif 105 peut fournir l'URL d'une page de présentation dans la description du dispositif.
Au cours d'une étape 345, l'utilisateur interagit avec l'interface utilisateur. Au cours d'une étape 350, l'interface utilisateur détecte chaque interaction de l'utilisateur avec l'interface utilisateur. Au cours d'une étape 355, l'application 160 invoque des actions, comportant d'éventuels paramètres, représentant lesdites interactions. Au cours d'une étape 360, la requête d'invocation est transmise au dispositif 105.
Au cours d'une étape 365, le service « RemoteControl » 170, reçoit la requête d'invocation d'action, c'est-à-dire reçoit une commande UPnP.
Au cours d'une étape 370, le service « RemoteControl » 170 interprète cette commande pour générer un ou des codes de commandes qu'il transmet au module de traitement de commandes 130.
Au cours d'une étape 375, le module de traitement de commande interprète le ou les codes de commande reçus, afin d'activer la ou les fonctions 135 correspondant à ces codes de commandes.
On note que chaque entité UPnP peut offrir un grand nombre de services, chaque service ayant son propre et unique type de service. C'est ainsi que les services définissent les fonctionnalités réelles de cette entité.
Un Point de Contrôle est une entité de réseau qui invoque une fonctionnalité d'une entité UPnP. En termes de client/serveur, le Point de Contrôle est le client et l'entité UPnP est le serveur. Les Points de Contrôle invoquent des actions sur des services, en fournissant tout paramètre d'entrée requis et en recevant tout paramètre de sortie et, éventuellement, une valeur de retour. Un Point de Contrôle découvre des entités UPnP, invoque des actions sur les services de ces entités UPnP et souscrit à des notifications d'événements. De son côté, une entité UPnP répond aux invocations d'actions, envoie des événements quand des variables d'état changent et supporte une page de la toile (« web ») pour un contrôle d'administration, page appelée (« présentation page »).
Plusieurs avantages de la présente invention sont donnés ci-dessous : elle permet une interaction plus facile avec plus de possibilités au niveau de l'affichage (tactile, affichage des métadonnées...),
elle permet une interaction optimisée en termes de programmation des tâches, etc. Par exemple, je veux programmer l'enregistrement d'une émission sur le canal 2 mais je regarde le canal 5 et ne veux pas le perturber sur la télévision, ce qui n'est pas possible avec l'EPG et l'enregistrement actuel par télécommande classique. Donc je programme l'enregistrement du canal 2 avec mon application sur mon mobile,
elle permet une écriture alphabétique plus simple avec le clavier d'un mobile ou un clavier tactile sur un terminal mobile, par exemple dans le cadre d'une recherche d'une vidéo dans un catalogue de vidéo à la demande.
La télécommande UPnP donne le potentiel de concevoir et de développer de nouveaux mécanismes de commande alternatifs aux codes infrarouges enrichissant les interfaces UPnP que ces appareils possèdent déjà.
La norme UPnP a été retenue dans cette description car elle est l'une des meilleures candidates pour la compatibilité, l'interopérabilité et la simplicité de développement. Cependant, les principes de l'invention sont également applicables à d'autres normes permettant la commande à distance d'équipement.
Grâce à l'invention, non seulement les utilisateurs peuvent contrôler les services du DMR de leur décodeur, mais disposent aussi d'une interface utilisateur proposant aussi l'équivalent des boutons de la télécommande et l'accès aux fonctions plus avancées du décodeur qui peut ainsi être complètement piloté depuis n'importe quel point de contrôle DMC qui implémente l'application de commande à distance.
Cette application de commande à distance est susceptible d'être mise en œuvre dans tout type de terminal apte à communiquer à travers le réseau auquel est connecté le dispositif à commander.
L'utilisateur final peut donc utiliser son téléphone portable ou tout autre appareil communiquant pour contrôler l'ensemble des services disponibles sur le dispositif à commander, ce qui permet ainsi d'évoluer au delà de la télécommande infrarouge classique.
Pour bénéficier des avantages de l'invention, il est nécessaire que le dispositif à commander implémente ce nouveau service UPnP « RemoteControl » 170.
La présente invention permet la télécommande complète d'un décodeur par l'intermédiaire d'UPnP, y compris des fonctions élémentaires telles que changer de canal, accéder à un menu, à des informations, pour lancer une lecture (« play »), arrêter la lecture, changer de plage de lecture, modifier les couleurs, monter, descendre, aller à droite ou à gauche, etc.
Grâce à l'invention, une application mettant en œuvre un « Point de Contrôle » UPnP qui a été configurée pour inclure également l'application 160 de commande à distance UPnP est capable de contrôler le décodeur par l'intermédiaire de son interface graphique associée à cette application.
La présente invention apporte aussi de nouvelles fonctionnalités, du fait notamment de la possibilité offerte à l'utilisateur de piloter, à partir d'une même
interface utilisateur, plusieurs dispositifs intégrant chacun un service « RemoteControl » 170 : par exemple, le pilotage simultané d'un dispositif d'enregistrement (ou « DVR » pour « Digital Video Recorder ») et d'un téléviseur pour une programmation d'un enregistrement de contenu ou encore le pilotage simultané de deux téléviseurs distincts, susceptibles par exemple de diffuser un même programme audiovisuel. Ainsi l'invention, se prête à des applications complexes de gestion de flux multimédia nécessitant le pilotage de plusieurs équipements indépendants. L'application 160 de commande à distance peut être utilisée pour piloter l'ensemble des équipements pilotables par infrarouges et intégrant une entité UPnP, par exemple de type « Digital Media Renderer ».
Il est à noter que, avec la présente invention, l'expérience de l'utilisateur va au-delà des fonctionnalités permises au niveau du décodeur par l'entité UPnP (Digital Media Renderer) qui y est intégré. Par défaut, conformément au standard UPnP, l'entité UPnP du décodeur lui permet d'être contrôlé à distance. La présente invention vise à définir un nouveau service en termes UPnP afin de permettre le contrôle total du décodeur au moyen d'une application de commande à distance unique, c'est-à-dire l'activation à la fois des fonctions de l'entité UPnP préexistant et des fonctions de base, ces dernières étant activables jusqu'à présent uniquement au moyen d'une télécommande ou des boutons du décodeur. L'utilisateur pourra ainsi prendre son téléphone mobile intégrant cette application de pilotage, avec quelques modifications consécutives à ce nouveau service et être capable de contrôler complètement tous les services audio et vidéo sur leur téléviseur qui arrivent par le décodeur ou des services musicaux sur un dispositif Hifi.