Director del Proyector: José Vicente Busquets Mataix



Documentos relacionados
Guía de Inicio Rápido de SitePlayer S Guía de Inicio. Rápido de

Direcciones IP IMPLANTACIÓN DE SISTEMAS OPERATIVOS 1º ASIR. En redes IPv4.

5.2.- Configuración de un Servidor DHCP en Windows 2003 Server

Sitios remotos. Configurar un Sitio Remoto

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

Notas para la instalación de un lector de tarjetas inteligentes.

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

WINDOWS : TERMINAL SERVER

MANUAL BÁSICO PARA CLIENTES

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

GVisualPDA Módulo de Almacén

Escritorio remoto y VPN. Cómo conectarse desde Windows 7

Manual de software. Dynamic Cloud. 10/2014 MS-Dynamic_Cloud v1.2

Instrucciones de instalación de TrueCode

Edición de Ofertas Excel Manual de Usuario

Internet Information Server

ESCUELA SUPERIOR DE INFORMATICA Prácticas de Estadística UNA SESIÓN EN SPSS

MINI MANUAL PARA CREAR FORMULARIOS CON PHP Marzo 2007

TEMA 4: EMPEZANDO A NAVEGAR ESCUELA UNIVERSITARIA DE INFORMÁTICA. Raúl Martín Martín

AGREGAR COMPONENTES ADICIONALES DE WINDOWS

COMO CREAR UNA PÁGINA WEB 2-INTRODUCCIÓN A DREAWEAVER

Redes Locales: El protocolo TCP/IP

Roles y Características

Activación de un Escritorio Remoto

Instalar protocolo, cliente o servicio nuevo. Seleccionar ubicación de red. Práctica - Compartir y conectar una carpeta

Comunicación entre un PLC S y WinCC Advanced

ESTÁNDAR DESEMPEÑO BÁSICO Recopila información, la organiza y la procesa de forma adecuada, utilizando herramientas tecnológicas.

Acronis License Server. Guía del usuario

Luis Eduardo Peralta Molina Sistemas Operativos Instructor: José Doñe Como crear un Servidor DHCP en ClearOS

Utilidad de configuración y actualización de Software para el SS5660

GENERACIÓN DE TRANSFERENCIAS

Configuración básica de una EGX300 mediante Internet Explorer

CAPÍTULO HTML Y DHCP DE H0/H2-ECOM100 CONFIGURACIÓN. En este capítulo...

Manual de operación Tausend Monitor

2_trabajar con calc I

Programa diseñado y creado por Art-Tronic Promotora Audiovisual, S.L.

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

En caso de que el cliente nunca haya obtenido una concesión de licencia de un servidor DHCP:

Accesibilidad web GUÍA FUNCIONAL

Redes de área local: Aplicaciones y servicios WINDOWS

Operación Microsoft Access 97

Instalar y configurar W3 Total Cache

POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

Instalación y Programación Módulo Voyager-NET

T3-Rondas V 1.1. Help-Pc, S.L. C/ Pintor Pau Roig, 39 L Premià de Mar Barcelona Tel. (93) Fax marketing@t2app.

Guardar y abrir documentos

Firewall Firestarter. Establece perímetros confiables.

MANUAL PARA GESTIÓN DE INCIDENCIAS INFORMÁTICAS

MANUAL DE USUARIO AVMsorguar

GENERACIÓN DE ANTICIPOS DE CRÉDITO

Manual de iniciación a

Actividad 4: Comunicación entre PLC s vía Ethernet

Para descargar la versión más reciente de Skype accedemos al sitio web de Skype y luego hacemos clic en Descargar Skype para escritorio de Windows.

UAM MANUAL DE EMPRESA. Universidad Autónoma de Madrid

Instituto Tecnológico de Las América. Materia Sistemas operativos III. Temas. Facilitador José Doñe. Sustentante Robín Bienvenido Disla Ramirez

Manual de Instalación. Sistema FECU S.A.

Redirección de puertos

Control de presencia para terminal por huella dactilar

How to Crear Servidor Samba

Max- IP CONVERSOR RS485 a TCP/IP

TEMA 2 WINDOWS XP Lección 4 BLOC DE NOTAS

Manual del Alumno de la plataforma de e-learning.

3.1 Introducción a Wireshark

GUIA APLICACIÓN DE SOLICITUDES POR INTERNET. Gestión de Cursos, Certificados de Aptitud Profesional y Tarjetas de Cualificación de Conductores ÍNDICE

TEMA 3. REDES Y SEGURIDAD INFORMÁTICA

Programa de encriptación WIFI.

PAUTAS DE VERIFICACIÓN TCP/IP

Departamento CERES Área de Tarjetas Inteligentes Manual de Usuario

Manual de Palm BlueChat 2.0

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:

QUÉ ES UN SERVIDOR Y CUÁLES SON LOS PRINCIPALES TIPOS DE SERVIDORES? (PROXY, DNS, WEB, FTP, SMTP, ETC.) (DV00408A)

UNIDADES DE ALMACENAMIENTO DE DATOS

Tipos de conexiones de red en software de virtualizacio n: VirtualBox y VMware

Una vez que tengamos el padrón de un determinado tributo con todos sus datos actualizados, podemos generar los recibos de ese padrón.

VS-Tv. Manual de usuario. Matriz virtual de vídeo ESPAÑOL

Herramientas CONTENIDOS. MiAulario

CASO PRÁCTICO. CASOS PRÁCTICOS Internet (CP15 y CP16)

COMPROBACIONES BÁSICAS PARA EL USO DE FIRMA EN EL RTC

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA

CONFIGURACIÓN DE RED WINDOWS 2000 PROFESIONAL

Person IP CRM Manual MOBILE

Versión Página 2 de 29

ACCESS CONTROL. Aplicación para control y gestión de presencia. (Versión. BASIC) 1 Introducción. 2 Activación del programa

Uso de Visual C++ Pre-Practica No. 3

Aplicateca. Manual de Usuario: Ilion Factura Electrónica. Espíritu de Servicio

Guía para publicar su equipo en Internet.

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS

CONFIGURACION AVANZADA DE MOZILLA THUNDERBIRD

IS23 Mantenimiento de Instalaciones Informáticas Práctica 7. Análisis de redes

SOLUCIÓN ACTIVIDAD. Diagrama de topología Red punto a punto Redes conmutadas. Objetivos de aprendizaje. Información básica

Qlik Sense Cloud. Qlik Sense Copyright QlikTech International AB. Reservados todos los derechos.

5.2.1 La Página Principal

Guía para el tratamiento en Allegro de recibos para centros no pertenecientes a la Generalitat Valenciana.

V i s i t a V i r t u a l e n e l H o s p i t a l

Apéndice 5 Manual de usuario de ColeXión. ColeXión 1.0. Manual de usuario

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

Transcripción:

Alumnos: Pedro Ojeda Forés Carlos Muñoz Hervás Director del Proyector: José Vicente Busquets Mataix 1

Indice Manual Básico del SitePlayer 1. Introducción... 7 1.1 Qué contiene este documento?... 7 1.2 Qué es el SitePlayer(SP)?... 7 1.2.1 Restricción Importante... 7 2. La Conexión Ethernet... 8 2.1 Un modelo simple de red TCP/IP... 8 2.2 Protocolos TCP/IP... 8 2.2.1 Ping... 9 2.2.2 Dirección IP, nombre... 9 2.2.3 Mascara de Subred... 10 2.2.4 Protocolo ARP... 10 2.2.5 Simulador SitePlayer, puertos TCP y UDP... 11 2.3 Primer paso: SitePlayerPC, el programa simulador SP... 12 3. Sitios Web Simples... 14 3.1 Hola Mundo... 14 3.1.1 El Fichero HTML... 14 3.1.2 Definiciones de Sitios... 15 3.1.3 Cargar un sitio dentro del Simulador SP... 15 3.1.4 Cargar un sitio dentro del SP... 16 3.1.5 Problemas comunes con SitePlayerPC y SiteLinker 16 3.2 Conectando el Kit de Desarrollo... 17 3.2.1 Conexión del Hardware... 17 3.2.2 Toma de contacto... 17 3.3 Otros Errores... 18 3.3.1 Recarga la demo factory... 18 3.3.2 Reestablecer una dirección IP... 18 3.3.3 Rescatar un modulo... 19 3.4 Modificación de las salidas... 20 3.4.1 El protocolo CGI... 20 3.4.2 Un sitio web para controlar un LED... 21 3.4.3 Definición de Objetos SP... 21 3.4.4 Probando nuestro primer sitio reactivo... 22 3.4.5 Añadiendo un retroceso... 22 3.4.6 Usa un botón para cambiar Encendido y Apagado.. 23 3.5 Leyendo Entradas... 24 3.5.1 Un sitio Web para leer un botón... 24 3.5.2 Auto Refrescar la página... 25 3.5.3 Refrescar un Marco de la Página... 25 2

Manual Software del SitePlayer - Visión global del SitePlayer... 29 - Procesos SitePlayer para la creación de un proyecto... 30 - Flujo de Datos del SitePlayer... 30 1 Diseño y creación de un fichero de Definición... 32 1.1 Ejemplo de un fichero de Definición SitePlayer... 32 1.1.1 Sección de Definición... 34 1.1.2 Object Section... 38 1.1.3 Sección de Exportar... 43 2 Creando ficheros de páginas Web... 46 2.1 SiteObjects en HTML... 46 2.2 Modificadores de SiteObject... 46 2.3 Páginas Web del SitePlayer... 48 3. Ensamblar y Descargar un Fichero Binario... 53 3.1 Como Funciona SiteLinker... 53 4 Navegar por el SitePlayer... 57 4.1 Operación con el SitePlayerPC... 57 4.2 Conexión Ethernet... 60 5 Transmisión y Recepción Serie... 61 5.1 Paquetes Objeto... 61 5.2 Comandos Serie... 61 5.3 Programa de Testeo del Puerto Serie... 65 6. Enviar y Recibir Mensajes UDP... 70 6.1 UDPsend (comando serie)... 70 6.2 Enviando un mensaje UDP de broadcast... 70 6.3 Enviando un mensaje UDP a un ordenador de la red... 71 6.4 Enviando un mensaje UDP a un ordenador fuera de red... 71 6.5 UDPsend al objeto 0FF1Eh... 71 6.6 Recibir una función por UDP... 72 6.7 Ejemplo de recepción de un paquete UDP:... 72 6.8 Programa UDPSendtest... 72 7 Mapa de Memoria / Comandos Serie... 74 3

Implementación del Proyecto con SitePlayer 1 Introducción... 78 2 Sensor de Temperatura LM35... 79 2.1 Características... 79 2.2 Aplicaciones típicas... 80 2.3 Diagrama de Conexión... 80 2.4 Características eléctricas sacadas del Notebook... 81 2.5 Circuitos de Aplicación... 84 2.6 Diagrama de Bloques... 88 3 Conversor Analógico/Digital Con Interfaz serie SPI... 89 3.1 Características... 89 3.2 Tipos de Encapsulado... 90 3.3 Diagrama de bloques funcional... 90 3.4 Descripción de los Pines... 90 3.4.1 CH0 - CH7... 91 3.4.2 DGND... 91 3.4.3 CS/SHDN... 91 3.4.4 Entrada de Datos Serie (DIN)... 91 3.4.5 Salida de Datos Serie (Dout)... 91 3.4.6 Reloj Serie (CLK)... 91 3.4.7 AGND... 91 3.4.8 Tensión de referencia(vref)... 92 3.4.9 VDD... 92 3.5 Datos sacados del DataBook... 93 3.5.1 Características Eléctricas... 93 3.5.2 Curvas Típicas de Funcionamiento... 96 3.5.3 Circuitos de Test... 103 3.6 Comunicación con el MCP3304... 103 3.7 MCP3304 con un Microcontrolador con puertos SPI... 105 4 Circuito utilizado para la comunicación del sensor de temperatura con el SitePlayer... 107 4.1 Divisor de Tensión... 108 4.2 El Convertidor A/D MCP3304... 108 4.2.1 La comunicación con el SitePlayer... 109 4.3 Esquema SitePlayer... 110 4.4 Led de ON/OFF... 112 4.5 Montaje de Placa... 113 5. Creación de Pagina Web y el Fichero de Definición... 115 5.1 Fichero de Definición del SitePlayer... 115 5.2 Páginas Web... 118 5.2.1 Página Index.htm... 118 5.2.1.1 Código de la página Index.htm... 118 5.2.2 Página Indice.htm... 119 4

5.2.2.1 Función mostrar_temperatura... 119 5.2.2.2 Función redondea_temperatura... 120 5.2.2.3 Función asigna_imagen()... 121 5.2.2.4 Código de la página Indice.htm... 121 Ampliación del Proyecto... 124 Planteamiento del Problema... 125 Componentes para la resolución del problema... 126 Buffer 3-Estado 74LS125A... 126 Relé TQ2-5V... 129 Circuito con ampliación... 131 Código tras la ampliación... 132 Bibliografía... 146 5

Manual básico De 6

1. Introducción 1.1 Qué contiene este documento? Este capitulo es un paso a paso para iniciarse con el desarrollo con el NetMedia s SitePlayer (desde ahora SP). La principal dificultad será que hay muchas tecnologías diferentes involucradas. Ninguna de ellas es muy complicada. Intentaremos coger bastantes elementos de metodologías para ayudar a evitar confusiones en este aspecto. Sin embargo, no profundizaremos en detalles de las descripciones de las distintas tecnologías porque la lectura es suficiente para ser capaces de entenderlas. 1.2 Qué es el SitePlayer(SP)? Para responder a esta simple pregunta es necesario explicar que hay dentro del SP. Desde un punto de vista funcional es un microcontrolador (un miembro de la familia del 8051) con un adaptador de Ethernet. Hay puertos de entrada y salida del microcontrolador que están disponibles para el usuario, contadores y un puerto serie de comunicación asíncrona. La memoria (flash) del microcontrolador se divide en dos secciones. La primera parte (hasta 48K) es libre para usar material HTML, mientras la segunda parte es programada por NetMedia con el código necesario para: 1. Servidor de peticiones HTTP y otras varias peticiones de la familia TCP/IP. 2. Comunicación vía el puerto serie asíncrono a un dispositivo externo. 3. Descargar y guardar el material HTML del usuario. 4. Posteriormente descargar y guardar firmware del SP. 1.2.1 Restricción Importante La programación de Usuario o la habilidad para proporcionar un programa al SitePlayer no son soportados. Este punto es el de mayor importancia. SP es considerado como un dispositivo que ayuda a otros sistemas programables a servir peticiones HTTP y UDP. Puede ser ampliamente configurado pero el sistema no puede ser programado por nosotros. Si la programación es deseada un ordenador, microprocesador o microcontrolador adicional deber ser utilizado. 7

2. La Conexión Ethernet 2.1 Un modelo simple de red TCP/IP Una red TCP/IP es una estructura interconectada de nodos (a menudo ordenadores) que usan el protocolo TCP/IP para comunicarse entre ellos. Esto puede ser tan simple como dos ordenadores interconectados usando un cable de Ethernet cruzado entre ellos, o tan complejo como Internet entero. Ahora presentaremos un modelo muy simple que incluye solo los elementos necesarios para entender este documento. Nodos (a menudo ordenadores), son conectados a través de un hub creando una subred. Esta subred debe ser conectada a una red superior, por ejemplo Internet. Cada nodo tendrá una dirección lógica (dirección IP) la cual debe ser diferente dentro de la misma red interconectada. Cada dirección IP consta de cuatro números separados por puntos, donde dichos números estén comprendidos entre 1 y 254. El rango que utilizaremos nosotros será 192.168.1.xxx, donde xxx es un número entre 1 y 254. Desde ahora no haremos mención de que nodos están realmente conectados. Para nuestro propósito, cada nodo tiene un adaptador Ethernet. Cada adaptador es conectado con un cable a un sistema central llamado hub. Ten en cuenta que este hub no es un nodo en lo subred con lo que no tiene dirección IP, puede ser considerado como una caja de conexiones. 2.2 Protocolos TCP/IP Describiremos algunos de los protocolos TCP/IP que serán los que utilizaremos. 8

2.2.1 Ping El protocolo Ping es útil para comprobar si la comunicación entre dos nodos es posible. Usando Ping permite a un nodo A enviar una pregunta a un nodo B que significa Nodo B, Estas tu ahí?. Si todo funciona correctamente, el nodo B responderá devolviendo un mensaje que significa Si, Aquí estoy. En Windows, para utilizar este comando, hay que escribir desde una consola: C:\>ping 127.0.0.1 Este comando ejecuta un programa el cual envía peticiones ping a la dirección IP 127.0.0.1 (dirección loopback) e imprime las respuestas. Estas respuestas son parecidas a las mostradas a continuación: Haciendo ping a 127.0.0.1 con 32 bytes de datos: Respuesta desde 127.0.0.1: bytes=32 tiempo<1m TTL=128 Respuesta desde 127.0.0.1: bytes=32 tiempo<1m TTL=128 Respuesta desde 127.0.0.1: bytes=32 tiempo<1m TTL=128 Respuesta desde 127.0.0.1: bytes=32 tiempo<1m TTL=128 Estadísticas de ping para 127.0.0.1: Paquetes: enviados = 4, recibidos = 4, perdidos = 0 (0% perdidos), Tiempos aproximados de ida y vuelta en milisegundos: Mínimo = 0ms, Máximo = 0ms, Media = 0ms Si tu ves algo similar a lo mostrado anteriormente, significa que tu PC esta conectado al nodo 127.0.0.1. Qué significa esto? De hecho este número (127.0.0.1) es una dirección IP especial, interpretada por tu adaptador Ethernet como yo mismo. Entonces esto significa que tu PC está conectado consigo mismo. Ridículo? No del todo, significa que tu PC está conectado consigo mismo utilizando la pila TCP/IP. Esto implica que el protocolo TCP/IP está instalado correctamente en tu PC. Si tu no ves una respuesta similar a la anterior, entonces verifica que tu adaptador Ethernet esté instalado y que en la lista de protocolos este activo el TCP/IP. 2.2.2 Dirección IP, nombre Una manera simple de coger la dirección IP de nuestro PC es ejecutando desde una consola el siguiente comando: ipconfig La respuesta debería ser como se muestra: Configuración IP de Windows 9

Adaptador Ethernet Conexión de área local: Sufijo de conexión específica DNS: Dirección IP.................... : 192.168.1.3 Máscara de subred............. : 255.255.255.0 Puerta de enlace predeterminada: Hay que tener en cuenta que esta orden para Windows 95 no existe, por lo tanto hay que ejecutar la orden: winipcfg Si se tiene más de un adaptador Ethernet instalado en el PC, entonces se deberán ver varias conexiones en la lista. Tú puedes hacer ping desde tu PC a estas direcciones IP, pero esto no te ayudará demasiado, solo confirmará que la pila TCP/IP esta operando. 2.2.3 Mascara de Subred Aparte de la dirección IP, los comandos anteriores también mostraban la mascara de subred. Esta máscara se construye de la misma manera que la dirección IP. El significado de los diferentes bloques es: Si un bloque de la máscara tiene 255 significa que todas las direcciones IP dentro de la subred deben tener el mismo valor dentro del correspondiente bloque. Si un bloque de la máscara tiene 0 significa que las direcciones IP dentro de la subred pueden tener cualquier valor para el correspondiente bloque (menos el 0 y el 255). En nuestro ejemplo anterior, la mascara 255.255.255.0 significa que la dirección IP de cada nodo de la subred estará formada por 192.168.1.xxx, donde xxx será cualquier número entre 1 y 254. El numero 255 está reservado para realizar el Broadcast. 2.2.4 Protocolo ARP Para trabajar adecuadamente en una red Ethernet un nodo necesita conocer la dirección física (MAC) con quien se puede comunicar. Por ejemplo, un nodo A con dirección IP 192.168.1.3, quiere conectarse con el nodo B, con dirección IP 192.168.1.240, para realizar un ping. El diálogo ARP será el siguiente: Nodo A a todos los nodos de la subred: Quien tiene la dirección IP 192.168.1.240, yo soy 192.168.1.3 con la dirección física 99-88-77-66-55-44 Nodo B a la dirección física 99-88-77-66-55-44: Yo soy el nodo con la dirección IP 168.168.1.240 y mi dirección física es 11-22-33-44-55-66 10

Fíjate que la pregunta se la envía a todos los nodos de la subred. Para ello usa la dirección de Broadcast. Un PC guarda (en memoria) normalmente una tabla entre las direcciones IPs y las direcciones físicas. Para ver esta tabla hay que ejecutar el comando: arp a el cual nos indicara el estado de la tabla ARP: C:\>arp -a Interfaz: 192.168.1.3 --- 0x10003 Dirección IP Dirección física Tipo 192.168.1.240 11-22-33-44-55-66 dinámico Para borrar una entrada de la tabla ARP hay que ejecutar la siguiente orden: arp d <dirección IP a eliminar> 2.2.5 Simulador SitePlayer, puertos TCP y UDP Dentro del material disponible desde la web del SP (http://www.siteplayer.com), se encuentra un simulador del SP, llamado SitePlayerPC. Este permite desarrollar aplicaciones reales sin necesidad del hardware específico. Es de gran utilidad por ejemplo para detectar si hay un problema, si este es un problema de lógica o un problema hardware. Pero antes de seguir, Cómo es posible añadir un simulador SP que compartirá la conexión IP de mi PC sin modificar el software que esta actualmente ejecutándose?. La solución es usar diferentes puertos. TCP y UDP definen ambos hasta 65536 puertos diferentes. Cada nueva aplicación pregunta al sistema que puerto usará y el protocolo que seguirá (TCP o UDP). Si el puerto no está siendo utilizado por el protocolo específico, entonces se reservará para la aplicación que hizo la petición. Si dicho puerto está siendo utilizado, entonces la nueva aplicación no lo podrá utilizar. Existen problemas a la hora de elegir un número de puerto, ya que hay una lista de puertos bien conocidos que están estandarizados, un número de puerto específico para cada tipo de aplicaciones estándar. La aplicación que nos interesa es el simulador SP, el cuál no es una aplicación estándar. Un tipo de aplicación estándar es un servidor de Web, el cuál sirve paginas HTML en respuesta de peticiones HTTP. El puerto del Servidor Web es bien conocido, es el 80 con el protocolo TCP, con lo que antes de ejecutar nuestro simulador de SP, tenemos que verificar que este puerto este libre (no este siendo utilizado). Para ello, ejecutamos el comando: netstat a -n 11

El resultado será una lista de protocolo/puerto en uso (las primeras dos columnas) en este momento, con el sintaxis estándar IP dirección/puerto: w.x.y.z:p, donde p es el número de puerto. La última columna indica el estado. C:\>netstat -a -n Conexiones activas Proto Dirección local Dirección remota Estado TCP 0.0.0.0:7 0.0.0.0:0 LISTENING TCP 127.0.0.1:1874 127.0.0.1:445 ESTABLISHED TCP 192.168.1.3:139 0.0.0.0:0 LISTENING TCP 192.168.1.3:1877 192.168.1.3:110 TIME_WAIT UDP 0.0.0.0:7 *:* Para ser capaces de ejecutar nuestro simulador ninguna de estas IPs 0.0.0.0:80, 127.0.0.1:80 o <mi-dirección-ip>:80 este en el estado LISTENING. Si se existe alguna de estas direcciones, entonces, hay que encontrar que aplicación esta utilizando este puerto (IIS, Personal Web Server, Apache, ) y detenerlo. Si no se detiene el simulador SP no funcionará. 2.3 Primer paso: SitePlayerPC, el programa simulador SP En Internet vaya a la pagina del SitePlayer (http://www.siteplayer.com), busque en la pagina Download y descargue la documentación entera y el pack de herramientas. Hay instrucciones de que como instalarlo. Vamos a ejecutar el simulador y cargar la demo denominada factory. Execute SitePlayerPC File / Open / Browse C:\Archivos de Programa\SitePlayer\factory.spb Open Asegurate de que el simulador se encuentra en marcha con el comando: netstat a -n Si todo funciona correctamente, una de las siguientes direcciones IPs, 0.0.0.0:80, 127.0.0.1:80 o <mi-dirección-ip>:80, deben encontrarse en el estado LISTENING, tras la ejecución de la orden anterior, normalmente: Proto Dirección local Dirección remota Estado TCP 0.0.0.0:80 0.0.0.0:0 LISTENING Ahora vamos a ejecutar un navegador o browser sobre el mismo PC donde se está ejecutando el simulador, utilizando la orden Browser del simulador o ejecutando manualmente el navegador con la dirección 127.0.0.1. La página visualizada es la página principal de la factory. También se habría podido utilizar la dirección IP apropiada del PC en vez del número arriba (recuerde que 127.0.0.1 significa yo mismo ). Si usted tiene otra PC 12

disponible en la misma subred, es recomendable abrir el navegador con la dirección IP del PC donde está funcionando el simulador. Usted debe ver la página principal de la demo otra vez. Se podrá observar que no se especifica el número de puerto del nodo de destino. La razón es simple: Se utilizó un navegador de web para mostrar la página principal de la demo. El protocolo por defecto para un navegador de web es HTTP y el número de puerto por defecto para el HTTP es uno bien conocido de un navegador de web (puerto 80). Si no habría podido, por ejemplo, teclear en el navegador: 192.168.1.3:80 o aún utilizado la especificación explícita del protocolo: http://192.168.1.3:80 13

3. Sitios Web Simples Este capítulo presenta diversas manipulaciones básicas y los archivos necesarios para preparar un nuevo espacio web y para cargarlo en el simulador. La primera sección es absolutamente independiente de si una utiliza un simulador o el propio SP. Las características son idénticas con solo dos excepciones: La dirección IP especificada para el SP es ignorada por el simulador que, guarda afortunadamente la dirección del PC sobre el que funciona. El simulador no carga su sitio de la misma manera que lo hace el SP La segunda sección introducirá el módulo del SP con su kit del desarrollo. El tercero le dejará jugar con el módulo e intentar entender los elementos presentados al principio del capítulo. 3.1 Hola Mundo Nuestra primer objetivo es muy básico: proporcionar al simulador uno de los sitos web más simples que podrían existes, con solo dos palabras. Este sitio es interesante para mostrar la manera de enfocar los principios para construir un sitio SP. 3.1.1 El Fichero HTML Un sitio web consiste tan solo de un fichero HTML: <html><body> Hola Mundo!! </body></html> Tú puedes escribir este fichero con editor de texto y guardarlo en un directorio especificado para este sitio, por ejemplo C:\Archivos de Programa\SitePlayer\Ejemplos\Ejemplo1\index.htm. Date cuenta que: Se tiene que utilizar un editor de textos, no un procesador word, porque es importante que los caracteres almacenados en el fichero sean exactamente los que se escriben, sin información adicional de formato. El directorio que se elija para almacenar el fichero anterior se tendrá que transferir completamente al simulador o al sistema y los ficheros que no se necesitan para el SP deberán ser almacenados en otra parte. 14

3.1.2 Definiciones de Sitios Para cargar un sitio web dentro del simulador (o del propio SP) hay que prepara un fichero particular con todo el material necesario. Nosotros usamos uno de los ficheros que tienen la extensión.spb que son los binarios estándar del SP. Para producir un fichero como este, hay que utilizar un programa llamado SiteLinker el cual lee estas directivas desde un fichero fuente. La extensión típica de fichero fuente es.spd el cual contiene los datos estándar para el SP. Aquí está el fichero que se necesita para nuestro ejemplo básico, cogiendo la ruta elegida anteriormente: $Devicename "Ejemplo 1" $DHCP off $DownloadPassword "" $SitePassword "" $InitialIP "192.168.1.250" $Sitefile C:\Archivos de Programa\SitePlayer\Ejemplos\ejemplo1.spb" $Sitepath "C:\Archivos de Programa\SitePlayer\Ejemplos\Ejemplo1" Después, este fichero debe ser escrito utilizando un editor de texto y guardarlo como: C:\Archivos de Programa\SitePlayer\Ejemplos\ejemplo1.spd El siguiente paso es preparar el fichero para descargarlo. Utilizaremos el programa SiteLinker que forma parte del paquete que nos descargamos desde la web. Los pasos para descargarlo son los siguientes: Ejecutar SiteLinker File / Open / Browse C:\Archivos de Programa\SitePlayer\Ejemplos\ejemplo1.spb Download / Make download file El mensaje que se visualizará después de la operación no deberá contener ningún mensaje de error. 3.1.3 Cargar un sitio dentro del Simulador SP En el programa SitePlayerPC, se utiliza la opción de menú File/Open para cargar el fichero, exactamente igual que se hizo la otra vez (punto 2.3). Para hacerlo: Execute SitePlayerPC File / Open / Browse C:\Archivos de Programa\SitePlayer\Ejemplos\ejemplo1.spb Open 15

3.1.4 Cargar un sitio dentro del SP Una cuestión a tener en cuenta es que con la versión del SitePlayerPC y SiteLinker disponibles en este momento, no es posible descargar mientras que el simulador está ejecutándose. Si tú realizas esto un mensaje de error te aparecerá, diciéndote que tu conexión es errónea. Si el ejemplo1.spb no ha sido construido, habrá que construirlo (mirar el punto 3.1.2) antes de realizar lo siguiente: Ejecuta SiteLinker File / Open / Browse C:\Archivos de Programa\SitePlayer\Ejemplos\ejemplo1.spb Download / Make download file Configure / IP address for download / 192.168.1.250 Download / Download SitePlayer Fíjate que la dirección IP propuesta en el ejemplo anterior es la marcada como unidad nueva. Si el modulo esta utilizando otra dirección IP entonces habrá que utilizar la IP que en ese momento se este utilizando. 3.1.5 Problemas comunes con el SitePlayerPC y SiteLinker Ambos SitePlayerPC y SiteLinker deben mostrar una serie de problemas molestos al iniciar. La aplicación se muestra en la barra de tareas pero la ventana no es visible. Para arreglar este problema: Pulsa el botón derecho en la barra de tareas Elige mover Se mostraran unas flechas Pulsa el botón izquierdo y mueve el ratón hasta que el rectángulo sea completamente visible Suelta el botón izquierdo Otro problema común es que SP no reconoce un fichero con la extensión.html. El resultado es que siempre responde con File not found si se intenta visualizar dicho fichero. Asegúrate de que las páginas web tienen la extensión.htm. Como ya mencionamos anteriormente, no se puede descargar mientras el simulador SP esta en ejecución. El mensaje de error nos dice que la conexión es errónea aunque esto no es cierto. Se tiene que asegurar que el simulador no esta en ejecución antes de descargar. También puede suceder que la dirección IP del módulo sea desconocida (para ti) o no este disponible (este en conflicto con otra de la subred) o simplemente este fuera de la subred. Este problema es complicado porque tú debes utilizar la dirección IP para descargar el nuevo fichero que contendrá una dirección IP buena, pero es imposible! 16

La solución es utilizar la aplicación llamada SerialTester la cual se explicará después que permite leer y escribir la dirección IP del módulo entre otras operaciones mediante una conexión serie RS-232. 3.2 Conectando el Kit de Desarrollo Antes de abrir la bolsa de plástico, limpia el lugar de la mesa donde se situará. Evitar particularmente objetos metálicos pequeños, ya que la placa es una placa desprotegida, no es un producto final para el usuario. 3.2.1 Conexión del Hardware Lo primero es conectar la fuente de alimentación que viene con el kit a la placa SP, comprobando bien la polaridad. Ahora Conecte un cable Ethernet 10BaseT entre SPK1 a un puerto libre de su hub. (Se puede conectar un cable cruzado directamente del SPK1 a la tarjeta de Ethernet de su PC). Si todo está trabajando bien, el LED verde al lado del conectador de Ethernet puede estar encendido y usted puede ir a la sección siguiente. El resto de esta sección es justo una lista de las sugerencias a ayudar a solucionar un problema si ha aparecido. Primero de todo, verifique que SPK1 esté equipado de un módulo del SP. Después, verifique la temperatura de los diversos elementos del tablero. Si es cualquier cosa, desconecte la energía inmediatamente e intente encontrar la causa ( fuente de alimentación? corto circuito en alguna parte?). Entonces conecte la energía otra vez y mida rápidamente el voltaje de fuente en el conectador de +12V y también en el pin de +5V del módulo del SP. Evite los cortos circuitos mientras que mide! Verifique que utiliza el tipo apropiado de cable (cruzado o no cruzado); si usted tiene otro cable similar que usted realmente sepa que funciona correctamente, intercámbielos temporalmente para ver si el problema ha sido los cables. Intente, si es posible, conectar el mismo cable no cruzado con el mismo puerto del hub con el adaptador fijado 10Mbs de la velocidad del PC. Realice un ping desde el PC para verificar el hub y el cable 3.2.2 Toma de contacto Una vez asegurada la conexión del SPK1 desde el LED (verde) está encendido, realizar en una consola: ping 192.168.1.250 Si no recibes una respuesta pueden ser por dos motivos o bien tienes mal la configuración TCP/IP o la dirección destino es errónea. 17

Si la respuesta fue satisfactoria, abre el navegador y pon la dirección 192.168.1.250. El navegador visualizará la página por defecto que es la factory. Esta es la misma página que se vio con el simulador en el apartado 2.3. Para cargar nuestro primer sitio, lee el apartado 3.1.4 teniendo en cuenta que es la placa en vez del Simulador. Los resultados deberían ser idénticos. 3.3 Otros Errores 3.3.1 Recarga la demo factory Los pasos para cargar la demo factory con los siguientes: Execute SiteLinker File / Open / Browse C:\Archivos de Programa\SitePlayer\factory.spb Configure / IP address for download / 192.168.1.250 Download / Download SitePlayer La dirección IP que se utiliza puede cambiar con el tiempo, dependiendo de la última que se descargo al SP. Si la dirección IP es desconocida, lea el siguiente apartado. 3.3.2 Reestablecer una dirección IP Pueden aparecer distintos problemas con las direcciones IP, como por ejemplo una dirección en conflicto con otra de la subred o que la dirección este fuera de la subred. Un problema similar ocurre cuando se desconoce la dirección IP del modulo. Este problema es complicado ya que se debe utilizar esta dirección para descargar el nuevo fichero que contiene la dirección correcta, pero es imposible! En el paquete descargado desde la página del SP (http://www.siteplayer.com), encontramos el programa llamado SerialTester. Ahora mostraremos como utilizarlo para modificar la dirección IP del módulo. Conecta el cable DB9 que recibiste en el kit de desarrollo entre el SPK1 y el PC, y procede a realizar lo siguiente: Ejecuta SerialTester Comm Selecciona el puerto comm conectado al SPK1 Pulsa Get IP Edita la IP a la que quieras Pulsa Set IP En una consola ejecuta: ping <dirección IP> Al escribir este comando debería mostrar que el módulo se comunica ahora adecuadamente. Ten en cuenta que la dirección IP que tú has actualizado es temporal. Una vez al módulo se le realiza un reset, la dirección previa será recargada. El siguiente paso es 18

descargar un sitio al módulo para ver que se descarga correctamente (por ejemplo la demo factory). Si tú kit de desarrollo no responde al programa SerialTester, verifica primero las conexiones, y asegúrate de que el puerto comm que has elegido es el que esta conectado. Por último intenta hacer un reset al módulo desde el botón marcado como RESET en la placa SPK1. 3.3.3 Rescatar un modulo Para completar este apartado de problemas catastróficos, vamos a cubrir una última situación. La situación es la siguiente, tu sitio web está bloqueado con un password, pero tú no lo recuerdas. Un comando en el programa SerialTester está incluido para limpiar la memoria del SP. Observe que este comando parece necesitar más energía que cualquier otra operación. Es realmente importante tener una fuente de alimentación de buena calidad con un montón de capacidad actual. Hemos visto un módulo del SP que permanecía en un estado extraño después de ejecutar este comando con una fuente de alimentación que era demasiado pequeña. Los comandos para limpiar la memoria del SP son: Ejecute el SerialTester Comm / Selecciona el puerto com conectado al SPK1 Pulsa Get IP Module / Rescue En una consola ejecuta: ping 192.168.1.250 Después del comando Rescue, el módulo vuelve a su nueva dirección IP como cuatro bytes hexadecimales: &HC0 &HA8 &H01 &HFA. El propósito del comando ping de arriba es verificar que todo funcionó bien. Observe que si uno intenta ahora hojear el módulo, responderá el navegador con "archivo no encontrado" porque ningún archivo de index.htm permanece en la memoria del SP. Lo mejor que puede hacer ahora es recargar la demo factory usando la dirección IP 192.168.1.250 que acaba de ser cambiada por el comando Rescue. Vea 3.3.1 para los detalles. 19

3.4 Modificación de las salidas Con la demo factory es posible encender o apagar los LEDs rojo y verde. Este es un interesante programa porque el módulo alguien lo ha localizado correctamente cerca o muy lejos, modificando el valor de los LEDs. 3.4.1 El protocolo CGI Básicamente, el protocolo HTTP fue diseñado para llamar a un servidor que tenía un fichero para descargarlo desde un navegador usando un comando llamado GET. Este trabajaba bastante bien para un navegador en sitio web estático, pero esto no permite interactuar al navegador con el servidor. Esta interacción es el propósito de los protocolos CGI (Common Gateway Interface). La sintaxis del comando estándar GET del http se extiende y tiene el aspecto siguiente: http://<sitio>/<dir>/<comando>.cgi?<par1>=<valor1>&<par2>=<valor2> El significado de esta petición es: Dame de los parámetro par1 el valor valor1 y del par2 el valor2 y entonces ejecuta el programa almacenado en el directorio <dir> del <sitio>. El comando devolverá una cabecera HTTP estándar seguida por el contenido HTML que produjo, por ejemplo: HTTP/1.0 200 OK <html> contenido </html> Ten en cuenta que la segunda línea esta en blanco y dicha línea es de mandatos, por lo que el comando también podría haber devuelto: HTTP/1.0 302 Found Location: /alternativo.htm Este indica que el contenido HTML está movido al sitio especificado (/alternativo.htm). Esto no es apropiado para nosotros. El SP no puede utilizar CGI pero si utiliza un localizador. El engaño es proporcionar un fichero con la extensión.spi cuyo contenido es la respuesta que un programa CGI debería producir. SP procesará la petición en el sentido que el interpretará los pares parámetro-valor y modifica los objetos internos declarados. El contenido del fichero.spi es el que se devuelve. En el siguiente punto se puede observar un ejemplo de esto. 20

3.4.2 Un sitio web para controlar un LED Primero, copia todo el contenido del directorio ejemplo1 dentro de un nuevo directorio llamado ejemplo2. Añade dentro del directorio ejemplo2 un nuevo fichero con el contenido que se muestra a continuación y llámale test.spi. HTTP/1.0 200 OK Expires: 0 <html><body> Este es el fichero: test.spi </body></html> La segunda línea quizá es un poco confusa. La razón para esto es que normalmente los navegadores recargan las páginas sin necesidad. En nuestro caso, un navegador debe considerar una página como conocida (cacheada) y visualizarla desde la memoria local sin pedirla otra vez. La segunda línea declara que la página es obsoleta tan pronto como la recibió, evitando así la memorización local. 3.4.3 Definición de Objetos SP Como ya mencionamos, el SP interpreta los parámetros CGI para modificar los objetos internos. NetMedia los llama objetos pero nosotros a partir de ahora los llamaremos variables. Las variables, son simplemente parte de la memoria del SP que se compone de nombre y tipo. El usuario elige el nombre y e tipo de las variable(s) que necesita. Como en la mayoría de sistemas, algunas localizaciones de memoria están predefinidas y tienen un propósito especial. La localización en memoria que nos interesa ahora a nosotros es una que controla el LED rojo sobre el SPK1. En el siguiente fichero ejemplo las dos últimas líneas declaran esta variable y la nombra como io3. El resto del fichero es mas o menos una copia del sample1.spd pero ahora guardado como sample2.spd en el directorio. $Devicename "Ejemplo 2" $DHCP off $DownloadPassword "" $SitePassword "" $PostIRQ off $InitialIP "192.168.1.250" $Sitefile C:\Archivos de Programa\SitePlayer\Ejemplos\ejemplo2.spb" $Sitepath "C:\Archivos de Programa\SitePlayer\Ejemplos\Ejemplo2" org 0ff14h io3 ds 1 ;LED rojo 21

3.4.4 Probando nuestro primer sitio reactivo Para probar este segundo ejemplo, nos referimos a los pasos seguidos en el apartado 3.1.4. Cuando abrimos el navegador, la primera página que se debería mostrar es la misma que antes. Para ver las diferencias hay que introducir la siguiente petición al navegador: http://192.168.1.250/test.spi?io3=0 El LED rojo debería ahora encenderse y una nueva página debería aparecer en la ventana del navegador: el contenido en el fichero test.spi. Qué ha ocurrido? Aquí está paso por paso de lo acontecido. El navegador solicita el comando GET del protocolo HTTP al SP cuando se introduce el texto anterior. SP reconoce el fichero con la extensión.spi e interpreta io3=0, cambiando la dirección de memoria 0ff14h a cero. Esto lo que hace es causar un voltaje de salida al terminal tres para cambiar desde aproximadamente +5v a 0v lo cual causa que el LED rojo se encienda. SP entonces devolverá como respuesta al comando GET, el contenido del fichero test.spi Finalmente, el navegador interpreta el significado HTML de la respuesta (test.spi) y visualiza la frase Este es el fichero: test.spi. Si ahora realizamos la siguiente petición: http://192.168.1.250/test.spi?io3=1 Observamos como ahora el LED rojo se apaga. Podemos alternar las peticiones anteriores y ver como el LED se enciende y apaga, esto no podría ocurrir si nosotros no hubiésemos incluido la línea Expires: 0 en nuestro fichero test.spi. Prueba ahora eliminando la línea y recargando el fichero. Nosotros no sabemos que navegador estas usando, pero estamos seguros de que el cambio del LED de encendido a apagado se realizará una vez y nada ocurrirá después si tu no le dices al navegador que recargue la página. 3.4.5 Añadiendo un retroceso En el siguiente ejemplo, empezaremos haciendo una copia de primero, llamándolo ejemplo3. La definición del fichero ejemplo3.spd se modifica (ejemplo2 se copia a ejemplo3). Añadimos un color de fondo en el fichero index.htm: 22

<html><body bgcolor = #66FFFF> Hola Mundo! </body></html> Editamos ahora el fichero test.spi para que el retroceso del estado de la salida sea visible. No siempre se tiene la tarjeta física del sistema a la vista, es mejor añadir una indicación en la pantalla de que está sucediendo. El fichero que se muestra a continuación presenta tres métodos diferentes de visualizar el estado de las variables. La primera y la segunda serán explicadas en el apartado de Manual del Software del SitePlayer, mientras que el tercer método es un Java Script embebido, ten en cuenta que no todos los navegadores soportan esta característica. El fichero queda de la siguiente manera: HTTP/1.0 200 OK Expires: 0 <html><body> Este es el fichero: test.spi<br> Comando: ^io3 <br> Estado del Led: ^io3~1<br> <script type="text/javascript"> if (^io3 == 1){ s = "Apagado"; } else { s = "Encendido"; } document.write("el led esta ahora "+s); </script> </body></html> Después de construir y descargar el sitio ejemplo3 al SP, mira en el navegador el nuevo sitio. Quizás te sorprendas porque la pagina inicial (index.htm) es la misma de siempre. Qué ha pasado con el color de fondo que hemos añadido? La respuesta es el problema de la caché del navegador. Cuando se pregunta por la página 192.168.1.250/index.htm, el navegador reconoce que ya sabe el contenido de esta página y visualiza los datos que tenía almacenados. Se necesita refrescar para que los cambios introducidos se visualicen. Este tipo de problemas aparecerán a menudo mientras se desarrolla un nuevo sitio. Tú puedes enviar los mismos comandos que antes (apartado 3.4.4) para coger el retroceso de las diferentes visualizaciones de los métodos presentados. 3.4.6 Usa un botón para cambiar Encendido y Apagado En los comandos del ejemplo anterior nosotros introducíamos manualmente el cambio del de Encendido y apagado cada cierto tiempo. Esta técnica es muy engorrosa. Es mucho más natural tener un botón que cuando se hace clic cambie el estado del LED. Vamos a hacer esto. Copia el ejemplo3 al ejemplo4. Añadimos un link entre ambas páginas, quedando el index.htm como sigue: 23

<html><body bgcolor = #777FFF> Hola, mundo!!<br> <a href="test.spi">a la pagina de comandos del led</a> </body></html> Y el test.spi: HTTP/1.0 200 OK Expires: 0 <html><body> <a href="index.htm">p. Principal</a><br> Este es el fichero: test.spi<br> Comando: ^io3 <br> Estado del Led: ^io3~1<br> <script type="text/javascript"> if (^io3 == 1){ s = "Apagado"; } else { s = "Encendido"; } document.write("el led esta ahora "+s); </script> <form method="get" action="test.spi"> <input type="submit" name="submitbtn1" value="cambiar Led"> <input type="hidden" name="io3" value="^io3~1"> </form> </body></html> Ahora nosotros tenemos algo que uno puede considerar como una misma característica de un sitio. En este ejemplo hay tres características principales, indicadores que muestran que se esta haciendo, enlaces entre diferentes páginas, y un botón que realmente hace algo. 3.5 Leyendo Entradas En este apartado abordaremos diferentes maneras para escribir salidas. Parece aceptable enfocarlo sobre las entradas ahora, pero desafortunadamente el problema es completamente diferente como veremos. 3.5.1 Un sitio Web para leer un botón Vamos a realizar un nuevo ejemplo (al que llamaremos Ejemplo5) con los siguientes ficheros: C:\Archivos de Programa\SitePlayer\Ejemplos\Ejemplo5\index.htm: 24

_ <html><body bgcolor = #66FFFF> Hola Mundo!<br> switch S3 = ^io2~1 </body></html> Y C:\Archivos de Programa\SitePlayer\Ejemplos\ejemplo5.spd $Devicename "Ejemplo 5" $DHCP off $DownloadPassword "" $SitePassword "" $PostIRQ off $InitialIP "192.168.1.250" $Sitefile " C:\Archivos de Programa\SitePlayer\Ejemplos\ejemplo5.spb" $Sitepath " C:\Archivos de Programa\SitePlayer\Ejemplos\Ejemplo5" org 0ff13h io2 ds 1 ;switch S3 Ejecutando este ejemplo se podrá observar el estado del botón marcado como S3 sobre la placa de desarrollo: 0 cuando el botón está libre y 1 cuando esta pulsado. Para ver los cambios, es necesario refrescar manualmente el navegador cada vez. 3.5.2 Auto Refrescar la página Una manera de solucionar el problema que había que refrescar la ventana del navegador cada vez es añadir una directiva para que el navegador lo haga. Vamos a reemplazar el fichero index.htm (se podría haber elegido otro). <html><head> <meta http-equiv="refresh" content="2"> </head> <body bgcolor = #66FFFF> Hola Mundo!<br> switch S3 = ^io2~1 </body></html> Con este cambio esto es mucho más facial de usar pero el problema es que la visualización es parpadeante en todo el refresco. Si no te sucede esto es porque tu maquina es muy rápida, probablemente te sucederá cuando incrementes el tamaño de la página. 3.5.3 Refrescar un Marco de la Página La solución viene a ser: guardar la ventana visualizada, usar otra tarea para cargar la información nueva y hacer solo pequeñas modificaciones. Si pero un navegador no es realmente un programa multi-hilo de ejecución. Mostraremos diferentes técnicas, encontradas por Internet. Pedimos disculpas, pero puede suceder que en alguna de ellas puedan aparecer bugs. Aproximadamente, el fichero index.htm se carga normal. El navegador visualiza el HTML incluyendo una región de texto vacía llamada S3 y un marco invisible llamado contentfrm. El navegador también llama LoadPage( data.spi ). Esta 25

_ función dice que cual es el contenido del marco invisible que se encontrara en data.spi. Este forzará a cargar esta página cuando se declara y expira inmediatamente. Esta nueva página directamente ejecuta ShowPage() (situada en el contexto del padre del marco invisible) Esta función cogerá (usando GetBody) el contenido HTML del marco y lo evaluará (como Java Script). Una vez hecho esto, la variable Vs3 se evaluará como un string 0 o 1 dependiendo del estado del botón en el momento que el fichero data.spi fue cargado. La función HTMLById( S3, Vs3) copia el valor de esta variable como el contenido HTML del texto de la región S3. Cuando se refresca la pantalla, el resultado será visible. Había una directiva en la pagina principal para renovar este proceso (refrescar la página) cada dos segundos. Aquí están los ficheros de este ejemplo: C:\Archivos de Programa\SitePlayer\Ejemplos\Ejemplo6\index.htm: <html><head> <script type="text/javascript" src="common.js"></script> <script type="text/javascript"> slave = "data.spi"; setinterval("loadpage(slave)",2000); function showpage() { eval(getbody()); HTMLById("S3", Vs3); } </script> </head> <body bgcolor = #66FFFF onload = "loadpage(slave)"> Switch S3 = <span id="s3"></span> <iframe name="contentfrm" id="contentfrm" width="0" height="0" frameborder="0"> </iframe> </body></html> C:\Archivos de Programa\SitePlayer\Ejemplos\Ejemplo6\data.spi: HTTP/1.0 200 OK Expires: 0 <html><body id="thebody" onload="parent.showpage();"> var Vs3 = "^io2~1"; </body></html> C:\Archivos de Programa\SitePlayer\Ejemplos\Ejemplo6\common.js var nn6= (document.getelementbyid &&!document.all); var ie4= (document.all &&!document.getelementbyid); var ie5= (document.all && document.getelementbyid); function loadpage(url) { if(ie4) parent.contentfrm.location = url; 26

} else if(ie5 nn6) document.getelementbyid('contentfrm').src = url; function HTMLById(ref,value){ document.getelementbyid(ref).innerhtml = value; } function GetBody(){ body=""; if (ie4) body = parent.contentfrm.document.body.innerhtml; else if(nn6 ie5) body= window.frames['contentfrm'].document.getelementbyid('thebody').innerht ML; return body; } C:\Archivos de Programa\SitePlayer\Ejemplos\Ejemplo6\ejemplo6.spd: $Devicename "Ejemplo 6" $DHCP off $DownloadPassword "" $SitePassword "" $PostIRQ off $InitialIP "192.168.1.250" $Sitefile " C:\Archivos de Programa\SitePlayer\Ejemplos\ejemplo6.spb" $Sitepath " C:\Archivos de Programa\SitePlayer\Ejemplos\Ejemplo6" org 0ff13h io2 ds 1 ;switch S3 Si no funciona, la depuración puede ser dificultosa. Una buena primera prueba es cargar manualmente el fichero data.spi con el navegador: http://192.168.1.250/data.spi Este fichero probablemente devuelva un error (porque implica llamar a la función ShowPage() que desconoce) pero uno será capaz de verificar que el contenido se ha actualizado de acuerdo al estado actual del botón. Otra posibilidad es introducir dentro de la parte Java Script de index.htm una directiva que visualice el resultado obtenido, por ejemplo el valor de Vs3 como se muestra: alert( Vs3 = +Vs3) 27

Manual Software De 28

29

Visión global del SitePlayer Bienvenido a SitePlayer, el servidor web de Ethernet más pequeño del mundo. El primer producto de una familia de servidores de web embebidos diseñados para permitir que cualquier dispositivo basado en un microprocesador se convierta en una web accesible fácilmente y con un coste muy pequeño. En aproximadamente un cuarto de pulgada, SitePlayer incluye un servidor web, un controlador de Ethernet 10 base T, una memoria flash para paginas web, un procesador de objetos gráficos y una interfaz para dispositivos serie. SitePlayer esta conectado a un modulo el cual puede así ser usado como unas opciones permitidas para la web, actualizar el producto o para recondicionar productos viejos. Dentro de aplicaciones como equipamientos de audio, aparatos, termómetros, domótica, control industrial, control de procesos, equipamientos de testeo, equipamiento medico, automóviles, control de maquinas, monitorización monitorizada y teléfonos móviles. SitePlayer es un coprocesador servidor web el cual maneja protocolos web y paquetes de Ethernet independientemente del procesador. El tráfico web no ejerce efecto sobre el procesador puesto que se añade una medida de seguridad. Las Comunicaciones entre SitePlayer y los dispositivos se logran mediante el envió de objetos a través del estándar serie 2-wire. Ningún código TCP/IP o de red es requerido. SitePlayer puede así ser usado en algunas aplicaciones en modo de una sola posición donde las simples entradas/salidas pueden llevar a cabo. SitePlayer tiene 8 pines configurables como entrada/salida los cuales pueden ser usados como 4 entradas de datos de 8 bit PWMs o DACs, generador de frecuencia o contador de eventos. Estas funciones son aceptadas para el procesador. SitePlayer contiene un sistema de objetos fuerte llamado SiteObjects el cual permite imágenes graficas, texto, música, enlaces, botones de radio o casillas de verificación para cambiar la base de los datos vivos del procesador sin la necesidad de scripts CGI o programas Java. Una pagina web puede contener un botón de rotación grafico para una posición, la que conmute par estar a nivel alto o bajo, o un cable puede cambiar en una variable en el procesador. Las herramientas autorizadas del estándar web son usadas para hacer las páginas para el SitePlayer. Paginas web están alojadas en la memoria flash del SitePlayer para Internet, actualizaciones del firmware del SitePlayer están guardadas actualmente en la pagina SitePlayer. Una librería de gráficos, conmutadores, leds y otras herramientas de interfaz de usuario son proporcionadas para el desarrollo de paginas web. 30

Procesos SitePlayer para la creación de un proyecto. El código que llama SitePlayer para que se ejecute y que las páginas web sean servidas debe ser definido en el fichero de definición del SitePlayer y ensamblado dentro de una imagen binaria del SitePlayer usando el programa SiteLinker, esta imagen es descargada a tu SitePlayer por medio de tu conexión Ethernet. Tu puedes servir tus paginas web y interactuar con tus dispositivos usando el modulo SitePlayer o el programa SitePlayerPC. Los capítulos de este manual corresponden a los pasos contenidos en la creación de tu proyecto SitePlayer: 1. Define y crea tus objetos usando un editor de texto para un archivo de Definición SitePlayer(.SPD) 2. Crea tu página web usando un editor HTML. 3. Ensambla y descarga la imagen binaria SitePlayer(.SPB) usando el programa SiteLinker 4. Navega el SitePlayer o SitePlayerPC usando el navegador Web. Documentación para la transmisión serie y recepción es localizada en el Apéndice A, Apéndice B que contiene una lista de los símbolos reservados para las definiciones SitePlayer. Flujo de Datos del SitePlayer. En el ejemplo de la ilustración siguiente, la imagen del circuito integrado representa tu procesador, el que actúa como un termómetro inteligente el cual controla la unidad base de condición del aire con información recogida tal con la temperatura actual y el punto de funcionamiento. Esta misma información esta escrita por el puerto serie al SitePlayer (mira transmisión y recepción de datos por el puerto serie) y la guarda en el sitio reservado de la memoria por los objetos de fichero de definición SitePlayer. Cuando las paginas web son requeridas por el SitePlayer, son substituidas los valores de los Objetos por cada SiteObject encontrado (mira SiteObjects en HTML) y sirve la información a tu navegador web vía el puerto de Ethernet. Los cambios son sometidos antes al SitePlayer por medio de puerto Ethernet usando el método GET del navegador web (mira Pagina web SitePlayer). Allí los nuevos valores son escritos a los Objetos SitePlayer tal como se define por el fichero de definición. Tu procesador entonces pide los valores de los objetos del SitePlayer por medio del puerto serie y actúa en este caso cambiando el modo o punto de funcionamiento de la unida de aire acondicionado. Si por ejemplo, un cambio en el punto de funcionamiento entonces causa la unidad de enfriamiento a ponerse en marcha, esta nueva información podría ser serialmente escrita al objeto SitePlayer, donde volvería a ser sustituido dinámicamente por el correspondiente SiteObject en la página web HTML. Para abreviar, el navegador podría mostrar la unidad de enfriamiento tal como ahora estuviera encendida. 31

Tu decisión de procesador por cuando para solicitar al SitePlayer por nuevos datos puede ser basado en un tiempo el que siempre da todo los datos o en una respuesta de estado del software entonces selectivamente recupera datos (mira comandos de estado ), o por una interrupción hardware del pin 11(mira la definición de $PostIRQ). 32

1 Diseño y creación de un fichero de Definición El fichero de definición SitePlayer (Extensión de fichero.spd) contiene las instrucciones para el programa SiteLinker. El programa SiteLinker crea el fichero de imagen binaria de SitePlayer (Extensión de fichero.spb) el. es descargado al SitePlayer. El fichero binario contiene todo el código necesario para el SitePlayer incluyendo los parámetros de inicialización, paginas web, y SiteObjects. Estos parámetros, direcciones de ficheros y objetos SiteObjects, son determinados por el fichero de Definición SitePlayer, además el fichero proporciona la posibilidad de exportar esta información a otros formatos de fichero tales como HTML, C y Visual Basic. 1.1 Ejemplo de un fichero de Definición SitePlayer El fichero de Definición SitePlayer es muy parecido a un fichero de lenguaje ensamblador para un microprocesador pero sin ningún lenguaje ensamblador. Este fichero tiene tres secciones, las sección de Definición la sección de Objetos y la sección de exportar. Las definiciones determinan los parámetros de inicialización del SitePlayer. Los objetos consisten en los items que se convertirán en objetos SiteObjects. La sección de exportar define como y donde algunos ficheros serán exportados durante el proceso SiteLinker del SitePlayer. Un típico fichero es: ;Sección Definición $definition1 argumento ;comentario $definition2 argumento $definitionx argumento ;Sección de Objetos org 0h object1 db 14 ;define un objeto byte con un valor por defecto, 14 object2 dw 0 ;define un objeto word con un valor por defecto, 0 object3 dd 0 ;define un objeto long object4 ds 47 ;define un objeto string de 47 bytes object5 db String with some data object dbit 1 ; define un bit con el valor 1 por defecto ;Sección de Exportaciones $ExportFormatFile filename $ExportFile filename $Export ;define export format ;define el nombre del fichero d exportación ;Comando export Los comentarios están separados por punto y coma como un típico fichero de lenguaje ensamblador. Todo valor numérico puede ser definido en decimal, hexadecimal (h), binario (b), o octal (o). Si ningún carácter de los anteriores aparece después del número por defecto será un número en decimal. Ejemplo de receptor estéreo de SitePlayer: 33