Download - Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

Transcript
Page 1: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

Autorizada la entrega del proyecto del alumno:

Carlos Cifuentes Fernández

EL DIRECTOR DEL PROYECTO

David Contreras Bárcena

Fdo.: ………………………………. Fecha: …… /…… /……

Vº Bº del Coordinador de Proyectos

David Contreras Bárcena

Fdo.: ………………………………. Fecha: …… /…… /……

Page 2: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

UNIVERSIDAD PONTIFICIA COMILLAS

ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERO EN INFORMÁTICA

PROYECTO FIN DE CARRERA

SISTEMA DE CONTROL DOMÓTICO INTEGRAL A TRAVÉS DE UN DISPOSITIVO

MÓVIL (SCDI-DM)

DIRECTOR: DAVID CONTRERAS BÁRCENA AUTOR: CARLOS CIFUENTES FERNÁNDEZ

MADRID, junio de 2007

Page 3: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

i

AGRADECIMIENTOS

Dedico el proyecto a todas las personas que me ha apoyado, en especial a Susana

y a mi familia, que siempre me han estado motivando.

También, quiero dar las gracias por todo el apoyo recibido, a mi director de

proyecto David Contreras Bárcena, que en todo momento ha estado dispuesto a

ayudarme en el desarrollo del mismo, y del que he aprendido no sólo una gran

formación para mi futuro, sino también, otros valores que me han ayudado a formarme

como persona.

Page 4: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

ii

RESUMEN

El Sistema de Control Domótico Integral a Través de un Dispositivo Móvil, de ahora

en adelante SCDI-DM, nace de la necesidad de integrar el control domótico del hogar y

el control de medios multimedia almacenados en el PC, en un dispositivo móvil, para

poder dotar al mismo de un control bastante amplio del hogar.

Este proyecto, por lo tanto, agiliza y simplifica muchas de las funciones que

podemos desarrollar en el día a día del hogar, e incluso puede ser de gran ayuda a

aquellas personas que, debido a alguna discapacidad, puede resultarle tedioso

actividades como, el manejo de las luces, persianas, etc.

Este nuevo sistema que engloba varios conceptos en uno, resulta de fácil

instalación y manejo, ya que se ha creado un interfaz gráfico amigable, tanto en la

aplicación cliente (dispositivo móvil) cómo en la servidora (PC).

Todo esto ha sido posible, gracias al uso de tecnologías tan actuales y punteras

como es el caso de la tecnología inalámbrica Bluetooth, la cual se va a utilizar para

llevar a cabo la comunicación entre el cliente y el servidor, y el ya conocido protocolo

domótico X10, el cual se va a utilizar para comunicarnos con los distintos dispositivos

del hogar, todas ellas cada día más cercanas y extendidas entre nosotros.

Además, el proyecto tiene un claro carácter innovador, ya que en la actualidad

no existe ninguna aplicación, que sea capaz de aunar conceptos como, el control de los

Page 5: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

iii

dispositivos del hogar y los medios multimedia almacenados en nuestro PC mediante el

protocolo X-10 y Bluetooth.

El proyecto consta de dos aplicaciones, X10 Media Client, la cual irá instalada

en el dispositivo móvil y formará la aplicación cliente, y X10 Media Server que,

instalada en el PC, formará la aplicación servidor.

Como se ha dicho anteriormente, el proyecto se divide en dos aplicaciones:

• Cliente � X10 Media Client: permite manejar de una forma clara y sencilla

los dispositivos X10 del hogar, tanto de manera independiente como

mediante modos pre-programados en el servidor y transmitidos al cliente que

permite aplicar a varios dispositivos distintas funciones de una vez, por

ejemplo, modo cine. También nos va a permitir manejar las los medios

multimedia almacenados el nuestro PC, con múltiples opciones que nos

facilitarán dicha tarea. A parte de los dos grandes módulos de los que consta

la aplicación cliente, tenemos otras funcionalidades a nivel de control del PC

que nos van a permitir un control total del mismo, como por ejemplo, el

apagado del PC desde el dispositivo móvil, abrir aplicaciones, control total

del ratón y envío de teclas para poder interactuar con otras aplicaciones.

• Servidor � X10 Media Server: es una herramienta capaz de ofrecer

servicios de sincronización para establecer una comunicación con un

dispositivo móvil, a través de la aplicación cliente. Permite, tanto mandar

Page 6: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

iv

información de los dispositivos X10 almacenados, modos, listas de

reproducción, opciones de configuración, etc. al dispositivo móvil, así como

recibir información de los comandos o peticiones a ejecutar en cada

momento.

Para la implementación del proyecto se ha optado por el uso del lenguaje de

programación Java, ya que es el más portable, y además, actualmente no hay ninguna

aplicación en este lenguaje, en la que se comunique un dispositivo móvil con un PC

dotándoles además de tantas funciones de control, dándole así un carácter innovador:

• X10 Media Client: basado en tecnología JAVA (plataforma J2ME). Éste

módulo presentará un interfaz muy intuitivo y fácil de manejar, adaptado a

las restricciones de los móviles.

• X10 Media Server: basado en tecnología JAVA (plataforma JAVA SE 6.0) y

en menos medida C, para tareas de bajo nivel, como es el caso del control

multimedia. En él recae la mayor parte del peso de la aplicación ya que es el

encargado de ejecutar las peticiones que le hace el cliente, además de

gestionar todos los dispositivos, modos y configuraciones necesarias para el

correcto funcionamiento del conjunto del proyecto.

Page 7: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

v

ABSTRACT

The Domotic Integral Control System through a Mobile Device, from now

SCDI-DM, is born of the necessity to integrate the home domotic control and the

multimedia control stored in the PC, in a mobile device.

This project, therefore, makes agile and simplifies many of the functions that we

can develop in the day to day of the home, and even can be helpful to those people that,

due to some discapacity, can be tedious activities to him like, the handling of the lights,

blinds, etc.

This new system that includes several concepts in one, is from easy installation

and handling, since a friendly graphical interface has been created, as much in the

application client (mobile device) how in the server (PC). All this has been possible,

thanks to the use of so present and sharpshooting technologies as it is the case of the

wireless technology Bluetooth, in which we are going away to support to carry out the

communication between the client and the server, and already known domotic protocol

X10, which we are going to use to communicate with the different devices from the

home, all of them every day nearer and extended between us.

In addition, project knows clearly innovating character, since at the present time

any application does not exist, that is able to combine concepts like, the control of the

home devices and the multimedia files stored in our PC by the protocol X-10 and

Bluetooth.

Page 8: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

vi

The project consists of two applications, X10 Media Client, which will go

installed in the mobile device and will form the client application, and X10 Media

Server that, installed in the PC, will form the server application.

Page 9: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

vii

ÍNDICE

1. INTRODUCCIÓN .................................................................................................. 1

1.1 ESTADO DEL ARTE......................................................................................................... 2

1.2 JUSTIFICACIÓN DEL PROYECTO .............................................................................. 13

1.3 ¿QUÉ ES X10 MEDIA HOME? ...................................................................................... 14

1.3.1 X10 MEDIA CLIENT ............................................................................................................. 15

1.3.2 X10 MEDIA SERVER ........................................................................................................... 15

1.4 ANÁLISIS DE ARQUITECTURAS PARA DISPOSITIVOS MÓVILES ...................... 16

1.5 ANÁLISIS DEL MERCADO ACTUAL DE SOFTWARE X10 .................................... 24

1.6 PLANIFICACIÓN ............................................................................................................ 28

1.7 PRESUPUESTO ............................................................................................................... 29 2. ARQUITECTURA DEL SISTEMA ................................................................... 30 3. ESTUDIO DE TECNOLOGÍAS ......................................................................... 37

3.1BLUETOOTH ................................................................................................................... 38

3.1.1 INTRODUCCIÓN ................................................................................................................... 38

3.1.2 ARQUITECTURA DE PROTOCOLOS ................................................................................. 42

3.1.3 PERFILES Y MODELOS DE USO BLUETOOTH ............................................................... 44

3.2 J2ME ................................................................................................................................. 57

3.2.1 INTRODUCCIÓN A J2ME ..................................................................................................... 57

3.2.2 MÁQUINAS VIRTUALES J2ME ......................................................................................... 59

3.2.3 API JSR-82 ............................................................................................................................. 62

3.3 X10.................................................................................................................................... 63 4. REQUISITOS ....................................................................................................... 76

4.1 OBJETIVOS FUNCIONALES ........................................................................................ 77

4.2 OBJETIVOS TECNOLÓGICOS ...................................................................................... 81

4.3 CASOS DE USO .............................................................................................................. 81

4.3.1 X10 MEDIA CLIENT ............................................................................................................. 85

4.3.2 X10 MEDIA SERVER ............................................................................................................ 86 5. DISEÑO ................................................................................................................. 87

5.1 DIAGRAMA DE LA ARQUITECTURA ........................................................................ 88

5.1.1 X10 MEDIA CLIENT ............................................................................................................. 88

5.1.2 X10 MEDIA SERVER ............................................................................................................ 93

5.2 MODELO DINÁMICO DETALLADO ........................................................................... 97

5.2.1 DIAGRAMAS DE COLABORACIÓN .................................................................................. 97

5.3 MODELO ESTRUCTURAL DETALLADO ................................................................. 100

5.3.1 X10 MEDIA CLIENT ........................................................................................................... 100

5.3.2 X10 MEDIA SERVER .......................................................................................................... 110 6. DISEÑO DE INTERFACES ............................................................................. 119

6.1 X10 MEDIA CLIENT .................................................................................................... 120

6.2 X10 MEDIA SERVER ................................................................................................... 126

Page 10: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

viii

7. IMPLEMENTACIÓN ........................................................................................ 132

7.1 PLATAFORMAS Y ENTORNOS DE DESARROLLO ............................................... 133

7.2 FUNCIONALIDADES MÁS IMPORTANTES ............................................................ 133

7.2.1 X10 MEDIA CLIENT ........................................................................................................... 133

7.2.2 X10 MEDIA SERVER .......................................................................................................... 136 8. IMPLANTACIÓN .............................................................................................. 151

8.1 ESTUDIO DE LAS TECNOLOGÍAS DE COMUNICACIÓN ..................................... 152

8.1.1 COMM ................................................................................................................................... 152

8.2 INSTALACIÓN DE X10 MEDIA HOME ..................................................................... 154

8.2.1 X10 MEDIA CLIENT ........................................................................................................... 154

8.2.2 X10 MEDIA SERVER .......................................................................................................... 155 9. CONCLUSIONES .............................................................................................. 163

9.1 PROYECTO DE INNOVACIÓN ................................................................................... 164

9.2 ANÁLISIS DE TECNOLOGÍAS, PROBLEMAS Y RESULTADOS ......................... 164

9.3 OTROS CAMPOS DE APLICACIÓN .......................................................................... 165

9.4 PROYECCIÓN DE FUTURO ........................................................................................ 167 10. BIBLIOGRAFÍA .................................................................................................. 169 11. ANEXOS ............................................................................................................... 172

11. MANUAL DE USUARIO .............................................................................................. 173

11.1 X10 MEDIA CLIENT ............................................................................................................ 173

11.2 X10 MEDIA SERVER ........................................................................................................... 178

Page 11: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

1

1. INTRODUCCIÓN

1.1 ESTADO DEL ARTE 1.2 JUSTIFICACIÓN DEL PROYECTO 1.3 ¿QUÉ ES X10 MEDIA HOME?

1.3.1 X10 MEDIA CLIENT 1.3.2 X10 MEDIA SERVER

1.4 ANÁLISIS DE ARQUITECTURAS PARA DISPOSITIVOS MÓVILES 1.5 ANÁLISIS DEL MERCADO ACTUAL DE TELEFONÍA MÓVIL

Page 12: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

2

1. INTRODUCCIÓN

1.1 ESTADO DEL ARTE PCRemote:

Funciones:

-Tarjeta de Tv (marca WinDVBlive y marca DScaler), maneja canales, volumen,

pantalla completa...

-WinAMP, play, pause, volumen, tres listas de reproducción...

-DVD (marca WinDVD), play, pause, FF, REV...

-Media Player (no el WMP9, el cutre que salió con windows95 mplayer2.exe), play,

volumen, pantalla completa...

-PowerPoint, puedes elegir tres presentaciones que tengas en el PC

-PC, volumen, muestra la hora y apaga

-También controla la flecha del ratón

Obviamente, el que no tenga este software (winAMP, Mediaplayer2,

winDVD...) este programa no le sirve para nada a excepción de para mover el ratón,

apagar y controlar el volumen del PC con el móvil.

Si no utilizamos algún programa de los que controla el PcRemote (winAMP,

Mediaplayer2, winDVD...), podemos utilizar su comando de on/off para arrancar

cualquier fichero que haya en nuestro PC (avi, mp3, MPEG, *.exe, *.bat...) con solo

Page 13: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

3

sustituir la línea "execute=C:\xxx\xxx\*.exe" que hay en cada sección del settings.ini

del PcRemote.

PuppetMaster:

Los programas que se muestran a continuación son los que están soportados por

defecto por PuppetMaster. Puedes configurar otros programas mediante el mapeo de

teclas usando Keymaps, VBScript o PuppetScript.

- iTunes

o Muestra el título de la canción, artista y tiempo.

o Explora listas de reproducción, canciones, artista, álbum, genero.

o Busca por canción.

o Play/pause, rewind, fast forward, volumen, anterior/siguiente canción.

- WinAMP

o Muestra título de la canción, artista y tiempo.

o Explora por canción y artista.

o Busca por canción.

o Play/pause, rewind, fast forward, change volume, previous/next track

o Soporte para Winamp Album Library

- Windows Media Player

o Play/pause, rewind, fast forward, change volume, previous/next track

- PowerPoint

Page 14: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

4

o Control de diapositivas.

o Play/stop presentación.

o Carga de documentos abiertos recientemente.

- Outlook

o Muestra nombre fichero, número de mensajes y número de mensajes sin

leer.

o Enviar/Recibir todo.

o Permite búsqueda por Emails.

o Permite creación de Emails.

o Permite selección de ficheros.

o Responder, mover o borrar Emails.

- Mouse mode

o Permite mover el cursos y hacer clic.

o Permite cambio entre aplicaciones.

- File Browser

o Permite buscar y abrir ficheros.

- System

o Cambiar el volumen del sistema.

o Iniciar salvapantallas.

o Bloquear ordenador.

o Apagar Windows.

o Reiniciar Windows

o Dormir el sistema.

o Hibernar el sistema.

Page 15: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

5

- Keymaps

o Acrobat Reader

o BSplayer

o IrfanView

o Media Player Classic

o Musicmatch Jukebox

o PowerDVD

o VLC Media Player

Capturas de pantalla:

• Modo ratón en Nokia 7610:

• Usando WinAMP en un Sony Ericsson

T68:

Page 16: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

6

• Menú principal y varias pantallas iTunes en un Nokia 3650:

• Menú principal en un Nokia 6230:

• Menú principal en un Siemens S65:

Page 17: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

7

• WinAMP y explorador de ficheros en un Siemens S65:

iTunes en un Motorola MPX 220:

Bemused:

Bemused es un control remoto para controlar el WinAmp instalado en tu PC

desde tu teléfono móvil, mediante una conexión Bluetooth.

Con él, podrás visualizar tu colección de música en tu móvil, reproducir

cualquier formato compatible con WinAmp, gobernar las reproducciones (play, pausa,

avanzar, retroceder, volumen, etc.), gestionar listas de reproducción e incluso descargar

canciones desde tu teléfono.

Page 18: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

8

En definitiva, Bemused es un revolucionario sistema de comunicación con el

que podrás, mediante una sencilla instalación, convertir tu teléfono móvil en un práctico

mando a distancia para controlar el WinAmp.

Requisitos mínimos de Bemused:

· S.O.: Symbian OS 7.0

· Nokia 3230

· Nokia 3600/3650

· Nokia 3620/3660

· Nokia 6260

· Nokia 6600/6620

· Nokia 6630

· Nokia 6670

· Nokia 6680/6681/6682

· Nokia 7610

· Nokia 7650

· Nokia N70

· Nokia N90

· Nokia N91

· Nokia N-Gage/QD

· Sendo X

· Siemens SX1

Page 19: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

9

· Panasonic X700/X800

· Samsung SGH-D730

Capturas de pantalla:

Best Mobile MouseAnyWhere

Best Mobile MouseAnyWhere es programa que te permitirá convertir tu teléfono

móvil en un práctico ratón inalámbrico.

Page 20: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

10

Con él, podrás mover el puntero del ratón a lo largo y ancho de la pantalla,

cambiar de diapositiva (en caso de presentaciones), subir o bajar el volumen de tu

reproductor, entre otras interesantes posibilidades.

Su puesta en marcha es muy sencilla. Instalas un pequeño programa en

Windows, ejecutas el programa y listo.

Requisitos mínimos de Best Mobile MouseAnyWhere:

· S.O.: Symbian OS 7.0

· Nokia 3230

· Nokia 3250

· Nokia 6260

· Nokia 6600

· Nokia 6620

· Nokia 6630

· Nokia 6670

· Nokia 6680/6681/6682

· Nokia 7610

· Nokia N70

· Nokia N80

· Nokia N90

· Nokia N91

· Panasonic X700

· Panasonic X800

Page 21: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

11

· Samsung SGH-D720

· Samsung SGH-D730

Capturas de pantalla:

PcControl

PcControl es una innovadora herramienta diseñada para controlar, desde tu

móvil Sony Ericsson, diferentes herramientas instaladas en tu PC, las funciones básicas

del reproductor WinAmp y el cursor del ratón.

Soporta conexiones por cable o de carácter inalámbrico mediante Bluetooth.

Desde su módulo para Windows podrás relacionar los botones de tu móvil con la

ejecución de aplicaciones, movimientos del ratón y personalizar los controles del

WinAmp (subir, bajar volumen, pasar canción, retroceder).

Page 22: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

12

Toda una solución para controlar remotamente diferentes funciones útiles de tu

PC.

Requisitos mínimos:

• Windows 98/ME/NT/2000/XP

• Móviles Sony Ericsson

Captura de pantalla:

Page 23: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

13

1.2 JUSTIFICACIÓN DEL PROYECTO

El proyecto a desarrollar fue elegido, en parte, por la incipiente intrusión de la

tecnología móvil en nuestra sociedad, y la intención de aportar nuevas funcionalidades

al uso de los mismos.

Se ha optado por la utilización de nuevas tecnologías, como es el caso Bluetooth,

que poco a poco se va asentando en el mercado, abriendo un gran abanico de

posibilidades debido a su flexibilidad de aplicación.

La realización de este proyecto surgió de la idea de querer desarrollar una

aplicación que utilizase una de las nuevas tecnologías inalámbricas, como es el caso de

Bluetooth, y su posterior implantación en un dispositivo móvil y la tecnología domótica

X10. Todo esto se quería implementar en el lenguaje de programación Java, ya que de

este modo podía ser implantado en un amplio número de dispositivos móviles.

El sistema puede incluso servir de ayuda a personas con movilidad reducida, las

cuales a través de un dispositivo móvil, podrían tener un control bastante amplio de los

elementos de su hogar: permiten conectar la caldera de calefacción a distancia; ahorrar

energía dando alimentación al lavavajillas, lavadora o secadora en el período de tarifa

nocturna; tener el café recién hecho al levantarnos por la mañana, tener la comida recién

cocinada al llegar de la oficina, controlar el riego, la depuradora de la piscina, apagar

desde nuestro dormitorio la televisión de los niños, contribuir a seguridad disuasoria

encendiendo equipos de radio o focos situados en el jardín....

Page 24: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

14

La idea de X10 Media Client y de X10 Media Server, surge de la intención

práctica del proyecto, es decir, un proyecto que aparte de realizar un estudio sobre estas

nuevas tecnologías, culminara con una aplicación útil.

El desarrollo de dos aplicaciones, una cliente y otra servidor, viene dado por la

intención de realizar un proyecto que abarcara todo el proceso de comunicación, tanto

en una aplicación cliente como en una servidor, ya que la implementación de esta última

en Java, suponía un reto debido a que no existe ningún API de Bluetooth para JAVA

SE.

1.3 ¿QUÉ ES X10 MEDIA HOME?

X10 Media Home es un sistema que engloba funcionalidades aplicadas al uso

doméstico como es el control de los dispositivos del hogar o el control de medios

almacenados en un PC.

Se descompone en dos aplicaciones, una cliente y una servidor: X10 Media Client y

X10 Media Server respectivamente.

Dentro de este sistema, por lo tanto, se engloban dos módulos:

• X10 Media Client: basado en tecnología JAVA (plataforma J2ME). Éste

módulo presentará un interfaz muy intuitivo y fácil de manejar, adaptado a

las restricciones de los móviles.

Page 25: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

15

• X10 Media Server: basado en tecnología JAVA (plataforma JAVA SE 6.0) y

en menos medida C, para tareas de bajo nivel. En él recae la mayor parte del

peso de la aplicación ya que es el encargado de ejecutar las peticiones que le

hace el cliente, además de gestionar todos los dispositivos, modos y

configuraciones necesarias para el correcto funcionamiento del conjunto del

proyecto.

1.3.1 X10 MEDIA CLIENT

Cliente � X10 Media Client: permite manejar de una forma clara y sencilla los

dispositivos X10 del hogar, tanto de manera independiente como mediante modos pre-

programados en el servidor y transmitidos al cliente que permite aplicar a varios

dispositivos distintas funciones de una vez, por ejemplo, modo cine. También nos va a

permitir manejar las los medios multimedia almacenados el nuestro PC, con múltiples

opciones que nos facilitarán dicha tarea. A parte de los dos grandes módulos de los que

consta la aplicación cliente, tenemos otras funcionalidades a nivel de control del PC que

nos van a permitir un control total del mismo, como por ejemplo, el apagado del PC

desde el dispositivo móvil, abrir aplicaciones, control total del ratón y envío de teclas

para poder interactuar con otras aplicaciones.

1.3.2 X10 MEDIA SERVER

Servidor � X10 Media Server: es una herramienta capaz de ofrecer servicios de

sincronización para establecer una comunicación con un dispositivo móvil, a través de

la aplicación cliente. Permite, tanto mandar información de los dispositivos X10

Page 26: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

16

almacenados, modos, listas de reproducción, opciones de configuración, etc. al

dispositivo móvil, así como recibir información de los comandos o peticiones a ejecutar

en cada momento.

1.4 ANÁLISIS DE ARQUITECTURAS PARA DISPOSITIVOS MÓVILES

El sistema operativo es el software principal que se instala sobre el hardware o

dispositivo; contiene instrucciones programadas que indican al micro-controlador que

hacer y sobre el que se instalan los programas que pueden ser aplicaciones finales o

sistemas que permiten desarrollar otros programas.

o La familia Windows

• Windows CE es el Sistema Operativo que Microsoft ha

desarrollado a partir de Windows 95, para dispositivos móviles, y

sirve de base para el desarrollo de los sistemas específicos de

cada dispositivo. Lo que los usuarios finales disfrutan, no es

Windows CE tal y como ha sido desarrollado. En cada tipo de

dispositivo se implementa, desde las posibilidades que permite la

versión de Windows CE disponible, una interfaz y las

funcionalidades requeridas. Así, el Pocket PC 2000, 2002 y 2003

se han desarrollado específicamente para los PDAs. Windows CE

nació como un sistema operativo de fácil programación, sólido,

transparente y que podía implantarse desde un ordenador a una

Page 27: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

17

lavadora, nevera, microondas incluso videoconsolas (DreamCast).

De hecho, se pensó en integrarlo en todo lo que no fuera un PC.

• Windows CE .NET, es la evolución de Windows CE 3.0 bajo la

filosofía distribuida de .NET. Es pues, un escenario de trabajo que

deberá ser adaptado a cada dispositivo. Esta nueva versión tiene

muchas ventajas, que pueden ser aplicadas a cada uno de los

sistemas operativos derivados. Según Microsoft, Windows CE

.NET, incorporará la posibilidad de manejar las conexiones

Bluetooth, Microsoft Internet Explorer 5.5, Windows Media 8 y

DirectX y será compatible con una amplio rango de procesadores

como Xscale, ARM, MIPS, SH o x86. Cada sistema operativo

derivado, tomará las propiedades que le competan. Para obtener

más información sobre esta familia de sistemas, véase el sitio de

Microsoft.

Los dispositivos PDA que disponen de Pocket PC son dispositivos con

una magnífica pantalla de 240 x 320 píxeles a todo color. Son muy potentes, con

procesadores de entre 133 y 206 MHz y 16 ó 32 Mb de RAM, por lo que son

capaces de reproducir vídeo o música y ejecutar aplicaciones multimedia con

gran rapidez. También disponen de altavoz y salida de audio para auriculares.

Además incluyen diversos tipos de ranuras o slots de expansión, que permiten

insertar tarjetas de diversos formatos (Multimedia, Compact Flash o PCMCIA)

para aumentar memoria o incorporar módems, discos duros, tarjetas de red, etc.

Page 28: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

18

o Palm OS

La primera versión fue desarrollada por el fabricante de los DCM Palm

para el modelo Pilot en 1996. Actualmente son muchos los fabricantes como

Oracle, Nokia, Handspring, Symbol y Sony que utilizan diversas variantes y

versiones de este Sistema Operativo que en conjunto representan el 66 % de

todos los sistemas instalados en computadores de mano. Según la filosofía de

Palm, se intenta tratar a la computación móvil no como versiones en miniatura

de los sistemas de sobremesa, sino como dispositivos y aplicaciones dedicados a

tareas y usos que tienen su propia identidad y reclaman sus propios recursos y

soluciones.

En los últimos años, la versión más extendida ha sido la 4.1 que entre sus

principales características, presenta el soporte "teórico" de 65.000 de colores así

como la gestión de tarjetas de memoria externa. Recientemente Palm Computing

se dividió en dos empresas distintas, una de hardware y otra de software, Palm

Source – la cual ha presentado Palm OS 5 que es realmente un sistema diferente

a los anteriores aunque esto se refiera más al funcionamiento interno que a lo

relativo a su utilización externa.

Para mantener la compatibilidad con la generación anterior del sistema

operativo, la nueva versión incluye un emulador llamado PACE que permite

ejecutar las más de 50.000 aplicaciones existentes. Además, cualquiera que sea

la norma considerada, WiFi LAN, Bluetooth, GSM/GPRS, o CDMA, el sistema

Page 29: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

19

Palm OS 5 integra las Apis necesarias. O sea, que los dispositivos equipados con

Palm OS 5 pueden comunicarse fácilmente con todos los dispositivos existentes

que estén basados en esas normas tales como teléfonos móviles, impresoras,

módems, etc. Las normas de seguridad incorporadas en el sistema, permiten que

las transacciones sean hechas de forma segura, considerando también, el uso de

firmas digitales homologadas. También ofrece servicios de encriptación para las

conexiones.

El sistema incluye asimismo un navegador para Internet, el Net Font que

suporta entre otras normas, HTML 4.01, XHTML, los GIFs animados, el modo

seguro de acceso a la red VPN (Virtual Private Network) y la interpretación de

código Java Script. Estas normas ya utilizadas en los sistemas de los

computadores de sobremesa se introducen por vez primera en los equipos de

mano.

En cuanto a los dispositivos que contiene Palm OS, la característica más

llamativa es su reducido tamaño y ligereza: pesan entre 120 y 170 gr., y son en

general más pequeños que los Pocket PC. Todos tienen una pantalla de 160x160

píxeles, normalmente monocroma. Usan procesadores de 16-33 MHz que son

suficientes para que el dispositivo funcione con rapidez, y disponen de 2 u 8 Mb

de memoria RAM.

Page 30: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

20

o Linux

LINUX es un sistema operativo compatible UNIX. Dos características

muy peculiares lo diferencian del resto de los sistemas más extendidos en el

mercado, la primera, es que es libre, esto significa que no hay costos por sus

licencias, la segunda, es que el sistema viene acompañado del código fuente.

LINUX se distribuye bajo la licencia pública del proyecto GNU que fue lanzado

en 1984 para desarrollar el Linux de libre distribución. El sistema ha sido

diseñado y programado por multitud de programadores alrededor del mundo. El

núcleo del sistema sigue en continuo desarrollo. En los últimos tiempos, ciertas

casas de software comercial han empezado a distribuir sus productos para Linux

y la presencia del mismo en empresas aumenta rápidamente por la excelente

relación calidad-precio que se consigue.

En los últimos años, algunos fabricantes de dispositivos móviles han

incorporado Linux a sus productos. Se están desarrollando versiones de

Embedded Linux que constituyen la tercera alternativa a Palm OS y Windows

CE para los computadores de mano. Así, LinuxDevices.com, ha creado una guía

de referencia para computadores de mano basados en Linux, con la que pretende

mantener actualizados de manera permanente los productos Linux para pequeños

dispositivos. Si bien el modelo Sharp Zaurus SL-5x00 fue el primer computador

de mano con Linux pre-instalado, hay actualmente versiones de Embbeded

Linux para casi todas las marcas.

Page 31: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

21

o Symbian OS (EPOC)

El sistema operativo de Psion se llama EPOC, nombre del núcleo del

antiguo sistema operativo de la Psion serie 3. Hasta 1997 Psion no comenzó a

licenciar el EPOC32, la versión de 32 bytes para la serie 5. Permite realizar

multitarea y pretende competir con Windows CE. El recibimiento fue frío y sólo

Philips mostró algo de interés. Pero Psion reaccionó y a mediados de 1998 creó

la alianza Symbian -junto con Ericsson, Nokia, Motorola y Matsushita- con el

propósito de hacer de EPOC un sistema operativo único. El premio de esta

apuesta es elevado: los 600 millones de usuarios de dispositivos móviles en año

2002.

Symbian es un sistema operativo abierto, está diseñado para los

requerimientos específicos de los teléfonos móviles de 2G, 2.5 y 3G. En las

versiones 6.X de este sistema se tiene soporte para desarrollo en C++, Java,

WAP, HTML.

El SO de Symbian es el sistema operativo estándar de la industria global

para los Smartphone, dirigido a los fabricantes del micro teléfono, que generan

entorno al 85% de las ventas totales mundiales de teléfonos móviles.

Page 32: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

22

Versiones actuales:

• OS v7.0s de Symbian: El OS v7.0s de Symbian es una

plataforma para el mercado 3G, ofreciendo nueva funcionalidad

para permitir la conformidad 3GPP y la entrega de los servicios

3G.

Las nuevas características de OS v7.0s de Symbian son:

- marco multi-roscado ligero de los multimedia

- ayuda para W-cdma

- Java MIDP 2.0

- ayuda para los contextos múltiples primario/secundario

PDP

- ayuda para el texto bidireccional (tailandés, árabe y

hebreo).

• OS v8.0 de Symbian: El OS v8.0 de Symbian es diseñado para

resolver las necesidades de los comerciantes del OS de Symbian,

de los operadores de red y de las empresas bajando el coste de la

estructura del teléfono del OS de Symbian, aumentando las

capacidades de Java y multimedia, así como funcionalidad

avanzada del dispositivo.

Page 33: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

23

• UIQ v3.0: UIQ es una plataforma para el interfaz de los

Smartphone basados en el OS de Symbian.

UIQ ofrece a usuarios que partidarios de la interacción y se

diseña para ofrecer el acceso fácil a la amplia variedad de

servicios de los datos en 2,5 y las redes 3G.

Los teléfonos basados UIQ son de gran alcance y dan el acceso a

los usos de la empresa, al e-mail, a los clips multimedia, así como

la gerencia de información personal. La excelente interacción y

las capacidades gráficas también proporcionan la ayuda para las

posibilidades avanzadas del juego.

UIQ ofrece a los fabricantes del teléfono móvil, una fundación

sólida, construyendo los dispositivos eficientes, atractivos y de

bajo coste. Se dan los derechos de modificar el UI para requisitos

particulares al ajuste del producto.

UIQ incluye la ayuda para los últimos estándares inalámbricos,

con un sistema de usos esenciales y bien integrados, permitiendo

la integración rápida del dispositivo. A través de la plataforma

abierta de UIQ, existe una multiplicidad de usos y los servicios

son ofrecidos por varias compañías de software.

Page 34: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

24

UIQ 3.0 UIQ 2.1

1.5 ANÁLISIS DEL MERCADO ACTUAL DE SOFTWARE X10 A continuación se va a mostrar el estudio llevado a cabo sobre el mercado actual

del software relacionado con los dispositivos X10:

Software ActiveHome

El software de domótica ActiveHome viene incluido con el interfaz. S110210 y

su utilización es sencilla e intuitiva, no requiere de conocimientos de programación, ni

tener un equipo hardware de última generación, con un 386 y 4 Mb de RAM puede

utilizarlo. Viene provisto de una pantalla gráfica donde rápidamente comprenderá el

manejo, ya que dispone de ejemplos pre-programados.

Para la programación de módulos al amanecer o al crepúsculo, puede elegir de la

lista, la zona geográfica. Programando de esta forma el apagado de la luz del porche al

amanecer, el cierre de persianas eléctricas al anochecer, para simulación de presencia,

etc. También puede programarse activar un determinado módulo (luz/aparato) en una

fecha concreta.

Page 35: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

25

La programación de Macros se realiza de la siguiente forma; Por ejemplo la

macro B1 (que podemos denominarla "Ambiente salón") hará que el módulo A1 se

apague (luz del techo del salón), el módulo A2 se encienda al 50 % (Halógenos del

mueble de mampostería), y que medio minuto más tarde comiencen a encenderse el

módulo A3 hasta alcanzar el 40 % (luces indirectas de los cuadros de la entrada). Y así

podemos programar en una sola macro las órdenes que nuestra imaginación llegue a

concebir para crear los ambientes deseados.

El software está en español, y todas las etiquetas y nombres de los módulos y

sistemas domóticos se pueden personalizar en cualquier idioma sin ningún problema.

Además su interfaz es totalmente gráfico por lo que su utilización resulta muy intuitiva.

Page 36: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

26

Power Home

El Power Home es un paquete de software para la automatización de la casa que

permite que controles la iluminación y aplicaciones caseras así como los dispositivos

infrarrojos. La iluminación y las aplicaciones son controladas vía el Insteon y los

reguladores siguientes X-10: PowerLinc V2 (USB y cuento por entregas), CM11A,

CM17A, MR26A, PowerLinc (cuento por entregas y USB), W800RF32, y CPU-

XA/Ocelot. El control infrarrojo se alcanza a través de los reguladores IR siguientes: El

círculo (telecontrol infrarrojo automatizado), Multi-CÍRCULO, RedRat2, RedRat3,

CPU-XA/Ocelot, USB-UIRT, y slink-e. Con el CPU-XA/Ocelot y los módulos

adicionales o el regulador de Velleman K8000 también tienes acceso a las entradas

digitales/a las salidas, las entradas análogas y las salidas análogas (K8000 solamente).

Con este interfaz programable, el control se alcanza vía teclado, ratón, email, X-10, el

reconocimiento IR, de voz, la mensajería de Windows.

Page 37: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

27

Características:

• Interfaz completamente programable con opción de idiomas. Puedes utilizar

scripting interno o cualquier lengua apoyada por el anfitrión de Windows

Script (por ejemplo: VBScript, JScript, etc.)

• Web server interno para el mando a distancia y supervisar. Apoya el

contenido dinámico definido por el usuario vía PSP (las páginas caseras del

servidor de la energía)

• Reconocimiento de voz.

• El servidor incorporado del WAP para el mando a distancia vía Internet.

Como conclusión, podemos afirmar que no se dispone de una amplia gama de

software de control de dispositivos X10, y los que existen, son en su mayoría para

control de los dispositivos desde el PC. Sin embargo, X10 Media Home, proporciona un

control total de los dispositivos tanto de forma local como remota a través de un

dispositivo móvil y para cualquier sistema operativo.

Page 38: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández IINF – ICAI – COMILLAS – PFC 06/07

28

1.6 PLANIFICACIÓN

OCTUBRE NOVIEMBRE DICIEMBRE ENERO FEBRERO MARZO ABRIL MAYO

INTRODUCCIÓN

ANÁLISIS DE

REQUERIMIENTOS

ANÁLISIS TECNOLÓGICO

DISEÑO DEL SISTEMA

DISEÑO DETALLADO

IMPLEMENTACIÓN Y PRUEBAS

DOCUMENTACIÓN

Planificación del proyecto.

Page 39: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

29

1.7 PRESUPUESTO

El desglose del presupuesto sería el siguiente:

Horas de análisis: 70 * 70 €/h = 4900 €

Horas de diseño: 60 * 60 €/h = 3600 €

Horas de programación: 230 * 55 €/h = 12650 €

Total = 21150 €

Page 40: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

30

2. ARQUITECTURA DEL SISTEMA

Page 41: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

31

2. ARQUITECTURA DEL SISTEMA

A continuación se van a identificar y definir las distintas alternativas que pueden

servir como soluciones viables para satisfacer los requisitos definidos y las necesidades

del usuario.

Las distintas alternativas, parten de una base común. Todas siguen una

arquitectura cliente-servidor, y esta nos va a proporcionar las ventajas de la arquitectura

basada en componentes, destacando:

• Función distribuida entre cliente y servidor.

• Interfaz de presentación gráfica.

• Reutilización de componentes, como los establecidos en este tipo de

arquitecturas orientadas a componentes.

Los componentes del nivel de presentación en el cliente podrán desarrollarse

diferentes lenguajes, aunque en este caso se desarrollara, tanto la aplicación cliente

como el servidor, en Java, utilizando para la parte cliente un desarrollo en la plataforma

J2ME y para la parte servidor un desarrollo en la plataforma de desarrollo JAVA SE.

Los elementos hardware y software comunes a las alternativas, son los

siguientes:

• Para la implantación de la aplicación cliente:

o Dispositivo móvil con Java: MIDP 2.0.

• Para la implantación de la aplicación servidora:

o Un PC con Java: JRE 6.0.

Page 42: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

32

• Hardware común: Bluetooth, dispositivos X10

Vamos a proponer dos alternativas que darían solución a los requisitos.

Únicamente difieren en la elección de la forma de comunicación: los protocolos a

seguir, el hardware adecuado…

Como queremos que la sincronización de los datos se realice a través de un

medio inalámbrico y libre, es decir, sin coste añadido por usar el medio, podemos elegir

entre una de estas dos alternativas:

1. Bluetooth.

2. Infrarrojos.

Atendiendo a los factores técnicos de cada alternativa, la elección del uso de

Bluetooth como medio de comunicación es mejor ya que proporciona mayor

independencia del sistema servidor, nos proporciona una mejor comunicación ya que el

dispositivo móvil puede estar en cualquier espacio físico siempre y cuando este dentro

del radio de alcance del PC que es bastante amplio para el fin que buscamos, mientras

que si se utiliza infrarrojos, deben estar en línea los dispositivos de infrarrojos de ambas

aplicaciones.

Desde el punto de vista de la implementación la elección de Bluetooth puede

resultar más tediosa.

Page 43: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

33

La viabilidad económica considera la inversión o gasto del proyecto:

• Coste de implantación:

o Los costes de desarrollo van a resultar prácticamente iguales ya

que se va a ser desarrollado por una única persona, y llevaría más

o menos las mismas horas de desarrollo de la aplicación.

o Los costes de puesta en marcha son similares.

o Costes de formación serian los mismos ya que se tratarían de

unas tecnologías nuevas para el desarrollo.

• Costes de adquisición de tecnología:

o En cuanto al coste hardware, podemos afirmar que sería un coste

parecido o incluso más barato el uso de la tecnología de

infrarrojos en el dispositivo móvil pero habría una gran diferencia

en el coste de adquisición del periférico de infrarrojos para el PC,

ya que en el mercado actual, el rápido crecimiento de la

tecnología inalámbrica Bluetooth, implica una gran competencia

y una caída de precios. Por lo que en conjunto la alternativa más

económica sería la adquisición de dispositivos Bluetooth.

Con los datos recogidos en la especificación de cada alternativa, y estudiadas las

diferentes soluciones, podemos afirmar que la alternativa de realizar la comunicación

mediante la tecnología Bluetooth, es más viable ya que la independencia entre

dispositivos aporta una facilidad de uso para el usuario final mucho mayor que la que

aportan los infrarrojos, aparte del punto de vista económico.

Page 44: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

34

A continuación vamos a comparar las distintas tecnologías para utilizarlo en el

sistema domótico.

Vamos a tratar dos criterios para valorar un sistema domótico: el de usuario y el

técnico:

• Criterios de usuario:

• Posibilidad de realizar preinstalación del sistema en la fase de

construcción de la vivienda.

• Facilidad de ampliación e incorporación de nuevas funciones.

• Simplicidad de uso.

• Grado de estandarización e implantación del sistema.

• Variedad de elementos de control y funcionalidades disponibles.

• Tipo de servicio posventa.

• Criterios técnicos:

• Tipo de arquitectura (topología si es distribuido o centralizado).

• Topología.

• Velocidad de transmisión.

• Medios de transmisión.

• Tipo de protocolo.

• Fabricación de elementos por terceras partes.

Existe una gran variedad de sistemas domóticos con diversas aplicaciones y en

constante evolución. Orientados a pequeñas construcciones o a grandes edificios,

sencillos y limitados, como así también expandibles y complicados. La forma clásica e

Page 45: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

35

intuitiva de clasificar los sistemas disponibles es la basada en el tipo de soporte (cable)

que utilizan para transmitir los datos de comunicación entre los dispositivos. De acuerdo

a este criterio, los sistemas más importantes hasta el momento se dividen en:

• Sistemas por bus de datos (utilizan una red de cableado especial).

• Sistemas por onda portadora (utilizan el cableado de electricidad de la

edificación).

Entre estos dos tipos de sistemas, hemos elegido un sistema por onda portadora

ya que no necesitamos una instalación aparte para su utilización sino que utilizamos el

propio cableado del edificio.

Conocida ya la alternativa a desarrollar, con los elementos hardware, software y

de comunicaciones a utilizar, se puede definir la arquitectura de los dos módulos

principales en los que se divide la aplicación, el cliente que será instalado en un

dispositivo móvil y el servidor que será instalado en un PC, sigue el siguiente gráfico de

alto nivel, el cual representa las características hardware y operativas que definen a la

arquitectura elegida:

Page 46: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

36

Arquitectura del sistema

Page 47: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

37

3.1 BLUETOOTH

3.1.1 INTODUCCIÓN 3.1.2 ARQUITECTURA DE PROTOCOLOS

3.1.2.1 PILA DE PROTOCOLOS 3.1.3 PERFILES Y MODELOS DE USO BLUETOOTH

3.2 J2ME

3.2.1 INTRODUCCIÓN A J2ME 3.2.2 MAQUINAS VIRTUALES J2ME 3.2.3 API JSR-82

3.3 X10

3. ESTUDIO DE TECNOLOGÍAS

Page 48: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

38

3. ESTUDIO DE TECNOLOGÍAS

3.1BLUETOOTH

Bluetooth es un estándar que identifica un conjunto de protocolos que facilitan la

comunicación inalámbrica entre diferentes tipos de dispositivos remotos. Su nombre se

debe al rey vikingo Harold Bluetooth (940 A.D. – 981 A.D.) reconocido por su facilidad

de comunicación.

3.1.1 INTRODUCCIÓN

Bluetooth surge de la necesidad de las grandes empresas de telecomunicaciones

e informática de crear un estándar de comunicación inalámbrica para suprimir los cables

de conexión.

Bluetooth es una transmisión de corto alcance por radiofrecuencia, capaz de

transmitir a través de objetos sólidos no metálicos. Transmiten con una potencia

nominal de salida de 0 dBm permitiendo un alcance de 10 metros en un ambiente libre

de obstáculos, pero haciendo uso de amplificadores de la transmisión de energía puede

alcanzar los 100 metros.

Opera en la banda libre de radio ISM1 a 2.4 GHz Soporta transmisiones de tres

canales de voz, video y datos a una velocidad máxima de 1 Mbps, aunque la velocidad

1 Industrial Scientific Medicine. Banda internacional médico-científica.

Page 49: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

39

real estará comprendida alrededor de los 721 Kbps, incluyendo un canal de retorno de

56 Kbps.

La banda ISM al no necesitar licencia, está abierta a cualquiera, por lo que debe

adaptarse a las pequeñas interferencias de otros aparatos. Este problema lo soluciona,

utilizando un sistema que busque la parte no utilizada del espectro o un sistema de salto

de frecuencia.

La técnica de salto de frecuencia es aplicada a una alta velocidad y una corta

longitud de los paquetes (1600 saltos/s). Divide la banda de frecuencia en varios canales

de salto, donde, los transceptores, durante la conexión van cambiando de uno a otro

canal de salto de manera seudo-aleatoria. Los paquetes de datos están protegidos por un

esquema ARQ2, en el que los paquetes perdidos son automáticamente retransmitidos.

Bluetooth utiliza un sistema FH/TDD3, en el que el canal queda dividido en

intervalos slots de 625 µs, donde cada salto de frecuencia es ocupado por un slot. Dos o

más unidades Bluetooth pueden compartir el mismo canal dentro de una piconet4.

Datagrama Bluetooth:

La información que se intercambia entre dos unidades Bluetooth se realiza

mediante un conjunto de slots que forman un paquete de datos.

2 Repetición automática de consulta. 3 Salto de frecuencia/división de tiempo duplex 4 Pequeña red que establecen automáticamente los terminales Bluetooth para comunicarse entre si

Page 50: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

40

Cada paquete comienza con un código de acceso de 72 bits, de la identidad

maestra, seguido de un paquete de datos de cabecera de 54 bits. Éste contiene

información de control, 3 bits de acceso de dirección, tipo de paquete, bits de control de

flujo, bits para la retransmisión automática de la pregunta, y chequeo de errores de

campos de cabecera. La dirección del dispositivo es en forma hexadecimal. Finalmente,

el paquete que contiene la información, que puede seguir al de la cabecera, tiene una

longitud de 0 a 2745 bits.

Cabecera de un datagrama Bluetooth.

Los receptores de la piconet comparan las señales que reciben con el código de

acceso, si éstas no coinciden, el paquete recibido no es considerado como válido en el

canal y el resto de su contenido es ignorado.

Además de los canales de datos, están habilitados tres canales de voz de 64

kbit/s por piconet. Las conexiones son uno a uno con un rango máximo de diez metros,

aunque utilizando amplificadores se puede llegar hasta los 100 metros, pero en este caso

se introduce alguna distorsión.

En la siguiente tabla se muestran de forma genérica las especificaciones de la

tecnología Bluetooth:

Page 51: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

41

Especificaciones

Banda de frecuencia 2.4 GHz

Potencia del transmisor 1 mW (0 dBm)

Tecnología RF Espectro Ensanchado por Secuencia Directa Híbrida y

Saltos en Frecuencia (FH-SS)

Velocidad de datos 721 Kbps por piconet

Rango esperado del sistema 10 metros. Extensión a 100 metros.

Nº máximo de dispositivos 8 por piconet. 10 piconets en un área de cobertura1

(scatternet)

Nº máximo canales de voz 3 por piconet

Nº máximo canales de datos 7 por piconet

Seguridad Sí, en la capa de enlace

Alimentación 2.7 Voltios

Consumo de potencia:

Sleep 30 µA

Hold 60 µA

Standby 300 µA

Transmitiendo 8 – 30 mA

Tamaño del módulo 0.5 pulgadas cuadradas (327.68 mm2)

Interferencias

Bluetooth minimiza la interferencia potencial al

emplear saltos rápidos en frecuencia de 1600 veces por

segundo

Especificaciones generales Bluetooth.

Page 52: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

42

3.1.2 ARQUITECTURA DE PROTOCOLOS

3.1.2.1 PILA DE PROTOCOLOS

Para conseguir esta interoperabilidad, las aplicaciones en dispositivos remotos

deben ejecutarse sobre una pila de protocolos idénticos.

En el siguiente esquema se muestra la pila de protocolos de la especificación:

Pila de protocolos Bluetooth.

Las aplicaciones no hacen uso de todos los protocolos que conforman la pila, y

algunas aplicaciones se ejecutan sobre una o más columnas de la pila.

Como se puede observar la pila completa se compone tanto de protocolos

específicos de Bluetooth (LMP y L2CAP) como de protocolos no específicos como son

OBEX (Objects Exchange Protocol), UDP (User Datagram Protocol), TCP, IP, etc. Esto

Page 53: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

43

es así porque el objetivo principal ha sido la maximizar el número de protocolos

existentes que se puedan reutilizar en las capas más altas para diferentes propósitos.

Esto hace que las diferentes aplicaciones comerciales que utilicen estos protocolos,

puedan interoperar con Bluetooth además de desarrollar con esta tecnología.

La pila de protocolos se puede dividir en cuatro capas lógicas. La división es la

siguiente:

Capa de protocolo Protocolos de la pila

Núcleo de Bluetooth BaseBand, LMP, L2CAP, SDP

Sustitución del cable RFCOMM

Control de Telefonía TCS Binary, AT-Commands

Protocolos adoptados PPP, UDP/TCP/IP, OBEX, WAP, vCard,

VCal, IRMC, WAE

Clasificación protocolos Bluetooth.

Page 54: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

44

3.1.3 PERFILES Y MODELOS DE USO BLUETOOTH

PERFILES

Hay cuatro perfiles generales que son ampliamente utilizados por todo tipo de

aplicaciones y que describiremos brevemente a continuación:

GAP: Generic Application Profile

Pila de protocolos GAP

El propósito de este perfil es describir el uso de las capas más bajas de la pila de

protocolos Bluetooth (LC y LMP), aunque también incluye la descripción de los

aspectos de seguridad necesarios y las capas de protocolos más altas (L2CAP,

RFCOMM, OBEX, etc.). Se trata del perfil más importante de todos los definidos por el

SIG ya que ha de ser implementado prácticamente por la totalidad de los dispositivos

Bluetooth, sea cual sea su aplicación.

Page 55: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

45

Se definen los siguientes papeles en el perfil:

• “A-Party”: se trata del dispositivo que inicia la búsqueda, en el caso del

establecimiento de enlace, o el iniciador en aquellos casos en los que ya está

establecido el enlace y hay que iniciar algún procedimiento.

• “B-Party”: se trata del dispositivo buscado en el establecimiento de enlace, o

el que acepta en el resto de procedimientos.

Este perfil maneja diferentes procedimientos entre dos dispositivos referentes al

descubrimiento y conexión tanto para el caso en que ninguno de los dos dispositivos

tenga establecido un enlace, como para aquellos casos en que uno de los dos tiene ya

establecido un enlace (posiblemente con un tercero: “C-Party”).

Procedimientos iniciados por un dispositivo (A) hacia otro (B)

que puede tener o no un enlace Bluetooth activo.

Page 56: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

46

En principio, un usuario Bluetooth debe ser capaz de conectar un dispositivo

Bluetooth a otro. Incluso si los dos dispositivos no comparten ninguna aplicación

común, esta conexión debe ser posible usando las capacidades básicas Bluetooth.

Cuando los dos dispositivos sí comparten la misma aplicación pero son de

diferentes fabricantes, la conexión entre ambos ha de ser posible aunque los nombres

dados a las capacidades básicas Bluetooth por cada fabricante sean diferentes, ya que

habrá que ejecutar una serie de procedimientos básicos que serán conocidos por ambos.

Este perfil define modos de operación genéricos que pueden ser usados por

diferentes perfiles que hagan referencia al GAP, y por dispositivos que implementen

múltiples perfiles. Así, el GAP define procedimientos generales para descubrir

identidades, nombres, capacidades básicas de otros dispositivos Bluetooth que estén en

un modo operativo y cómo intercambiar las claves de enlace entre dispositivos.

SPP: Serial Port Profile

La siguiente figura muestra los protocolos y entidades usados en este perfil.

Modelo de protocolos SPP

Page 57: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

47

La capa de emulación de puerto es la entidad encargada de simular el puerto

serie y de proporcionar un API a las aplicaciones que corren por encima. Dichas

aplicaciones A y B en ambos extremos son las típicas aplicaciones que se comunican

sobre un cable serie (y que en este caso se va a emular). A continuación mostramos una

posible configuración de dispositivos para este perfil:

Ejemplo SPP con dos notebooks.

Se definen los siguientes papeles en el perfil:

• Dispositivo A (DevA): se trata del dispositivo que toma la iniciativa para

conectarse a otro dispositivo. El nombre técnico que se le da es iniciador.

• Dispositivo B (DevB): dispositivo que espera que otro tome la iniciativa de

la conexión. Su nombre técnico es aceptante.

Si quisiéramos establecer una correspondencia entre SPP y una arquitectura de

puerto serie convencional, tanto el dispositivo A como el B pueden ser un DCE5 o un

DTE6, ya que el protocolo RFCOMM ha sido diseñado para ser independiente de las

relaciones DTE-DCE o DTE-DTE.

5 Data Circuit Endpoint

Page 58: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

48

El escenario que cubre este perfil es el siguiente: establecimiento de puertos

serie virtuales (o equivalentes) sobre dos dispositivos (por ejemplo, dos PCs) y

conectarlos mediante Bluetooth realizando por tanto una emulación del cable serie entre

ambos dispositivos.

El perfil sólo soporta paquetes de slot único, lo que limita el régimen de datos a

128 Kbps, y permite únicamente configuraciones punto a punto. Sin embargo, es

posible tener múltiples ejecuciones de este perfil en el mismo dispositivo. Aspectos de

seguridad, como la autorización y autenticación son obligatorios, mientras que los

procedimientos de cifrado son opcionales. En cuanto a los papeles de maestro y esclavo

no son fijos, es decir, permite el intercambio de papeles en un dispositivo. El protocolo

RFCOMM es usado para el transporte de los datos, señales módem de control y

comandos de configuración.

SDAP: Service Discovery Application Profile

La siguiente figura muestra los protocolos y entidades usados en este perfil:

Pila de protocolos SDAP.

6 Data Terminal Endpoint

Page 59: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

49

Se definen los siguientes papeles en el perfil:

• Dispositivo local (LocDev): dispositivo que inicializa el procedimiento de

descubrimiento de servicio. Debe contener al menos la entidad cliente de la

arquitectura Bluetooth SDP. Además, posee una aplicación de

descubrimiento de servicios (SrvDscApp) usada por el usuario para iniciar

los descubrimientos y visualizar los resultados obtenidos y una entidad

BT_module_Cntrl que tiene como misión comunicarse con el protocolo

BaseBand y dar diferentes órdenes de búsqueda cuando el dispositivo entra

en diferentes modos de operación.

• Dispositivo(s) remoto(s) (RemDev(s)): cualquier dispositivo que participa en

el proceso de descubrimiento de servicios respondiendo a las preguntas de

servicio generadas por un dispositivo local. Debe contener al menos la

entidad servidor de la arquitectura Bluetooth SDP. Posee una base de datos

de información relacionada con los servicios, la cual es consultada para crear

las respuestas a las peticiones de descubrimiento de servicio.

El papel de dispositivo local o remoto no es permanente ni exclusivo. Un

dispositivo remoto puede tener instalada una aplicación SrvDscApp, al igual que puede

poseer una entidad cliente, y viceversa. Así, un dispositivo puede ser un dispositivo

local para una transacción SDP concreta a la vez que es un dispositivo remoto para otra

transacción SDP.

Page 60: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

50

La siguiente figura muestra un ejemplo SDAP: un dispositivo local (notebook)

realizando petición de servicios entre un conjunto de dispositivos remotos.

Ejemplo de aplicación SDAP.

Los escenarios que cubre este perfil son:

• Búsqueda de servicios por clase de servicio.

• Búsqueda de servicios por atributos de servicio.

• Navegación de servicios.

Los dos primeros casos representan la búsqueda de servicios específicos,

mientras que en el último, trata de una búsqueda genérica de servicios, es decir, ver qué

servicios están disponibles.

Antes de que dos dispositivos equipados con Bluetooth se puedan comunicar en

este perfil es necesario que se realicen las siguientes acciones:

• Los dispositivos necesitan ser inicializados. La inicialización puede requerir

la introducción de un PIN para crear una clave de enlace, para la

autorización y el cifrado de los datos.

Page 61: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

51

• Se tiene que crear un enlace Bluetooth, lo cual puede requerir el

descubrimiento de la dirección BD_ADDR de otro dispositivo a través de los

procedimientos de búsqueda y pregunta.

El descubrimiento de servicios puede ser iniciado tanto por un maestro como por

un esclavo de la piconet. Además, un esclavo en una piconet puede iniciar el

descubrimiento de servicios en una nueva piconet, en el caso de que el maestro de la

piconet original indique que no está disponible.

GOEP: Generic Object Exchange Profile

La siguiente figura muestra los protocolos y entidades usados en este perfil.

Pila de protocolos GOEP

La capa de aplicación cliente es la entidad encargada de enviar y recuperar los

objetos de datos del servidor mediante operaciones OBEX. La aplicación servidora

realiza el almacenamiento de datos y responde a las peticiones del cliente.

Page 62: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

52

Se definen los siguientes papeles en el perfil:

• Servidor: se trata del dispositivo que proporciona intercambio de objetos

con el dispositivo cliente.

• Cliente: dispositivo que introduce objetos (pushing) en el servidor o los saca

(pulling).

Los escenarios cubiertos por este perfil son:

• El cliente pide al servidor la introducción de objetos.

• El cliente pide al servidor la recuperación de objetos.

Los requisitos del perfil son:

a) Antes de que un servidor sea usado con un cliente por primera vez, se debe

realizar un procedimiento de intercambio de claves. El uso concreto de este

procedimiento depende de los perfiles de aplicación. Generalmente se trata

de introducir un código PIN Bluetooth en los teclados de los dispositivos

cliente y servidor.

b) También se debe realizar un procedimiento de inicialización OBEX antes de

usar el servidor por primera vez.

c) La seguridad se puede conseguir mediante la autenticación de a la otra parte

durante el establecimiento de la conexión y mediante el cifrado de todos los

datos de usuario en el nivel de enlace, para lo cual la autenticación y el

cifrado deberán ser soportados por todos los dispositivos.

Page 63: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

53

d) El establecimiento de enlace y canal debe realizarse de acuerdo a los

procedimientos definidos en el GAP.

e) No hay papeles fijos para el maestro y esclavos.

f) Este perfil no requiere el uso de los modos de bajo consumo.

Hay que tener en cuenta las restricciones:

a) Para el dispositivo que contenga al servidor, puede que el usuario tenga que

ponerlo en modo de conexión o descubrimiento cuando los procedimientos

de establecimiento de enlace y pregunta se están procesando en el cliente.

b) El perfil soporta únicamente configuraciones punto a punto, por lo que el

servidor sólo puede ofrecer sus servicios a un cliente a la vez.

MODELOS DE USO BLUETOOTH

A continuación se realiza una breve descripción de algunos ejemplos de modelos

de uso Bluetooth.

Transferencia de ficheros

Este modelo de uso nos ofrece la capacidad de poder transferir objetos de datos

de un dispositivo a otro (PCs, PDAs, smart-phones, etc.). Los tipos de los objetos

incluyen ficheros .xls, .ppt, .wav, .jpg, .doc, directorios completos, tarjetas de negocios

(cuyo formato está especificado con vCard), aunque en el futuro se espera poder

aumentar el número de formatos de fichero que se puedan transferir. Además, se ofrece

Page 64: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

54

la posibilidad de navegar por los contenidos de diferentes carpetas en un dispositivo

remoto. Para la implementación de este modelo de uso se emplean los siguientes

perfiles:

• Perfil de transferencia de ficheros (file transfer & browsing)

• Perfil de introducción de objetos (object push)

En la siguiente figura se presenta la pila de protocolos necesaria para este

modelo de uso, destacando el uso del protocolo OBEX de intercambio de objetos,

básico para esta aplicación.

Pila de protocolos para aplicaciones de transferencia de ficheros.

Internet bridge

Gracias a este modelo de uso, los teléfonos móviles o módems inalámbricos

pueden actuar como el módem de un PC, proporcionando capacidades de fax y

establecimiento de llamadas en red sin necesidad de conexiones físicas al PC. En la

Page 65: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

55

siguiente figura se muestra la pila de protocolos necesaria para el establecimiento de

llamada. Por un lado, los comandos AT son necesarios para controlar el teléfono móvil

o el módem, y por otro, es necesaria otra pila, PPP sobre RFCOMM por ejemplo, para

transferir los datos de pago.

Pila protocolos para Internet Bridge.

En el caso del fax, la pila de protocolos es muy similar pero PPP y los protocolos

de red sobre PPP no se usan y el software de aplicación envía un facsímile directamente

sobre RFCOMM.

Acceso a una LAN

En este modelo de uso, los DTs7 usan un punto de acceso LAN (LAP)

inalámbrico como conexión a la red de área local. Una vez conectados, los DTs operan

como si ellos estuvieran conectados a la LAN con una conexión telefónica de red. Así,

los DTs pueden acceder a todos los servicios proporcionados por la LAN. La pila de

7 terminales de múltiples datos

Page 66: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

56

protocolos es muy similar a la del modelo de uso de Internet Bridge exceptuando que no

se emplean los comandos AT.

Pila de protocolos para acceso a LAN.

Sincronización

Este modelo de uso proporciona una sincronización dispositivo-dispositivo de la

información PIM8, típicamente agendas de teléfonos, calendarios, mensajes, pequeñas

anotaciones. La sincronización requiere que la información de tarjetas, calendarios y

tareas sea transferida y procesada por ordenadores, teléfonos celulares y PDAs usando

protocolos comunes e igual formato. A continuación se muestra la pila de protocolos:

8 Personal Information Management

Page 67: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

57

Pila de protocolos para sincronización.

3.2 J2ME

3.2.1 INTRODUCCIÓN A J2ME

Es una versión de Java orientada a dispositivos electrónicos con capacidades

computacionales y graficas muy reducidas, como teléfonos móviles, PDAs o

electrodomésticos. La maquina virtual es la KVM9, que solo necesita unos Kilobytes de

memoria para funcionar, en vez de la JVM10.

9 Kilo Virtual Machine. 10 Java Virtual Machine.

Page 68: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

58

Arquitectura de la plataforma Java Sun

Java no es un simple lenguaje de programación, sino un conjunto de tecnologías que

abarca a todos los ámbitos de la computación, con dos elementos comunes:

• El código intermedio es interpretado por la Virtual Machina

• Todas las tecnologías comparten una serie de APIs básicas como la java.lang y

java.io.

J2ME contiene una parte reducida de las APIs que contiene JAVA SE, debido a que

estas ocupan alrededor de 20 Mb. Utiliza 37 clases de los paquetes java.lang, java.io y

java.util, de la plataforma JAVA SE, que forman parte de la llamada configuración.

Relación entre las APIs de las plataformas Java

Page 69: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

59

3.2.2 MÁQUINAS VIRTUALES J2ME

La máquina virtual es la encargada de interpretar código intermedio (bytecode) de las

aplicaciones Java precompiladas a código máquina ejecutable por la plataforma, efectuando

llamadas al SO. Proporciona independencia de la plataforma con respecto al hardware y al

SO.

J2ME define varias VMs, adecuándose a los distintos dispositivos según sus exigencias.

Existen dos configuraciones CLDC y CDC, cada una de ellas con características propias

por lo que cada una requiere su propia maquina virtual. La configuración CLDC se denomina

KVM y la de la configuración CDC se denomina CVM. Entraremos a ver en profundidad la

KVM que es la que se va a utilizar.

Entorno de ejecución.

Page 70: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

60

KVM

Arquitectura MIDP/CLDC/KVM

Es maquina virtual más pequeña desarrollada por Sun. Ocupa entre 40Kb y 80Kb. Está

orientada a dispositivos con bajas capacidades computacionales y de memoria. Esta escrita en

lenguaje C en unas 24000 líneas de código.

Limitaciones respecto a la JVM, no existen:

• Tipos en coma flotante, es decir no existe double ni float. Es debido al

que el hardware de los dispositivos no lo soportan.

• Soporte JNI11 debido a los recursos limitados de memoria.

• class loaders12 definidos por el usuario, sólo predefinidos.

• Hilos deamon13.

• Finalización de instancias de clases. Método Object.finalize().

11 Java Native Interface. 12 cargadores de clase. 13 grupos de hilos.

Page 71: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

61

• Referencias débiles14.

• Limitación de excepciones debido a las APIs.

• Reflexión15.

A parte de los citados, la verificación de clases tampoco está incluida ya que es

demasiado grande para la KVM, incluso más grande que esta y un consumo de memoria

excesivo (100Kb para aplicaciones típicas). Tiene como función de rechazar las clases no

válidas en tiempo de ejecución.

Los dispositivos con CLDC y KVM tienen un algoritmo de verificación de clases en

dos pasos:

Pre verificación de clases en CDLC/KVM.

14 Un objeto que está siendo apuntado mediante una referencia débil es un candidato para la recolección de basura. Estas referencias están permitidas en JAVA SE, pero no en J2ME. 15 La reflexión es el mecanismo por el cual los objetos pueden obtener información de otros objetos en tiempo de ejecución como, por ejemplo, los archivos de clases cargados o sus campos y métodos.

Page 72: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

62

3.2.3 API JSR-82

Este API está dividida en dos partes: el paquete javax.bluetooth y el paquete

javax.obex.

Los dos paquetes son totalmente independientes. El primero de ellos define

clases e interfaces básicas para el descubrimiento de dispositivos, descubrimiento de

servicios, conexión y comunicación. La comunicación a través de javax.bluetooth es a

bajo nivel: mediante flujos de datos o mediante la transmisión de arrays de bytes.

Por el contrario el paquete javax.obex permite manejar el protocolo de alto nivel OBEX

(OBject EXchange). Este protocolo es muy similar a HTTP y es utilizado sobre todo

para el intercambio de archivos. El protocolo OBEX es un estándar desarrollado por

IrDA y es utilizado también sobre otras tecnologías inalámbricas distintas de Bluetooth.

La plataforma principal de desarrollo del API JSR-82 es J2ME. El API ha sido

diseñado para depender de la configuración CLDC. Sin embargo existen

implementaciones para poder hacer uso de este API en JAVA SE.

El paquete javax.bluetooth

En una comunicación Bluetooth existe un dispositivo que ofrece un servicio

(servidor) y otros dispositivos acceden a él (clientes). Dependiendo de qué parte de la

comunicación debamos programar deberemos realizar una serie de acciones diferentes.

Page 73: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

63

Un cliente Bluetooth deberá realizar las siguientes:

• Búsqueda de dispositivos. La aplicación realizará una búsqueda de los

dispositivos Bluetooth a su alcance que estén en modo conectable.

• Búsqueda de servicios. La aplicación realizará una búsqueda de servicios

por cada dispositivo.

• Establecimiento de la conexión. Una vez encontrado un dispositivo que

ofrece el servicio deseado nos conectaremos a él.

• Comunicación. Ya establecida la conexión podremos leer y escribir en

ella.

Por otro lado, un servidor Bluetooth deberá hacer las siguientes operaciones:

• Crear una conexión servidora

• Especificar los atributos de servicio

• Abrir las conexiones clientes

3.3 X10

Entre 1.976 y 1.978 se desarrolló la tecnología X-10 en Glenrothes, Escocia,

por ingenieros de la empresa Pico Electronics Ltd.; en la actualidad se distribuye X-10

en los cinco continentes, siendo su principal mercado USA. Durante los últimos 15 años

se han vendido más de 150 millones de equipos X-10,

Page 74: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

64

Desde que empezó su comercialización en 1.978, millones de instalaciones en

todo el mundo avalan este sistema técnicamente conocido por "Power Line Carrier", su

funcionamiento se basa en la utilización de la red eléctrica existente en cualquier tipo de

edificio, ya sea casa u oficina, como medio físico para la comunicación interna de los

distintos componentes del sistema domótico.

Sus más de 25 años de experiencia, con millares de instalaciones realizadas en

España, la multitud de fabricantes que asegura una amplia gama de productos,

continuidad de la tecnología y el importante hecho de no tener que realizar obras de

infraestructura para cableados especiales, son suficientes motivos para que se

recomiende este hermano menor de la domótica para apartamentos, oficinas y locales,

tanto de nueva como de antigua construcción.

Pero además, combinando múltiples productos de dilatada y probada

experiencia, se puede lograr un sistema domótico de altas prestaciones y baja inversión.

Su instalación y configuración es tan sencilla que el propio usuario puede configurar las

aplicaciones que desee en cada momento entre una amplio abanico de funciones.

Gracias a la flexibilidad que supone el ser un sistema escalable, resulta todo un

interesante y nuevo mundo de bricolaje tanto en seguridad doméstica como en confort,

ahorro energético, comunicación e incluso ocio, pudiendo manejar a distancia el DVD,

las fotos, vídeos y canciones mp3 almacenadas en nuestro PC para visionarlas en el

home cinema de nuestro salón.

Page 75: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

65

Conceptos de un sistema domótico básico

Un sistema domótico, en su versión puramente electrónica, es cualquier solución

que permita el control de sistemas instalados en el hogar. En su concepto más básico y

elemental permite la gestión integrada de persianas, toldos, cortinas, electroválvulas

motorizadas en dos sentidos de actuación, luces, equipos electrónicos (aparatos de radio,

electroválvulas, calderas de calefacción, cafeteras, ...) cuya actuación sea

encendido/apagado....

En un sentido más amplio de domótica, el sistema se integra con Seguridad

Técnica: protección contra fugas de agua, gas, concentraciones dañinas de emisiones

naturales de gases (como es el caso del granito), o artificiales como es el caso de CO por

ejemplo en garajes; detección de humo y fuego. Seguridad contra intrusión.

Teleasistencia. Control de calefacción. Sistemas de Ocio como la televisión, el vídeo,

los canales parabólicos e incluso el control del PC con su DVD y sus fotos, vídeos y

música digitales.

Page 76: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

66

De esta forma el sistema domótico puede crecer indefinidamente integrando

sistemas especialmente diseñados para su función específica pero que tras un correcto

análisis, se pueden integrar en el conjunto formando un sistema amigable y no

sofisticado que facilita el día a día y evita la dispersión tecnológica, en continuo

aumento, que sufren nuestros hogares.

Prestaciones de un sistema domótico

o Seguridad: mediante el sistema usted podrá realizar simulaciones de presencia

en su vivienda, así como si provee de detectores de intrusión, movimiento, fuga

de agua entre otros, el sistema mediante una centralita pueda dar aviso a una

central de alarmas o bien a teléfonos particulares programados en caso de que

haya una intrusión o alguna avería técnica en su vivienda, además de poder

conocer el estado de la vivienda desde cualquier lugar del mundo.

o Confort: mediante la administración de estos dispositivos usted podrá actuar

sobre ellos desde sus propios pulsadores o si lo prefiere para mayor comodidad

mediante mandos a distancia podrá controlar todos los dispositivos ya sea luces,

persianas o bien electrodomésticos, desde una mismo sitio, además según el

mando de su elección puede configurarlo de tal forma que con un solo mando

usted pueda, por ejemplo, controlar el sistema de luces de encendido, apagado o

manejar la intensidad de dicha luz y que este mismo mando le sirva para actuar

sobre el televisor para cambiar los canales o actuar sobre el DVD , sin

necesidad de cambiar de mando.

Page 77: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

67

o Ahorro Energético: puede adecuar el sistema para que a determinadas horas

ponga en funcionamiento algún tipo de elemento o que encienda o apague las

luces según usted lo crea necesario, de esta forma habrá un aumento de ahorro

eléctrico; por ejemplo: si usted sale de su vivienda y desea que al regreso su

vivienda esté con una temperatura agradable, ya no es necesario que al salir deje

la calefacción funcionando, sólo necesitaría realizar una llamada telefónica antes

de su regreso para poner en marcha la calefacción.

Elementos que componen un sistema domótico

Cualquier sistema domótico está compuesto de los siguientes elementos:

o Controladores: Son los que permiten actuar sobre el sistema, bien de una forma

automática por decisión tomada por centrales domóticas previamente

programadas (que incluso puede ser un PC), pulsadores, teclados, pantallas

táctiles o no, mandos a distancia por infrarrojos IR (locales), por radiofrecuencia

RF (hasta 50 metros), por teléfono, SMS o por PC (de forma local e incluso a

través de Internet). Estos elementos emiten órdenes que necesitan un medio de

transmisión

o Medio de transmisión: Según la tecnología aplicada existen distintos medios,

fibra óptica, bus dedicado, red eléctrica, línea telefónica, TCP/IP, por el aire.

o Actuadores reciben las órdenes y las transforman en señales de aviso, regulación

o conmutación. Los actuadores ejercen acciones sobre los elementos a controlar

en el hogar.

Page 78: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

68

o Sensores: Son los "ojos del sistema", o "la adquisición de datos" del sistema,

pueden ser todo lo sofisticados que queramos, lo necesario es que lo pueda

entender el sistema. Estos datos pueden ser órdenes directas a los Actuadores o

pueden ir previamente a una central domótica, en función de la programación en

ella introducida saldrá la orden final al Actuador correspondiente. Ejemplos de

sensores son los detectores de fuga de agua, de gas, de humo y/o fuego, de

concentración de CO, de movimiento o intrusión, los termostatos.

o Elementos externos. Los elementos y/o sistemas instalados en el hogar que son

controlados por el sistema domótico.

El medio de transmisión en el sistema X-10 es la red eléctrica de 230 V de la

vivienda; en una instalación monofásica, las órdenes se propagan en todas direcciones

pasando incluso por los magneto térmicos. La red eléctrica para X-10 sería el

equivalente al Bus de otros sistemas como EIB o LonWorks, claro está, salvando las

distancias.

A continuación le presentaremos un esquema básico de una instalación X-10, la cual

le puede aclarar dudas sobre los beneficios y comodidades que le puede brindar este

sistema, además podrá observar algunas de las aplicaciones que se pueden realizar en su

hogar.

Page 79: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

69

Page 80: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

70

Cómo se transmiten las órdenes X-10 por la red eléctrica

El sistema X-10 es un estándar de Transmisión a través de corriente portadora, el

cual permite conectar dispositivos a su red eléctrica, persianas, luces, toldos y demás

equipos que utilicen una alimentación de 220 V, para ser administrados mediante

equipos compatibles con esta tecnología.

El protocolo está formado de tal forma que la señal portadora es captada por

cualquier modulo receptor conectado a la línea de alimentación eléctrica, traduciéndose

en un evento ON, Off, DIM.

El sistema X-10 utiliza la señal senoidal de 50 HZ de la vivienda para que

transporte las señales X-10. La técnica se denomina de "corrientes portadoras" (Power

Line Carrier).

No es el único sistema domótico que utiliza esta técnica, EHS de Fagor o X2D

de Delta Dore utilizan la misma técnica con parámetros y protocolos distintos, incluso

EIB (Power Line EIB) hizo un intento que no debió tener éxito dada la escasa

comercialización de los productos. Otro dato de interés es que ya existe un hotel en

España que utiliza la técnica de corrientes portadoras para ofrecer Internet a sus clientes.

El protocolo de modulación X-10 exige unas normas, que siguen todos los

fabricantes de productos X-10 para lograr una correcta estandarización, de este modo

todos los productos de los distintos fabricantes son compatibles e intercambiables. Entre

los fabricantes más conocidos podemos citar: Leviton Manufacturing Co., General

Electric, C&K Systems, Honeywell, Busch Jaeger, Ademco, DSC, IBM y un largo etc.

Page 81: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

71

Para modular la señal de 50 Hz europea (en USA es de 60 HZ) el transmisor

utiliza un oscilador opto acoplado que vigila el paso por cero de la señal senoidal.

Se puede insertar la señal X-10 en el semiciclo positivo o en el negativo de la

onda senoidal. La codificación de un bit 1 o de un bit 0, depende de cómo se inyecte

esta señal en los dos semiciclos. Un 1 binario se representa por un pulso de 120 KHz

durante 1 milisegundo y el 0 binario se representa por la ausencia de ese pulso de 120

KHz. En un sistema trifásico el pulso de 1 milisegundo se transmite con el paso cero

para cada una de las tres fases.

Por lo tanto, el Tiempo de Bit coincide con los 20 msg que dura el ciclo de la

señal, de forma que la velocidad binaria de 50 bps viene impuesta por la frecuencia de

la red eléctrica que tenemos en Europa. En Estados Unidos la velocidad binaria son 60

bps.

La transmisión completa de una orden X-10 necesita once ciclos de corriente

alterna. Esta trama se divide en tres campos de información: los dos primeros

representan el código de inicio, los cuatro siguiente el código de casa (Letras A - P), y

los cinco últimos código numérico (1 - 16) o bien el código función (encendido,

apagado, aumento o disminución de intensidad).

Page 82: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

72

Para aumentar la fiabilidad del sistema, esta trama (Código de Inicio, Código de

Casa y Código de Función o Numérico) se transmite siempre dos veces, separándolas

por tres ciclos completos de corriente. Hay una excepción, en funciones de regulación

de intensidad, se transmiten de forma continuada (por lo menos dos veces) sin

separación entre tramas.

En definitiva este protocolo básico X-10, decimos básico puesto que existe uno

extendido que hasta solicita petición de estado a los módulos actuadores, alerta al

sistema con los bits de inicio, con los códigos de Casa y Numérico dice a quien va

dirigida la orden y, con los bits de función, la acción que debe ejecutar.

Cómo se configuran los módulos X-10

o Actuadores:

• Módulos de Aparato o de Potencia. Para el encendido/apagado de

equipos.

• Módulos de Iluminación. Para el control de luces con variación de su

intensidad de iluminación (dimmer).

• Módulos de Persiana. Para regular el movimiento de persianas, cortinas,

toldos, válvulas motorizadas con movimiento en dos direcciones...

o Sensores:

• Sensores no X-10 adaptados mediante transmisor universal X-10.

Detectores de humo y fuego, detectores de rotura de cristal, de apertura

de puertas y ventana, de fuga de gas y agua, termostatos

convencionales...

Page 83: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

73

• Sensor de presencia X-10 por RF con sensibilidad de luz.

• Termostato X-10.

o Controladores:

• Miniprogramador. Programación horaria, simulación de presencia,

teclado

• Mandos a distancia multimedia por RF. Domótica + Mando universal.

• Mandos RF de X-10.

• Programador PC + Software ActiveHome. Macros, programación

horaria, simulación de presencia....

También hablaremos de los filtros X-10 y de cómo acoplar una instalación

trifásica.

Cualquier módulo X-10 se configura asignándole un Código de Casa y un

Código Numérico.

Los equipos X-10 poseen dos ruedas las cuales son utilizadas para la

configuración en la red eléctrica, la primera es de color rojo esta representa el código de

la casa y está identificada con las letras desde la A hasta la P y la segunda marcada de

Page 84: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

74

color negro representa el numero del modulo o numérico que corresponde a dicho

dispositivo, usted puede realizar todas las combinaciones posibles entre las dos ruedas

para identificar sus equipos de esta forma podrá obtener hasta 256 direcciones distintas.

Este es el máximo número de dispositivos diferenciados que compone un sistema

domótico X-10.

Si dos actuadores tienen los mismos códigos de casa y numérico, ejecutarán

simultáneamente las órdenes procedentes por la red eléctrica. Si a dos detectores de

presencia X-10 se les asigna los mismos códigos, cosa que puede resultar útil para

encender las luces de escalera desde dos plantas distintas por ejemplo, mandarán la

misma orden.

Tipos de Dispositivos X-10

Como hemos visto los sensores de un sistema domótico transmiten órdenes

mientras que los actuadores las reciben; por este motivo X-10 hace una clasificación y

asigna a sus dispositivos unos logos para identificar su función, son los siguientes:

Transmisores: Estos transmisores envían una señal especialmente codificada de bajo

voltaje que es superpuesta sobre el voltaje del cableado. Un

transmisor es capaz de enviar información hasta 256

dispositivos sobre el cableado eléctrico. Múltiples

transmisores pueden enviar señales al mismo módulo.

Receptores: Como los receptores y transmisores, pueden comunicarse con 256

direcciones distintas. Cuando se usan con algunos controladores de computadoras, estos

dispositivos pueden reportar su estado.

Page 85: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

75

Bidireccionales: Estos dispositivos toman la seña enviada por los dispositivos

transmisores. Una vez que la señal es recibida el dispositivo responde encendiéndose

(ON) o apagándose (OFF). Los receptores generalmente tienen un código establecido

por el usuario para indicar la dirección del dispositivo. Múltiples dispositivos con el

mismo código pueden co-existir y responder al mismo tiempo dentro de una misma

casa.

Los dispositivos bidireccionales, tienen la capacidad de responder y confirmar la

correcta realización de una orden, lo cual puede ser muy útil cuando el sistema X-10

está conectado a un programa de ordenador que muestre los estados en que se encuentra

la instalación domótica de la vivienda. Este es el caso del Programador para PC

Inalámbricos: Una unidad que permite conectarse a través de una antena y enviar

señales de radio desde una unidad inalámbrica e inyectar la seña X10 en el cableado

eléctrico (como los controles remotos para abrir los portones de los garajes). Estas

unidades no están habilitadas para controlar directamente a un receptor X10, debe

utilizarse un módulo transceptor.

Page 86: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

76

4.1 OBJETIVOS FUNCIONALES 4.2 OBJETIVOS TECNOLÓGICOS 4.3 CASOS DE USO

4.3.1 X10 MEDIA CLIENT 4.3.2 X10 MEDIA SERVER

4. REQUISITOS

Page 87: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

77

4. REQUISITOS

4.1 OBJETIVOS FUNCIONALES

Se pretende implementar una aplicación cliente/servidor donde, un dispositivo

móvil formará la parte cliente, y un PC hará de servidor. Entre ambas partes, se

establece una conexión remota, a partir de la tecnología inalámbrica Bluetooth.

La parte cliente será implementada en Java J2ME y será la encargada de manejar

los servicios ofrecidos por el servidor como son el manejo de los dispositivos X10,

control de medios multimedia y control del PC, mediante un interfaz sencillo y rápido

de manejar.

Los datos y funcionalidades que se van a introducir a la aplicación permanecerán

abiertas a posibles cambios y mejoras en función de los resultados obtenidos y partiendo

de una base que será el control de asistencia de los alumnos.

La parte servidor, será implementada en Java JAVA SE 6.0 y C. Será la

encargada de la recepción de las peticiones y la ejecución de las mismas. Algunas de

estas funciones también las podrá ejecutar él de manera independiente al cliente, a

través de un interfaz el cual permite a su vez toda la gestión necesaria de la aplicación.

También tendrá que implementar la transmisión de datos, para el paso de información

del PC al dispositivo móvil.

Page 88: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

78

En la siguiente tabla se especifican los diferentes módulos a utilizar en la

aplicación:

MÓDULOS CLIENTE

MÓDULOS SERVIDOR

GUI sencilla. Crear una conexión servidora.

Gestión BBDD Móvil. Especificar los atributos de servicio.

Búsqueda de dispositivos. Abrir las conexiones clientes.

Búsqueda de servicios. Enviar comandos a los dispositivos X10.

Establecimiento de la conexión. Enviar comandos de control de medios.

Comunicación (recepción y envío de

mensajes)

Interacción con librería dll con JNI.

Control de dispositivos X10 Gestión de dispositivos X10.

Control de Música/Video Gestión de Modos.

Pasarela JNI

Módulos del proyecto.

Page 89: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

79

A continuación se va a mostrar otra tabla que recoge los posibles módulos de

expansión de la aplicación, tanto en la parte cliente como en el servidor:

EXPANSIÓN CLIENTE

EXPANSIÓN SERVIDOR

GUI avanzado. GUI avanzado.

Control del PC. Control del PC.

Control de modos. Control de modos.

Módulos de expansión del proyecto.

Page 90: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

80

La siguiente figura va a dar una visión gráfica de los módulos, para una mejor comprensión del funcionamiento de la aplicación:

Módulos del proyecto.

Page 91: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

81

4.2 OBJETIVOS TECNOLÓGICOS

Se pretende utilizar dispositivos móviles, que tengan implantado la tecnología

necesaria para poder soportar la aplicación cliente, como es KVM, MIDP 2.0, CLDC

1.1 y Bluetooth. Al igual sucede con la parte servidor ya que el ordenador necesitara

soportar JAVA SE, tener un dispositivo Bluetooth y un controlador X-10 para poder

enviar señales a los distintos dispositivos X-10 configurados.

Con este proyecto se pretende afianzar los conocimientos adquiridos en el

campo de la programación en Java, además de la ampliación de los mismos,

contribuyendo a esto la implementación de la aplicación cliente en J2ME.

También es interesante el aprendizaje en la implementación y utilización de

nuevas tecnologías, como sucede con la utilización de la tecnología inalámbrica

Bluetooth, el manejo de dispositivos X-10 y el control remoto de aplicaciones

multimedia.

4.3 CASOS DE USO

Existen dos actores por aplicación, es decir, en el caso del cliente: X-10 Media

Client, tenemos al usuario y al servidor, y en el caso del servidor: X-10 Media Server,

nos encontramos con el usuario y la aplicación cliente

El usuario va a manejar tanto la aplicación cliente como la servidora, ya que

ambas son necesarias para poder configurar correctamente la aplicación, además el

Page 92: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

82

servidor puede interactuar con parte del sistema de forma independiente, pero el cliente

es realmente el que está pensado para interactuar con el sistema una vez configurado el

servidor.

Las principales operaciones que se van a desarrollar en el sistema cliente son:

• Ver dispositivos X-10.

• Encender dispositivo X-10.

• Apagar dispositivo X-10.

• Regular dispositivo X-10.

• Ver modos.

• Enviar modo.

• Obtener estado del reproductor.

• Ver listas de reproducción.

• Ver el contenido de una lista de reproducción.

• Silenciar el audio del PC.

• Regular el volumen del reproductor.

• Repetir una pista.

• Orden aleatorio.

• Reproducir una lista de reproducción.

• Apagar PC.

• Mover el ratón.

• Hacer clic con el ratón.

• Enviar texto.

• Ejecutar una aplicación.

Page 93: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

83

• Enviar pulsación de tecla.

• Establecer conexión con el PC.

• Enviar peticiones.

• Recibir datos.

Las principales operaciones que se van a desarrollar en el sistema servidor son:

• Configurar sistema.

• Encender dispositivo X-10.

• Apagar dispositivo X-10.

• Regular dispositivo X-10.

• Enviar teclado multimedia.

• Guardar teclado multimedia.

• Enviar ruta de la carpeta con las listas.

• Dar de alta una aplicación.

• Borrar una aplicación.

• Enviar teclado control PC.

• Guardar teclado control PC.

• Guardar modo.

• Actualizar lista de dispositivos X10.

• Borrar modo.

• Encender todas las luces.

• Apagar todas las luces.

• Apagar todas las unidades.

Page 94: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

84

• Añadir dispositivo X10.

• Borrar dispositivo X10.

• Enviar lista de dispositivos X10.

• Enviar lista de modos.

• Recibir datos.

• Ejecutar petición.

• Abrir conexión Bluetooth.

• Abrir conexión X10.

A continuación vamos a ver los diagramas de casos de uso de cada aplicación.

Page 95: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

85

4.3.1 X10 MEDIA CLIENT

Ver dispositivos X-10

Encender dispositivo X-10

Apagar dispositivo X-10

Regular dispositivo X-10

Ver modos

Enviar modo

Obtener estado del reproductor

Ver listas de reproducción

Ver el contenido de una lista de reproducción

Silenciar el audio del PC

Regular el volumen del reproductor

Repetir una pista

Orden aleatorio

Reproducir una lista de reproducción

Apagar PC

Mover el ratón

Hacer clic con el ratón.

Enviar texto

Ejecutar una aplicación

Enviar pulsación de tecla

Establecer conexión con el PC

Enviar peticiones

Recibir datos

UsuarioX-10 Media Server

Page 96: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

86

4.3.2 X10 MEDIA SERVER

Configurar sistema

Encender dispositivo X-10

Apagar dispositivo X-10

Regular dispositivo X-10

Enviar teclado multimedia

Guardar teclado multimedia

Enviar ruta de la carpeta con las listas

Dar de alta una aplicación

Borrar una aplicación

Enviar teclado control PC

Guardar teclado control PC

Guardar modo

Actualizar lista de dispositivos X10

Borrar modo

Encender todas las luces

Apagar todas las luces

Apagar todas las unidades

Añadir dispositivo X10

Ejecutar una aplicación

Borrar dispositivo X10

Enviar lista de dispositivos X10

Enviar lista de modos

Recibir datos

Usuario X-10 Media Client

Ejecutar peticion

Abrir conexión Bluetooth

Abrir conexión X10

Page 97: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

87

5. DISEÑO

5.1 DIAGRAMA DE LA ARQUITECTURA

5.1.1 X10 MEDIA CLIENT

5.1.1.1 DIAGRAMA DE PAQUETES

5.1.1.2 DESCRIPCIÓN DE LOS PAQUETES

5.1.2 X10 MEDIA SERVER

5.1.2.1 DIAGRAMA DE PAQUETES

5.1.2.2 DESCRIPCIÓN DE LOS PAQUETES

5.2 MODELO DINÁMICO DETALLADO

5.2.1 DIAGRAMAS DE COLABORACIÓN

5.2.2 X10 MEDIA CLIENT

5.2.3 X10 MEDIA SERVER

5.3 MODELO ESTRUCTURAL DETALLADO

5.3.1 X10 MEDIA CLIENT

5.3.1.1 DIAGRAMA DE CLASE DEL PAQUETE APP

5.3.1.2 DIAGRAMA DE CLASE DEL PAQUETE COMUNICACIÓN

5.3.1.3 DIAGRAMA DE CLASE DEL PAQUETE OBJ

5.3.1.4 DIAGRAMA DE CLASE DEL PAQUETE UI

5.3.1.5 DIAGRAMA DE CLASE DEL PAQUETE UTIL

5.3.2 X10 MEDIA SERVER

5.3.2.1 DIAGRAMA DE CLASE DEL PAQUETE APP

5.3.2.2 DIAGRAMA DE CLASE DEL PAQUETE COMUNICACIÓN

5.3.2.3 DIAGRAMA DE CLASE DEL PAQUETE OBJ

5.3.2.4 DIAGRAMA DE CLASE DEL PAQUETE UI

5.3.2.5 DIAGRAMA DE CLASE DEL PAQUETE UTIL

Page 98: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

88

5. DISEÑO

5.1 DIAGRAMA DE LA ARQUITECTURA

5.1.1 X10 MEDIA CLIENT

5.1.1.1 DIAGRAMA DE PAQUETES

5.1.1.2 DESCRIPCIÓN DE LOS PAQUETES

App

Contiene la clase principal de la aplicación, en ella se maneja el ciclo de vida de

la aplicación. Es quien inicia la aplicación. Está compuesto por:

Page 99: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

89

− Main: se encarga del ciclo de vida de la aplicación.

Comunicación

Contiene todo el control de la comunicación Bluetooth. Está compuesto por:

− ConexionBT: contiene todas las operaciones necesarias para

realizar la conexión, leer y escribir a través de Bluetooth.

Ui

Contiene todo la interfaz gráfica. Está compuesto por:

− BT: Interfaz encargado de mostrar la información de

conexiones anteriores o si no las ha habido, muestra todo el

proceso de búsqueda de dispositivos y establecimiento de la

conexión.

− CanvasIni: Pantalla de presentación de la aplicación donde se

muestra su nombre, autor, etc.

− CanvasMedia: Pantalla del menú principal correspondiente al

control multimedia.

− CanvasPC: Pantalla del menú principal correspondiente al

control del PC.

Page 100: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

90

− CanvasX10: Pantalla del menú principal correspondiente al

control de todo lo relacionado con los dispositivos X-10.

− ControlMedia: Interfaz encargado de mostrar el reproductor,

con sus opciones de control: play, pause, volumen, etc.

− ControlPC: Interfaz encargado de mostrar todo lo referente al

control del PC, como es el control de ratón, ejecución de

aplicaciones, etc.

− Enviar Texto: Caja de texto que sirve para componer el

mensaje de texto que se quiere enviar al PC.

− Lista de aplicaciones: Lista con todas las aplicaciones,

previamente configuradas en el PC, que se quieren abrir.

− ListaComandos: Lista de opciones a realizar sobre un

dispositivo X-10 como son encender, apagar y regular.

− ListaDispX10: Lista con todos los dispositivos X-10

configurados.

− ListaMenuX10: Lista de opciones principal del menú de

control X-10. En ella se muestran las opciones: Dispositivos

X-10 y Modos.

− ListaModos: Lista de todos los modos configurados.

− ListaPistas: Lista con el contenido correspondiente a una lista

de reproducción seleccionada anteriormente.

− ListasR: Lista con todas las listas de reproducción

configuradas.

− Regulador: Interfaz para regular de forma gráfica las luces.

− Volumen: Interfaz para regular de forma gráfica el volumen.

Page 101: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

91

Obj

Contiene todos los objetos del modelo de dominio. Está compuesto por:

− CControlPC: Sirve para encapsular información referente a

mensajes de control multimedia y del PC, como son el

volumen, siguiente canción, play, pause, apagar, etc.

Posteriormente será des encapsulada y utilizada para enviar

dichas peticiones al servidor.

− CX10: Sirve para encapsular información referente a mensajes

de control X-10 como son encender, apagar, regular y los

modos. Posteriormente será des encapsulada y utilizada para

enviar dichas peticiones al servidor.

− Comando: Define el tipo de comando a enviar.

− Conexión: Sirve para almacenar información referente a la

conexión Bluetooth establecida con el servidor, para ser

mostrada posteriormente cuando se vuelva a utilizar la

aplicación y así no tener que pasar por el proceso de búsqueda

y conexión de dispositivos, siempre que este sea el mismo.

Contiene el nombre y la URL de conexión.

− DispX10: Contiene la información referente a un dispositivo

X-10 como es el nombre, dirección y tipo.

− Mensaje: Es utilizada parar guardar información relacionada

con el manejo de las listas de reproducción y el control del

PC. Tiene tipo de mensaje, mensaje y valor.

Page 102: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

92

− Modo: Contiene el nombre un modo.

− Tecla: Contiene el nombre de la tecla y la acción.

− Teclado: Contiene toda la configuración del teclado

configurada para los distintos interfaces.

− TipoX10: Tipo de dispositivo X-10.

Util

Contiene la clase encargada de gestionar el almacenamiento. Está compuesto

por:

− Rms: En ella se implementan todos los métodos necesarios

para el manejo del almacenamiento persistente, como son

abrir, cerrar, leer, escribir, etc.

Page 103: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

93

5.1.2 X10 MEDIA SERVER

5.1.2.1 DIAGRAMA DE PAQUETES

5.1.2.2 DESCRIPCIÓN DE LOS PAQUETES

App

Contiene la clase principal de la aplicación. Es quien inicia la aplicación. Está

compuesto por:

− Main: se encarga de crear parte del interfaz de la aplicación, la

que lo gestiona, y controla los eventos.

Page 104: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

94

Comunicación

Contiene todo el control de la comunicación Bluetooth y X-10. Está compuesto

por:

− BT: es la encargada de cargar los puertos Bluetooth.

− Conexión: es la encargada de abrir y cerrar la conexión

Bluetooth.

− Escritura: proporciona diferentes métodos para poder enviar

datos a través de la conexión Bluetooth.

− Lectura: proporciona una serie de métodos para permanecer a

la escucha de recibir mensajes a través de la conexión

Bluetooth.

− X10com: es la encargada de realizar toda la comunicación con

los dispositivos X-10, como es abrir la conexión, cerrarla y

enviar todos los comandos a los dispositivos.

Ui

Contiene todo la interfaz gráfica. Está compuesto por:

− UIApp: Panel de las aplicaciones.

− UIModo: Panel de modos.

− UIX10Btn: Panel de dispositivos X-10.

− UIX10Reg: Panel de dispositivos X-10 con regulador.

Page 105: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

95

− Ventana: Aporta el estilo, apariencia y colores de la

aplicación.

− VentanaAcercaDe: Ventana informativa.

− VentanaAñadirDisp: Ventana para añadir dispositivos.

− VentanaBorrarDisp: Ventana para borrar dispositivos.

− VentanaConfiguracion: Ventana para la configuración de

puertos.

− PestañaControlPC: Pestaña de configuración de control del

PC.

− PestañaModo: Pestaña de gestión de modos.

− PestañaMedios: Pestaña de configuración del control de

medios.

Obj

Contiene todos los objetos del modelo de dominio. Está compuesto por:

− App: Contiene la información relacionada con las aplicaciones

configuradas, como es el nombre y la ruta de la misma.

− CControlPC: Sirve para encapsular información referente a

mensajes de control.

− Comando: Comando X-10 a ejecutar, con los valores

dirección, acción y nivel.

Page 106: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

96

− Configuración: Utilizada para almacenar la información

referente a la configuración de los puertos Bluetooth y X-10.

− Control: Utilizada como pasarela con los métodos nativos.

− DispositivoX10: Contiene la información referente a un

dispositivo X-10 como es el nombre, dirección, tipo, estado,

etc.

− Estado: Utilizado para controlar el estado de los dispositivos.

− LineaModo: Representa gráficamente un modo.

− Modo: Utilizada para almacenar el nombre de los modos y sus

vectores de dispositivos X-10 asociados.

− Pista: Información referente a una pista, como es el nombre,

grupo, ruta y duración.

− Tecla: Contiene el nombre de la tecla y la acción.

− TipoX10: Tipo de dispositivo X-10.

Util

Contiene la clase encargada de gestionar el almacenamiento. Está compuesto

por:

− Fichero: En ella se implementan todos los métodos necesarios

para el manejo de fichero como son el leer, borrar, escribir, y

de lecturas especiales como son el caso de las listas de

reproducción.

Page 107: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

97

5.2 MODELO DINÁMICO DETALLADO

5.2.1 DIAGRAMAS DE COLABORACIÓN

A continuación se mostrarán los diagramas de colaboración más representativos,

los cuales nos darán una idea del modo de funcionamiento de la aplicación.

5.2.1.1 X10 MEDIA CLIENT

• Encender dispositivo X-10.

CanvasX10

ListaMenuX10

1: keyPressed(keyCode) 2: action = getGameAction(keyCode)

[action == DOWN] 3 : new ListaMenuX10(app, pantalla, conBT)

4: commandAction(c, d) [c==this.SELECT_COMMAND &&

this.getString(this.getSelectedIndex()).equals(“Dispositivos X10”))] 5: new ListaDispX10(app, pantalla, conBT)

1

Page 108: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

98

ListaDispX10 6: this.mostrarRS() 7: commandAction(c, d) [c==this.SELECT_COMMAND] 8: this.leerRS()

9: new ListaComandos()

ListaComandos 10: commandAction(c, d) [c==this.SELECT_COMMAND] 11: switch(this.getSelectedIndex())

[case 0] 12: conBT.escribir(new CX10(“X10”,x10a.getDir(),0,0),null,null)

conBT : escribir [cx10!=null] 13: dos.writeUTF(cx10.getTipo()); dos.writeUTF(cx10.getDir());dos.writeInt(cx10.getAccion());dos. writeInt (cx10.getTipo())

1

Page 109: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

99

5.2.1.2 X10 MEDIA SERVER • Enviar lista de modos.

• Recibir datos.

• Recibir datos.

App 1: actionPerformed (e) [e.getSource() == jmiEnviarModo] 2: conexion.getOk()

Escritura

3: esc = new Escritura (this, conexion) 4: esc.enviar(2)

[opc == 2] 5: vModos = Fichero.leer(“modos.obj”) 6: dos.writeInt(vModos.size()) [i=0;i<vModos.size();i++] 7: dos.writeUTF(((Modo)vModos.get(i)).getNombre())

App 1: hilo = new Thread(Lectura.this) 2: hilo.start 3: leer() 4: inputStream = conexión.getInputStream() 5: dis = new DataInputStream (inputStream) 6: tipoObj = dis.readUTF(); [tipoObj.equals(“Tipo de objeto”)] 7: “Acción según tipo de objeto” 8: dis.close() 9: hilo = new Thread(Lectura.this) 10: hilo.start

Page 110: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

100

5.3 MODELO ESTRUCTURAL DETALLADO

5.3.1 X10 MEDIA CLIENT

5.3.1.1 DIAGRAMA DE CLASE DEL PAQUETE APP

Main

-pantalla: Display

<<create>>+Main()+startApp()+pauseApp()+destroyApp(unconditional: boolean)+getPantalla(): Display+getApp(): Main+salirApp()

Page 111: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

101

5.3.1.2 DIAGRAMA DE CLASE DEL PAQUETE COMUNICACIÓN

ConexionBT

-bt: BT-con: StreamConnection-dos: DataOutputStream-dis: DataInputStream~fin: boolean = false-dispositivoLocal: LocalDevice-da: DiscoveryAgent-devList: RemoteDevice[*]-dispositivos_encontrados: Vector = new Vector()-servicios_encontrados: Vector = new Vector()-serviceRecord: ServiceRecord-disRemoto: RemoteDevice-vDispX10Rec: Vector = new Vector()-rsConexionBT: RecordStore-rsDispX10: RecordStore-rsModos: RecordStore-rsTeclado: RecordStore-rsListaR: RecordStore-rsPistas: RecordStore-rsApps: RecordStore-nombreDisp: String-hilo: Thread-conx: Conexion = null~conexionAnteriorEncontrada: boolean = false-conBT: ConexionBT-listasR: ListasR-controlMedia: ControlMedia

<<create>>+ConexionBT(bt: BT)<<create>>+ConexionBT()+run()+iniciarHilo()+iniciarHilo(conx: Conexion)+buscarDispositivoBT()+buscarServiciosBT(dispSel: int)+leer()+escribir(cx10: CX10, controlPC: CControlPC, mensaje: Mensaje)+mostrarDispositivos()+abrir()+abrirConexion()+cerrarConexion(l: List)+cerrarConexion()+setListasR(listR: ListasR)+setControlMedia(cm: ControlMedia)+flush()

Page 112: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

102

5.3.1.3 DIAGRAMA DE CLASE DEL PAQUETE OBJ

Teclado

~num0: Tecla~num1: Tecla~num2: Tecla~num3: Tecla~num4: Tecla~num5: Tecla~num6: Tecla~num7: Tecla~num8: Tecla~num9: Tecla~Ast: Tecla~Alm: Tecla~Arriba: Tecla~Abajo: Tecla~Izq: Tecla~Der: Tecla~OK: Tecla

<<create>>+Teclado(num0: Tecla, num1: Tecla, num2: Tecla, num3: Tecla, num4: Tecla, num5: Tecla, num6: Tecla, num7: Tecla, num8: Tecla, num9: Tecla, Ast: Tecla, Alm: Tecla, OK: Tecla, Arriba: Tecla, Abajo: Tecla, Izq: Tecla, Der: Tecla)+getNum0(): Tecla+getNum1(): Tecla+getNum2(): Tecla+getNum3(): Tecla+getNum4(): Tecla+getNum5(): Tecla+getNum6(): Tecla+getNum7(): Tecla+getNum8(): Tecla+getNum9(): Tecla+getAst(): Tecla+getAlm(): Tecla+getArriba(): Tecla+getAbajo(): Tecla+getIzq(): Tecla+getDer(): Tecla+getOK(): Tecla

Mensaje

-tipo: String-mensaje: String-valor: int

<<create>>+Mensaje(tipo: String, mensaje: String)<<create>>+Mensaje(tipo: String, valor: int)+getAccion(): String+getMensaje(): String+getValor(): int

TipoX10

~nombre: String~representacion: String~modelo: String

<<create>>+TipoX10(nombre: String, representacion: String, modelo: String)+getRepresentacion(): String+getModelo(): String

Page 113: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

103

Tecla

-tecla: int-accion: String

<<create>>+Tecla(_tecla: int, _accion: String)+getAccion(): String+getTecla(): int

Modo

~nombre: String

<<create>>+Modo(nombre: String)+getNombre(): String

Comando

~tipo: String = null

+getTipo(): String

DispX10

~nombre: String~dir: String~tipo: TipoX10

<<create>>+DispX10(nombre: String, dir: String, tipo: TipoX10)+getNombre(): String+getDir(): String+getTipo(): TipoX10

CX10

~dir: String~accion: int~nivel: int

<<create>>+CX10(tipo: String, dir: String, accion: int, nivel: int)+getDir(): String+getAccion(): int+getNivel(): int

CControlPC

~funcion: String~valor: int

<<create>>+CControlPC(_tipo: String, _funcion: String, _val: int)+getFuncion(): String+getValor(): int

Conexion

-nombre: String-url: String

<<create>>+Conexion(nombre: String, url: String)+getNombre(): String+getUrl(): String

Page 114: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

104

5.3.1.4 DIAGRAMA DE CLASE DEL PAQUETE UI

ControlMedia

-pantalla: Display-cmdSalir: Command-cmdPL: Command-cmdRepetir: Command-cmdAleatorio: Command-cmdVolumen: Command-cmdMute: Command-app: Main-conBT: ConexionBT-estado: String-numPista: int-teclado: Teclado = null-img: Image = null-opc: int = 0-vPistas: Vector = new Vector()-repetir: boolean = false-aleatorio: boolean = false-volumen: int = 0-duracion: String = "0:00"

<<create>>+ControlMedia(app: Main, pantalla: Display, conBT: ConexionBT)+commandAction(c: Command, d: Displayable)+paint(g: Graphics)+keyReleased(keyCode: int)+keyPressed(keyCode: int)+accion(accion: String)+getTitulo()+getEstado()+setEstado(estado: int, repetir: boolean, aleatorio: boolean, volumen: int, tiempo: String)+setVolumen(valor: int)+setDuracion(tiempo: String)

BT

-app: Main+lisP: List+lisR: List-con: StreamConnection~display: Display = null-hilo: Thread-dis: DataInputStream~fin: boolean = false~encontradaConxionAnterior: boolean = false-opcion: int~cmdSalir: Command = new Command("Salir", Command.EXIT, 0)-dispositivos_encontrados: Vector = new Vector()-servicios_encontrados: Vector = new Vector()-dispositivo_seleccionado: int = -1-pantalla: Display-vDispX10Rec: Vector = new Vector()-rs: RecordStore-conBT: ConexionBT-conx: Conexion

<<create>>+BT(app: Main, pantalla: Display)-pantallaPrincipal()+commandAction(c: Command, d: Displayable)+mostrarAlarma(s: String, disp: Displayable)+iniciar()+getLisR(): List+mostrarAlarma(titulo: String, texto: String)+setLisP(txt: String)+borrarLisP()+setOpcion(opc: int)+pasaraCanvasX10()

Page 115: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

105

EnviarTexto

-CMD_OK: Command = new Command("Enviar",Command.OK,1)-CMD_VOLVER: Command = new Command("Volver",Command.BACK,1)-CMD_ENTER: Command = new Command("Enter",Command.BACK,1)-pantalla: Display-app: Main-conBT: ConexionBT-tbMensaje: TextBox

<<create>>+EnviarTexto(app: Main, pantalla: Display, conBT: ConexionBT)+commandAction(c: Command, d: Displayable)

Regulador

-app: Main-pantalla: Display-btnVolver: Command-btnRegular: Command-gRegulador: Gauge-conBT: ConexionBT-dir: String

<<create>>+Regulador(app: Main, pantalla: Display, conBT: ConexionBT, dir: String)+commandAction(c: Command, d: Displayable)+itemStateChanged(i: Item)

ListaAplicaciones

-app: Main-btnVolver: Command-rs: RecordStore-pantalla: Display-v: Vector = new Vector()-conBT: ConexionBT

<<create>>+ListaAplicaciones(app: Main, pantalla: Display, conBT: ConexionBT)+commandAction(c: Command, d: Displayable)+mostrarRS()+leerRS()

CanvasPC

-pantalla: Display-cmdSalir: Command-app: Main-conBT: ConexionBT

<<create>>+CanvasPC(app: Main, pantalla: Display, conBT: ConexionBT)+commandAction(c: Command, d: Displayable)+paint(g: Graphics)+keyPressed(keyCode: int)

Page 116: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

106

ListaPistas

-app: Main-btnVolver: Command-rs: RecordStore-pantalla: Display-conBT: ConexionBT

<<create>>+ListaPistas(app: Main, pantalla: Display, conBT: ConexionBT, lista: String)+commandAction(c: Command, d: Displayable)+mostrarRS(nombre: String)

Volumen

-app: Main-pantalla: Display-btnVolver: Command-gRegulador: Gauge-conBT: ConexionBT-volumenPintar: int

<<create>>+Volumen(app: Main, pantalla: Display, conBT: ConexionBT)+commandAction(c: Command, d: Displayable)+itemStateChanged(i: Item)

ListaModos

-app: Main-btnVolver: Command-rs: RecordStore-pantalla: Display-v: Vector = new Vector()-conBT: ConexionBT

<<create>>+ListaModos(app: Main, pantalla: Display, conBT: ConexionBT)+commandAction(c: Command, d: Displayable)+mostrarRS()+leerRS()

ListasR

-app: Main-btnVolver: Command-btnVer: Command-rs: RecordStore-pantalla: Display-v: Vector = new Vector()-conBT: ConexionBT-elegida: boolean = false

<<create>>+ListasR(app: Main, pantalla: Display, conBT: ConexionBT)+commandAction(c: Command, d: Displayable)+mostrarRS(nombre: String)+mostrarListaPistas()

Page 117: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

107

ListaMenuX10

-app: Main-btnVolver: Command-pantalla: Display-conBT: ConexionBT

<<create>>+ListaMenuX10(app: Main, pantalla: Display, conBT: ConexionBT)+commandAction(c: Command, d: Displayable)

ListaDispX10

-app: Main-btnVolver: Command-rs: RecordStore-pantalla: Display-v: Vector = new Vector()-conBT: ConexionBT

<<create>>+ListaDispX10(app: Main, pantalla: Display, conBT: ConexionBT)+commandAction(c: Command, d: Displayable)+mostrarRS()+leerRS()

ListaComandos

-app: Main-pantalla: Display-btnVolver: Command-conBT: ConexionBT-x10a: DispX10

<<create>>+ListaComandos(app: Main, pantalla: Display, x10a: DispX10, conBT: ConexionBT)+commandAction(c: Command, d: Displayable)

ControlPC

-pantalla: Display-cmdVolver: Command-cmdApagar: Command-cmdEjecutar: Command-cmdEnviarTexto: Command-app: Main-conBT: ConexionBT-sw: boolean = true-tecla: String-miThread: Thread-miHilo: Hilo-para: boolean = false

<<create>>+ControlPC(app: Main, pantalla: Display, conBT: ConexionBT)+commandAction(c: Command, d: Displayable)+paint(g: Graphics)+keyReleased(keyCode: int)+keyPressed(keyCode: int)

Page 118: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

108

CanvasX10

-pantalla: Display-cmdSalir: Command-app: Main-conBT: ConexionBT

<<create>>+CanvasX10(app: Main, pantalla: Display, conBT: ConexionBT)+commandAction(c: Command, d: Displayable)+paint(g: Graphics)+keyPressed(keyCode: int)

CanvasMedia

-pantalla: Display-cmdSalir: Command-app: Main-conBT: ConexionBT

<<create>>+CanvasMedia(app: Main, pantalla: Display, conBT: ConexionBT)+commandAction(c: Command, d: Displayable)+paint(g: Graphics)+keyPressed(keyCode: int)

CanvasIni

-pantalla: Display-screen: SSCanvas-exitCommand: Command-t: Timer = new Timer()-app: Main

<<create>>+CanvasIni(app: Main, pantalla: Display)-concluir()#showNotify()

Page 119: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

109

5.3.1.5 DIAGRAMA DE CLASE DEL PAQUETE UTIL

Rms

+rs: RecordStore+fecha_: String-disRemoto: RemoteDevice

<<create>>+Rms()+abrirRs(nombre: String): RecordStore+escribirConexionRs(conx: Conexion, rs: RecordStore)+leerConexionRs(id: int, rs: RecordStore): Conexion+escribirX10Rs(x10: DispX10, rs: RecordStore)+leerModo(id: int, rs: RecordStore): Modo+leerString(id: int, rs: RecordStore): String+escribirModo(modo: Modo, rs: RecordStore)+escribirString(s: String, rs: RecordStore)+leerTeclado(nombre: String): Teclado+leerTecla(id: int, rs: RecordStore): Tecla+escribirTeclado(tecla: Tecla, rs: RecordStore)+sustituirDatoRs(dato: String, id: int, rs: RecordStore)+leerX10Rs(id: int, rs: RecordStore): DispX10+cerrarRs(rs: RecordStore)+destruirRs(nombre: String)+compare(reg1: byte, reg2: byte): int+existeRS(nombre: String, l: List): boolean+vaciarRS(nombre: String, l: List, conBT: ConexionBT)

Page 120: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

110

5.3.2 X10 MEDIA SERVER

5.3.2.1 DIAGRAMA DE CLASE DEL PAQUETE APP

Main

-jpDispositivos: JPanel-jpModos: JPanel-jlConexion: JLabel-jmnBar: JMenuBar-jmnArchivo: JMenu-jmnCommand: JMenu-jmnConf: JMenu-jmnVentana: JMenu-jmiSalir: JMenuItem-jmiAñadirDisp: JMenuItem-jmiBorrarDisp: JMenuItem-jmiEnviarDisp: JMenuItem-jmiEnviarModo: JMenuItem-jmiAcercaDe: JMenuItem-jmiLucesOn: JMenuItem-jmiLucesOff: JMenuItem-jmiTodoOff: JMenuItem-jmiOpciones: JMenuItem-jpVentana: JPanel-icon: ImageIcon-img: Image-miSalir: MenuItem-trayIcon: TrayIcon-vDisp: Vector = new Vector()-x10com: X10com-conexion: Conexion-hilo: Thread

<<create>>+Main(titulo: String)+main(args: String)+actionPerformed(e: ActionEvent)+run()-conexionX10()+cerrarConexionX10()+mostrarAlarma(s: String)+añadirDisp()+añadirDispMod(dir: String, estado: String, estado2: String)+abrirConexion()+abrirApp(path: String)+escribir(opcion: int)+tecla(tecla: String)+clickIzquierdo()

Page 121: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

111

5.3.2.2 DIAGRAMA DE CLASE DEL PAQUETE COMUNICACIÓN

X10com

+PUERTO_DEFECTO: String = "COM2"-puerto: String-contServer: ControllerServer-controller: CM11ASerialController = null-cmd: Command

<<create>>+X10com()+abrirConexion(puerto: String)+cerrarConexion()+ejecutarComando(comando: Comando)-encender(comando: Comando)-apagar(comando: Comando)-regular(comando: Comando)-regularBRIGHT(res: int, dir: String)-regularDIM(res: int, dir: String)

Lectura

-x10com: X10com-conexion: Conexion-main: Main

<<create>>+Lectura(_main: Main, _conexion: Conexion, x10: X10com)+run()+leer()+listarPistas(pathPL: String)

Escritura

-outputStream: OutputStream-dos: DataOutputStream-main: Main-vDisp: Vector = new Vector()

<<create>>+Escritura(_main: Main, conexion: Conexion)+enviar(opc: int)+enviarPistas(vPistas: Vector)+enviarTitulo(titulo: String)+enviarDuracion(tiempo: String)+enviarEstado(estado: int, repetir: boolean, aleatorio: boolean, volumen: int, tiempo: String)

Conexion

-nombrePuerto: String-outputStream: OutputStream-inputStream: InputStream-serialPort: SerialPort~ok: int

<<create>>+Conexion(puerto: String)+open(): int+getOutputStream(): OutputStream+getInputStream(): InputStream+getOk(): int+cerrarConexion()

BT

~portId: CommPortIdentifier~portList: Enumeration-main: Main

<<create>>+BT(main_: Main)<<create>>+BT()+cargarPuertos(v: Vector)

Page 122: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

112

5.3.2.3 DIAGRAMA DE CLASE DEL PAQUETE OBJ

App

~nombre: String~ruta: String

<<create>>+App(nombre: String, ruta: String)+getNombre(): String+getRuta(): String

TipoX10

~nombre: String~representacion: String~modelo: String

<<create>>+TipoX10(nombre: String, representacion: String, modelo: String)+getRepresentacion(): String+getModelo(): String

Pista

~nombre: String~grupo: String~ruta: String~duracion: int

<<create>>+Pista(_nombre: String, _grupo: String, _ruta: String, _duracion: int)+getNombre(): String+getGrupo(): String+getRuta(): String+getDuracion(): int+toString(): String

Modo

~nombre: String~dispX10: Vector

<<create>>+Modo(nombre: String, dispX10: Vector)+getNombre(): String+getDispositivos(): Vector

Tecla

-tecla: int-accion: String

<<create>>+Tecla(_tecla: int, _accion: String)+getAccion(): String+getTecla(): int

Page 123: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

113

LineaModo

-jlNombre: JLabel-jcbEstado: JComboBox-jcbRegular: JComboBox-pestModo: PestañaModo-dim: boolean-dispx10: DispositivoX10

<<create>>+LineaModo(pestModo: PestañaModo, dispx10: DispositivoX10, regulador: boolean)+getRegulara(): int+getEstado(): String+getDim(): boolean+getDispositivoX10(): DispositivoX10

Estado

~direccion: String~valorAnterior: int

<<create>>+Estado(direccion: String, valorAnterior: int)+getDir(): String+getValor(): int

DispositivoX10

-nombre: String-direccion: String-tipo: TipoX10-estado: String-urlIcon: String~regulara: int

<<create>>+DispositivoX10(nombre: String, direccion: String, tipo: TipoX10, estado: String, urlIcon: String)+getDir(): String+getNombre(): String+getTipoX10(): TipoX10+getUrlIcon(): String+getEstado(): String+getRegulara(): int+setEstado(est: String)+setRegulara(reg: int)

Page 124: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

114

Control

-titulo: String

<<create>>+Control(cControlPC: CControlPC)<<create>>+Control()+play()+pause()+stop()+nextTrack()+prevTrack()+volumenUp()+volumenDown()+forward5Sec()+rewind5Sec()+deleteCurrentPlaylist()+savePlaylist()+getPlaylistPosition(): int+getTrackPosition(): int+getLongitudCancion(): int+moverDerechaCursor()+moverIzquierdaCursor()+moverArribaCursor()+moverAbajoCursor()+listaCompleta()+setVolume(position: int)+getVolume(): int+getCurrentSongTitle(): String+subir()+menuInicio()+setPlaylistPosition(pos: int)+getStatus(): int+isShuffleStatusOn(): boolean+isRepeatStatusOn(): boolean+setRepeatStatusOn(status: boolean)+setShuffleStatusOn(status: boolean)+getTitulo(): String

Configuracion

-comX10: String-comBT: String

<<create>>+Configuracion(comX10: String, comBT: String)+getPuertoBT(): String+getPuertoX10(): String

Page 125: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

115

Comando

~dir: String~accion: int~nivel: int

<<create>>+Comando(dir: String, accion: int, nivel: int)+getDir(): String+getAccion(): int+getNivel(): int

CControlPC

~funcion: String~valor: int

<<create>>+CControlPC(_funcion: String, _val: int)+getFuncion(): String+getValor(): int

5.3.2.4 DIAGRAMA DE CLASE DEL PAQUETE UI

UIApp

<<create>>+UIApp(app: App)

Ventana

+titulo: String

<<create>>+Ventana(titulo: String)+setFondo(c: Component)

VentanaConfiguracion

-jbCancelar: JButton-jbGuardar: JButton-jlCOMX10: JLabel-jlCOMBT: JLabel-jcbX10: JComboBox-jcbBT: JComboBox-jtfNombre: JTextField-main: Main

<<create>>+VentanaConfiguracion(main: Main)+actionPerformed(e: ActionEvent)

VentanaBorrarDisp

-jbCancelarBorrarDisp: JButton-jbBorrarDisp: JButton-jlSelec: JLabel-jcbBorrar: JComboBox-jtfNombre: JTextField-main: Main

<<create>>+VentanaBorrarDisp(main: Main)+actionPerformed(e: ActionEvent)

1

Page 126: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

116

VentanaAñadirDisp

-jbCancelarAñadirDisp: JButton-jbAñadirDisp: JButton-jlNombre: JLabel-jlCodigo: JLabel-jcbDir: JComboBox-jcbDir2: JComboBox-jcbTipo: JComboBox-jtfNombre: JTextField-main: Main-jpDisp: JPanel

<<create>>+VentanaAñadirDisp(main: Main, jpDisp: JPanel)+actionPerformed(e: ActionEvent)

VentanaAcercaDe

-jbCerrarAcercaDe: JButton

<<create>>+VentanaAcercaDe()+actionPerformed(e: ActionEvent)

UIX10Btn

-jlDisp: JLabel-jlEstado: JLabel-jlModelo: JLabel-jlImagenEst: JLabel-jbEA: JButton-jpBoton: JPanel-jpInfo: JPanel-x10com: X10com-icon: ImageIcon#dispx10: DispositivoX10

<<create>>+UIX10Btn(dispx10: DispositivoX10, urlIcon: String, x10: X10com)+actionPerformed(e: ActionEvent)+encender()+apagar()+añadirComponente(c1: Component, c2: Component)

UIX10Reg

-js: JSlider-x10com: X10com

<<create>>+UIX10Reg(dispx10: DispositivoX10, urlIcon: String, x10com: X10com)+stateChanged(e: ChangeEvent)

UIModo

<<create>>+UIModo(nombre: String, modo: Modo)

1

Page 127: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

117

PestañaControlPC

-jbGuardar: JButton-jbBorrar: JButton-jbGuardarTeclado: JButton-jbEnviarTeclado: JButton-jbEnviarLista: JButton-jbBuscar: JButton-jpNombre: JPanel-jpBotones: JPanel-jpApps: JPanel-jpGestion: JPanel-jpDispX10: JPanel-jpTeclado: JPanel-jtfNombre: JTextField-jtfPath: JTextField-jlNombre: JLabel-jspApps: JScrollPane-jspDispX10: JScrollPane-jcbOpc0: JComboBox-jcbOpc1: JComboBox-jcbOpc2: JComboBox-jcbOpc3: JComboBox-jcbOpc4: JComboBox-jcbOpc5: JComboBox-jcbOpc6: JComboBox-jcbOpc7: JComboBox-jcbOpc8: JComboBox-jcbOpc9: JComboBox-jcbOpcAst: JComboBox-jcbOpcAlm: JComboBox-jcbOpcOK: JComboBox-jcbOpcArriba: JComboBox-jcbOpcAbajo: JComboBox-jcbOpcIzquierda: JComboBox-jcbOpcDerecha: JComboBox-jcbBorrar: JComboBox-jfcApp: JFileChooser-main: Main

<<create>>+PestañaControlPC(_main: Main)+actionPerformed(e: ActionEvent)+listarApps(): int+guardarApp()+rellenarCombo(): Vector+borrarApp()+repintar()+crearPanelGestion()+crearPanelApps()+crearPanelTeclado()

PestañaMedios

-jbGuardar: JButton-jbEnviar: JButton-jbBuscar: JButton-jbBuscarR: JButton-jbEnvPL: JButton-jl0: JLabel-jl1: JLabel-jl2: JLabel-jl3: JLabel-jl4: JLabel-jl5: JLabel-jl6: JLabel-jl7: JLabel-jl8: JLabel-jl9: JLabel-jlAst: JLabel-jlAlm: JLabel-jlOK: JLabel-jlArriba: JLabel-jlAbajo: JLabel-jlIzquierda: JLabel-jlDerecha: JLabel-jlImagen: JLabel-jlPlayList: JLabel-jlReproductor: JLabel-jcbOpc0: JComboBox-jcbOpc1: JComboBox-jcbOpc2: JComboBox-jcbOpc3: JComboBox-jcbOpc4: JComboBox-jcbOpc5: JComboBox-jcbOpc6: JComboBox-jcbOpc7: JComboBox-jcbOpc8: JComboBox-jcbOpc9: JComboBox-jcbOpcAst: JComboBox-jcbOpcAlm: JComboBox-jcbOpcOK: JComboBox-jcbOpcArriba: JComboBox-jcbOpcAbajo: JComboBox-jcbOpcIzquierda: JComboBox-jcbOpcDerecha: JComboBox-jfcPlayList: JFileChooser-jtfPath: JTextField-jtfPathR: JTextField-main: Main

<<create>>+PestañaMedios(_main: Main)+actionPerformed(e: ActionEvent)

Page 128: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

118

PestañaModo

-jbGuardar: JButton-jbActualizar: JButton-jbBorrar: JButton-vLM: Vector-jpNuevo: JPanel-jpNombre: JPanel-jpBotones: JPanel-jpModos: JPanel-jpBorrar: JPanel-jpDispX10: JPanel-jtfNombre: JTextField-jlNombre: JLabel-jcbBorrar: JComboBox-jspModos: JScrollPane-jspDispX10: JScrollPane

<<create>>+PestañaModo()+actionPerformed(e: ActionEvent)+añadirDisp()+listarModos(): int+guardarModo()+rellenarCombo(): Vector+borrarModo()+repintar()+crearPanelBorrar()+crearPanelNuevoModo()+crearPanelModos()

5.3.2.5 DIAGRAMA DE CLASE DEL PAQUETE UTIL

Fichero

<<create>>+Fichero()+leer(fichero: String): Vector+escribir(fichero: String, v: Vector)+borrar(fichero: String)+leerM3U(fichero: String): Vector+leerInfoPistas(vFichero: Vector): Vector

Page 129: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

119

6. DISEÑO DE INTERFACES

6.1 X10 MEDIA CLIENT 6.2 X10 MEDIA SERVER

Page 130: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

120

6. DISEÑO DE INTERFACES

Para realizar el diseño de los interfaces, se va a proceder a realizar una

navegación por las ventanas de cada aplicación:

6.1 X10 MEDIA CLIENT

Al iniciar la aplicación cliente, se va a mostrar una imagen con el nombre de la

aplicación:

A continuación se muestra la pantalla de conexión:

Page 131: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

121

DERECHA

DERECHA

DERECHA

IZQ

IZQ IZQ

“Menú principal de la aplicación.”

Page 132: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

122

“Ejecutar aplicación”

“Primero, desarrollamos la navegación por el menú Control Dispositivos.”

Page 133: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

123

“Enviar texto”

“Navegación por el menú Control Multimedia.”

Page 134: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

124

“Navegación por el menú Control de Dispositivos.”

Page 135: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

125

Page 136: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

126

6.2 X10 MEDIA SERVER

Al arrancar la aplicación se muestra la siguiente pantalla de inicio, mientras se

carga la aplicación en su totalidad:

Una vez iniciada la aplicación aparece minimizada en la barra del sistema, con el

siguiente icono:

Podemos salir de la aplicación haciendo clic con el botón derecho del ratón sobre

el icono :

Page 137: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

127

También podemos abrir la aplicación, haciendo doble clic con el botón izquierdo

sobre el icono , mostrándose la pantalla de Control de Dispositivos X10:

Pestaña de Control Multimedia:

Page 138: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

128

Pestaña de Control del PC:

Pestaña de modos:

Page 139: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

129

Menú superior:

Ventana Añadir dispositivo:

Page 140: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

130

Ventana Borrar dispositivo:

Ventana Configuración:

Page 141: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

131

Ventana Acerca de:

Page 142: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

132

7. IMPLEMENTACIÓN

7.1 PLATAFORMAS Y ENTORNOS DE DESARROLLO 7.2 FUNCIONALIDADES MÁS IMPORTANTES

7.2.1 X10 MEDIA CLIENT 7.2.2 X10 MEDIA SERVER

Page 143: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

133

7. IMPLEMENTACIÓN

7.1 PLATAFORMAS Y ENTORNOS DE DESARROLLO

La JRE que se ha utilizado ha sido la JRE 6.0, ya que proporciona nuevas

funcionalidades interesantes, aparte de J2ME Wireless Toolkit 2.2, para el desarrollo de

la aplicación cliente.

Para la ejecución y compilación de ambas aplicaciones, se ha utilizado el IDE

NetBeans 5.5, junto con el NetBeans Mobility 5.5 que habilita la posibilidad de trabajar

con dispositivos móviles, tanto compilando como emulando la ejecución.

La elección de este IDE se debe a que en él, se pueden desarrollar cualquier tipo

de aplicaciones Java en cualquiera de sus plataformas como, por ejemplo, JAVA SE y

J2ME. Otra razón es que el software es libre.

7.2 FUNCIONALIDADES MÁS IMPORTANTES

7.2.1 X10 MEDIA CLIENT

A continuación se va a mostrar partes del código que se ha considerado más

importante para entender el funcionamiento de la aplicación. Éste código es el siguiente:

Implementación de los métodos más relevantes de la clase ConexionBT:

Método encargado de la búsqueda de dispositivos:

Page 144: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

134

buscarDispositivoBT()

.........

//inicializamos...

dispositivoLocal = LocalDevice.getLocalDevice();

da = dispositivoLocal.getDiscoveryAgent();

devList = da.retrieveDevices(DiscoveryAgent.CACHED);

if(devList != null){

this.mostrarDispositivos();

if(serviceRecord == null){

//pre-know

devList = da.retrieveDevices(DiscoveryAgent.PREKNOWN);

if(devList != null){

this.mostrarDispositivos();

}

}

}

if(serviceRecord == null){

bt.borrarLisP();

bt.setLisP("Buscando...");

//sin límite de tiempo

dispositivoLocal.setDiscoverable(DiscoveryAgent.GIAC);

da.startInquiry(DiscoveryAgent.GIAC,new Listener());

.........

Método encargado de la búsqueda de servicios dado un dispositivo: buscarServiciosBT(int dispSel)

.........

RemoteDevice dispositivo_remoto; if(devList != null){ disRemoto = devList[dispSel]; } else{ disRemoto =(RemoteDevice)dispositivos_encontrados.elementAt (dispSel);

.........

Page 145: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

135

//Buscamos en el puerto serie 0x1101 da.searchServices(null,new UUID[]{new UUID(0x1101)},disRemoto,new Listener()); System.out.println("Dispositovo remoto: " + disRemoto.getBluetoothAddress().toString());

.........

Método que permite leer los diferentes mensajes que recibe del servidor: leer()

.........

int comp = dis.readInt(); bt.setOpcion(comp); if(comp==1){ //lista x10

//borramos el contenido del recorStore util.Rms.destruirRs("DispX10");

//abrimos la RecordStore rsDispX10 = util.Rms.abrirRs("DispX10"); int tam = dis.readInt(); for(int i=0;i<tam;i++){ String nombre = dis.readUTF (); String direc = dis.readUTF (); String representacion = dis.readUTF (); String modelo = dis.readUTF ();

util.Rms.escribirX10Rs(new DispX10(nombre,direc,new TipoX10(nombre,representacion,modelo)),rsDispX10);

} //cerramos el RecordStore util.Rms.cerrarRs(rsDispX10); }

.........

else if(comp==7){ //estado this.controlMedia.setEstado(dis.readInt(),dis.readBoolean(),dis.readBoolean(),dis.readInt(),dis.readUTF()); }

.........

Método para enviar mensajes al servidor: escribir (CX10 cx10, CControlPC controlPC, Mensaje mensaje)

.........

if(mensaje!=null){ dos.writeUTF(mensaje.getAccion()); if(mensaje.getAccion().equals("Reproducir")){ dos.writeInt(mensaje.getValor()); } else{

Page 146: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

136

dos.writeUTF(mensaje.getMensaje()); } } else if(cx10!=null){ dos.writeUTF(cx10.getTipo()); dos.writeUTF(cx10.getDir()); dos.writeInt(cx10.getAccion()); dos.writeInt(cx10.getNivel()); } else{ dos.writeUTF(controlPC.getTipo()); dos.writeUTF(controlPC.getFuncion()); dos.writeInt(controlPC.getValor()); } dos.flush();

.........

7.2.2 X10 MEDIA SERVER

A continuación se va a mostrar fragmentos del código que se ha considerado

más importante para entender el funcionamiento de la aplicación. Éste código es el

siguiente:

Primero vamos a ver todas la clases que se encargan del proceso de

comunicación, como son: BT, Conexión, Escritura, Lectura y X10com.

Implementación de los métodos más relevantes de la clase BT:

Método encargado de la carga de puertos:

cargarPuertos(Vector v)

.........

//obtenemos la lista de puertos COM:

portList = CommPortIdentifier.getPortIdentifiers();

//recorremos la lista y obtenemos el identificador del puerto COM:

while(portList.hasMoreElements()){

portId = (CommPortIdentifier) portList.nextElement();

//comprobamos si el puerto encontrado es un puerto serie, si es

así añadimos el nombre de este al vector:

Page 147: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

137

if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {

puertoEncontrado = true;

v.add(portId.getName());

.........

Implementación de los métodos más relevantes de la clase Conexion:

Método encargado de la abrir la conexión:

open ()

.........

//obtenemos las listas de puertos

portList = CommPortIdentifier.getPortIdentifiers ();

//recorremos la enumeration buscando el puerto deseado

while (portList.hasMoreElements ())

{

//obtenemos el identificador del puerto

portId = (CommPortIdentifier) portList.nextElement ();

if (portId.getPortType () == CommPortIdentifier.PORT_SERIAL)

{

//comprobamos si el puerto obtenido es el que buscamos

if (portId.getName ().equals (nombrePuerto))

{

try

{

//abrimos la conexión del puerto serie buscado

serialPort = (SerialPort) portId.open ("X10 Media S

erver ", 2000);

ok = 1;

//establecemos las caracteristicas del puerto

serialPort.setSerialPortParams (9600,

SerialPort.DATABITS_8,

SerialPort.STOPBITS_1,

SerialPort.PARITY_NONE);

//abrimos dos flujos de datos, uno de salida y uno de

entrada.

//flujo de salida

outputStream = serialPort.getOutputStream ();

Page 148: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

138

//flujo de entrada

inputStream = serialPort.getInputStream ();

}

.........

Implementación de los métodos más relevantes de la clase Escritura:

Método encargado de la enviar distintos mensajes en función de la opción

deseada:

enviar(int opc)

.........

dos.writeInt(opc); if(opc==1){ //escribimos la lista x10 DispositivoX10 dispX10; int valor = 0; vDisp = Fichero.leer("dispositivos.obj"); //establecemos el valor máximo de la barra de progreso main.setMaximoPB(vDisp.size()); dos.writeInt(vDisp.size()); for(int i=0; i<vDisp.size(); i++) { dispX10 = (DispositivoX10)vDisp.get(i); dos.writeUTF (dispX10.getNombre()); System.out.println(dispX10.getNombre()); dos.writeUTF (dispX10.getDir()); System.out.println(dispX10.getDir()); dos.writeUTF (dispX10.getTipoX10().getRepresentacion()); System.out.println(dispX10.getTipoX10().getRepresentacion()); dos.writeUTF (dispX10.getTipoX10().getModelo()); System.out.println(dispX10.getTipoX10().getModelo()); valor++; //actualizamos la barra de progreso main.actualizarPB(valor); } //actualizamos la barra de prograso hasta el máximo main.actualizarPB(vDisp.size()); }

.........

else if(opc==4){ //enviar playlist Vector vPL = Fichero.leer("rutaPlayList.obj");

Page 149: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

139

File f = new File((String)vPL.get(0)); File[] cont=f.listFiles(); int max=cont.length; dos.writeInt(max); for (int i = 0; i<max; i++) { String tmp=cont[i].getName(); if (tmp.endsWith(".m3u")) { // es un archivo .m3u System.out.println("Enviando "+tmp); dos.writeUTF (tmp); } } }

.........

Método encargado de la enviar la lista de pistas:

enviarPistas(Vector vPistas)

.........

dos.writeInt(5); int max = vPistas.size(); dos.writeInt(max); for (int i = 0; i<max; i++) { Pista p = (Pista)vPistas.elementAt(i); String tmp = p.getNombre(); dos.writeUTF (tmp); }

.........

Método encargado de la enviar el título de la pista:

enviarTitulo(String titulo

.........

dos.writeInt(6); dos.writeUTF (titulo); //cerramos el flujo de datos abierto: dos.close();

.........

Page 150: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

140

Método encargado de la enviar el estado del reproductor:

enviarEstado(int estado, boolean repetir, boolean aleatorio,int volumen, String tiempo)

.........

dos.writeInt(7); dos.writeInt(estado); dos.writeBoolean(repetir); dos.writeBoolean(aleatorio); dos.writeInt(volumen); dos.writeUTF(tiempo); //cerramos el flujo de datos abierto: dos.close();

.........

Implementación de los métodos más relevantes de la clase Lectura:

Método encargado de leer los distintos mensajes del cliente:

leer()

.........

//se crea un flujo de entrada de datos asociado al flujo de

entrada

//abierto al iniciar la conexión.

InputStream inputStream = conexion.getInputStream();

DataInputStream dis = new DataInputStream (inputStream);

//se lee el comando procedentes del movil

String tipoObj = dis.readUTF();

if(tipoObj.equals("Abrir")){

String path = dis.readUTF();

main.abrirApp(path);

.........

else if(tipoObj.equals("click")){

String aux = dis.readUTF();

System.out.println("click");

main.clickIzquierdo();

.........

Page 151: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

141

else if(tipoObj.equals("Tecla")){

String tecla = dis.readUTF();

System.out.println("Tecla: " + tecla);

main.tecla(tecla);

.........

else if(tipoObj.equals("Ejecutar")){

String nombre = dis.readUTF();

String ruta = null;

//buscamos la ruta de la aplicación

Vector vApps = new Vector();

vApps = Fichero.leer("apps.obj");

boolean sw = true;

for(int i=0; i<vApps.size() && sw; i++)

{

App app = (App)vApps.get(i);

if(app.getNombre().equals(nombre))

{

sw = false;

ruta = app.getRuta();

}

}

main.abrirApp(ruta);

System.out.println("Abriendo: " + ruta);

.........

else if(tipoObj.equals("AbrirPL")){

String pl = dis.readUTF();

Vector vPL = Fichero.leer("rutaPlayList.obj");

String plPath = (String)vPL.get(0) + "\\" + pl;

Vector vR = Fichero.leer("rutaReproductor.obj");

String plR = (String)vR.get(0);

String path = plR + " \"" + plPath + "\"";

System.out.println("Abriendo: " + path);

main.abrirApp(path);

.........

else if(tipoObj.equals("VerPL")){

//obtemos el vector con las pistas

String pl = dis.readUTF();

Vector vPL = Fichero.leer("rutaPlayList.obj");

Page 152: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

142

String plPath = (String)vPL.get(0) + "\\" + pl;

System.out.print("Ver PL: " + plPath);

Vector vPista = Fichero.leerM3U(plPath);

Vector vPistas = Fichero.leerInfoPistas(vPista);

//eviamos la información de las pistas:

int op = conexion.getOk();

if(op == 1)

{

Escritura esc = new Escritura(main,conexion);

esc.enviarPistas(vPistas);

}

.........

else if(tipoObj.equals("Reproducir")){

int numPista = dis.readInt();

//modificar: recibir path de la listaR y con bucle next llegar

al numPista

//reproduce la pista escogida

System.out.println("Reproducir pista: " + numPista);

}

else if(tipoObj.equals("X10")){

//encapsula la informacion recibida

Comando comando = new Comando(dis.readUTF (),dis.readInt(),

dis.readInt());

//ejecuta el comando recibido

System.out.println("Leido: ");

System.out.println(" Dirección: " + comando.getDir());

System.out.println(" Acción: " + comando.getAccion());

System.out.println(" Nivel: " + comando.getNivel());

if(comando.getAccion()==0){ //encender

main.añadirDispMod(comando.getDir(),"Encender","Apagado");

}

else if(comando.getAccion()==1){ //apagar

main.añadirDispMod(comando.getDir(),"Apagar","Encendido");

Page 153: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

143

}

x10com.ejecutarComando(comando);

}

.........

else if(tipoObj.equals("estado")){

String aux = dis.readUTF();

System.out.println("Comprobar estado");

Control control = new Control();

int duracion = control.getLongitudCancion();

String tiempo;

if(duracion==-1){

tiempo = "0:00";

}

else{

int minutos = duracion/60;

int segundos = duracion%60;

tiempo = minutos + ":" + segundos;

}

Escritura esc = new Escritura(main,conexion);

esc.enviarEstado(control.getStatus(),control.isRepeatStatusOn(),control.isShuf

fleStatusOn(),control.getVolume(),tiempo);

.........

Implementación de los métodos más relevantes de la clase X10com:

Método encargado de abrir la conexión X10:

abrirConexion(String puerto)

.........

/*Creamos un nuevo controler*/

try{

controller = new CM11ASerialController(puerto);

}

catch(Exception e){

System.out.println("Error al crear Controller: " + e);

Page 154: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

144

}

/*Creamos el servidor del controller y seleccionamos el puerto*/

contServer = new ControllerServer(controller,2400);

contServer.start();

.........

Método encargado de cerrar la conexión X10:

cerrarConexion()

.........

controller.shutdownNow(); //100

.........

Método encargado de ejecutar los comandos X10:

ejecutarComando(Comando comando)

.........

if(comando.getAccion()==0){ //encender

this.encender(comando);

}

else if(comando.getAccion()==1){ //apagar

this.apagar(comando);

}

.........

else if(comando.getAccion()==3){ //modo

System.out.println("Ejecutar modo: " + comando.getDir());

Vector vModos = new Vector();

vModos = Fichero.leer("modos.obj");

Modo modo = null;

boolean encontrado = false;

for(int i=0; i<vModos.size() && !encontrado; i++)

{

modo = (Modo)vModos.get(i);

Page 155: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

145

if(modo.getNombre().equals(comando.getDir())){

encontrado = true;

}

}

Vector vDispAsiciados = modo.getDispositivos();

for(int j=0; j<vDispAsiciados.size(); j++)

{

DispositivoX10 dispX10 =

(DispositivoX10)vDispAsiciados.get(j);

System.out.println("Ejecutar comando: " + dispX10.getNombre()

+ ":" + dispX10.getDir()

+ ":" + dispX10.getEstado() + ":" + dispX10.getRegulara());

if(dispX10.getEstado().equals("Regular")){

this.regular(new

Comando(dispX10.getDir(),comando.getAccion(), dispX10.getRegulara()));

}

else if(dispX10.getEstado().equals("Apagado")){

this.apagar(new

Comando(dispX10.getDir(),comando.getAccion(), dispX10.getRegulara()));

}

else if(dispX10.getEstado().equals("Encendido")){

this.encender(new

Comando(dispX10.getDir(),comando.getAccion(), dispX10.getRegulara()));

}

}

}

.........

Método encargado de encender un dispositivo X10:

encender(Comando comando)

.........

if(comando.getDir().equals("luces")){

System.out.println("encender " + comando.getDir());

cmd = new Command(comando.getDir(),Command.ALL_LIGHTS_ON);

}

else{

Page 156: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

146

System.out.println("encender " + comando.getDir());

cmd = new Command(comando.getDir(),Command.ON);

}

//actualizamos el valor anterior

Vector vAux = new Vector();

vAux.addElement(new Estado(comando.getDir(),100));

Fichero.escribir("estados.obj",vAux);

//ejecutamos el comando

controller.addCommand(cmd);

.........

Método encargado de apagar un dispositivo X10:

apagar(Comando comando)

if(comando.getDir().equals("todos")){

System.out.println("apagar " + comando.getDir());

cmd = new Command(comando.getDir(),Command.ALL_UNITS_OFF);

}

else if(comando.getDir().equals("luces")){

System.out.println("apagar " + comando.getDir());

cmd = new Command(comando.getDir(),Command.ALL_LIGHTS_OFF);

}

else{

System.out.println("apagar " + comando.getDir());

cmd = new Command(comando.getDir(),Command.OFF);

}

.........

//ejecutamos el comando

controller.addCommand(cmd);

.........

Método encargado de regular un módulo de iluminación X10

regular(Comando comando)

.........

Vector vDispAux = Fichero.leer("estados.obj");

Page 157: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

147

for(int i=0; i<vDispAux.size(); i++)

{

Estado est = (Estado)vDispAux.get(i);

if(est.getDir().equals(comando.getDir())){

valorAnterior = est.getValor();

}

}

if ((valor >= 0) && (valor <= 100)) {

if ((valor > valorAnterior)) {

this.regularBRIGHT(valor-valorAnterior,comando.getDir());

valorAnterior = valor;

}

else{

this.regularDIM(valorAnterior-valor,comando.getDir());

valorAnterior = valor;

}

.........

Método encargado de dar intensidad a un módulo de iluminación X10:

regularBRIGHT(int res, String dir)

.........

cmd = new Command(dir,Command.ALL_UNITS_OFF);

cmd = new Command(dir,Command.BRIGHT,res);

controller.addCommand(cmd);

.........

Método encargado de atenuar a un módulo de iluminación X10:

regularDIM(int res, String dir)

.........

cmd = new Command(dir,Command.ALL_UNITS_OFF);

cmd = new Command(dir,Command.DIM,res);

controller.addCommand(cmd);

.........

Page 158: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

148

Ahora vamos a ver la implementación en C, MediaControl.C, contenida en la librería dinámica MediaControl.dll: #include "obj_Control.h" #include <stdio.h> #include <windows.h> const int WA_NOTHING = 0; const int WA_PLAY = 40045; // reproduce la pista seleccionada const int WA_PAUSE = 40046; // pausa y reproduce la pista actual const int WA_STOP = 40047; // para la pista actual const int WA_NEXTTRACK = 40048; // reproduce la siguiente pista const int WA_PREVTRACK = 40044; // reproduce la pista anterior const int WA_VOLUMEUP = 40058; // Sube el volumen const int WA_VOLUMEDOWN = 40059; // Baja el volumen const int WINAMP_FFWD5S = 40060; // Avanza 5 segundos const int WINAMP_REW5S = 40061; // Revovina 5 segundo const int WM_WA_IPC = 0x0400; // To tell Winamp that we are sending it a WM_USER (WM_WA_IPC) it needs the hex code 0x0400 const int IPC_DELETE = 101; // Borra lista de reproduccion const int IPC_GETOUTPUTTIME = 105; // Devuelve: // La posicion en milisegundo de la cancion actual (mode=0) // La longitud de la cancion en segundos (mode = 1). // -1 Si no esta reproduciendo o hay un error. const int IPC_JUMPTOTIME = 106; // Establece la posición en milisegundos de la cancion actual. Devuelve -1 si no esta reproduciendo, 1 en eof, o 0 si es satisfactorio. Requiere Winamp v1.60+ const int IPC_WRITEPLAYLIST = 120; Escribe la lista de reproduccion actual a <winampdir>\\Winamp.m3u, y devuelve la posición de la lista actual de reproduccion. Requiere Winamp v1.666+ const int IPC_SETPLAYLISTPOS = 121; // Establece la posición de la lista de reproducción actual. const int IPC_SETVOLUME = 122; // Establece el volumen del Winamp (de 0-255) const int IPC_SETPANNING = 123; // Establece el panning de Winamp (de 0 (izq) to 255 (der)) const int IPC_GETLISTLENGTH = 124; // Devuelve el tamaño de la lista de reproducción actual. const int IPC_GETLISTPOS = 125; // Devuelve la posición en la lista de reproducción. Requiere Winamp v2.05+ const int IPC_GETINFO = 126; // Devuelve información sobre la canción actual ( Kb rate). El valor de retorno depende del valor del 'mode'. Si mode == 0 devuelve Samplerate (p.ej: 44100), Si mode == 1 devuelve el Bitrate (p.ej: 128), si mode == 2 devuelve los canales (p.ej: 2) const int IPC_GETPLAYLISTTITLE = 212; const int WA_GETSTATUS =104; const int WA_REFRESHPLCACHE = 247; const int WA_GETSHUFFLESTATUS = 250; const int WA_GETREPEATSTATUS = 251; const int WA_SETSHUFFLESTATUS = 252; const int WA_SETREPEATSTATUS = 253; const int VK_R = 0x52; const int VK_L = 0x4C; const int VK_J = 0x4A; const int VK_S = 0x53; HWND hTaskBar, hButton; HWND hwnd = NULL; void initWinampHandle() { if (hwnd == NULL) { hwnd = FindWindow("Winamp v1.x", NULL); } if (hwnd == NULL) { hwnd = FindWindow("Winamp v2.x", NULL); } if (hwnd == NULL) { hwnd = FindWindow("Winamp v3.x", NULL); } }

Page 159: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

149

JNIEXPORT jstring JNICALL Java_obj_Control_getCurrentSongTitle(JNIEnv *env, jobject obj) { char lpText[100]; int intLength = GetWindowText(hwnd, lpText, 100); initWinampHandle(); if ((intLength <= 0) || (intLength > 100)) strcpy(lpText,"N/A"); return (*env)->NewStringUTF(env, lpText); } JNIEXPORT void JNICALL Java_obj_Control_play (JNIEnv *env, jobject obj) { initWinampHandle(); if (hwnd != NULL) { SendMessageA(hwnd, WM_COMMAND, WA_PLAY, WA_NOTHING); } } JNIEXPORT void JNICALL Java_obj_Control_pause(JNIEnv *env, jobject obj) { initWinampHandle(); if (hwnd != NULL) { SendMessageA(hwnd, WM_COMMAND, WA_PAUSE, WA_NOTHING); } }

.........

// Devuelve: // La posicion en milisegundo de la cancion actual (mode=0) // La longitud de la cancion en segundos (mode = 1). // -1 Si no esta reproduciendo o hay un error. JNIEXPORT jint JNICALL Java_obj_Control_getLongitudCancion(JNIEnv *env, jobject obj) { int longitud = 0; initWinampHandle(); if (hwnd != NULL) { longitud = SendMessageA(hwnd, WM_WA_IPC, 1, IPC_GETOUTPUTTIME); } return longitud; } JNIEXPORT void JNICALL Java_obj_Control_setVolume(JNIEnv *env, jobject obj, jint position) { //volume is 0 - 255 initWinampHandle(); if (hwnd != NULL) { SendMessageA(hwnd, WM_WA_IPC, position, IPC_SETVOLUME); } } JNIEXPORT jint JNICALL Java_obj_Control_getVolume(JNIEnv *env, jobject obj) { int volumen = 0; //volumen a -666 devuelve el volumen entre 0-255 actual initWinampHandle(); if (hwnd != NULL) { volumen = SendMessageA(hwnd, WM_WA_IPC, -666, IPC_SETVOLUME); } return volumen; } JNIEXPORT void JNICALL Java_obj_Control_listaCompleta(JNIEnv *env, jobject obj) { int pos=0; int total; initWinampHandle(); total = SendMessageA(hwnd, WM_WA_IPC, WA_NOTHING, IPC_GETLISTLENGTH); printf("Total: %d\n",total); while(pos < total)

Page 160: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

150

{ char *name = (char *)SendMessage(hwnd,WM_WA_IPC,pos,IPC_GETPLAYLISTTITLE); printf("%d: %s\n",pos, name); pos ++; } }

.........

//raton void moverCursor(int x, int y){ SetCursorPos(x,y); } JNIEXPORT void JNICALL Java_obj_Control_moverDerechaCursor(JNIEnv *env, jobject obj) { POINT coord; GetCursorPos(&coord); moverCursor(coord.x+5, coord.y); } JNIEXPORT void JNICALL Java_obj_Control_moverIzquierdaCursor(JNIEnv *env, jobject obj) { POINT coord; GetCursorPos(&coord); moverCursor(coord.x-5, coord.y); }

.........

JNIEXPORT void JNICALL Java_obj_Control_menuInicio(JNIEnv *env, jobject obj){ hTaskBar= FindWindow("Shell_TrayWnd", NULL); hButton= GetWindow(hTaskBar, GW_CHILD); SetForegroundWindow( hButton ); SendMessageW(hButton, WM_LBUTTONDOWN, 0, 0); SendMessageA(hButton, WM_KEYDOWN, GetAsyncKeyState(VK_R), WA_NOTHING); }

Page 161: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

151

8. IMPLANTACIÓN

8.1 ESTUDIO DE LAS TECNOLOGÍAS DE COMUNICACIÓN

8.1.1 COMM

8.2 INSTALACIÓN DE X10 MEDIA HOME

8.2.1 X10 MEDIA CLIENT 8.2.2 X10 MEDIA SERVER

Page 162: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

152

8. IMPLANTACIÓN

8.1 ESTUDIO DE LAS TECNOLOGÍAS DE COMUNICACIÓN

8.1.1 COMM La comunicación por puerto serie, permite al ordenador comunicarse con todo

tipo de dispositivos periféricos: módems, impresoras, escáneres, lectores de código de

barras, etc. El API de Comunicaciones Java, constituido por el paquete javax.comm,

que proporciona JavaSoft, no forma parte del JDK, pero añade soporte a Java para

dispositivos serie y paralelo.

El paquete proporciona soporte para dispositivos serie y paralelo al estilo Java,

es decir, utilizando una semántica semejante a la que se usa con streams y eventos. Para

comunicarse con un dispositivo serie a través de uno de los puertos serie de un

ordenador, desde una aplicación Java o un applet, es necesario un interfaz. El API de

Comunicaciones Java, permite transmitir y recibir datos a través de dispositivos

conectados al puerto serie; proporcionando además un conjunto de opciones que

permiten la configuración de todos los parámetros asociados a los puertos serie y

paralelo. Este API es una proposición para establecer un método estándar de acceso a

los puertos de comunicaciones, que permita escribir programas Java independientes de

la plataforma. Así se pueden escribir programas para emulación de terminales,

programas de fax, lectores de tarjetas, etc.

Page 163: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

153

El desarrollo de buenos programas normalmente pasa por construir unos cuantos

interfaces claramente definidos. El diagrama de alto nivel de las capas que componen el

API de comunicaciones Java es el que se reproduce en la figura:

Capas del API.

El diagrama que muestra la figura siguiente describe los objetos involucrados en

la lectura o escritura de datos en un puerto serie desde Java.

Page 164: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

154

Lectura/escritura.

8.2 INSTALACIÓN DE X10 MEDIA HOME

8.2.1 X10 MEDIA CLIENT

Dependiendo del dispositivo móvil del que dispongamos, varía la forma de

instalación de la aplicación. A continuación vamos a explicar dos casos reales de

instalación, para distintos dispositivos:

Nokia N80:

Se seleccionar el fichero x10MediaClient.jar y se envía vía Bluetooth. El

dispositivo móvil, lo recibe como si fuera un mensaje, por lo que abrimos dicho

mensaje y pulsamos la opción de instalar. Escogemos donde deseamos que sea instalado

Page 165: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

155

y continuamos con el proceso. Una vez instalado, vamos a la ubicación donde ha sido

instalado y ya está listo para ser ejecutado.

Motorola V3x:

Seleccionamos el fichero x10MediaClient.jar y lo enviamos por Bluetooth, a

continuación seguimos todos los pasos que nos indica el móvil y una vez instalado, ya

está listo para su ejecución.

Si disponemos de cualquier otro dispositivo móvil, consultar el manual de

usuario del mismo para realizar la instalación de cualquier aplicación Java.

8.2.2 X10 MEDIA SERVER

Para facilitar esta tarea, se ha creado un instalador para copiar todos los ficheros

necesarios para el funcionamiento de la aplicación en el lugar adecuado, será necesario

seguir todos y cada uno de los siguientes pasos:

1. Instalar la JRE 6.0 si no la tienes.

2. Ejecutamos el fichero X10MediaHomeSetup.jar y seguimos los

siguientes pasos:

a. Elegimos el idioma de instalación y pulsamos OK:

Page 166: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

156

b. Pantalla de bienvenida, hacemos clic en siguiente:

Page 167: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

157

c. Información de la aplicación, hacemos clic en siguiente:

d. Elegimos el directorio de instalación:

Page 168: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

158

e. Elegimos si queremos guardar el código fuente o no:

f. Progreso de instalación:

Page 169: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

159

g. Accesos directos en el escritorio y en el menú inicio:

h. Pantalla de instalación completada con éxito:

Page 170: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

160

3. Configuración Bluetooth:

Para que nuestra aplicación cliente X10 Media Home, pueda descubrir el

dispositivo Bluetooth de nuestro PC, necesitamos que este visible. Para

ello debemos seguir el siguiente proceso de configuración:

Proceso de configuración para Windows XP:

a. Hacemos doble clic sobre el icono Bluetooth que aparece en la

barra de tareas del escritorio:

b. Una vez abierta la ventana, hacemos clic sobre la pestaña de

Opciones y establecemos las opciones como en la siguiente

pantalla:

Page 171: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

161

c. Pulsamos Aceptar.

d. Para conocer cual es el puerto COM asociado a nuestro

dispositivo Bluetooth, debemos hacer clic sobre la pestaña

Puertos COM y el que necesitamos para nuestra aplicación es el

Entrante, si no tenemos ninguno, pulsamos a agregar:

Page 172: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

162

4. Una vez realizados los paso anteriores, la aplicación ya está lista para

ejecutarse, haciendo doble clic sobre el fichero de la aplicación.

Page 173: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

163

9. CONCLUSIONES

9.1 PROYECTO DE INNOVACIÓN 9.2 ANÁLISIS DE TECNOLOGÍAS, PROBLEMAS Y RESULTADOS 9.3 OTROS CAMPOS DE APLICACIÓN 9.4 PROYECCIÓN DE FUTURO

Page 174: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

164

9. CONCLUSIONES

9.1 PROYECTO DE INNOVACIÓN

Durante el desarrollo del proyecto, se ha podido observar como se trataba de un

proyecto de innovación, ya que hasta la realización del mismo no existía ninguna

aplicación desarrollada en JAVA SE que dialogara, mediante la tecnología inalámbrica

Bluetooth, con una desarrollada en J2ME, ya que sólo existían desarrollos que permitían

la comunicación entre dispositivos móviles y además que uniese funcionalidades de

control como son el caso de los dispositivos X10, multimedia y del PC.

9.2 ANÁLISIS DE TECNOLOGÍAS, PROBLEMAS Y RESULTADOS

El desarrollo de esta parte del proyecto ha sido costoso en lo que se refiere al

aprendizaje de nuevas tecnologías como es el uso de Bluetooth y X10 con Java.

También el aprendizaje de J2ME para el desarrollo de la aplicación móvil.

El desarrollo de este tipo de aplicaciones, es decir, una aplicación que ha requerido

un estudio sobre las tecnologías a utilizar, una aplicación que trabaja con tecnologías

nuevas como el uso del Bluetooth para la comunicación y el X10 para la parte domótica,

sobre las que hoy en día, hay poca documentación y soporte al desarrollo, supone un

mayor esfuerzo ya que implica el uso de tecnología de última generación para realizar

las pruebas de la misma.

Page 175: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

165

Una vez entendido el funcionamiento de Bluetooth, hay que aprender el manejo del

entorno en el que vamos a desarrollar y una vez familiarizado con el mismo, se lleva a

cabo la parte gráfica de la aplicación cliente.

A lo largo del desarrollo de la aplicación cliente, se ha tenido una serie de

problemas, en los que cabe destacar todo lo que comprende la sincronización con el PC

y el control del mismo.

Esta parte es la más delicada de la aplicación tanto en la parte cliente como en la

servidora, ya que si esta parte no funciona correctamente, no se podrán realizar

simulaciones entre ambos para probar el correcto funcionamiento de la aplicación. La

parte de la sincronización con el PC ha sido, aparte de la más costosa, la que ha

acaparado el mayor tiempo, tanto en desarrollo como en búsqueda de documentación, y

como era de esperar la que más problemas a dado.

9.3 OTROS CAMPOS DE APLICACIÓN

El uso de la tecnología inalámbrica Bluetooth, se está extendiendo cada vez más en

nuestros días, esto da pie, a que cada vez más dispositivos lleven integrada esta

tecnología, y como consecuencia se realicen aplicaciones con el uso de la misma.

Otro tipo de aplicaciones que se pueden llevar a cabo con Bluetooth pueden ser:

• Control de calidad en una planta de fabricación.

• Cuestionarios a pie de calle para sincronizar la información

posteriormente de forma automática.

Page 176: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

166

• Presentación de la carta de un restaurante en el dispositivo móvil, a la

entrada en el mismo.

Para que un sistema pueda ser considerado “inteligente” ha de incorporar

elementos o sistemas basados en las Nuevas Tecnologías de la Información (NTI).

El uso de las NTI en la vivienda genera nuevas aplicaciones y tendencias

basadas en la capacidad de proceso de información y en la integración y comunicación

entre los equipos e instalaciones. Así concebida, una vivienda inteligente puede ofrecer

una amplia gama de aplicaciones en áreas tales como:

• Monitorización de salud.

• Seguridad.

• Gestión de la energía.

• Automatización de tareas domésticas.

• Formación, cultura y entretenimiento.

• Teletrabajo.

• Operación y mantenimiento de las instalaciones, etc.

De una manera general, un sistema domótico dispondrá de una red de

comunicación y diálogo que permite la interconexión de una serie de equipos a fin de

obtener información sobre el entorno doméstico y, basándose en ésta, realizar unas

determinadas acciones sobre dicho entorno.

Page 177: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

167

9.4 PROYECCIÓN DE FUTURO

Para empezar podemos decir que todas las tecnologías empleadas en el proyecto

gozan de una gran aceptación lo que asegura su uso generalizado a corto plazo. Esto se

puede observar perfectamente en el caso del Bluetooth, que está implantado en la

mayoría de los dispositivos móviles y se empieza a extender a otros campos

relacionados con éstos, como es su implantación en los automóviles.

Desde el punto de vista de la utilización de dispositivos X10, se puede decir que la

penetración imparable de la tecnología en los hogares, como consecuencia de la

disminución de precios, la competencia y el ciclo de vida de estos productos, hará

mucho más posible y accesible la Domótica para todos.

Pero si bien existe normativa suficiente para distintos ámbitos del hogar digital y

conectado que pretende la Domótica (REBT, reciente ICT, etc.), no existen normas

específicas que guíen la actuación de este conglomerado de actores que se dan cita en el

sector, lo que, en opinión de algunos expertos, se solucionaría con un reglamento

concreto y ‘ad-hoc’ a partir de la multitud de normas existentes y otras nuevas,

fomentando así el entendimiento dentro de este sector plenamente multidisciplinar.

El concepto de Ambiente Inteligente muestra una visión de la Sociedad de la

Información en el que se enfatiza la facilidad de uso, el soporte eficiente de los servicios

y la posibilidad de mantener interacciones naturales con el ser humano. El objeto central

se materializa a grandes rasgos en un individuo rodeado de interfaces inteligentes e

intuitivas que se encuentran integradas en partes y objetos corrientes, todo esto en un

Page 178: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

168

entorno que sea capaz de reconocer y responder a la presencia y necesidades de

diferentes individuos, de una forma completamente discreta e imperceptible más que a

través de los resultados. Un entorno por otra parte, que no se limita a ningún lugar físico

determinado, sino que comprende a todos ellos: la casa, el coche, el lugar de trabajo,

etc.

Page 179: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

169

10. BIBLIOGRAFÍA

Page 180: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

170

10. BIBLIOGRAFÍA

[GALV] Gálvez Rojas, Sergio. Ortega Díaz, Lucas. “Java a Tope. Java 2 Micro

Edition”. Universidad de Málaga

[FROU] Froufe, Agustín. Cárdenas Nennetti, Jorge. “J2ME. Java 2 Micro Edition +

CDROM”. Ra-Ma.

[MUCH] Mochow, John W. “Core J2ME Technology”. Sun Microsystems Press,

Prentice Hall

[ALVA] Alvarez Garcia, Alonso. Morales Grela, Jose Ángel. “J2ME (guías

prácticas)”. Anaya Multimedia-Anaya Interactiva.

[VAND] van der Liden, Meter. “Just Java™ 2: JAVA SE 1.5 Edition”. Prentice Hall

PTR.

http://www.zonabluetooth.com/general.htm : Información sobre aspectos generales,

tecnológicos y la arquitectura.

http://gospel.endorasoft.es/bluetooth/especificacion-bluetooth/bluez/bluezspammer.html

: segudidad Bluetooth.

http://spanish.bluetooth.com/Bluetooth/Default.htm : sitio oficial Bluetooth en español.

Page 181: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

171

http://www.pythoncriticalmass.com : Bruce Eckel´s Free Electronic Books

http://www.javabluetooth.com : Página sobre desarrollo de aplicaciones Bluetooth.

http://bluetooth.com : Sitio web oficial de Bluetooth.

http://java.sun.com : Sitio web de Sun.

http://www.programacion.com : Sitio web de programación.

http://developers.sun.com : Sitio web de Sun para el desarrollo de aplicaciones en Java.

http://www.benhui.net : Sitio web para el desarrollo de aplicaciones con Bluetooth

http://www.corej2me.com : Sitio web para el desarrollo de aplicaciones móviles.

http://www.jguru.com : Sitio web de programación en Java.

http://www.javahispano.org : Sitio web dedicado a Java.

http://www.homesystems.es/indexFSx10.html : Información sobre X10.

http://www.domoticaviva.com/X-10/X-10aparato.htm : Información sobre X10.

Page 182: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

172

11. ANEXOS

11.1 MANUAL DE USUARIO

11.1.1 X10 MEDIA CLIENT 11.1.2 X10 MEDIA SERVER

Page 183: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

173

11. ANEXOS

11. MANUAL DE USUARIO

11.1 X10 MEDIA CLIENT ÍNDICE

1. Información general

a. Descripción general

2. Conceptos básicos

3. Utilización del menú

a. Dispositivos X10

b. Control Multimedia

c. Control PC

1. INFORMACIÓN GENERAL

a. Descripción general

X10 Media Client es un sistema que funcionando en conjunto con X10 Media

Server, permite manejar de una forma clara y sencilla los dispositivos X10 del

hogar, tanto de manera independiente como mediante modos preprogramados en el

servidor y transmitidos al cliente que permite aplicar a varios dispositivos distintas

funciones de una vez, por ejemplo, modo cine.

También nos va a permitir manejar las los medios multimedia almacenados el

nuestro PC, con múltiples opciones que nos facilitarán dicha tarea.

Page 184: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

174

A parte de los dos grandes módulos de los que consta la aplicación cliente,

tenemos otras funcionalidades a nivel de control del PC que nos van a permitir un

control total del mismo, como por ejemplo, el apagado del PC desde el dispositivo

móvil, abrir aplicaciones, control total del ratón y envío de teclas para poder

interactuar con otras aplicaciones.

2. CONCEPTOS BÁSICOS

Una vez iniciada la misma, saldrá una pantalla de bienvenida, como se muestra a

continuación:

Después de 3 segundos, se muestra la pantalla de conexión Bluetooth, en la que

se muestra el nombre de un dispositivo al que nos hemos conectado en la última

conexión o por el contrario si es la primera vez que nos conectamos, aparece sólo la

opción de buscar dispositivos. La podemos ver a continuación:

Si queremos utilizar la conexión anterior y así poder saltarnos pasos como la

búsqueda de dispositivos y servicios, nos situamos sobre el nombre de la conexión

Page 185: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

175

anterior y pulsamos la tecla OK del dispositivo móvil. Esto sólo es posible si nos

conectamos al mismo dispositivo Bluetooth que nos muestra.

Si nos conectamos a un dispositivo nuevo, debemos situarnos encima de Buscar

dispositivos y pulsamos OK. Luego elegimos el nombre de nuestro dispositivo y

seguimos los pasos que nos aparezcan en pantalla ya que estos pueden variar de un

dispositivo a otro.

Posibles problemas:

• Si al buscar dispositivos no encontramos el nuestro, debemos asegurarnos

que está en modo visible (ver Configuración Bluetooth del manual del

servidor).

• Si podemos ver el dispositivo pero nos dice que no se encuentran los

servicios buscados, es posible que nuestro dispositivo móvil se encuentre

conectado a un dispositivo móvil, por lo que debemos desconectarnos e

iniciar de nuevo el proceso.

Para que funcione todo correctamente, primero debe configurar los teclados de

Control del PC y Control Multimedia desde el servidor y enviarlos al cliente, así como

la ruta del reproductor y demás configuraciones, para poder así usarlo con todas sus

posibilidades.

Page 186: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

176

3. UTILIZACIÓN DEL MENÚ

La aplicación sigue una estructura de menús, englobados por tres grandes

módulos: Dispositivos X10, Control Multimedia y Control del PC, los vemos en

detalle a continuación:

a. Dispositivos X10

Para entrar en el menú de Dispositivos X10 pulse la tecla ↓.

Una vez dentro del menú, encontramos Dispositivos X10 y Modos.

Si pulsamos Seleccionar, posicionados sobre Dispositivos X10, se nos muestra la lista

de dispositivos X10 que tenemos configurados en el servidor. Sobre cada dispositivo,

podemos encender y apagar, y si además éste es un modulo de iluminación, también

podremos regular.

Si pulsamos Seleccionar, posicionados sobre Modos, se nos muestra la lista de

modos que tenemos configurados en el servidor. Si queremos ejecutar alguno de ellos,

sólo tenemos que posicionarnos sobre él y pulsar la tecla de Seleccionar.

b. Control Multimedia

Para entrar en el menú de Dispositivos Multimedia pulse la tecla ↓.

Una vez dentro podemos pulsar la tecla de Opciones y tendremos la posibilidad

de elegir entre:

Page 187: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

177

• Listas: nos mostrará las listas de reproducción. Podemos reproducir

cualquiera de ellas si nos posicionamos sobre la deseada y pulsamos la tecla

Seleccionar. Si queremos ver el contenido de la misma pulsamos la Ver.

• Volumen: regular el volumen a la intensidad deseada.

• Silenciar: silenciar el volumen del reproductor.

• Aleatorio: orden de reproducción aleatorio.

• Repetir: repetir la pista.

Para manejar el reproductor, debemos estar en la pantalla principal del mismo, y

pulsar las teclas que previamente hemos configurado y enviado desde el servidor.

c. Control PC

Para entrar en el menú de Control del PC pulse la tecla ↓.

Una vez dentro podemos manejar el ratón y hacer clic, mediante las teclas que

hemos configurado y enviado previamente desde el servidor.

Si queremos enviar texto a la aplicación que se encuentre activa en el servidor,

sólo tenemos que ir al menú Enviar Texto, escribir el texto deseado y pulsar Enviar.

Page 188: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

178

11.2 X10 MEDIA SERVER ÍNDICE

1. Información general

a. Descripción general

b. Configuración Bluetooth

c. Instalación

2. Configuración de la aplicación

a. Configuración Bluetooth y X10

3. Módulos de la aplicación

a. Dispositivos X10

b. Control Multimedia

c. Control PC

d. Modos

1. INFORMACIÓN GENERAL

a. Descripción general

X10 Media Server, es una herramienta capaz de ofrecer servicios de

sincronización para establecer una comunicación con un dispositivo móvil, a través

de la aplicación cliente.

Permite, tanto mandar información de los dispositivos X10 almacenados,

modos, listas de reproducción, opciones de configuración, etc. al dispositivo móvil,

así como recibir información de los comandos o peticiones a ejecutar en cada

momento.

Page 189: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

179

Además permite la ejecución de ciertos comando X10 de forma independiente al

sistema cliente.

b. Configuración Bluetooth

Para que nuestra aplicación cliente X10 Media Client, pueda descubrir el

dispositivo Bluetooth de nuestro PC, necesitamos que este visible. Para ello

debemos seguir el siguiente proceso de configuración:

Proceso de configuración para Windows XP:

a. Hacemos doble clic sobre el icono Bluetooth que aparece en la

barra de tareas del escritorio:

b. Una vez abierta la ventana, hacemos clic sobre la pestaña de

Opciones y establecemos las opciones como en la siguiente

pantalla:

Page 190: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

180

c. Pulsamos Aceptar.

d. Para conocer cual es el puerto COM asociado a nuestro

dispositivo Bluetooth, debemos hacer clic sobre la pestaña

Puertos COM y el que necesitamos para nuestra aplicación es el

Entrante.

Page 191: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

181

c. Instalación

Para facilitar esta tarea, se ha creado un instalador para copiar todos los ficheros

necesarios para el funcionamiento de la aplicación en el lugar adecuado, será

necesario seguir todos y cada uno de los siguientes pasos:

1. Instalar la JRE 6.0 si no la tienes.

2. Ejecutamos el fichero X10MediaHomeSetup.jar y seguimos los

siguientes pasos:

a. Elegimos el idioma de instalación y pulsamos OK:

Page 192: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

182

b. Pantalla de bienvenida, hacemos clic en siguiente:

c. Información de la aplicación, hacemos clic en siguiente:

Page 193: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

183

d. Elegimos el directorio de instalación:

e. Elegimos si queremos guardar el código fuente o no:

Page 194: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

184

f. Progreso de instalación:

g. Accesos directos en el escritorio y en el menú inicio:

Page 195: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

185

h. Pantalla de instalación completada con éxito:

2. CONFIGURACIÓN DE LA APLICACIÓN

a. Configuración Bluetooth y X10

Hacemos clic en el menú Configuración Opciones de configuración

y nos muestra la siguiente ventana:

Page 196: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

186

En ella debemos elegir los puertos COM que utiliza el Bluetooth y el X10.

3. MODULOS DE LA APLICACIÓN

Una vez iniciada la aplicación aparece minimizada en la barra del sistema, con el

siguiente icono:

Podemos salir de la aplicación haciendo clic con el botón derecho del ratón sobre

el icono :

También podemos abrir la aplicación, haciendo doble clic con el botón izquierdo

sobre el icono , mostrándose la pantalla de Control de Dispositivos X10.

Page 197: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

187

A continuación veremos los grandes módulos de que consta la aplicación y su

funcionamiento y configuración:

a. Dispositivos X10

Page 198: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

188

Ventana Añadir dispositivo:

Ventana Borrar dispositivo:

Page 199: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

189

b. Control Multimedia

c. Control PC

Page 200: Autorizada la entrega del proyecto del alumno: Carlos ...o Explora listas de reproducción, canciones, artista, álbum, genero. o Busca por canción. o Play/pause, rewind, fast forward,

SCDI-DM - Carlos Cifuentes Fernández - IINF - ICAI - COMILLAS - PFC 06/07

190

d. Modos