3. Entorno de trabajo
4.4. Modos de Funcionamiento
Para realizar las conexiones entre la aplicaci´on y el controlador de Vera se partir´a de un c´odigo realizado previamente por otro estudiante. Este c´odigo pose´ıa la l´ogica necesaria para el funcionamiento del controlador de Vera en funci´on de los diferentes botones. Para la aplicaci´on desarrollada en este proyecto se han tenido que modificar ligeramente ciertos m´etodos empleados en la clase VeraController.h y eliminar algu- nos que no se van a emplear para esta aplicaci´on como son los correspondientes a las luces deslizantes. Adem´as, se han tenido que realizar diversas modificaciones sobre el programa desarrollado inicialmente, ya que en las versiones iniciales se empleaba cURL para peticiones web, mientras que finalmente se ha empleado la librer´ıa QURL de QtCreator debido al c´odigo empleado por el otro estudiante. Adem´as, para con- tinuar con la l´ogica empleada por este estudiante, las interfaces de la aplicaci´on se han desarrollado mediante c´odigo de manera completa y no usando el QtDesigner, que se emplea especialmente para la interfaz de usuario.
La aplicaci´on desarrollada en el proyecto se ha pensado para que tenga cuatro modos diferentes de funcionamiento. Se han establecido el modo “T´actil”, el modo “Ojos” (para poder interactuar mediante la vista), el modo “Voz” (para poder in-
4.4. MODOS DE FUNCIONAMIENTO 29
Figura 4.14: Cuadro de Di´alogo
teractuar mediante la voz, con unos comandos establecidos previamente) y un modo “Gestos” para poder controlarlo mediante movimientos de los brazos del usuario.
En el modo T´actil se controlar´a la habitaci´on directamente mediante la pulsaci´on de los botones de las interfaces dise˜nadas y explicadas en el apartado 4.3.
En el modo Ojos se puede controlar la habitaci´on de la misma manera, pero en es- te caso, el m´etodo de hacer click en cada uno de los botones puede ser o bien mirando fijamente a un bot´on durante un tiempo establecido, o bien gui˜nando cualquier ojo mirando a ese bot´on. El tiempo para considerar una fijaci´on o un gui˜no como click puede ser modificado por el usuario desde la pantalla configuraci´on y el m´etodo em- pleado (s´olo puede haber uno activo al mismo tiempo), tambi´en se puede modificar desde esta pantalla o bien se puede modificar manteniendo los ojos cerrados durante un tiempo m´ınimo (a especificar en la pantalla configuraci´on tambi´en). Adem´as, en esa pantalla configuraci´on se pueden realizar acciones directamente sobre el usuario, como recalibrar el dispositivo o cambiar de usuario, en caso necesario.
En el modo Voz se controlar´a la habitaci´on mediante unos comandos de voz de- terminados previamente. Para que el programa empiece a escuchar bastar´a con decir la palabra “Hola” y, posteriormente, se podr´a navegar por la aplicaci´on mediante los comandos preestablecidos indicados anteriormente.
En el modo Gestos se pueden realizar acciones sobre algunos dispositivos, como las luces, de tal manera que si el usuario coloca cualquiera de los brazos en posici´on horizontal frente a la kinect, el dispositivo seleccionado cambiar´a al siguiente (si es el brazo izquierdo) o al anterior (si es el brazo derecho). Para cambiar el estado de la bombilla seleccionada bastar´a con colocar cualquiera de los brazos de manera vertical apuntando hacia arriba.
Cap´ıtulo 5
Implementaci´on
Para la aplicaci´on desarrollada, y tal como se ha explicado en el apartado 3.3.1, la aplicaci´on a desarrollar emplear´a ´unicamente el protocolo de comunicaci´on HTTP para comunicarse con el controlador. Adem´as, la aplicaci´on se ha desarrollado en lenguaje C++ para, junto con el protocolo HTTP, poder ser usada en la mayor´ıa de los casos. Para que la aplicaci´on termine de ser multiplataforma, se ha desarrollado finalmente en QtCreator, entorno de desarrollo disponible para cualquier sistema operativo, tanto basados en Microsoft Windows como en sistemas UNIX.
Para poder controlar adecuadamente el desarrollo software realizado se ha em- pleado un sistema de control de versiones. Esto ha terminado por resultar muy ´util ya que se ha realizado el proyecto desde diversos ordenadores y, adem´as, finalmente se tuvo que juntar este proyecto con el de otros compa˜neros, por lo que fue muy adecuado para que tambi´en ellos tuviesen el c´odigo disponible de manera inmediata.
5.1.
Controlador de Vera
Para realizar el control sobre la habitaci´on empleando la aplicaci´on, ser´a necesa- rio realizar las consultas y acciones sobre el controlador de Vera mediante peticiones y respuestas HTTP (de esta manera, adem´as, se pueden realizar las acciones queri- das simplemente copiando la URL en el buscador) tal como se especifica en 3.3.1. Para ello, el controlador viene provisto de las direcciones web a llamar para realizar distintas acciones sobre los dispositivos y todas estas tienen que tener, como m´ıni- mo, dos datos obligatorios. Estos son el identificador del dispositivo (cada uno tiene un id diferente dentro del propio controlador) y un formato de salida determinada (puede ser json, xml o texto).
De esta manera, si se quiere encender una bombilla sin tener que emplear la aplicaci´on, bastar´ıa con escribir la direcci´on URL correspondiente en el buscador sustituyendo el valor del identificador por el del dispositivo sobre el que se quiere realizar la acci´on.
En cuanto a la aplicaci´on desarrollada, se ha creado un archivo con extensi´on “.h” que contendr´a las partes correspondientes a la direcci´on web que hay que llamar en funci´on de las acciones que se quieran realizar. Para efectuar cualquier operaci´on desde la aplicaci´on, por tanto, s´olo tenemos que construir la direcci´on a la que se tendr´a que llamar teniendo en cuenta el identificador (el formato de salida siempre ser´a json) y el estado en el que queremos que acabe el actuador. Finalmente, lo ´unico que hay que realizar una vez construida la direcci´on web es realizar una llamada a