• No results found

Presentation of Primary Data of Sample Group Three: Trainees

Data Presentation, Discussion and Analysis

6.2 Data Presentation

6.2.3 Presentation of Primary Data of Sample Group Three: Trainees

4.4.1.1 Remote Command Interface RCI

Remote Command Interface (RCI) es un mecanismo diseñado para permitir el control, configuración remota y el intercambio de información entre un servicio web y un equipo de Digi. RCI permite al usuario:

• Leer y cambiar la configuración de dispositivos Digi.

• Leer y escribir el estado de los dispositivos (por ejemplo inspeccionar las estadísticas de una red o leer y cambiar el estado de un pin de entrada o salida).

108 • Reiniciar un dispositivo.

• Configurar redes XBee formadas por dispositivos Digi.

• Enviar peticiones y obtener respuestas dinámicamente de programas Python.

Las peticiones RCI son enviadas a los dispositivos a través del servidor de iDigi y son encoladas en las peticiones de servidor, llamado SCI. Por esta razón las peticiones realizadas en la aplicación se tratan como sci_request o sci_reply. A continuación se muestra un ejemplo de petición RCI y su respuesta que solicita a un dispositivo su información de sistema (system):

<rci_request version=”1.1”> <query_setting> <system/> </query_setting> </rci_request> <rci_reply version=”1.1”> <query_setting> <system> <description>ConnectPort X2 - PFC</description> <contact>Diego Jimenez</contact> <location>Madrid, Spain</location> </system> </query_setting> </rci_reply> Protocolo RCI

El protocolo RCI está formado por dos partes:

• Objetos XML que contienen peticiones y respuestas

• La capa de transporte sobre la que es intercambiado el contenido entre el servidor y el dispositivo.

Como ya se ha adelantado anteriormente RCI intercambia los datos entre el dispositivo y el cliente mediante objetos XML. Todos los objetos XML usados en RCI son del tipo denominado Well-formed XML que quiere decir que cumple las normas de la sintaxis de la especificación XML 1.0. Además siempre habrá que utilizar codificación UTF-8

La capa de transporte es un mecanismo que permite la comunicación entre los dispositivos y el servidor. Especifica el proceso de inicialización, los mecanismos de envío y respuesta, el mecanismo de cierre de conexiones, los códigos de error y la seguridad.

109

Comandos RCI

Existen una serie de comandos definidos en el protocolo. En la tabla 12 se muestran los comandos disponibles y la descripción de la petición y de la respuesta.

Comando Descrpción de la petición Descripción de la respuesta query_descriptor Solicita las capacidades RCI del

dispositivo.

Devuelve las capacidades RCI.

query_setting Solicita la configuración del dispositivo.

Devuelve la configuración del dispositivo.

set_setting Escribe los parámetros de configuración especificados.

Devuelve los parámetros vacíos si no ha habido error y los códigos de error correspondientes si se producen. set_state Escribe el estado del dispositivo. Misma estructura de respuesta

que set_setting query_state Solicita el estado actual del

dispositivo.

Devuelve el estado del dispositivo.

set_factory_default Establece la configuración de fábrica.

Misma estructura de respuesta que set_setting

reboot Reinicia el dispositivo Confirma que se ha reiniciado do_command Envía una orden a un subsitema

especificado con el target

Respuesta del subsitema

Tabla 12 – Comandos RCI

En la aplicación desarrollada sólo se utiliza el comando do_command dirigido a XIG (el programa Python que se ejecuta en el ConnectPort). La aplicación envía los comandos que XIG tiene definidos para leer valores en entradas analógicas o digitales, para leer la tensión de alimentación y para cambiar el estado de una salida digital. Junto con el comando se envía la dirección MAC del XBee al que va dirigida la orden y XIG se encarga de enviarlo por la red ZigBee al dispositivo correcto.

4.4.1.2 HTML y JavaScript

HTML (Hyper Text Markup Lenguaje) es un lenguaje utilizado para estructurar la información mostrada en un navegador web. Básicamente está compuesto por un conjunto de órdenes que indican al navegador web la forma de representar los elementos (texto, gráficos, imágenes) que contiene el documento.

La estructura básica de un documento HTML es la formada por un inicio y final de documento, una cabecera y el cuerpo del documento:

110

<HTML> Inicio del documento <HEAD> Inicio de la cabecera

<TITLE> Inicio del título del documento </TITLE> Fin del título del documento </HEAD> Fin de la cabecera del documento <BODY> Inicio del cuerpo del documento </BODY> Fin del cuerpo del documento </HTML> Fin del documento

JavaScript es un lenguaje interpretado que se inserta documentos HTML para ampliar su funcionalidad y facilitar su programación. El código se ejecuta en el cliente y no en el servidor como otros lenguajes. Esta característica permite liberar de muchos recursos a los servidores web ya que la mayoría de los recursos se consumen en el cliente y, por tanto, no es necesario que el servidor tenga capacidad para procesar todos los datos solicitados por los clientes. Dentro del documento HTML el código JavaScript se enmarca entre las etiquetas de comienzo y final. Aunque se puede colocar en cualquier sitio del documento lo habitual y recomendable es colocar todo el código JavaScript antes del cuerpo del documento.

<SCRIPT Inicio del código JavaScript Lenguaje=JavaScript> Definición del código del script <!—- Inicio de zona comentada de código //Código JavaScript Comentario

//--> Fin de zona comentada del código </SCRIPT> Fin del script

4.4.1.2.1 Fundamentos del lenguaje

A continuación se definen los fundamentos de este lenguaje que ayudan a comprender el código utilizado:

• Argumentos: pueden ser valores o variables que se pasan como parámetro en las funciones o métodos.

• Manejadores de eventos: Se utilizan para identificar acciones durante la ejecución del código. En el ejemplo siguiente se muestra un evento que tiene lugar cuando se produce un clic de ratón. Cuando se pulsa el texto “Pulse aquí” produce se accede al enlace.html y se ejecuta la función funcionPrueba1().

111

<A HREF=”enlace.html” onClic=”funcionPrueba1()”> Pulse aquí </A>

• Funciones: como en otros lenguajes de programación las funciones contienen instrucciones que se ejecutan cuando se llama a la función. Las función empieza y termina con una apertura y cierre de llaves {}. • Objetos: los objetos son los elementos principales afectados o

interpretados por el código JavaScript. Un objeto puede ser un botón, una imagen o el propio documento HTML que contiene el código.

4.4.1.3 PHP (Hypertext PreProcessor)

PHP, al igual que JavaScript, es código interpretado con la diferencia de que, normalmente, es ejecutado en el servidor y no en el cliente. En la aplicación de este proyecto se ha utilizado el módulo PHP porque JavaScript no permite cruzar dominios y, por tanto, acceder al servidor de iDigi para enviar las órdenes RCI.

La aplicación monta un servidor web en la máquina en la que se ejecuta para permitir la ejecución del código PHP. La única finalidad de este servidor es permitir el uso de PHP para acceder al servidor de iDigi.

4.4.1.3.1 cURL

cURL es una herramienta para utilizar un intérprete de comandos para transferir archivos con sintaxis URL. Su principal uso es la automatización de transferencia de archivos o secuencias de operaciones. Esto quiere decir que se pueden simular las operaciones que un usuario realiza en una página web como rellenar un formulario, elegir un archivo para transferirlo, etc.

4.4.1.4 XML (eXtensible Markup Language)

XML es un lenguaje de marcas que permite definir la gramática para estructurar conjuntos de datos. Es muy útil para el intercambio de datos entre una o varias aplicaciones.

Los documentos XML buscan solucionar el problema de expresar la información estructurada de la manera más abstracta y reutilizable posible. La información está estructurada y se compone de partes bien definidas que permiten la interpretación de la información.

Documentos XML well formed

Los documentos XML well formed son aquellos que cumplen con todas las definiciones de formato y pueden analizarse por cualquier analizador sintáctico

112 acorde con la norma. Estos documentos deberán seguir una estructura jerárquica clara, los atributos ha de estar contenidos entre comillas, sólo se permite un elemento raíz, son sensibles a mayúsculas y minúsculas, etc.