SlideShare una empresa de Scribd logo
APP para el cálculo de ICT Página 1 de 63
APLICACIÓN WEB
PARA EL CÁLCULO DE ICT
JORGE BARRAGÁN GRANADO
PROYECTO FINAL
TUTOR: FRANCESC PÉREZ
STI2M
STUCOM 2011-2013
APP para el cálculo de ICT Página 2 de 63
APP para el cálculo de ICT Página 3 de 63
ÍNDICE:
1. INTRODUCCIÓN ...................................... 4
1.1.PRESENTACIÓN Y ESTUDIOS ACTUALES ............... 4
1.2.DESCRIPCIÓN DEL PROYECTO ....................... 5
1.3.DIAGRAMA DE FLUJO DE LA APLICACIÓN ............. 6
1.4.MOTIVACIONES Y CONOCIMIENTOS PREVIOS ........... 8
1.5.OBJETIVOS MÍNIMOS Y MÁXIMOS .................... 8
2. APLICACIÓN WEB ....................................10
2.1.¿QUÉ ES UNA APLICACIÓN WEB? ....................10
2.2.¿CUÁL ES LA ESTRUCTURA DE UNA APLICACIÓN WEB?...10
2.3.CARACTERÍSTICAS DE LAS APLICACIONES WEB.........11
2.4.APLICACIÓN NATIVA Y NO NATIVA ..................11
3. APP PARA EL CÁLCULO DE ICT.........................14
3.1.PROGRAMACIÓN UTILIZADA .........................14
3.2.PROGRAMA UTILIZADO.............................14
3.3.ESTRUCTURA DE CARPETAS PARA LA APP .............15
3.4.ESTRUCTURA Y PARTES DE LA APLICACIÓN ...........16
3.5.APARTADO DEL CÓDIGO HTML5 ......................17
3.6.APARTADO DEL CÓDIGO CSS3 .......................24
3.7.APARTADO DEL CÓDIGO JAVASCRIPT .................31
4. RESULTADOS ........................................39
4.1.TESTEO DE LA APLICACIÓN ........................39
5. CONCLUSIONES ......................................43
5.1.VALORACIÓN DE LOS OBJETIVOS ....................43
5.2.LÍNEAS DE MEJORA...............................43
6. ANEXO .............................................45
6.1.CÓDIGO HTML5:..................................45
6.2.CÓDIGO CSS3: ..................................50
6.3.CÓDIGO JAVASCRIPT:.............................53
7. BIBLIOGRAFÍA Y WEBGRAFÍA...........................63
APP para el cálculo de ICT Página 4 de 63
1. INTRODUCCIÓN
1.1. Presentación y estudios actuales
Me llamo Jorge Barragán Granado y soy estudiante del
segundo curso del grado superior de Sistemas de
Telecomunicaciones e Informáticos en el centro de estudios
STUCOM de Barcelona.
Mi trayectoria en el mundo de la electrónica y las nuevas
tecnologías empezó hace ya nueve años, cuando cursé un
grado medio en Diseño y Mantenimiento de Equipos
Electrónicos de Consumo, en el Instituto Montilivi de
Gerona. Al finalizar estos estudios, tuve la oportunidad de
entrar en el mundo laboral y desarrollar todos los
conocimientos adquiridos durante el grado. Primero, gracias
a un convenio de prácticas con el instituto, pude trabajar
como reparador de VHS, TVs, HiFi y reproductores DVDs en
Electrónica Losada S.A.
Una vez terminado el contrato de prácticas, encontré el
trabajo con el que desarrollé mis habilidades técnicas en
el campo de las ICT. Empecé como aprendiz y durante los más
de 6 años que fui empleado de Gironès i Rodés, pude
profundizar mis conocimientos en electricidad (RBT),
infraestructura de telecomunicaciones y, sobretodo, pude
especializarme en domótica, atendiendo un curso oficial
impartido por Jung Ibéria S.A.
En 2011, y debido a la situación del país, no pude
continuar desarrollando mis aptitudes profesionales y ante
la imposibilidad de encontrar un nuevo trabajo, decidí
apostar por la formación superior. Así que me inscribí al
Curso de Especialización en Producción y Post-producción
Audiovisual de ERAM-UdG, para satisfacer mi gran interés en
las tecnologías TIC. Compaginé este curso con la formación
del grado superior de STUCOM para actualizar y ampliar mis
capacidades, para, en un futuro, poder dedicarme
profesionalmente a las nuevas tecnologías.
Este proyecto es fruto de toda la experiencia adquirida
durante mi andadura profesional, así como los conocimientos
asimilados a lo largo del grado. Este trabajo final se basa
en el cálculo de ICT, como se describe en el siguiente
apartado.
APP para el cálculo de ICT Página 5 de 63
1.2. Descripción del proyecto
La aplicación que hemos desarrollado está enfocada a nivel
de soporte académico y tiene como finalidad realizar el
cálculo de la señal de TDT en la toma final de los
usuarios. Servirá para, en base a la señal recibida en la
antena, verificar el número de plantas, pisos, tipo de
cable y pérdidas de derivación, si la calidad de señal será
óptima dentro de los márgenes legales establecidos según la
normativa para ICT.
Si nos basamos en el cálculo real de una ICT, existen una
gran variedad de variables a tener en cuenta, debido al
amplio número de componentes posibles (cable, conectores,
componentes intermedios, antenas, amplificadores,…). Por
este motivo, hemos realizado un esquema con los componentes
básicos, en el que se pueden definir los siguientes
parámetros delimitados de la siguiente manera:
1. Número de plantas y pisos determinado (de 1 a 10)
2. Potencia de antena, que debe estar dentro de los
márgenes legales (entre 0-90 dBµV)
3. Potencia del amplificador (de 0 a 20 dBµV)
4. Derivadores, 4 tipos a escoger con mayor y menor
pérdida de paso, según sea necesario.
5. Tipo de cable a seleccionar entre 3 tipos, con
diferentenivel de pérdida en dB por metro.
APP para el cálculo de ICT Página 6 de 63
1.3. Diagrama de flujo de la aplicación
APP para el cálculo de ICT Página 7 de 63
Enel anteriordiagrama de flujo se puede visualizar de una
manera sencilla el funcionamiento interno de la aplicación.
Este tipo de esquema es muy útil para localizar los
posibles errores que se generen en el cálculo final.
1. Como se observa en el esquema, la aplicación se inicia
a petición del usuario.
2. Tras ser cargada en el navegador, esta se mantiene a
la espera de que se seleccionen todos los datos. Si es
así, se inicia la recogida de los valores y los
almacena en variables. De lo contrario, se mantiene a
la espera hasta que se completen.
3. La aplicación comprueba que todos los datos estén
dentro de los márgenes definidos y todos los
parámetros seleccionados. Indica si existen datos sin
seleccionar y permanece a la espera hasta que se
definan todos los campos.
4. Tras introducir los datos y haberlos verificado, si se
presiona el botón de “Realizar cálculo” del apartado
final, se realizan los cálculos y se vuelca el
resultado en una tabla, mostrando el valor de potencia
final en toma de todos los pisos y para cada planta.
En todo momento es posible eliminar los datos a través del
botón “Eliminar datos”. Entonces, la aplicación regresa al
modo inicial, a la espera dereiniciar todo el proceso.
APP para el cálculo de ICT Página 8 de 63
1.4. Motivaciones y Conocimientos previos
La motivación principal de este proyecto es poder crear una
aplicación para Smartphone en un lenguaje no nativo y
adquirir nuevas competencias en lenguaje de programación
web con el cual se desarrolla el proyecto. Dado que he
trabajado en el sector de lainstalación de ICT estoy muy
motivado al realizar un proyecto que personalmente pienso
que puede ser una buena plataforma formativa.
1.5. Objetivos Mínimos y Máximos
El objetivo mínimo es el de realizar una aplicación que
calcule el valor de señal final para las tomas, en base al
valor de potencia de antena y el número de pisos.
Los puntos que he delimitado para la aplicación son el
poder realizar el cálculo de la potencia de señal final en
toma en base a 5 parámetros:
1-Número de pisos
2-Número de plantas
3-Potencia recibida en la antena
4-Potencia asignada al preamplificador
5-Pérdidas por derivación
6-Pérdidas por metros y tipo de cable.
Un punto extra para mejorar el contenido mínimo es realizar
un control de errores.
Como puntos máximos está la optimización de los puntos
mencionados anteriormente para poderadquirir valores desde
una base de datos en referencia a los diferentes
proveedores de componentes para las ICT como alcad, ikusi,
televes, entre otros.
APP para el cálculo de ICT Página 9 de 63
APP para el cálculo de ICT Página 10 de 63
2. APLICACIÓN WEB
2.1. ¿Qué es una aplicación web?
Una aplicación web es una aplicación de software codificada
en un lenguaje hecho para los navegadores web y es el
navegador el que la ejecuta. Estas aplicaciones contienen
elementos que permiten al usuario interactuar con la
información que contienen.
Las aplicaciones web tienen mucho éxito, principalmente,
porque solo requieren un navegador web independientemente
del sistema operativo y no se necesita instalar ningún
software en los equipos de los miles de usuarios que las
utilizan. Una aplicación web puede ser ejecutada en
múltiples plataformas diferentes.
2.2. ¿Cuál es la estructura de una aplicación
web?
Existen muchas variaciones posibles. Una aplicación web
está normalmente estructurada como una aplicación de
trescapas. En su forma más común, el navegador web ofrece
la primera capa y un motor capaz de usar alguna tecnología
web dinámica (PHP, JavaServlets o ASP, ASP. NET, CGI,
ColdFusion, embPerl, Python [Programminglanguage] o Ruby
onRails), que constituye la capa intermedia. Por último,
una base de datos constituye la tercera y última capa.
El navegador web manda peticiones a la capa media que
ofrece servicios valiéndose de consultas y actualizaciones
a la base de datos. A su vez, proporciona una interfaz de
usuario.
APP para el cálculo de ICT Página 11 de 63
2.3. Características de las aplicaciones web
El usuario puede acceder fácilmente a estas
aplicaciones empleando un navegador web (cliente) o
similar.
Si es por internet, el usuario puede entrar desde
cualquier lugar del mundo donde tenga un acceso a
internet.
Pueden existir miles de usuarios pero una única
aplicación instalada en un servidor. Por lo tanto, se
puede actualizar y mantener una única aplicación y
todos sus usuarios verán los resultados
inmediatamente.
Emplean tecnologías como Java, JavaScript, HTML5,
Flash, Ajax, etc. que dan gran potencia a la interfaz
de usuario.
Emplean tecnologías que permiten una gran portabilidad
entre diferentes plataformas.
2.4. Aplicación nativa y no nativa
Hoy día, en función de cómo se aborda su desarrollo, se
suele hablar de tres tipos de aplicaciones móviles:
nativas, no nativas (web) e híbridas. Las podemos definir
de la siguiente manera:
Aplicaciones nativas: son aquellas que están
íntegramente programadas en el entorno de desarrollo
específico para cada sistema operativo (Android, IOS,
Symbian, etc.).
Aplicaciones web:están completamente desarrolladas en
lenguaje HTML5.
Aplicaciones híbridas
Uno de los puntos fuertes de las aplicaciones web móviles
es su funcionamiento en todas las plataformas. Solo se debe
: son aplicaciones desarrolladas
en parte con el entorno de desarrollo nativo y en
parte en lenguaje WEB (HTML5).
APP para el cálculo de ICT Página 12 de 63
tener en cuenta la compatibilidad con el motor de
browser/navegador.
Una aplicación web funcionará en “casi” todos los
Smartphone. Las aplicaciones nativas requieren un
desarrollo para cada uno de los sistemas operativos (e
incluso para versiones diferentes de éstos) y las híbridas
necesitan, por lo menos, el desarrollo del “contenedor”
nativo que aloje las partes en lenguaje web.
Existen diferentes frameworks como Phonegap, Learn, Lungo,
entre otros, que trabajan para crear estos contenedores, y
facilitanla programación posterior en HTML5.
Phonegap, por ejemplo, maneja API’s que permiten tener
acceso a elementos como el acelerómetro, cámara, contactos
en el dispositivo, red, almacenamiento, notificaciones,
etc.
ACCESOALASCAPACIDADESDELDISPOSITIVO
AFINIDAD CON LA PLATAFORMA
APPS NATIVAS
· AFINIDAD PLATAFORMA
ÚNICA
· ESCRITURA POR MEDIO DE
PLATAFORMA SDK
· DEBEN SER ESCRITOS
PARA CADA PLATAFORMA
· DISTRIBUCIÓN POR
APPSTORE
· ALTO RENDIMIENTO
GRÁFICO
APPS HIBRIDAS
· AFINIDAD CON
MULTIPLATAFORMA
· ESCRITURA POR MEDIO DE
PLATAFORMA WEB (HTML5, CSS
3 & JAVASCRIPT)
· FUNCIONAMIENTO DE FORMA
LOCAL EN EL DISPOSITIVO,
PERMITE FUNCIÓN OFFLINE
· DISTRIBUCIÓN POR APPSTORE
· ALTO RENDIMIENTO GRÁFICO
APPS WEB MÓVIL
· AFINIDAD CON
MULTIPLATAFORMA
· ESCRITURA POR MEDIO DE
PLATAFORMA WEB (HTML5, CSS
3, JAVASCRIPT, ASP.NET,
PHP,…)
· FUNCIONAMIENTO DESDE
SERVIDOR, VISIBLE EN
MULTIPLES DISPOSITIVOS
· ACTUALIZACIONES
CENTRALIZADAS
· ALTO RENDIMIENTO GRÁFICO
APP para el cálculo de ICT Página 13 de 63
APP para el cálculo de ICT Página 14 de 63
3. APP PARA EL CÁLCULO DE ICT
3.1. Programación utilizada
Para realizar la aplicación he utilizado 4 lenguajes de
programación web:
HTML5: con el que se define la estructura de la aplicación,
definiendo botones, secciones desplegables o fijas, texto a
visualizar, etc.
CSS3: con este código se define el estilo visual de la
página, y se pueden definircolores, sombras, posiciones y
dimensiones de los apartados definidos en HTML5.
JavaScript: este es el lenguaje de programación utilizado
para crear pequeños programitas encargados de realizar
acciones dentro del ámbito de una APP o página web.
Jquerymobile:
3.2. Programa utilizado
nos permite generar aplicaciones cuya
apariencia será siempre la misma independientemente del
dispositivo desde el que acceda un usuario, siempre que
este usuario acceda desde un dispositivo que acepte HTML5.
Para la creación de una aplicación web podemos utilizar
programas de escritura de código que nos facilitaránmucho
esta tarea. Yo he utilizado el programa Dreamweaver de
Adobe. Una vez instalado, debemos abrir un nuevo proyecto y
escoger la base de HTML5. Esto creará un archivo específico
para este código y facilitará a medida que escribamos, con
la tecla tabular, las funciones, apartados y secciones a
los que podemos optar por medio de una lista desplegable
donde poder seleccionar la que precisemos. Esto facilitará
enormemente la creación del código.
APP para el cálculo de ICT Página 15 de 63
3.3. Estructura de carpetas para la APP
La estructura de archivos para esta aplicación es la que
describimos a continuación.He creado una carpeta principal,
la cual ha sido nombrada “APP para el cálculo de ICT”.
Dentro de esta carpeta, he creado cuatro carpetas más. Tres
de estas hacen referencia a los códigos de programación a
utilizar (CSS3, HTML5 y JavaScript) y la cuarta sirvepara
posibles imágenes que se utilicen en el programa.
Dentro de cada carpeta he creado un archivo con la
extensión adecuada.
Dentro de la carpeta HTML5
Dentro de la carpeta CSS3
Dentro de la carpeta JS
Una vez definida la estructura de archivos, es momento
deiniciar la creación de la APP. Para ello ejecutamos el
archivo principal HTML5, que es el cuerpo de la aplicación.
Posteriormente definiremos el contenido CSS3 para darle
estilo visual. Por último añadiremos el código JS para
crear las funciones que dotarán la aplicación de
funcionalidad realizando los cálculos, transiciones y
lectura de las variables, entre otras.
APP para el cálculo de ICT Página 16 de 63
3.4. Estructura y partes de la aplicación
La parte principal de la
aplicación es la definida
en el código HTML5. Consta
de tres apartados (head,
body, footer).
La distribución de los
campos en la página es la
que se detalla en la figura
de la derecha.
En la aplicación se puedenidentificar los campos de
lasiguientemanera:
Elheader(encabezado): es la parte superior dela página.
Generalmente está formado por una serie de elementos
comunes: logo de la empresa, nombre, imagen o imágenes
representativas y, en algunos casos, datos de contacto,
como teléfono y email.
Elbody (cuerpo): es la parte de la página que contiene el
contenido, secciones y divisiones, entre otros.
Elfooter (pie): representa el pie de un documento o
sección. La información que se suele añadir en este bloque
es el autor del documento, enlaces a contenido relacionado,
información de copyright, avisos legales, etc.
Header
Body
Footer
APP para el cálculo de ICT Página 17 de 63
3.5. Apartado del códigoHTML5
A nivel de código,definiré las siguientes partes: la
primera es la que se contiene dentro del <head></head>:
Title: es el nombre que aparecerá en la pestaña del
navegador.
Shortcuticon: define el icono que se mostrará en la pestaña
del navegador.
Meta: la función de este atributo varía. Puede ser
informativo, para los buscadores y usuarios, indicándoles
el tipo de contenido de la web, sus palabras claves, etc.,
o pueden predefinir una actuación a la página.
Los siguientes link y script son los referentes a los
archivos CSS3, JavaScript y Jquery. De esta manera
enlazamos esos archivos, creados anteriormente, al
proyecto.
La segunda parte y la principal es el body. Es donde se
definen las secciones, divisiones, botones y todas las
partes que se creen a nivel visual.
APP para el cálculo de ICT Página 18 de 63
El primer elemento es el header. Por medio de un <h1>,
definimos el título que se mostrará en la página. Por otra
parte el <h1> también se utilizará como referencia en el
archivo CSS3 para dar formato altexto. La siguiente imagen
muestra el resultado.
Tras cerrar la parte anterior, creamos los apartados
principales de la aplicación. Para ello creamos una sección
“section” y un formulario “form” que contendrá todos los
camposa los que nos referimos en el punto 1.5.
APP para el cálculo de ICT Página 19 de 63
Los campos plantas, pisos, antena y amplificadorhan sido
creados de la misma manera. En esta ocasión, se ha creado
un <h2> y se han definido los siguientes parámetros:
data-roleydata-icon: son atributos de Jquery, los cuales no
posee HTML5. Con ellos se agiliza la creación de contenido
para el HTML5. En particular estos atributos definen el
apartado como botón y crean un icono con el signo suma
dentro de botón, respectivamente.
Title: con este comando podemos definir el texto que se
mostrará al posicionarse sobre el botón.
El texto introducido entre “>texto <h2>” se mostrará
literalmente dentro del botón definido anteriormente.
Seguidamente, creamos una nueva sección, a la que
llamaremos “section”, y dentro de esta una división “div”,
le asignamos un “id” a las dos para poder, entre otras
opciones, definir el estilo posteriormente en CSS3 y
obtener valores desdeJavaScript.
Dentro de la división añadimos un “input” y
especificamoslos siguientes parámetros:
Type (range): muestra un slider para seleccionar el valor
deseado dentro del menú, además del cuadro con las flechas
para aumentar y disminuir el valor.
id: definimos el nombre según el “id” especificado en el
botón incluyendo “num”. Para poder diferenciar el valor
introducido en cada uno de los apartados del menú.
value: este campo mostrará el valor por defecto dentro del
cuadro input. Por este motivo, por ello se iguala a 0.
minymax: se utilizan para definir el rango que debe cubrir
el valor a introducir, acotándolo para evitar que el
usuario introduzca valores no permitidos.
APP para el cálculo de ICT Página 20 de 63
Para el botón de derivadores definimos los mismos
parámetros que en los anteriores apartados para <h2>,
section y div. No obstante, dentro de “div” especificamos
otros parámetros:
button: crea un botón dentro de la división a diferencia de
los apartados anteriores donde se creaba un input.
type: con esto indicamos que el botón es un botón simple
sin funciones específicas.
onclick: con este parámetro definimos que al hacer clic se
realice la función “tabla_deriv()” especificada en
JavaScript. Esta función creará una tabla con 4 derivadores
por planta. Existen otros atributos como ondbclic,
onselect, onmouseup,…
Para poder cargar la tabla creamos un nuevo apartado dentro
de la sección, pero fuera de la división y definimoslos
siguientes parámetros:
table: sirve para definir el principio y el final de una
tabla.
class: permite definir el estilo por medio del archivo
*.css.
id: permite identificar la tabla para importar los datos
desde JavaScript.
aligne: este comando centra la tabla en la pantalla.
tbody: se utiliza para agrupar el contenido delatabla en el
documento HTML5.
APP para el cálculo de ICT Página 21 de 63
Para el apartado de cable, creamos el <h2>, section y div
del mismo modo que en los apartados anteriores. Después,
definimos dentro de “div” los siguientes parámetros:
input: sirve para crear una nueva entrada.
type: este comando es definido como “radio”. Mostrará un
círculo de selección para cada uno de los tres tipos de
cable.
name: este parámetro identifica el input por medio de un
nombre, para realizar operaciones futuras con él si es
preciso.
value: asigna un valor determinado por defecto. Al no
tratarse de un input que modifique su valor, al
seleccionarlo, el valor del “value” será el que se asignará
a la variable.
label: define una categorización para un elemento de
entrada.
for: debe ser igual al id del input. Esto vincula el label
con el input concreto.
APP para el cálculo de ICT Página 22 de 63
title: el texto que se especifica aquí se mostrará al
posicionarse sobre cada uno de los tipos de cable.
El último apartado de la aplicación es el de “tomas
finales”. Lo hemos creado siguiendo el mismo procedimiento
que con los derivadores.
Se ha definidoun nombre de función (“cálculo()”) y un nuevo
“id” para importar los datos desde JavaScript. Al tratarse
del último apartado, debemos cerrar el formulario y la
sección abiertos al iniciar el documento dentro del “body”.
APP para el cálculo de ICT Página 23 de 63
Por último, hemos creado una nueva sección y división
dentro del apartado <body> para definir un botón que
eliminará todos los valores del formulario. Para ello hemos
definido un “button” dentro de <div> y con los siguientes
atributos:
type: el nombre “reset” es predefinido por HTML5 y realiza
un borrado o reset de todos los campos del formulario, tal
y como indica su nombre.
id: este nombre se utilizará para referenciarlo
posteriormente en el CSS.
form: vincula la función del botón definida en el tipo con
el formulario.
><button>: este texto se muestra en el interior del botón.
Al finalizar la configuración del botón cierro la div,
section y el body (</div>, </section>, </body>).
Al final del documento HTML5 hemos añadido un <footer>, en
el que especificamoslos datos del alumno y la función del
programa. Para ello utilizamos <p></p>. El texto que
aparece entre ambas se mostrará literalmente en la página.
Posteriormente, utilizaremos la <p> como id para definirel
formato del texto.
APP para el cálculo de ICT Página 24 de 63
3.6. Apartado del código CSS3
El archivo CSS es el que contiene el código que define el
estilo visual de la aplicación. Para vincular los
diferentes apartados del HTML5 a un código del CSS3
utilizamos los nombres definidos en los “id” del documento
HTML5.
El primer apartado hace referencia a cada uno de los
botones y su función es ocultar automáticamente los
“inputs” (sliders) que hay dentro de cada uno delos
apartados.
El siguiente apartado es el referente a los botones y el
texto que se visualiza en cada uno de ellos. Con los
parámetros indicados definimos el ancho que ocuparán estos
botones en la pantalla, así como su posición. Del mismo
modo, también definimos la posición del texto en cada uno
de ellos.
margin-left: asigna un margen en la parte izquierda de la
página del tamaño especificado (12%).
margin-right: asigna un margen en la parte derecha de la
página del tamaño especificado (12%).
Sin el código CSS3 Con el código CSS3
APP para el cálculo de ICT Página 25 de 63
text-align: posiciona el texto en el lado izquierdo del
botón.
width: al indicar “auto”, ajusta el tamaño del botón dentro
de los márgenes entre los definidos en el apartado
“margin”.
Con la opción “:hover” después del nombre, definimos
acciones específicas que modificarán el estilo del botón al
posicionarse sobre él. Cabe indicar que esto es una mejora
dentro del HTML5, ya que en antiguas versiones este efecto
sobre el texto se debía realizar a través de JavaScript.
Sin el código CSS3
Con el código CSS3
Sin el código CSS3
Con el código CSS3
APP para el cálculo de ICT Página 26 de 63
Del mismo modo que hemos configurado los atributos para los
botones, lo hacemos seguidamente con los “inputs”
(sliders)para centrarlos debajo del botón principal,
con“id” específico (nombre de botón + “_num”).
Para definir el estilo visual
del botón “cargar plantas” del
apartado “derivadores”, hemos
aplicado los siguientes
atributos, referenciándonos al
id “entrada_deriv” para ajustar
el tamaño y la posición del
mismo.
Sin el código CSS3
Con el código CSS3
Sin el código CSS3
Con el código CSS3
APP para el cálculo de ICT Página 27 de 63
Igual que hemos configurado el botón
del apartado “derivadores”, lo hacemos
con el botón del “apartado tomas
finales”.
Para ajustar el tamaño de las divisiones
que contienen los sliders de todos los
apartados, hemos utilizado el “id”
“entrada”. Asimismo, lo relacionamos con
el apartado cable con el “id”
“entrada_cable”.
Sin el código CSS3
Con el código CSS3
Sin el código CSS3
Con el código CSS3
APP para el cálculo de ICT Página 28 de 63
Para el botón final, el de “eliminar
datos”, hemos utilizado los mismos
atributos anteriores y hemos ajustado el
valor de “marge-left/right”.
Para definir el tamaño del texto de cabecera utilizamos el
“id” asignado <h1>. Para el texto del pie de la
aplicaciónen cambio, utilizaremos el “id” asignado “p”.
Sin el código CSS3
Con el código CSS3
Sin el código CSS3
APP para el cálculo de ICT Página 29 de 63
Por último definimos el id “input” para modificar el
tamaño, color y tipo de letra de los resultados de la tabla
que hacen referencia a los valores finales del cálculo que
se mostrará en cada apartado de la tabla dentro de la
sección “tomas finales”. Con el id “table.tablestyle”
definimos el tamaño y tipo de letra, el ajuste del texto
que aparece en la tabla, haciendo referencia al número de
planta y piso.
Sin el código CSS3
Con el código CSS3
Con el código CSS3
APP para el cálculo de ICT Página 30 de 63
Sin el código CSS3
Con el código CSS3
Con el código CSS3
APP para el cálculo de ICT Página 31 de 63
3.7. Apartado del código JavaScript
El último apartado de la aplicación es el referente a
JavaScript. Se trata de un lenguaje de programación que
permite desarrollar acciones para dotar de funcionalidad la
aplicación.
Por lo general, en el código del JavaScript se debe crear
una función “function”, seguida del nombre deseado, abrir y
cerrar paréntesis y abrir y cerrar corchetes. En la imagen,
se muestra la estructura básica con la que se deben empezar
las funciones.
Seguidamente, indicaremos todas las funciones que hemos
utilizado, así como su funcionamiento paso a paso.
La primera función que hemos creado es la referente al
estado de los botones, para controlar que al clicar se
despliegue el contenido. Para esta verificación, realizamos
dos funciones distintas. La primera función “iniciar” es la
utilizada para verificar si se ha clicado alguno de los
botones.
plantas=document.getElementById(‘plantas’): almacenamos el
“ID” del botón plantas en una variable llamada plantas.
plantas.addEventLinstener(‘click’,pl,false): esta línea se
mantiene a la escucha, para comprobar si se realiza clic
sobre el botón. De ser así realiza la función especificada
“pl”y pone la variable “bt1” a 0.
Para completar el funcionamiento del botón, a continuación
definimos la siguiente función, con la que completaremos el
mostrar/ocultar para los botones.
APP para el cálculo de ICT Página 32 de 63
Tras la definición del nombre de la función “pl” en el
apartado anterior, creamos una nueva función referente
a“pl”.
El funcionamiento de esta función es la de mostrar
únicamente el botones referentes a “bt1”. Para tal efecto
oculta todos los submenús (botones), excepto el “submenu1”
que lo bloquea. Además, al poner la “bt1” a 1 este
permanecerá abierto hasta que no se pulse el mismo u otro
botón, que cambiará su estado a 0.
Este conjunto de funciones se deben realizar para todos los
submenús (botones), modificando el nombre de las variables
y la función a referenciar.
APP para el cálculo de ICT Página 33 de 63
Tras realizar el control de los desplegables de cada botón,
hemos realizado la creación de la tabla para el apartado de
derivadores. El objetivo es obtener una tabla con 4 tipos
de derivadores con diferentes atenuaciones de paso y de
derivación ya preestablecidas, para poder seleccionar el
que más se adapte a las necesidades.
La función “tabla_deriv” está definida en el apartado de
derivadores junto con el atributo “onclick”.
Las dos primeras líneas recogen el valor del “.value” de
los “id” (plantas y pisos) del formulario y lo almacenan en
variables con el mismo nombre, respectivamente.
Para generar los 4 derivadores por planta, realizo un “for”
de dichas plantas de la mayor a la menor y dentro de este
un nuevo “for” para los derivadores. Cada uno de los
derivadores son de tipo “radio” y le asignamos un “name”,
un “value” y un “id” para poder recoger datos
posteriormente, haciendo referencia del nombre o el id.
APP para el cálculo de ICT Página 34 de 63
document.getElementById('llenar1').innerHTML+: añade nuevas
líneas en “llenar1” sin eliminar las anteriores. Si se
desea que se eliminen las anteriores líneas únicamente se
debe eliminar el signo “+”.
Con “while” analizamos si existe una tabla y la eliminamos
para añadir los resultados de nuevos cálculos.
La función principal que se encarga de realizar todo el
cálculo es la de “cálculo”, que está definida en el
apartado final de “tomas finales”.
APP para el cálculo de ICT Página 35 de 63
El primer apartado de la función cálculo es la que se
encarga de recoger los datos y almacenarlos en variables,
con el atributo “document.getElementById”.
En el caso de los valores de los derivadores, primero los
recogemos uno a uno. A continuación los almacenamos en una
array con el atributo “push”. Previamente creamos la array
y le asignamos el nombre “deriv_final”. Esta variable
contendrá el valor de todos los valores.
Tras almacenar los valores del formulario en variables,
iniciamos el cálculo para generar el valor final de las
tomas, que se mostrarán en la tabla final.
Para iniciar el cálculo creamos un “for” de las plantas
recorriéndolas de la mayor a la menor. Dentro de “for”
creamos un “if” para identificar si el número de “for” es
igual al número máximo de plantas seleccionadas. Si es así,
almacenamos en la variable “s_in” el valor de laantena más
el amplificador. De lo contrario, deberemos coger el valor
de paso del derivador.
Seguidamente crearemos un “if” para cada derivador. De este
modo, delimitaremos el derivador que se ha seleccionado
para centrar el cálculo en los valores que le corresponden.
APP para el cálculo de ICT Página 36 de 63
En este “if” referente al derivador, creamos una variable,
llamada“mts_cable”. Le asignamos un valor inicial de 3.
Esta variable se utilizará para calcular posteriormente los
metros de cable. Creamos otra variable, “s_deriv”, donde
almacenamos el valor de “s_in”, calculado anteriormente,
menos el valor de pérdida de derivación, que en este caso
es 20. Este valor dependerá del tipo de derivador. Del
mismo modo creamos la variable “s_paso” que almacenará el
cálculo del “s_in” menos la perdida de paso, que en este
caso es de 0,5.
Tras definir cada uno de los derivadores, añadimos un “if”
final para el control de errores. Con esto conseguimos que
no se realice el cálculo si no hay un derivador por planta
seleccionado. En el caso que falte alguno, mostrará una
pop-up (ventana emergente) con el error que se muestra en
la imagen.
El siguiente paso es crear un “else”, que será la sentencia
que se debe realizar si la condición del primer “if” no es
verdadera. Dentro del “else”, y a diferencia del “if”
principal, creamos una variable “s_in”, que almacenará el
valor de la salida de paso del derivador de la planta
superior.
Creamos también una variable “deriv”, cuyo valor será el de
la variable “deriv_final” en la posición de y
correspondiente al número de planta en la que se encuentre
el “for” menos 1, al tratarse de una array cuyas posiciones
van de 0 a 9. Los resultados se almacenan en una variable
APP para el cálculo de ICT Página 37 de 63
llamada “valor_toma” y será desde donde obtendremos los
datos para la tabla final.
Por último y antes de cerrar la función “cálculo”, creamos
una tabla del mismo modo que realizamos la de los
derivadores, para volcar los resultados ordenados por pisos
y plantas.
La diferencia principal en esta tabla es que creamos un
“input”, en el que el “value” será el referente a la
posición “v” de la variable “valor_toma”. Como han sido
almacenadas de manera ordenada, ahora, únicamente es
preciso que leamos de menos a más y las añadamos a la
tabla.
Para finalizar hemos añadido al final del documento dos
alertas que se mostrarán si la potencia de la antena es
inferior a 45dBµV, ya que este es el valor mínimo para
garantizar el posterior tratamiento de la señal.
APP para el cálculo de ICT Página 38 de 63
APP para el cálculo de ICT Página 39 de 63
4. RESULTADOS
4.1. Testeo de la aplicación
Para realizar el testeo de la aplicación hemos realizado el
cálculo a nivel teórico, y posteriormente realizamos el
mismo ejercicio sobre la aplicación. A continuación,
presentamos los resultados obtenidos.
A NIVEL TEÓRICO:
Tenemos un bloque de viviendas que
consta de 5 plantas. Hay 2 pisos por
planta. La potencia recibida en la
antena es de 90 dBµV y los derivadores
por planta son los siguientes:
0.5 dB paso y 20 dB derivación
1.5 dB paso y 18 dB derivación
2.5 dB paso y 16 dB derivación
3.5 dB paso y 14 dB derivación
La pérdida de señal por el cable es de
0.7dB por metro.
Para resolver el ejercicio realizamos el cálculo planta por
planta. Seguimos los siguientes pasos:
5ªPlanta(potencia antena + potencia del amplificador)-
(pérdida derivación)-(pérdida en el cable*metro). Con este
cálculo obtenemos el valor de los pisos de dicha planta.
Seguidamente, calculamos el valor de señal que llegará al
piso inmediatamente inferior a través de la salida de paso
del derivador.
5ªPlanta  (potencia antena + potencia del amplificador)-
(pérdida de paso)-(pérdida en el cable*metro).
Este mismo procedimiento se realiza en todas las plantas.
APP para el cálculo de ICT Página 40 de 63
A NIVEL PRÁCTICO:
Partiendo del mismo enunciado del apartado anterior
indicamos en cada caso el valor preciso desde la
aplicación. Para ello comenzamos indicando el número de
plantas, pisos y potencia de antena.
Utilizaremos el apartado del amplificador en caso de que la
señal final sea insuficiente en alguna de las tomas.
Por último seleccionamos los derivadores y el tipo de cable
con una pérdida de 0.7 dB/m
Ahora únicamente se debe crear la tabla final y comprobar
que los valores están dentro de los márgenes que marca la
normativa sobre ICT. El resultado es el siguiente:
APP para el cálculo de ICT Página 41 de 63
A NIVEL TEÓRICO: A NIVEL TEÓRICO
5º1ª -> (90)-(14)-
(0.7*3)=73.9 dBµV
5ªPlanta
5º2ª -> (90)-(14)-
(0.7*6)=71.8 dBµV
4º1ª -> (84.4)-(16)-
(0.7*3)=66.3 dBµV
4ªPlanta
4º2ª -> (84.4)-(16)-
(0.7*6)=64.2 dBµV
3º1ª -> (79.8)-(16)-
(0.7*3)=61.7 dBµV
3ªPlanta
3º2ª -> (79.8)-(16)-
(0.7*6)=59.6 dBµV
2º1ª -> (75.2)-(18)-
(0.7*3)=55.1 dBµV
2ªPlanta
2º2ª -> (75.2)-(18)-
(0.7*6)=53 dBµV
El cálculo a nivel teórico es muy largo de realizar y
cualquier pequeña modificación implica que el este sea
erróneo y que se deba repetir todo el proceso. Mientras que
con la aplicación aumenta la agilidad y la facilidad para
realizar una medición aproximada del nivel de señal en cada
una de las tomas finales.
1ªPlanta
1º1ª -> (71.6)-(20)-(0.7*3)=49.5 dBµV
1º2ª -> (71.6)-(20)-(0.7*6)=47.4 dBµV
APP para el cálculo de ICT Página 42 de 63
APP para el cálculo de ICT Página 43 de 63
5. CONCLUSIONES
5.1. Valoración de los objetivos
Tras finalizar el proyecto hemos verificado que se ha
conseguido abarcar los objetivos mínimos propuestos al
inicio de la creación de la aplicación. Además, se han
podido incluir los puntos de control de errores que, pese a
no estar entre los objetivos iniciales de este proyecto,
pueden ser útiles para controlar o avisar de posibles
errores en la aplicación o el mal uso por parte del usuario
final. No descartamos seguir desarrollando esta aplicación
para optimizar su funcionalidad y conseguir más estabilidad
en los cálculos y la recogida de valores.
5.2. Líneas de mejora
Es probable que las líneas de mejora sean amplias debido a
que el conocimiento de programación adquirido antes de
desarrollar esta aplicación no era para nada elevado.
Por mi parte unos de los puntos más sencillos a mejorar
sería el poder especificar el nivel de atenuación de los
derivadores a petición del usuario, así como la atenuación
y los metros de cable. Con esta pequeña modificación, la
aplicación podría adaptarse a todo tipo de infraestructuras
con tantos valores como fueran precisos.
La mejora más complicada de realizar, pero no por ello
imposible, sería interactuar con las bases de datos de los
principales proveedores de componentes para las
instalaciones ICT. De este modo los cálculos tomarían
valores de componentes reales y los niveles de señal que se
mostrasen en la tabla final serían completamente reales.
APP para el cálculo de ICT Página 44 de 63
APP para el cálculo de ICT Página 45 de 63
6. ANEXO
En este apartado se muestra el código de la aplicación al
completo, separando los tres lenguajes principales que se
utilizaran como son el HTML5, CSS3, JavaScript.
6.1. Código HTML5:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
//** Este apartado contiene las referencias a archivos,
como el icono y de los lenguajes a utilizar CSS, Jquery
yJavaScript.
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8" />
<title>Calculo ICT</title>
<link rel="shortcut icon" href="../imagenes/logo.ico"
sizes="16x16" />
<meta name="viewport" content="width=device-width, initial-
scale=1"/>
<link rel="stylesheet" href="../css3/principal.css" />
<link rel="stylesheet"
href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-
1.2.0.min.css" />
<script src="../js/ICTS.js"></script>
<scriptsrc="http://code.jquery.com/jquery-
1.8.2.min.js"></script>
<script
src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-
1.2.0.min.js"></script>
</head>
APP para el cálculo de ICT Página 46 de 63
//** Inicio del programa: dentro de header se especifica el
título que aparecerá en la página.
<body>
<header>
<h1>APP para el cálculo de Infraestructura Común de
Telecomunicaciones (ICT)</h1>
</header>
<section data-role="content">
<form id="formulario">
//** Sección plantas: se define el botón y la funcionalidad
del slider.
<h2 data-icon="plus" data-role="button" id="plantas"
title="Indica el número de plantas de las que consta el
edificio">Plantas</h2>
<section id="submenu1">
<div id="entrada">
<input on type="range" id="plantas_num" value="0" min="0"
max="10" data-highlight="true" />
</div>
</section>
//** Sección pisos: se define el botón y la funcionalidad
del slider.
<h2 data-icon="plus" data-role="button" id="pisos"
title="Indica el número de pisos de los que consta el
edificio">Pisos</h2>
<section id="submenu2">
<div id="entrada">
<input type="range" id="pisos_num" value="0" min="0"
max="10" data-highlight="true" />
</div>
</section>
APP para el cálculo de ICT Página 47 de 63
//** Sección plantas: se define el botón y la funcionalidad
del slider.
<h2 data-icon="plus" data-role="button" id="antena"
title="Indica la potencia de recepción en la antena
(dBµV)">Potencia en antena</h2>
<section id="submenu3">
<div id="entrada">
<input type="range" id="antena_num" value="0" min="30"
max="90" data-highlight="true" />
</div>
</section>
//** Sección amplificador: se define el botón y la
funcionalidad del slider.
<h2 data-icon="plus" data-role="button" id="ampli"
title="Indica la potencia que aplicará el preamplificador
(dBµV)">Preamplificador</h2>
<section id="submenu4">
<div id="entrada">
<input type="range" id="ampli_num" value="0" min="0"
max="20" data-highlight="true" />
</div>
</section>
//** Sección derivadores: se define el botón y el id para
importar los derivadores desde JavaScript.
<h2 data-icon="plus" data-role="button" id="derivadores"
title="Indica el tipo de derivadores según sus
salidas">Derivadores</h2>
<section id="submenu5" >
<div id="entrada_deriv">
<button type="button" onclick="tabla_deriv()"
>Cargarplantas</button>
</div>
<table class="tablestyle" id="tabla_deriv" align="center">
<tbody id="llenar1">
</tbody>
</table>
</section>
APP para el cálculo de ICT Página 48 de 63
//** Sección cable: se define el botón y la funcionalidad
de cada uno de los tres tipos de cable.
<h2 data-icon="plus" data-role="button" id="cable"
title="Indica el tipo de cable para la la ICT">Tipo de
Cable</h2>
<section id="submenu6">
<div id="entrada_cable">
<input type="radio" name="cable" value="1.2" id="radio-
choice-21" />
<labelfor="radio-choice-21" title="1.2 dB pérdida por
metro" >NK 10 CB - 1,2 dB pérdida por metro</label>
<input type="radio" name="cable" value="0.7" id="radio-
choice-22" />
<labelfor="radio-choice-22" title="0.7 dB pérdida por
metro" >NK 10 CC - 0,7 dB pérdida por metro</label>
<input type="radio" name="cable" value="0.5" id="radio-
choice-23" />
<labelfor="radio-choice-23" title="0.5 dB pérdida por
metro" >NK 10 AL - 0,5 dB pérdida por metro</label>
</div>
</section>
//** Sección derivadores: se define el botón y el id para
importar los derivadores desde JavaScript.
<h2 data-icon="plus" data-role="button" id="tomas"
title="Esta tabla muestra el nivel de señal teórico que se
debería obtener en las tomas de cada piso">Tomas
finales</h2>
<section id="submenu7">
<div id="entrada">
<div id="entrada_result">
<button type="button" onclick="calculo()"
onclick="tabla_tomas()" >RealizarCalculos</button>
</div>
<table class="tablestyle" id="tabla_tomas" align="center">
<tbody id="llenar2">
</tbody>
</table>
</div>
</section>
</form>
</section>
APP para el cálculo de ICT Página 49 de 63
//** Sección del botón “Eliminar Datos”: se define el botón
y su funcionalidad.
<section>
<div id="boton_borrar">
<button type="reset" id="boton_reset" form="formulario"
>Eliminardatos</button>
</div>
</section>
</body>
//** Definición del texto que aparece en el footer.
<footer>
<p>APP diseñada por Jorge Barragán Granado, alumno de
STUCOM-STI2M. </p>
<p>Esta aplicación ha sido diseñada para realizar un
cálculo teórico aproximado del nivel de señal en las tomas
finales de cada piso. Se pretende proporcionar una
plataforma para agilizar el cálculo basándose en los
parámetros básicos de una Infraestructura Común de
Telecomunicaciones (ICT). </p>
</footer>
</html>
APP para el cálculo de ICT Página 50 de 63
6.2. Código CSS3:
//** Estilo del los submenús (botones), ocultados por
defecto.
#submenu1,#submenu2,#submenu3,#submenu4,#submenu5,#submenu6
,#submenu7 {
display:none;
}
//** Estilo del texto que aparece dentro de los botones.
#plantas,#pisos,#derivadores,#antena,#cable,#ampli,#tomas{
margin-left:12%;
margin-right:12%;
text-align:left;
width:auto;
}
//** Estilo de los botones al posicionar el puntero sobre
ellos.
#plantas:hover,#pisos:hover,#derivadores:hover,#antena:hove
r,#cable:hover,#ampli:hover,#tomas:hover{
color:#03F;
border-bottom-color:#03F;
}
//** Estilo del sliderpara los botones de selección.
#plantas_num,#pisos_num,#antena_num,#cable_num,#ampli_num{
text-align:inherit;
width:auto;
margin-left:10%;
margin-right:5%;
}
//** Estilo de la tabla en la sección de derivadores.
#entrada_deriv{
text-align:inherit;
width:auto;
margin-left:70%;
margin-right:12%;
}
APP para el cálculo de ICT Página 51 de 63
//** Estilo del botón de sección final.
#entrada_result{
text-align:inherit;
width:auto;
margin-left:70%;
margin-right:2%;
}
//** Definición de los márgenes que ocupan los sliders.
#entrada{
margin-left:12%;
margin-right:12%;
}
//** Márgenes de la tabla que aparece en la sección cable.
#entrada_cable{
margin-left:25%;
margin-right:20%;
}
//** Estilo del botón “Eliminar Datos”.
#boton_borrar{
width:auto;
margin-left:65%;
margin-right:13%;
}
//** Estilo del pie de página footer.
p{
margin-left: 15%;
margin-right: 15%;
font-weight: normal;
text-align: center;
color: #000;
font-family: "Courier New", Courier, monospace;
font-size: 20px;
text-shadow: 0px 2px 8px rgba(14, 9, 232, 0.7);
}
APP para el cálculo de ICT Página 52 de 63
//** Estilo del título.
h1 {
margin-left: 20%;
margin-right: 20%;
font-weight: normal;
text-align: center;
color: #000;
font-family: "Courier New", Courier, monospace;
font-size: 36px;
text-shadow: 0px 2px 8px rgba(14, 9, 232, 0.7);
}
//** Estilo de los inputs de la tabla.
input{
background-color:#CCC;
text-align: center;
font-style: italic;
font-weight: normal;
text-align: center;
color:#000;
font-family: "Courier New", Courier, monospace;
font-size: 25px;
text-shadow: 0px 2px 10px rgba(10, 9, 232, 0.8);
}
//** Estilo de la tabla de tomas finales.
table.tablestyle{
font-family: "Courier New", Courier, monospace;
font-weight: bold;
border-collapse: separate;
width: 100%;
APP para el cálculo de ICT Página 53 de 63
6.3. Código JavaScript:
//** Control de los botones, para que solo uno se mantenga
desplegado.
function iniciar(){
plantas=document.getElementById('plantas');
plantas.addEventListener('click',pl,false);
bt1=0;
pisos=document.getElementById('pisos');
pisos.addEventListener('click',pi,false);
bt2=0;
derivadores=document.getElementById('antena');
derivadores.addEventListener('click',ant,false);
bt3=0;
tomas=document.getElementById('ampli');
tomas.addEventListener('click',amp,false);
bt4=0;
antena=document.getElementById('derivadores');
antena.addEventListener('click',der,false);
bt5=0;
cable=document.getElementById('cable');
cable.addEventListener('click',cab,false);
bt6=0;
tomas=document.getElementById('tomas');
tomas.addEventListener('click',tom,false);
bt7=0;
}
function pl(){
if(bt1==0) {
document.getElementById('submenu1').style.display='block';
document.getElementById('submenu2').style.display='non
e';
document.getElementById('submenu3').style.display='none';
document.getElementById('submenu4').style.display='none';
document.getElementById('submenu5').style.display='none';
document.getElementById('submenu6').style.display='none';
document.getElementById('submenu7').style.display='none';
((bt1=1)&&(bt2=0,bt3=0,bt4=0,bt5=0,bt6=0,bt7=0));
}
else {
document.getElementById('submenu1').style.display='none';
bt1=0,bt2=0,bt3=0,bt4=0,bt5=0,bt6=0,bt7=0;
}
APP para el cálculo de ICT Página 54 de 63
}
function pi(){
if(bt2==0) {
document.getElementById('submenu1').style.display='non
e';
document.getElementById('submenu2').style.display='block';
document.getElementById('submenu3').style.display='none';
document.getElementById('submenu4').style.display='none';
document.getElementById('submenu5').style.display='none';
document.getElementById('submenu6').style.display='none';
document.getElementById('submenu7').style.display='none';
((bt2=1)&&(bt1=0,bt3=0,bt4=0,bt5=0,bt6=0,bt7=0));
}
else {
document.getElementById('submenu2').style.display='none';
bt1=0,bt2=0,bt3=0,bt4=0,bt5=0,bt6=0,bt7=0;
}
}
function ant(){
if(bt3==0) {
document.getElementById('submenu1').style.display='none';
document.getElementById('submenu2').style.display='none';
document.getElementById('submenu3').style.display='block';
document.getElementById('submenu4').style.display='none';
document.getElementById('submenu5').style.display='none';
document.getElementById('submenu6').style.display='none';
document.getElementById('submenu7').style.display='none';
((bt3=1)&&(bt1=0,bt2=0,bt4=0,bt5=0,bt6=0,bt7=0));
}
else {
document.getElementById('submenu3').style.display='none';
bt1=0,bt2=0,bt3=0,bt4=0,bt5=0,bt6=0,bt7=0;
}
}
APP para el cálculo de ICT Página 55 de 63
function amp(){
if(bt4==0) {
document.getElementById('submenu1').style.display='none';
document.getElementById('submenu2').style.display='none';
document.getElementById('submenu3').style.display='none';
document.getElementById('submenu4').style.display='block';
document.getElementById('submenu5').style.display='none';
document.getElementById('submenu6').style.display='none';
document.getElementById('submenu7').style.display='none';
((bt4=1)&&(bt1=0,bt2=0,bt3=0,bt5=0,bt6=0,bt7=0));
}
else {
document.getElementById('submenu4').style.display='none';
bt1=0,bt2=0,bt3=0,bt4=0,bt5=0,bt6=0,bt7=0;
}
}
function der(){
if(bt5==0) {
document.getElementById('submenu1').style.display='none';
document.getElementById('submenu2').style.display='none';
document.getElementById('submenu3').style.display='none';
document.getElementById('submenu4').style.display='none';
document.getElementById('submenu5').style.display='block';
document.getElementById('submenu6').style.display='none';
document.getElementById('submenu7').style.display='none';
((bt5=1)&&(bt1=0,bt2=0,bt3=0,bt4=0,bt6=0,bt7=0));
}
else {
document.getElementById('submenu5').style.display='none';
bt1=0,bt2=0,bt3=0,bt4=0,bt5=0,bt6=0,bt7=0;
}
}
function cab(){
if(bt6==0) {
document.getElementById('submenu1').style.display='none';
document.getElementById('submenu2').style.display='none';
document.getElementById('submenu3').style.display='none';
document.getElementById('submenu4').style.display='none';
document.getElementById('submenu5').style.display='none';
document.getElementById('submenu6').style.display='block';
document.getElementById('submenu7').style.display='none';
((bt6=1)&&(bt1=0,bt2=0,bt3=0,bt4=0,bt5=0,bt7=0));
}
else {
APP para el cálculo de ICT Página 56 de 63
document.getElementById('submenu6').style.display='none';
bt1=0,bt2=0,bt3=0,bt4=0,bt5=0,bt6=0,bt7=0;
}
}
function tom(){
if(bt7==0) {
document.getElementById('submenu1').style.display='none';
document.getElementById('submenu2').style.display='none';
document.getElementById('submenu3').style.display='none';
document.getElementById('submenu4').style.display='none';
document.getElementById('submenu5').style.display='none';
document.getElementById('submenu6').style.display='none';
document.getElementById('submenu7').style.display='block';
((bt7=1)&&(bt1=0,bt2=0,bt3=0,bt4=0,bt5=0,bt6=0));
}
else {
document.getElementById('submenu7').style.display='none';
bt1=0,bt2=0,bt3=0,bt4=0,bt5=0,bt6=0,bt7=0;
}
}
//** Sección tabla derivadores: este apartado crea la tabla
con los cuatro derivadores por planta.
functiontabla_deriv(){
var
plantas=document.getElementById('plantas_num').value;
var pisos=document.getElementById('pisos_num').value;
//borrar filas
while (document.getElementById('llenar1').lastChild)
{
document.getElementById('llenar1').removeChild(documen
t.getElementById('llenar1').lastChild);
}
for (y=plantas;y>0;y--)
{
document.getElementById('llenar1').innerHTML+="<th><br
>"+[y]+" &ordf;PLANTA>> Salidas: 1 paso "+[pisos]+"
derivaci&oacute;n</br></th>";
for (z=1;z<5;z++)
{
document.getElementById('llenar1').innerHTML+="<th>Der
ivador "+[1+z-1]+":<input type='radio'"+[z+1]+"'
APP para el cálculo de ICT Página 57 de 63
name='nderiv"+[y]+"' value='"+[z]+"' id='nderiv"+[y]+"'/>
"+[(1+z-1)-0.5]+" dB paso y "+[22-((z-1)+(z+1))]+" dB
derivaci&oacute;n</th>";
}
}
}
//** Función cálculo: esta es la que realiza todo el
cálculo tras obtener los valores de las variables.
function calculo(){
varderiv_final = new Array ();
varvalor_toma = new Array ();
var
plantas=document.getElementById('plantas_num').value;
varplantas_select=document.getElementById('plantas_num
').value;
var pisos=document.getElementById('pisos_num').value;
var
antena=document.getElementById('antena_num').value;
varampli=document.getElementById('ampli_num').value;
vars_in=parseInt(antena)+parseInt(ampli);
var cable = $("input[name='cable']:checked").val();
vars_ant=sin[plantas]=parseInt(antena)+parseInt(ampli)
;
APP para el cálculo de ICT Página 58 de 63
//**Para obtener el valor del radio seleccionado en los
derivadores y almacenarlosen variables separadas.
var deriv_pl_1 =
$("input[name='nderiv1']:checked").val();
var deriv_pl_2 =
$("input[name='nderiv2']:checked").val();
var deriv_pl_3 =
$("input[name='nderiv3']:checked").val();
var deriv_pl_4 =
$("input[name='nderiv4']:checked").val();
var deriv_pl_5 =
$("input[name='nderiv5']:checked").val();
var deriv_pl_6 =
$("input[name='nderiv6']:checked").val();
var deriv_pl_7 =
$("input[name='nderiv7']:checked").val();
var deriv_pl_8 =
$("input[name='nderiv8']:checked").val();
var deriv_pl_9 =
$("input[name='nderiv9']:checked").val();
var deriv_pl_10=
$("input[name='nderiv10']:checked").val();
//**Crear una array con todas las variables anteriores.
deriv_final.push(deriv_pl_1,deriv_pl_2,deriv_pl_3,deri
v_pl_4,deriv_pl_5,deriv_pl_6,deriv_pl_7,deriv_pl_8,deriv_pl
_9,deriv_pl_10)
//**Sección para el cálculo de la señal en toma. Se realiza
un “for” desde la planta superior definida por el usuario
hasta la planta final.En cada planta se calcula la señal
según el derivador seleccionado, los metros y la pérdida en
cable, obteniendo la señal final en la toma para cada piso.
if ((plantas!=0)&&(pisos!=0)&&(antena>40)&&(cable!=0))
{
for (y=plantas;y>0;y--)
{
if (y==plantas_select)
{
vars_in=parseInt(antena)+parseInt(ampli);
varderiv=deriv_final[plantas_select-1];
if (deriv==1)
{
mts_cable=3;
APP para el cálculo de ICT Página 59 de 63
vars_deriv=s_in-20;
vars_paso=s_in-(mts_cable*cable)-0.5;
for(x=1;x<=pisos;x++)
{
varperdida_cable=mts_cable*cable;
vars_toma=s_deriv-perdida_cable;
valor_toma.push(s_toma);
mts_cable=mts_cable+3;
}
}
if (deriv==2)
{
mts_cable=3;
vars_deriv=s_in-18;
vars_paso=s_in-(mts_cable*cable)-1.5;
varmts_cable=3;
for(x=1;x<=pisos;x++)
{
varperdida_cable=mts_cable*cable;
vars_toma=s_deriv-perdida_cable;
valor_toma.push(s_toma);
mts_cable=mts_cable+3;
}
}
if (deriv==3)
{
mts_cable=3;
vars_deriv=s_in-16;
vars_paso=s_in-(mts_cable*cable)-2.5;
for(x=1;x<=pisos;x++)
{
varperdida_cable=mts_cable*cable;
vars_toma=s_deriv-perdida_cable;
valor_toma.push(s_toma);
mts_cable=mts_cable+3;
}
}
if (deriv==4)
{
mts_cable=3;
vars_deriv=s_in-14;
vars_paso=s_in-3.5;
for(x=1;x<=pisos;x++)
{
varperdida_cable=mts_cable*cable;
APP para el cálculo de ICT Página 60 de 63
vars_toma=s_deriv-perdida_cable;
valor_toma.push(s_toma);
mts_cable=mts_cable+3;
}
}
if (deriv==null)//Control de errores
{
alert ('Existen derivadores por
seleccionar!!. Seleccione todos los derivadores por planta
y posteriormente realice el cálculo final');
}
}
else
{
vars_in=s_paso;
varderiv=deriv_final[y-1];
if (deriv==1)
{
mts_cable=3;
vars_deriv=s_in-20;
vars_paso=s_in-0.5;
for(x=1;x<=pisos;x++)
{
varperdida_cable=mts_cable*cable;
vars_toma=s_deriv-perdida_cable;
valor_toma.push(s_toma);
mts_cable=mts_cable+3;
}
}
if (deriv==2)
{
mts_cable=3;
vars_deriv=s_in-18;
vars_paso=s_in-1.5;
for(x=1;x<=pisos;x++)
{
varperdida_cable=mts_cable*cable;
vars_toma=s_deriv-perdida_cable;
valor_toma.push(s_toma);
mts_cable=mts_cable+3;
}
}
if (deriv==3)
{
mts_cable=3;
APP para el cálculo de ICT Página 61 de 63
vars_deriv=s_in-16;
vars_paso=s_in-2.5;
for(x=0;x<pisos;x++)
{
varperdida_cable=mts_cable*cable;
vars_toma=s_deriv-perdida_cable;
valor_toma.push(s_toma);
mts_cable=mts_cable+3;
}
}
if (deriv==4)
{
mts_cable=3;
vars_deriv=s_in-14;
vars_paso=s_in-3.5;
for(x=1;x<=pisos;x++)
{
varperdida_cable=mts_cable*cable;
vars_toma=s_deriv-perdida_cable;
valor_toma.push(s_toma);
mts_cable=mts_cable+3;
}
}
if (deriv==null)//Control de errores
{
alert ('Existen derivadores por
seleccionar!!. Seleccione todos los derivadores por planta
y posteriormente realice el cálculo final');
}
}
}
//**Este apartado genera la tabla para mostrar el nivel de
señal en las tomas de cada piso.
var plantas=document.getElementById('plantas_num').value;
var pisos=document.getElementById('pisos_num').value;
//**While: borra la tabla de cálculos anteriores.
while (document.getElementById('llenar2').lastChild)
{
document.getElementById('llenar2').removeChild(documen
t.getElementById('llenar2').lastChild);
}
APP para el cálculo de ICT Página 62 de 63
var v=0;
for (y=plantas;y>0;y--)
{
document.getElementById('llenar2').innerHTML+="<th><br
><br>"+[y]+"&ordf; PLANTA</br></th>";
for (x=1;x<=pisos;x++)
{
document.getElementById('llenar2').innerHTML+="<th>Pis
o "+[x]+"&ordm;:<input value='"+deriv_final[v]+"
dB&micro;V' readonly/>";
var v=v+1;
}
}
}
else
{
alert ('Verifique que haya introducido todos los
datos correctamente');
alert ('Recuerde que el cálculo solo se realizará
si el nivel de señal de la antena no es inferior a
45dBµV');
}
}
//**Final del cálculo.
window.addEventListener('load', iniciar, false);
APP para el cálculo de ICT Página 63 de 63
7. BIBLIOGRAFÍA Y WEBGRAFÍA
La mayor parte de la información y soportes para la
creación de la aplicación es de páginas y foros de internet
relacionados con la programación web.
El gran libro de HTML5, CSS3 y JavaScript.
http://www.w3schools.com/ [20/06/2013]
http://www.desarrolloweb.com/ [10/05/2013]
http://jquerymobile.com/ [7/04/2013]
http://www.codexexempla.org/ [7/05/2013]
http://www.programacionfacil.com/ [5/06/2013]
http://www.virtualnauta.com/html-formularios
[17/03/2013]
http://www.librosweb.es/JavaScript [2/04/2013]

Más contenido relacionado

Similar a Proyecto: Aplicación web para el cálculo de ICT

Utilizacion de la herramienta PRTG Network monitor
Utilizacion de la herramienta PRTG Network monitorUtilizacion de la herramienta PRTG Network monitor
Utilizacion de la herramienta PRTG Network monitor
Rita Aguilar
 
Anteproyecto formulacion
Anteproyecto formulacionAnteproyecto formulacion
Anteproyecto formulacion
Juan Norberto Perez
 
Factores a considerar resuelto
Factores a considerar   resueltoFactores a considerar   resuelto
Factores a considerar resueltoAlberto Vargas
 
Proyecto punto a punto
Proyecto punto a puntoProyecto punto a punto
Proyecto punto a punto
Jesus Cisneros Morales
 
Diseño de una red de area local
Diseño de una red de area localDiseño de una red de area local
Diseño de una red de area localchikinkira1997
 
PID11041
PID11041PID11041
PID11041ecoran
 
Cesnavarra 2008-boletín 3
Cesnavarra 2008-boletín 3Cesnavarra 2008-boletín 3
Cesnavarra 2008-boletín 3
Cein
 
Protocolo de comunicación Modbus TCP/IP mediantearduino y factory IO
Protocolo de comunicación Modbus TCP/IP mediantearduino y factory IOProtocolo de comunicación Modbus TCP/IP mediantearduino y factory IO
Protocolo de comunicación Modbus TCP/IP mediantearduino y factory IO
Marlon Torres
 
Red lan
Red lanRed lan
Link planer tutorial
Link planer tutorialLink planer tutorial
Link planer tutorial
Manuel Maximiliano Sáenz Salazar
 
Reto CFE - Smartplace
Reto CFE - SmartplaceReto CFE - Smartplace
Reto CFE - Smartplace
smartplace
 
trabajofinalMejora de MetodosBet.docx
trabajofinalMejora de MetodosBet.docxtrabajofinalMejora de MetodosBet.docx
trabajofinalMejora de MetodosBet.docx
BethDuranCisneros
 
Memoria
MemoriaMemoria
Memoria
molazabal
 
Business Case Insyte
Business Case   InsyteBusiness Case   Insyte
Business Case InsyteCiro Alonso
 
Todo Sobre Compartel
Todo Sobre CompartelTodo Sobre Compartel
Todo Sobre Compartelalexander314
 
3. guia sistemas modelo osi y tcp
3. guia sistemas modelo osi y tcp3. guia sistemas modelo osi y tcp
3. guia sistemas modelo osi y tcp
concejo municipal de itagui
 
Gestión de red por vía telefónica
Gestión de red por vía telefónicaGestión de red por vía telefónica
Gestión de red por vía telefónica
Sergio Jiménez Barrio
 
Ef4ktur manual tecnico
Ef4ktur manual tecnicoEf4ktur manual tecnico
Ef4ktur manual tecnico
JuaniSin
 
DISEÑO E IMPLEMENTACIÓN DEL SISTEMA DE INFORMACIÓN TELEFÓNICO COMUNITARIO CBD...
DISEÑO E IMPLEMENTACIÓN DEL SISTEMA DE INFORMACIÓN TELEFÓNICO COMUNITARIO CBD...DISEÑO E IMPLEMENTACIÓN DEL SISTEMA DE INFORMACIÓN TELEFÓNICO COMUNITARIO CBD...
DISEÑO E IMPLEMENTACIÓN DEL SISTEMA DE INFORMACIÓN TELEFÓNICO COMUNITARIO CBD...
Cesar Johan
 

Similar a Proyecto: Aplicación web para el cálculo de ICT (20)

Utilizacion de la herramienta PRTG Network monitor
Utilizacion de la herramienta PRTG Network monitorUtilizacion de la herramienta PRTG Network monitor
Utilizacion de la herramienta PRTG Network monitor
 
Anteproyecto formulacion
Anteproyecto formulacionAnteproyecto formulacion
Anteproyecto formulacion
 
Factores a considerar resuelto
Factores a considerar   resueltoFactores a considerar   resuelto
Factores a considerar resuelto
 
Proyecto punto a punto
Proyecto punto a puntoProyecto punto a punto
Proyecto punto a punto
 
Diseño de una red de area local
Diseño de una red de area localDiseño de una red de area local
Diseño de una red de area local
 
PID11041
PID11041PID11041
PID11041
 
Tesis
TesisTesis
Tesis
 
Cesnavarra 2008-boletín 3
Cesnavarra 2008-boletín 3Cesnavarra 2008-boletín 3
Cesnavarra 2008-boletín 3
 
Protocolo de comunicación Modbus TCP/IP mediantearduino y factory IO
Protocolo de comunicación Modbus TCP/IP mediantearduino y factory IOProtocolo de comunicación Modbus TCP/IP mediantearduino y factory IO
Protocolo de comunicación Modbus TCP/IP mediantearduino y factory IO
 
Red lan
Red lanRed lan
Red lan
 
Link planer tutorial
Link planer tutorialLink planer tutorial
Link planer tutorial
 
Reto CFE - Smartplace
Reto CFE - SmartplaceReto CFE - Smartplace
Reto CFE - Smartplace
 
trabajofinalMejora de MetodosBet.docx
trabajofinalMejora de MetodosBet.docxtrabajofinalMejora de MetodosBet.docx
trabajofinalMejora de MetodosBet.docx
 
Memoria
MemoriaMemoria
Memoria
 
Business Case Insyte
Business Case   InsyteBusiness Case   Insyte
Business Case Insyte
 
Todo Sobre Compartel
Todo Sobre CompartelTodo Sobre Compartel
Todo Sobre Compartel
 
3. guia sistemas modelo osi y tcp
3. guia sistemas modelo osi y tcp3. guia sistemas modelo osi y tcp
3. guia sistemas modelo osi y tcp
 
Gestión de red por vía telefónica
Gestión de red por vía telefónicaGestión de red por vía telefónica
Gestión de red por vía telefónica
 
Ef4ktur manual tecnico
Ef4ktur manual tecnicoEf4ktur manual tecnico
Ef4ktur manual tecnico
 
DISEÑO E IMPLEMENTACIÓN DEL SISTEMA DE INFORMACIÓN TELEFÓNICO COMUNITARIO CBD...
DISEÑO E IMPLEMENTACIÓN DEL SISTEMA DE INFORMACIÓN TELEFÓNICO COMUNITARIO CBD...DISEÑO E IMPLEMENTACIÓN DEL SISTEMA DE INFORMACIÓN TELEFÓNICO COMUNITARIO CBD...
DISEÑO E IMPLEMENTACIÓN DEL SISTEMA DE INFORMACIÓN TELEFÓNICO COMUNITARIO CBD...
 

Más de Francesc Perez

ICT Parte 1/2
ICT Parte 1/2ICT Parte 1/2
ICT Parte 1/2
Francesc Perez
 
Conmutación LAn e inalámbrica: 5.1 VTP
Conmutación LAn e inalámbrica: 5.1 VTPConmutación LAn e inalámbrica: 5.1 VTP
Conmutación LAn e inalámbrica: 5.1 VTPFrancesc Perez
 
Conmutación LAN e inalámbrica: 5.2 VTP Solución
Conmutación LAN e inalámbrica: 5.2 VTP SoluciónConmutación LAN e inalámbrica: 5.2 VTP Solución
Conmutación LAN e inalámbrica: 5.2 VTP SoluciónFrancesc Perez
 
Sistemas digitales secuenciales: Contador binario módulo 10 con display siete...
Sistemas digitales secuenciales: Contador binario módulo 10 con display siete...Sistemas digitales secuenciales: Contador binario módulo 10 con display siete...
Sistemas digitales secuenciales: Contador binario módulo 10 con display siete...Francesc Perez
 
Conceptos y protocolos de enrutamiento: 3.3 Enrutamiento dinámico y redistrib...
Conceptos y protocolos de enrutamiento: 3.3 Enrutamiento dinámico y redistrib...Conceptos y protocolos de enrutamiento: 3.3 Enrutamiento dinámico y redistrib...
Conceptos y protocolos de enrutamiento: 3.3 Enrutamiento dinámico y redistrib...Francesc Perez
 
Enrutamiento estático pràctica 2 sol
Enrutamiento estático pràctica 2 solEnrutamiento estático pràctica 2 sol
Enrutamiento estático pràctica 2 sol
Francesc Perez
 
Seguridad: Backtrack2
Seguridad: Backtrack2 Seguridad: Backtrack2
Seguridad: Backtrack2 Francesc Perez
 
Seguridad: Backtrack1_bis
Seguridad: Backtrack1_bisSeguridad: Backtrack1_bis
Seguridad: Backtrack1_bisFrancesc Perez
 
Seguridad: Ataque Unicode Solución
Seguridad: Ataque Unicode SoluciónSeguridad: Ataque Unicode Solución
Seguridad: Ataque Unicode SoluciónFrancesc Perez
 
Sistemas digitales combinacionales: Multiplexador
Sistemas digitales combinacionales: MultiplexadorSistemas digitales combinacionales: Multiplexador
Sistemas digitales combinacionales: MultiplexadorFrancesc Perez
 
Js api formularios
Js api formulariosJs api formularios
Js api formularios
Francesc Perez
 
Exercici html5, js y css3
Exercici html5, js y css3Exercici html5, js y css3
Exercici html5, js y css3
Francesc Perez
 
Ejercicios funciones lógicas
Ejercicios funciones lógicasEjercicios funciones lógicas
Ejercicios funciones lógicas
Francesc Perez
 
Sistemas electrónicos digitales pràctica 1
Sistemas electrónicos digitales   pràctica 1Sistemas electrónicos digitales   pràctica 1
Sistemas electrónicos digitales pràctica 1
Francesc Perez
 
html5 multimedia
 html5 multimedia html5 multimedia
html5 multimedia
Francesc Perez
 
Sistemas digitales comb inacionales: Propiedades de boole
Sistemas digitales comb inacionales: Propiedades de booleSistemas digitales comb inacionales: Propiedades de boole
Sistemas digitales comb inacionales: Propiedades de booleFrancesc Perez
 
Conceptos y protocolos de enrutamiento: 2.2 Enrutamiento estatico y Traducció...
Conceptos y protocolos de enrutamiento: 2.2 Enrutamiento estatico y Traducció...Conceptos y protocolos de enrutamiento: 2.2 Enrutamiento estatico y Traducció...
Conceptos y protocolos de enrutamiento: 2.2 Enrutamiento estatico y Traducció...Francesc Perez
 
Sistemas digitales comb inacionales: Teoremas de boole
Sistemas digitales comb inacionales: Teoremas de booleSistemas digitales comb inacionales: Teoremas de boole
Sistemas digitales comb inacionales: Teoremas de booleFrancesc Perez
 

Más de Francesc Perez (20)

ICT Parte 1/2
ICT Parte 1/2ICT Parte 1/2
ICT Parte 1/2
 
Conmutación LAn e inalámbrica: 5.1 VTP
Conmutación LAn e inalámbrica: 5.1 VTPConmutación LAn e inalámbrica: 5.1 VTP
Conmutación LAn e inalámbrica: 5.1 VTP
 
Conmutación LAN e inalámbrica: 5.2 VTP Solución
Conmutación LAN e inalámbrica: 5.2 VTP SoluciónConmutación LAN e inalámbrica: 5.2 VTP Solución
Conmutación LAN e inalámbrica: 5.2 VTP Solución
 
Sistemas digitales secuenciales: Contador binario módulo 10 con display siete...
Sistemas digitales secuenciales: Contador binario módulo 10 con display siete...Sistemas digitales secuenciales: Contador binario módulo 10 con display siete...
Sistemas digitales secuenciales: Contador binario módulo 10 con display siete...
 
Conceptos y protocolos de enrutamiento: 3.3 Enrutamiento dinámico y redistrib...
Conceptos y protocolos de enrutamiento: 3.3 Enrutamiento dinámico y redistrib...Conceptos y protocolos de enrutamiento: 3.3 Enrutamiento dinámico y redistrib...
Conceptos y protocolos de enrutamiento: 3.3 Enrutamiento dinámico y redistrib...
 
Enrutamiento estático pràctica 2 sol
Enrutamiento estático pràctica 2 solEnrutamiento estático pràctica 2 sol
Enrutamiento estático pràctica 2 sol
 
Seguridad: Backtrack2
Seguridad: Backtrack2 Seguridad: Backtrack2
Seguridad: Backtrack2
 
Seguridad: Backtrack1_bis
Seguridad: Backtrack1_bisSeguridad: Backtrack1_bis
Seguridad: Backtrack1_bis
 
Seguridad: Backtrack1
Seguridad: Backtrack1Seguridad: Backtrack1
Seguridad: Backtrack1
 
Seguridad: Ataque Unicode Solución
Seguridad: Ataque Unicode SoluciónSeguridad: Ataque Unicode Solución
Seguridad: Ataque Unicode Solución
 
Sistemas digitales combinacionales: Multiplexador
Sistemas digitales combinacionales: MultiplexadorSistemas digitales combinacionales: Multiplexador
Sistemas digitales combinacionales: Multiplexador
 
Js api formularios
Js api formulariosJs api formularios
Js api formularios
 
Exercici html5, js y css3
Exercici html5, js y css3Exercici html5, js y css3
Exercici html5, js y css3
 
Ejercicios funciones lógicas
Ejercicios funciones lógicasEjercicios funciones lógicas
Ejercicios funciones lógicas
 
Sistemas electrónicos digitales pràctica 1
Sistemas electrónicos digitales   pràctica 1Sistemas electrónicos digitales   pràctica 1
Sistemas electrónicos digitales pràctica 1
 
html5 multimedia
 html5 multimedia html5 multimedia
html5 multimedia
 
Sistemas digitales comb inacionales: Propiedades de boole
Sistemas digitales comb inacionales: Propiedades de booleSistemas digitales comb inacionales: Propiedades de boole
Sistemas digitales comb inacionales: Propiedades de boole
 
Conceptos y protocolos de enrutamiento: 2.2 Enrutamiento estatico y Traducció...
Conceptos y protocolos de enrutamiento: 2.2 Enrutamiento estatico y Traducció...Conceptos y protocolos de enrutamiento: 2.2 Enrutamiento estatico y Traducció...
Conceptos y protocolos de enrutamiento: 2.2 Enrutamiento estatico y Traducció...
 
Estudio del PC
Estudio del PCEstudio del PC
Estudio del PC
 
Sistemas digitales comb inacionales: Teoremas de boole
Sistemas digitales comb inacionales: Teoremas de booleSistemas digitales comb inacionales: Teoremas de boole
Sistemas digitales comb inacionales: Teoremas de boole
 

Último

Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
MauricioSnchez83
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
YasneidyGonzalez
 
corpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfcorpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdf
YolandaRodriguezChin
 
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Monseespinoza6
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
YasneidyGonzalez
 
Proceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de PamplonaProceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de Pamplona
Edurne Navarro Bueno
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
20minutos
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
Alejandrogarciapanta
 
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdfTexto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
ClaudiaAlcondeViadez
 
Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
LorenaCovarrubias12
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
auxsoporte
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
BetzabePecheSalcedo1
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
SandraBenitez52
 
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptxAutomatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
GallardoJahse
 
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
UNIDAD DE APRENDIZAJE DEL MES  Junio 2024UNIDAD DE APRENDIZAJE DEL MES  Junio 2024
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
EdwardYumbato1
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
CESAR MIJAEL ESPINOZA SALAZAR
 
El lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libroEl lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libro
Distea V región
 
Junio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividadesJunio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividades
cintiat3400
 
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
HuallpaSamaniegoSeba
 
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIALCUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
DivinoNioJess885
 

Último (20)

Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
 
corpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfcorpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdf
 
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
 
Proceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de PamplonaProceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de Pamplona
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
 
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdfTexto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
 
Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
 
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptxAutomatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
 
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
UNIDAD DE APRENDIZAJE DEL MES  Junio 2024UNIDAD DE APRENDIZAJE DEL MES  Junio 2024
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
 
El lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libroEl lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libro
 
Junio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividadesJunio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividades
 
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
 
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIALCUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
 

Proyecto: Aplicación web para el cálculo de ICT

  • 1. APP para el cálculo de ICT Página 1 de 63 APLICACIÓN WEB PARA EL CÁLCULO DE ICT JORGE BARRAGÁN GRANADO PROYECTO FINAL TUTOR: FRANCESC PÉREZ STI2M STUCOM 2011-2013
  • 2. APP para el cálculo de ICT Página 2 de 63
  • 3. APP para el cálculo de ICT Página 3 de 63 ÍNDICE: 1. INTRODUCCIÓN ...................................... 4 1.1.PRESENTACIÓN Y ESTUDIOS ACTUALES ............... 4 1.2.DESCRIPCIÓN DEL PROYECTO ....................... 5 1.3.DIAGRAMA DE FLUJO DE LA APLICACIÓN ............. 6 1.4.MOTIVACIONES Y CONOCIMIENTOS PREVIOS ........... 8 1.5.OBJETIVOS MÍNIMOS Y MÁXIMOS .................... 8 2. APLICACIÓN WEB ....................................10 2.1.¿QUÉ ES UNA APLICACIÓN WEB? ....................10 2.2.¿CUÁL ES LA ESTRUCTURA DE UNA APLICACIÓN WEB?...10 2.3.CARACTERÍSTICAS DE LAS APLICACIONES WEB.........11 2.4.APLICACIÓN NATIVA Y NO NATIVA ..................11 3. APP PARA EL CÁLCULO DE ICT.........................14 3.1.PROGRAMACIÓN UTILIZADA .........................14 3.2.PROGRAMA UTILIZADO.............................14 3.3.ESTRUCTURA DE CARPETAS PARA LA APP .............15 3.4.ESTRUCTURA Y PARTES DE LA APLICACIÓN ...........16 3.5.APARTADO DEL CÓDIGO HTML5 ......................17 3.6.APARTADO DEL CÓDIGO CSS3 .......................24 3.7.APARTADO DEL CÓDIGO JAVASCRIPT .................31 4. RESULTADOS ........................................39 4.1.TESTEO DE LA APLICACIÓN ........................39 5. CONCLUSIONES ......................................43 5.1.VALORACIÓN DE LOS OBJETIVOS ....................43 5.2.LÍNEAS DE MEJORA...............................43 6. ANEXO .............................................45 6.1.CÓDIGO HTML5:..................................45 6.2.CÓDIGO CSS3: ..................................50 6.3.CÓDIGO JAVASCRIPT:.............................53 7. BIBLIOGRAFÍA Y WEBGRAFÍA...........................63
  • 4. APP para el cálculo de ICT Página 4 de 63 1. INTRODUCCIÓN 1.1. Presentación y estudios actuales Me llamo Jorge Barragán Granado y soy estudiante del segundo curso del grado superior de Sistemas de Telecomunicaciones e Informáticos en el centro de estudios STUCOM de Barcelona. Mi trayectoria en el mundo de la electrónica y las nuevas tecnologías empezó hace ya nueve años, cuando cursé un grado medio en Diseño y Mantenimiento de Equipos Electrónicos de Consumo, en el Instituto Montilivi de Gerona. Al finalizar estos estudios, tuve la oportunidad de entrar en el mundo laboral y desarrollar todos los conocimientos adquiridos durante el grado. Primero, gracias a un convenio de prácticas con el instituto, pude trabajar como reparador de VHS, TVs, HiFi y reproductores DVDs en Electrónica Losada S.A. Una vez terminado el contrato de prácticas, encontré el trabajo con el que desarrollé mis habilidades técnicas en el campo de las ICT. Empecé como aprendiz y durante los más de 6 años que fui empleado de Gironès i Rodés, pude profundizar mis conocimientos en electricidad (RBT), infraestructura de telecomunicaciones y, sobretodo, pude especializarme en domótica, atendiendo un curso oficial impartido por Jung Ibéria S.A. En 2011, y debido a la situación del país, no pude continuar desarrollando mis aptitudes profesionales y ante la imposibilidad de encontrar un nuevo trabajo, decidí apostar por la formación superior. Así que me inscribí al Curso de Especialización en Producción y Post-producción Audiovisual de ERAM-UdG, para satisfacer mi gran interés en las tecnologías TIC. Compaginé este curso con la formación del grado superior de STUCOM para actualizar y ampliar mis capacidades, para, en un futuro, poder dedicarme profesionalmente a las nuevas tecnologías. Este proyecto es fruto de toda la experiencia adquirida durante mi andadura profesional, así como los conocimientos asimilados a lo largo del grado. Este trabajo final se basa en el cálculo de ICT, como se describe en el siguiente apartado.
  • 5. APP para el cálculo de ICT Página 5 de 63 1.2. Descripción del proyecto La aplicación que hemos desarrollado está enfocada a nivel de soporte académico y tiene como finalidad realizar el cálculo de la señal de TDT en la toma final de los usuarios. Servirá para, en base a la señal recibida en la antena, verificar el número de plantas, pisos, tipo de cable y pérdidas de derivación, si la calidad de señal será óptima dentro de los márgenes legales establecidos según la normativa para ICT. Si nos basamos en el cálculo real de una ICT, existen una gran variedad de variables a tener en cuenta, debido al amplio número de componentes posibles (cable, conectores, componentes intermedios, antenas, amplificadores,…). Por este motivo, hemos realizado un esquema con los componentes básicos, en el que se pueden definir los siguientes parámetros delimitados de la siguiente manera: 1. Número de plantas y pisos determinado (de 1 a 10) 2. Potencia de antena, que debe estar dentro de los márgenes legales (entre 0-90 dBµV) 3. Potencia del amplificador (de 0 a 20 dBµV) 4. Derivadores, 4 tipos a escoger con mayor y menor pérdida de paso, según sea necesario. 5. Tipo de cable a seleccionar entre 3 tipos, con diferentenivel de pérdida en dB por metro.
  • 6. APP para el cálculo de ICT Página 6 de 63 1.3. Diagrama de flujo de la aplicación
  • 7. APP para el cálculo de ICT Página 7 de 63 Enel anteriordiagrama de flujo se puede visualizar de una manera sencilla el funcionamiento interno de la aplicación. Este tipo de esquema es muy útil para localizar los posibles errores que se generen en el cálculo final. 1. Como se observa en el esquema, la aplicación se inicia a petición del usuario. 2. Tras ser cargada en el navegador, esta se mantiene a la espera de que se seleccionen todos los datos. Si es así, se inicia la recogida de los valores y los almacena en variables. De lo contrario, se mantiene a la espera hasta que se completen. 3. La aplicación comprueba que todos los datos estén dentro de los márgenes definidos y todos los parámetros seleccionados. Indica si existen datos sin seleccionar y permanece a la espera hasta que se definan todos los campos. 4. Tras introducir los datos y haberlos verificado, si se presiona el botón de “Realizar cálculo” del apartado final, se realizan los cálculos y se vuelca el resultado en una tabla, mostrando el valor de potencia final en toma de todos los pisos y para cada planta. En todo momento es posible eliminar los datos a través del botón “Eliminar datos”. Entonces, la aplicación regresa al modo inicial, a la espera dereiniciar todo el proceso.
  • 8. APP para el cálculo de ICT Página 8 de 63 1.4. Motivaciones y Conocimientos previos La motivación principal de este proyecto es poder crear una aplicación para Smartphone en un lenguaje no nativo y adquirir nuevas competencias en lenguaje de programación web con el cual se desarrolla el proyecto. Dado que he trabajado en el sector de lainstalación de ICT estoy muy motivado al realizar un proyecto que personalmente pienso que puede ser una buena plataforma formativa. 1.5. Objetivos Mínimos y Máximos El objetivo mínimo es el de realizar una aplicación que calcule el valor de señal final para las tomas, en base al valor de potencia de antena y el número de pisos. Los puntos que he delimitado para la aplicación son el poder realizar el cálculo de la potencia de señal final en toma en base a 5 parámetros: 1-Número de pisos 2-Número de plantas 3-Potencia recibida en la antena 4-Potencia asignada al preamplificador 5-Pérdidas por derivación 6-Pérdidas por metros y tipo de cable. Un punto extra para mejorar el contenido mínimo es realizar un control de errores. Como puntos máximos está la optimización de los puntos mencionados anteriormente para poderadquirir valores desde una base de datos en referencia a los diferentes proveedores de componentes para las ICT como alcad, ikusi, televes, entre otros.
  • 9. APP para el cálculo de ICT Página 9 de 63
  • 10. APP para el cálculo de ICT Página 10 de 63 2. APLICACIÓN WEB 2.1. ¿Qué es una aplicación web? Una aplicación web es una aplicación de software codificada en un lenguaje hecho para los navegadores web y es el navegador el que la ejecuta. Estas aplicaciones contienen elementos que permiten al usuario interactuar con la información que contienen. Las aplicaciones web tienen mucho éxito, principalmente, porque solo requieren un navegador web independientemente del sistema operativo y no se necesita instalar ningún software en los equipos de los miles de usuarios que las utilizan. Una aplicación web puede ser ejecutada en múltiples plataformas diferentes. 2.2. ¿Cuál es la estructura de una aplicación web? Existen muchas variaciones posibles. Una aplicación web está normalmente estructurada como una aplicación de trescapas. En su forma más común, el navegador web ofrece la primera capa y un motor capaz de usar alguna tecnología web dinámica (PHP, JavaServlets o ASP, ASP. NET, CGI, ColdFusion, embPerl, Python [Programminglanguage] o Ruby onRails), que constituye la capa intermedia. Por último, una base de datos constituye la tercera y última capa. El navegador web manda peticiones a la capa media que ofrece servicios valiéndose de consultas y actualizaciones a la base de datos. A su vez, proporciona una interfaz de usuario.
  • 11. APP para el cálculo de ICT Página 11 de 63 2.3. Características de las aplicaciones web El usuario puede acceder fácilmente a estas aplicaciones empleando un navegador web (cliente) o similar. Si es por internet, el usuario puede entrar desde cualquier lugar del mundo donde tenga un acceso a internet. Pueden existir miles de usuarios pero una única aplicación instalada en un servidor. Por lo tanto, se puede actualizar y mantener una única aplicación y todos sus usuarios verán los resultados inmediatamente. Emplean tecnologías como Java, JavaScript, HTML5, Flash, Ajax, etc. que dan gran potencia a la interfaz de usuario. Emplean tecnologías que permiten una gran portabilidad entre diferentes plataformas. 2.4. Aplicación nativa y no nativa Hoy día, en función de cómo se aborda su desarrollo, se suele hablar de tres tipos de aplicaciones móviles: nativas, no nativas (web) e híbridas. Las podemos definir de la siguiente manera: Aplicaciones nativas: son aquellas que están íntegramente programadas en el entorno de desarrollo específico para cada sistema operativo (Android, IOS, Symbian, etc.). Aplicaciones web:están completamente desarrolladas en lenguaje HTML5. Aplicaciones híbridas Uno de los puntos fuertes de las aplicaciones web móviles es su funcionamiento en todas las plataformas. Solo se debe : son aplicaciones desarrolladas en parte con el entorno de desarrollo nativo y en parte en lenguaje WEB (HTML5).
  • 12. APP para el cálculo de ICT Página 12 de 63 tener en cuenta la compatibilidad con el motor de browser/navegador. Una aplicación web funcionará en “casi” todos los Smartphone. Las aplicaciones nativas requieren un desarrollo para cada uno de los sistemas operativos (e incluso para versiones diferentes de éstos) y las híbridas necesitan, por lo menos, el desarrollo del “contenedor” nativo que aloje las partes en lenguaje web. Existen diferentes frameworks como Phonegap, Learn, Lungo, entre otros, que trabajan para crear estos contenedores, y facilitanla programación posterior en HTML5. Phonegap, por ejemplo, maneja API’s que permiten tener acceso a elementos como el acelerómetro, cámara, contactos en el dispositivo, red, almacenamiento, notificaciones, etc. ACCESOALASCAPACIDADESDELDISPOSITIVO AFINIDAD CON LA PLATAFORMA APPS NATIVAS · AFINIDAD PLATAFORMA ÚNICA · ESCRITURA POR MEDIO DE PLATAFORMA SDK · DEBEN SER ESCRITOS PARA CADA PLATAFORMA · DISTRIBUCIÓN POR APPSTORE · ALTO RENDIMIENTO GRÁFICO APPS HIBRIDAS · AFINIDAD CON MULTIPLATAFORMA · ESCRITURA POR MEDIO DE PLATAFORMA WEB (HTML5, CSS 3 & JAVASCRIPT) · FUNCIONAMIENTO DE FORMA LOCAL EN EL DISPOSITIVO, PERMITE FUNCIÓN OFFLINE · DISTRIBUCIÓN POR APPSTORE · ALTO RENDIMIENTO GRÁFICO APPS WEB MÓVIL · AFINIDAD CON MULTIPLATAFORMA · ESCRITURA POR MEDIO DE PLATAFORMA WEB (HTML5, CSS 3, JAVASCRIPT, ASP.NET, PHP,…) · FUNCIONAMIENTO DESDE SERVIDOR, VISIBLE EN MULTIPLES DISPOSITIVOS · ACTUALIZACIONES CENTRALIZADAS · ALTO RENDIMIENTO GRÁFICO
  • 13. APP para el cálculo de ICT Página 13 de 63
  • 14. APP para el cálculo de ICT Página 14 de 63 3. APP PARA EL CÁLCULO DE ICT 3.1. Programación utilizada Para realizar la aplicación he utilizado 4 lenguajes de programación web: HTML5: con el que se define la estructura de la aplicación, definiendo botones, secciones desplegables o fijas, texto a visualizar, etc. CSS3: con este código se define el estilo visual de la página, y se pueden definircolores, sombras, posiciones y dimensiones de los apartados definidos en HTML5. JavaScript: este es el lenguaje de programación utilizado para crear pequeños programitas encargados de realizar acciones dentro del ámbito de una APP o página web. Jquerymobile: 3.2. Programa utilizado nos permite generar aplicaciones cuya apariencia será siempre la misma independientemente del dispositivo desde el que acceda un usuario, siempre que este usuario acceda desde un dispositivo que acepte HTML5. Para la creación de una aplicación web podemos utilizar programas de escritura de código que nos facilitaránmucho esta tarea. Yo he utilizado el programa Dreamweaver de Adobe. Una vez instalado, debemos abrir un nuevo proyecto y escoger la base de HTML5. Esto creará un archivo específico para este código y facilitará a medida que escribamos, con la tecla tabular, las funciones, apartados y secciones a los que podemos optar por medio de una lista desplegable donde poder seleccionar la que precisemos. Esto facilitará enormemente la creación del código.
  • 15. APP para el cálculo de ICT Página 15 de 63 3.3. Estructura de carpetas para la APP La estructura de archivos para esta aplicación es la que describimos a continuación.He creado una carpeta principal, la cual ha sido nombrada “APP para el cálculo de ICT”. Dentro de esta carpeta, he creado cuatro carpetas más. Tres de estas hacen referencia a los códigos de programación a utilizar (CSS3, HTML5 y JavaScript) y la cuarta sirvepara posibles imágenes que se utilicen en el programa. Dentro de cada carpeta he creado un archivo con la extensión adecuada. Dentro de la carpeta HTML5 Dentro de la carpeta CSS3 Dentro de la carpeta JS Una vez definida la estructura de archivos, es momento deiniciar la creación de la APP. Para ello ejecutamos el archivo principal HTML5, que es el cuerpo de la aplicación. Posteriormente definiremos el contenido CSS3 para darle estilo visual. Por último añadiremos el código JS para crear las funciones que dotarán la aplicación de funcionalidad realizando los cálculos, transiciones y lectura de las variables, entre otras.
  • 16. APP para el cálculo de ICT Página 16 de 63 3.4. Estructura y partes de la aplicación La parte principal de la aplicación es la definida en el código HTML5. Consta de tres apartados (head, body, footer). La distribución de los campos en la página es la que se detalla en la figura de la derecha. En la aplicación se puedenidentificar los campos de lasiguientemanera: Elheader(encabezado): es la parte superior dela página. Generalmente está formado por una serie de elementos comunes: logo de la empresa, nombre, imagen o imágenes representativas y, en algunos casos, datos de contacto, como teléfono y email. Elbody (cuerpo): es la parte de la página que contiene el contenido, secciones y divisiones, entre otros. Elfooter (pie): representa el pie de un documento o sección. La información que se suele añadir en este bloque es el autor del documento, enlaces a contenido relacionado, información de copyright, avisos legales, etc. Header Body Footer
  • 17. APP para el cálculo de ICT Página 17 de 63 3.5. Apartado del códigoHTML5 A nivel de código,definiré las siguientes partes: la primera es la que se contiene dentro del <head></head>: Title: es el nombre que aparecerá en la pestaña del navegador. Shortcuticon: define el icono que se mostrará en la pestaña del navegador. Meta: la función de este atributo varía. Puede ser informativo, para los buscadores y usuarios, indicándoles el tipo de contenido de la web, sus palabras claves, etc., o pueden predefinir una actuación a la página. Los siguientes link y script son los referentes a los archivos CSS3, JavaScript y Jquery. De esta manera enlazamos esos archivos, creados anteriormente, al proyecto. La segunda parte y la principal es el body. Es donde se definen las secciones, divisiones, botones y todas las partes que se creen a nivel visual.
  • 18. APP para el cálculo de ICT Página 18 de 63 El primer elemento es el header. Por medio de un <h1>, definimos el título que se mostrará en la página. Por otra parte el <h1> también se utilizará como referencia en el archivo CSS3 para dar formato altexto. La siguiente imagen muestra el resultado. Tras cerrar la parte anterior, creamos los apartados principales de la aplicación. Para ello creamos una sección “section” y un formulario “form” que contendrá todos los camposa los que nos referimos en el punto 1.5.
  • 19. APP para el cálculo de ICT Página 19 de 63 Los campos plantas, pisos, antena y amplificadorhan sido creados de la misma manera. En esta ocasión, se ha creado un <h2> y se han definido los siguientes parámetros: data-roleydata-icon: son atributos de Jquery, los cuales no posee HTML5. Con ellos se agiliza la creación de contenido para el HTML5. En particular estos atributos definen el apartado como botón y crean un icono con el signo suma dentro de botón, respectivamente. Title: con este comando podemos definir el texto que se mostrará al posicionarse sobre el botón. El texto introducido entre “>texto <h2>” se mostrará literalmente dentro del botón definido anteriormente. Seguidamente, creamos una nueva sección, a la que llamaremos “section”, y dentro de esta una división “div”, le asignamos un “id” a las dos para poder, entre otras opciones, definir el estilo posteriormente en CSS3 y obtener valores desdeJavaScript. Dentro de la división añadimos un “input” y especificamoslos siguientes parámetros: Type (range): muestra un slider para seleccionar el valor deseado dentro del menú, además del cuadro con las flechas para aumentar y disminuir el valor. id: definimos el nombre según el “id” especificado en el botón incluyendo “num”. Para poder diferenciar el valor introducido en cada uno de los apartados del menú. value: este campo mostrará el valor por defecto dentro del cuadro input. Por este motivo, por ello se iguala a 0. minymax: se utilizan para definir el rango que debe cubrir el valor a introducir, acotándolo para evitar que el usuario introduzca valores no permitidos.
  • 20. APP para el cálculo de ICT Página 20 de 63 Para el botón de derivadores definimos los mismos parámetros que en los anteriores apartados para <h2>, section y div. No obstante, dentro de “div” especificamos otros parámetros: button: crea un botón dentro de la división a diferencia de los apartados anteriores donde se creaba un input. type: con esto indicamos que el botón es un botón simple sin funciones específicas. onclick: con este parámetro definimos que al hacer clic se realice la función “tabla_deriv()” especificada en JavaScript. Esta función creará una tabla con 4 derivadores por planta. Existen otros atributos como ondbclic, onselect, onmouseup,… Para poder cargar la tabla creamos un nuevo apartado dentro de la sección, pero fuera de la división y definimoslos siguientes parámetros: table: sirve para definir el principio y el final de una tabla. class: permite definir el estilo por medio del archivo *.css. id: permite identificar la tabla para importar los datos desde JavaScript. aligne: este comando centra la tabla en la pantalla. tbody: se utiliza para agrupar el contenido delatabla en el documento HTML5.
  • 21. APP para el cálculo de ICT Página 21 de 63 Para el apartado de cable, creamos el <h2>, section y div del mismo modo que en los apartados anteriores. Después, definimos dentro de “div” los siguientes parámetros: input: sirve para crear una nueva entrada. type: este comando es definido como “radio”. Mostrará un círculo de selección para cada uno de los tres tipos de cable. name: este parámetro identifica el input por medio de un nombre, para realizar operaciones futuras con él si es preciso. value: asigna un valor determinado por defecto. Al no tratarse de un input que modifique su valor, al seleccionarlo, el valor del “value” será el que se asignará a la variable. label: define una categorización para un elemento de entrada. for: debe ser igual al id del input. Esto vincula el label con el input concreto.
  • 22. APP para el cálculo de ICT Página 22 de 63 title: el texto que se especifica aquí se mostrará al posicionarse sobre cada uno de los tipos de cable. El último apartado de la aplicación es el de “tomas finales”. Lo hemos creado siguiendo el mismo procedimiento que con los derivadores. Se ha definidoun nombre de función (“cálculo()”) y un nuevo “id” para importar los datos desde JavaScript. Al tratarse del último apartado, debemos cerrar el formulario y la sección abiertos al iniciar el documento dentro del “body”.
  • 23. APP para el cálculo de ICT Página 23 de 63 Por último, hemos creado una nueva sección y división dentro del apartado <body> para definir un botón que eliminará todos los valores del formulario. Para ello hemos definido un “button” dentro de <div> y con los siguientes atributos: type: el nombre “reset” es predefinido por HTML5 y realiza un borrado o reset de todos los campos del formulario, tal y como indica su nombre. id: este nombre se utilizará para referenciarlo posteriormente en el CSS. form: vincula la función del botón definida en el tipo con el formulario. ><button>: este texto se muestra en el interior del botón. Al finalizar la configuración del botón cierro la div, section y el body (</div>, </section>, </body>). Al final del documento HTML5 hemos añadido un <footer>, en el que especificamoslos datos del alumno y la función del programa. Para ello utilizamos <p></p>. El texto que aparece entre ambas se mostrará literalmente en la página. Posteriormente, utilizaremos la <p> como id para definirel formato del texto.
  • 24. APP para el cálculo de ICT Página 24 de 63 3.6. Apartado del código CSS3 El archivo CSS es el que contiene el código que define el estilo visual de la aplicación. Para vincular los diferentes apartados del HTML5 a un código del CSS3 utilizamos los nombres definidos en los “id” del documento HTML5. El primer apartado hace referencia a cada uno de los botones y su función es ocultar automáticamente los “inputs” (sliders) que hay dentro de cada uno delos apartados. El siguiente apartado es el referente a los botones y el texto que se visualiza en cada uno de ellos. Con los parámetros indicados definimos el ancho que ocuparán estos botones en la pantalla, así como su posición. Del mismo modo, también definimos la posición del texto en cada uno de ellos. margin-left: asigna un margen en la parte izquierda de la página del tamaño especificado (12%). margin-right: asigna un margen en la parte derecha de la página del tamaño especificado (12%). Sin el código CSS3 Con el código CSS3
  • 25. APP para el cálculo de ICT Página 25 de 63 text-align: posiciona el texto en el lado izquierdo del botón. width: al indicar “auto”, ajusta el tamaño del botón dentro de los márgenes entre los definidos en el apartado “margin”. Con la opción “:hover” después del nombre, definimos acciones específicas que modificarán el estilo del botón al posicionarse sobre él. Cabe indicar que esto es una mejora dentro del HTML5, ya que en antiguas versiones este efecto sobre el texto se debía realizar a través de JavaScript. Sin el código CSS3 Con el código CSS3 Sin el código CSS3 Con el código CSS3
  • 26. APP para el cálculo de ICT Página 26 de 63 Del mismo modo que hemos configurado los atributos para los botones, lo hacemos seguidamente con los “inputs” (sliders)para centrarlos debajo del botón principal, con“id” específico (nombre de botón + “_num”). Para definir el estilo visual del botón “cargar plantas” del apartado “derivadores”, hemos aplicado los siguientes atributos, referenciándonos al id “entrada_deriv” para ajustar el tamaño y la posición del mismo. Sin el código CSS3 Con el código CSS3 Sin el código CSS3 Con el código CSS3
  • 27. APP para el cálculo de ICT Página 27 de 63 Igual que hemos configurado el botón del apartado “derivadores”, lo hacemos con el botón del “apartado tomas finales”. Para ajustar el tamaño de las divisiones que contienen los sliders de todos los apartados, hemos utilizado el “id” “entrada”. Asimismo, lo relacionamos con el apartado cable con el “id” “entrada_cable”. Sin el código CSS3 Con el código CSS3 Sin el código CSS3 Con el código CSS3
  • 28. APP para el cálculo de ICT Página 28 de 63 Para el botón final, el de “eliminar datos”, hemos utilizado los mismos atributos anteriores y hemos ajustado el valor de “marge-left/right”. Para definir el tamaño del texto de cabecera utilizamos el “id” asignado <h1>. Para el texto del pie de la aplicaciónen cambio, utilizaremos el “id” asignado “p”. Sin el código CSS3 Con el código CSS3 Sin el código CSS3
  • 29. APP para el cálculo de ICT Página 29 de 63 Por último definimos el id “input” para modificar el tamaño, color y tipo de letra de los resultados de la tabla que hacen referencia a los valores finales del cálculo que se mostrará en cada apartado de la tabla dentro de la sección “tomas finales”. Con el id “table.tablestyle” definimos el tamaño y tipo de letra, el ajuste del texto que aparece en la tabla, haciendo referencia al número de planta y piso. Sin el código CSS3 Con el código CSS3 Con el código CSS3
  • 30. APP para el cálculo de ICT Página 30 de 63 Sin el código CSS3 Con el código CSS3 Con el código CSS3
  • 31. APP para el cálculo de ICT Página 31 de 63 3.7. Apartado del código JavaScript El último apartado de la aplicación es el referente a JavaScript. Se trata de un lenguaje de programación que permite desarrollar acciones para dotar de funcionalidad la aplicación. Por lo general, en el código del JavaScript se debe crear una función “function”, seguida del nombre deseado, abrir y cerrar paréntesis y abrir y cerrar corchetes. En la imagen, se muestra la estructura básica con la que se deben empezar las funciones. Seguidamente, indicaremos todas las funciones que hemos utilizado, así como su funcionamiento paso a paso. La primera función que hemos creado es la referente al estado de los botones, para controlar que al clicar se despliegue el contenido. Para esta verificación, realizamos dos funciones distintas. La primera función “iniciar” es la utilizada para verificar si se ha clicado alguno de los botones. plantas=document.getElementById(‘plantas’): almacenamos el “ID” del botón plantas en una variable llamada plantas. plantas.addEventLinstener(‘click’,pl,false): esta línea se mantiene a la escucha, para comprobar si se realiza clic sobre el botón. De ser así realiza la función especificada “pl”y pone la variable “bt1” a 0. Para completar el funcionamiento del botón, a continuación definimos la siguiente función, con la que completaremos el mostrar/ocultar para los botones.
  • 32. APP para el cálculo de ICT Página 32 de 63 Tras la definición del nombre de la función “pl” en el apartado anterior, creamos una nueva función referente a“pl”. El funcionamiento de esta función es la de mostrar únicamente el botones referentes a “bt1”. Para tal efecto oculta todos los submenús (botones), excepto el “submenu1” que lo bloquea. Además, al poner la “bt1” a 1 este permanecerá abierto hasta que no se pulse el mismo u otro botón, que cambiará su estado a 0. Este conjunto de funciones se deben realizar para todos los submenús (botones), modificando el nombre de las variables y la función a referenciar.
  • 33. APP para el cálculo de ICT Página 33 de 63 Tras realizar el control de los desplegables de cada botón, hemos realizado la creación de la tabla para el apartado de derivadores. El objetivo es obtener una tabla con 4 tipos de derivadores con diferentes atenuaciones de paso y de derivación ya preestablecidas, para poder seleccionar el que más se adapte a las necesidades. La función “tabla_deriv” está definida en el apartado de derivadores junto con el atributo “onclick”. Las dos primeras líneas recogen el valor del “.value” de los “id” (plantas y pisos) del formulario y lo almacenan en variables con el mismo nombre, respectivamente. Para generar los 4 derivadores por planta, realizo un “for” de dichas plantas de la mayor a la menor y dentro de este un nuevo “for” para los derivadores. Cada uno de los derivadores son de tipo “radio” y le asignamos un “name”, un “value” y un “id” para poder recoger datos posteriormente, haciendo referencia del nombre o el id.
  • 34. APP para el cálculo de ICT Página 34 de 63 document.getElementById('llenar1').innerHTML+: añade nuevas líneas en “llenar1” sin eliminar las anteriores. Si se desea que se eliminen las anteriores líneas únicamente se debe eliminar el signo “+”. Con “while” analizamos si existe una tabla y la eliminamos para añadir los resultados de nuevos cálculos. La función principal que se encarga de realizar todo el cálculo es la de “cálculo”, que está definida en el apartado final de “tomas finales”.
  • 35. APP para el cálculo de ICT Página 35 de 63 El primer apartado de la función cálculo es la que se encarga de recoger los datos y almacenarlos en variables, con el atributo “document.getElementById”. En el caso de los valores de los derivadores, primero los recogemos uno a uno. A continuación los almacenamos en una array con el atributo “push”. Previamente creamos la array y le asignamos el nombre “deriv_final”. Esta variable contendrá el valor de todos los valores. Tras almacenar los valores del formulario en variables, iniciamos el cálculo para generar el valor final de las tomas, que se mostrarán en la tabla final. Para iniciar el cálculo creamos un “for” de las plantas recorriéndolas de la mayor a la menor. Dentro de “for” creamos un “if” para identificar si el número de “for” es igual al número máximo de plantas seleccionadas. Si es así, almacenamos en la variable “s_in” el valor de laantena más el amplificador. De lo contrario, deberemos coger el valor de paso del derivador. Seguidamente crearemos un “if” para cada derivador. De este modo, delimitaremos el derivador que se ha seleccionado para centrar el cálculo en los valores que le corresponden.
  • 36. APP para el cálculo de ICT Página 36 de 63 En este “if” referente al derivador, creamos una variable, llamada“mts_cable”. Le asignamos un valor inicial de 3. Esta variable se utilizará para calcular posteriormente los metros de cable. Creamos otra variable, “s_deriv”, donde almacenamos el valor de “s_in”, calculado anteriormente, menos el valor de pérdida de derivación, que en este caso es 20. Este valor dependerá del tipo de derivador. Del mismo modo creamos la variable “s_paso” que almacenará el cálculo del “s_in” menos la perdida de paso, que en este caso es de 0,5. Tras definir cada uno de los derivadores, añadimos un “if” final para el control de errores. Con esto conseguimos que no se realice el cálculo si no hay un derivador por planta seleccionado. En el caso que falte alguno, mostrará una pop-up (ventana emergente) con el error que se muestra en la imagen. El siguiente paso es crear un “else”, que será la sentencia que se debe realizar si la condición del primer “if” no es verdadera. Dentro del “else”, y a diferencia del “if” principal, creamos una variable “s_in”, que almacenará el valor de la salida de paso del derivador de la planta superior. Creamos también una variable “deriv”, cuyo valor será el de la variable “deriv_final” en la posición de y correspondiente al número de planta en la que se encuentre el “for” menos 1, al tratarse de una array cuyas posiciones van de 0 a 9. Los resultados se almacenan en una variable
  • 37. APP para el cálculo de ICT Página 37 de 63 llamada “valor_toma” y será desde donde obtendremos los datos para la tabla final. Por último y antes de cerrar la función “cálculo”, creamos una tabla del mismo modo que realizamos la de los derivadores, para volcar los resultados ordenados por pisos y plantas. La diferencia principal en esta tabla es que creamos un “input”, en el que el “value” será el referente a la posición “v” de la variable “valor_toma”. Como han sido almacenadas de manera ordenada, ahora, únicamente es preciso que leamos de menos a más y las añadamos a la tabla. Para finalizar hemos añadido al final del documento dos alertas que se mostrarán si la potencia de la antena es inferior a 45dBµV, ya que este es el valor mínimo para garantizar el posterior tratamiento de la señal.
  • 38. APP para el cálculo de ICT Página 38 de 63
  • 39. APP para el cálculo de ICT Página 39 de 63 4. RESULTADOS 4.1. Testeo de la aplicación Para realizar el testeo de la aplicación hemos realizado el cálculo a nivel teórico, y posteriormente realizamos el mismo ejercicio sobre la aplicación. A continuación, presentamos los resultados obtenidos. A NIVEL TEÓRICO: Tenemos un bloque de viviendas que consta de 5 plantas. Hay 2 pisos por planta. La potencia recibida en la antena es de 90 dBµV y los derivadores por planta son los siguientes: 0.5 dB paso y 20 dB derivación 1.5 dB paso y 18 dB derivación 2.5 dB paso y 16 dB derivación 3.5 dB paso y 14 dB derivación La pérdida de señal por el cable es de 0.7dB por metro. Para resolver el ejercicio realizamos el cálculo planta por planta. Seguimos los siguientes pasos: 5ªPlanta(potencia antena + potencia del amplificador)- (pérdida derivación)-(pérdida en el cable*metro). Con este cálculo obtenemos el valor de los pisos de dicha planta. Seguidamente, calculamos el valor de señal que llegará al piso inmediatamente inferior a través de la salida de paso del derivador. 5ªPlanta  (potencia antena + potencia del amplificador)- (pérdida de paso)-(pérdida en el cable*metro). Este mismo procedimiento se realiza en todas las plantas.
  • 40. APP para el cálculo de ICT Página 40 de 63 A NIVEL PRÁCTICO: Partiendo del mismo enunciado del apartado anterior indicamos en cada caso el valor preciso desde la aplicación. Para ello comenzamos indicando el número de plantas, pisos y potencia de antena. Utilizaremos el apartado del amplificador en caso de que la señal final sea insuficiente en alguna de las tomas. Por último seleccionamos los derivadores y el tipo de cable con una pérdida de 0.7 dB/m Ahora únicamente se debe crear la tabla final y comprobar que los valores están dentro de los márgenes que marca la normativa sobre ICT. El resultado es el siguiente:
  • 41. APP para el cálculo de ICT Página 41 de 63 A NIVEL TEÓRICO: A NIVEL TEÓRICO 5º1ª -> (90)-(14)- (0.7*3)=73.9 dBµV 5ªPlanta 5º2ª -> (90)-(14)- (0.7*6)=71.8 dBµV 4º1ª -> (84.4)-(16)- (0.7*3)=66.3 dBµV 4ªPlanta 4º2ª -> (84.4)-(16)- (0.7*6)=64.2 dBµV 3º1ª -> (79.8)-(16)- (0.7*3)=61.7 dBµV 3ªPlanta 3º2ª -> (79.8)-(16)- (0.7*6)=59.6 dBµV 2º1ª -> (75.2)-(18)- (0.7*3)=55.1 dBµV 2ªPlanta 2º2ª -> (75.2)-(18)- (0.7*6)=53 dBµV El cálculo a nivel teórico es muy largo de realizar y cualquier pequeña modificación implica que el este sea erróneo y que se deba repetir todo el proceso. Mientras que con la aplicación aumenta la agilidad y la facilidad para realizar una medición aproximada del nivel de señal en cada una de las tomas finales. 1ªPlanta 1º1ª -> (71.6)-(20)-(0.7*3)=49.5 dBµV 1º2ª -> (71.6)-(20)-(0.7*6)=47.4 dBµV
  • 42. APP para el cálculo de ICT Página 42 de 63
  • 43. APP para el cálculo de ICT Página 43 de 63 5. CONCLUSIONES 5.1. Valoración de los objetivos Tras finalizar el proyecto hemos verificado que se ha conseguido abarcar los objetivos mínimos propuestos al inicio de la creación de la aplicación. Además, se han podido incluir los puntos de control de errores que, pese a no estar entre los objetivos iniciales de este proyecto, pueden ser útiles para controlar o avisar de posibles errores en la aplicación o el mal uso por parte del usuario final. No descartamos seguir desarrollando esta aplicación para optimizar su funcionalidad y conseguir más estabilidad en los cálculos y la recogida de valores. 5.2. Líneas de mejora Es probable que las líneas de mejora sean amplias debido a que el conocimiento de programación adquirido antes de desarrollar esta aplicación no era para nada elevado. Por mi parte unos de los puntos más sencillos a mejorar sería el poder especificar el nivel de atenuación de los derivadores a petición del usuario, así como la atenuación y los metros de cable. Con esta pequeña modificación, la aplicación podría adaptarse a todo tipo de infraestructuras con tantos valores como fueran precisos. La mejora más complicada de realizar, pero no por ello imposible, sería interactuar con las bases de datos de los principales proveedores de componentes para las instalaciones ICT. De este modo los cálculos tomarían valores de componentes reales y los niveles de señal que se mostrasen en la tabla final serían completamente reales.
  • 44. APP para el cálculo de ICT Página 44 de 63
  • 45. APP para el cálculo de ICT Página 45 de 63 6. ANEXO En este apartado se muestra el código de la aplicación al completo, separando los tres lenguajes principales que se utilizaran como son el HTML5, CSS3, JavaScript. 6.1. Código HTML5: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> //** Este apartado contiene las referencias a archivos, como el icono y de los lenguajes a utilizar CSS, Jquery yJavaScript. <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Calculo ICT</title> <link rel="shortcut icon" href="../imagenes/logo.ico" sizes="16x16" /> <meta name="viewport" content="width=device-width, initial- scale=1"/> <link rel="stylesheet" href="../css3/principal.css" /> <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile- 1.2.0.min.css" /> <script src="../js/ICTS.js"></script> <scriptsrc="http://code.jquery.com/jquery- 1.8.2.min.js"></script> <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile- 1.2.0.min.js"></script> </head>
  • 46. APP para el cálculo de ICT Página 46 de 63 //** Inicio del programa: dentro de header se especifica el título que aparecerá en la página. <body> <header> <h1>APP para el cálculo de Infraestructura Común de Telecomunicaciones (ICT)</h1> </header> <section data-role="content"> <form id="formulario"> //** Sección plantas: se define el botón y la funcionalidad del slider. <h2 data-icon="plus" data-role="button" id="plantas" title="Indica el número de plantas de las que consta el edificio">Plantas</h2> <section id="submenu1"> <div id="entrada"> <input on type="range" id="plantas_num" value="0" min="0" max="10" data-highlight="true" /> </div> </section> //** Sección pisos: se define el botón y la funcionalidad del slider. <h2 data-icon="plus" data-role="button" id="pisos" title="Indica el número de pisos de los que consta el edificio">Pisos</h2> <section id="submenu2"> <div id="entrada"> <input type="range" id="pisos_num" value="0" min="0" max="10" data-highlight="true" /> </div> </section>
  • 47. APP para el cálculo de ICT Página 47 de 63 //** Sección plantas: se define el botón y la funcionalidad del slider. <h2 data-icon="plus" data-role="button" id="antena" title="Indica la potencia de recepción en la antena (dBµV)">Potencia en antena</h2> <section id="submenu3"> <div id="entrada"> <input type="range" id="antena_num" value="0" min="30" max="90" data-highlight="true" /> </div> </section> //** Sección amplificador: se define el botón y la funcionalidad del slider. <h2 data-icon="plus" data-role="button" id="ampli" title="Indica la potencia que aplicará el preamplificador (dBµV)">Preamplificador</h2> <section id="submenu4"> <div id="entrada"> <input type="range" id="ampli_num" value="0" min="0" max="20" data-highlight="true" /> </div> </section> //** Sección derivadores: se define el botón y el id para importar los derivadores desde JavaScript. <h2 data-icon="plus" data-role="button" id="derivadores" title="Indica el tipo de derivadores según sus salidas">Derivadores</h2> <section id="submenu5" > <div id="entrada_deriv"> <button type="button" onclick="tabla_deriv()" >Cargarplantas</button> </div> <table class="tablestyle" id="tabla_deriv" align="center"> <tbody id="llenar1"> </tbody> </table> </section>
  • 48. APP para el cálculo de ICT Página 48 de 63 //** Sección cable: se define el botón y la funcionalidad de cada uno de los tres tipos de cable. <h2 data-icon="plus" data-role="button" id="cable" title="Indica el tipo de cable para la la ICT">Tipo de Cable</h2> <section id="submenu6"> <div id="entrada_cable"> <input type="radio" name="cable" value="1.2" id="radio- choice-21" /> <labelfor="radio-choice-21" title="1.2 dB pérdida por metro" >NK 10 CB - 1,2 dB pérdida por metro</label> <input type="radio" name="cable" value="0.7" id="radio- choice-22" /> <labelfor="radio-choice-22" title="0.7 dB pérdida por metro" >NK 10 CC - 0,7 dB pérdida por metro</label> <input type="radio" name="cable" value="0.5" id="radio- choice-23" /> <labelfor="radio-choice-23" title="0.5 dB pérdida por metro" >NK 10 AL - 0,5 dB pérdida por metro</label> </div> </section> //** Sección derivadores: se define el botón y el id para importar los derivadores desde JavaScript. <h2 data-icon="plus" data-role="button" id="tomas" title="Esta tabla muestra el nivel de señal teórico que se debería obtener en las tomas de cada piso">Tomas finales</h2> <section id="submenu7"> <div id="entrada"> <div id="entrada_result"> <button type="button" onclick="calculo()" onclick="tabla_tomas()" >RealizarCalculos</button> </div> <table class="tablestyle" id="tabla_tomas" align="center"> <tbody id="llenar2"> </tbody> </table> </div> </section> </form> </section>
  • 49. APP para el cálculo de ICT Página 49 de 63 //** Sección del botón “Eliminar Datos”: se define el botón y su funcionalidad. <section> <div id="boton_borrar"> <button type="reset" id="boton_reset" form="formulario" >Eliminardatos</button> </div> </section> </body> //** Definición del texto que aparece en el footer. <footer> <p>APP diseñada por Jorge Barragán Granado, alumno de STUCOM-STI2M. </p> <p>Esta aplicación ha sido diseñada para realizar un cálculo teórico aproximado del nivel de señal en las tomas finales de cada piso. Se pretende proporcionar una plataforma para agilizar el cálculo basándose en los parámetros básicos de una Infraestructura Común de Telecomunicaciones (ICT). </p> </footer> </html>
  • 50. APP para el cálculo de ICT Página 50 de 63 6.2. Código CSS3: //** Estilo del los submenús (botones), ocultados por defecto. #submenu1,#submenu2,#submenu3,#submenu4,#submenu5,#submenu6 ,#submenu7 { display:none; } //** Estilo del texto que aparece dentro de los botones. #plantas,#pisos,#derivadores,#antena,#cable,#ampli,#tomas{ margin-left:12%; margin-right:12%; text-align:left; width:auto; } //** Estilo de los botones al posicionar el puntero sobre ellos. #plantas:hover,#pisos:hover,#derivadores:hover,#antena:hove r,#cable:hover,#ampli:hover,#tomas:hover{ color:#03F; border-bottom-color:#03F; } //** Estilo del sliderpara los botones de selección. #plantas_num,#pisos_num,#antena_num,#cable_num,#ampli_num{ text-align:inherit; width:auto; margin-left:10%; margin-right:5%; } //** Estilo de la tabla en la sección de derivadores. #entrada_deriv{ text-align:inherit; width:auto; margin-left:70%; margin-right:12%; }
  • 51. APP para el cálculo de ICT Página 51 de 63 //** Estilo del botón de sección final. #entrada_result{ text-align:inherit; width:auto; margin-left:70%; margin-right:2%; } //** Definición de los márgenes que ocupan los sliders. #entrada{ margin-left:12%; margin-right:12%; } //** Márgenes de la tabla que aparece en la sección cable. #entrada_cable{ margin-left:25%; margin-right:20%; } //** Estilo del botón “Eliminar Datos”. #boton_borrar{ width:auto; margin-left:65%; margin-right:13%; } //** Estilo del pie de página footer. p{ margin-left: 15%; margin-right: 15%; font-weight: normal; text-align: center; color: #000; font-family: "Courier New", Courier, monospace; font-size: 20px; text-shadow: 0px 2px 8px rgba(14, 9, 232, 0.7); }
  • 52. APP para el cálculo de ICT Página 52 de 63 //** Estilo del título. h1 { margin-left: 20%; margin-right: 20%; font-weight: normal; text-align: center; color: #000; font-family: "Courier New", Courier, monospace; font-size: 36px; text-shadow: 0px 2px 8px rgba(14, 9, 232, 0.7); } //** Estilo de los inputs de la tabla. input{ background-color:#CCC; text-align: center; font-style: italic; font-weight: normal; text-align: center; color:#000; font-family: "Courier New", Courier, monospace; font-size: 25px; text-shadow: 0px 2px 10px rgba(10, 9, 232, 0.8); } //** Estilo de la tabla de tomas finales. table.tablestyle{ font-family: "Courier New", Courier, monospace; font-weight: bold; border-collapse: separate; width: 100%;
  • 53. APP para el cálculo de ICT Página 53 de 63 6.3. Código JavaScript: //** Control de los botones, para que solo uno se mantenga desplegado. function iniciar(){ plantas=document.getElementById('plantas'); plantas.addEventListener('click',pl,false); bt1=0; pisos=document.getElementById('pisos'); pisos.addEventListener('click',pi,false); bt2=0; derivadores=document.getElementById('antena'); derivadores.addEventListener('click',ant,false); bt3=0; tomas=document.getElementById('ampli'); tomas.addEventListener('click',amp,false); bt4=0; antena=document.getElementById('derivadores'); antena.addEventListener('click',der,false); bt5=0; cable=document.getElementById('cable'); cable.addEventListener('click',cab,false); bt6=0; tomas=document.getElementById('tomas'); tomas.addEventListener('click',tom,false); bt7=0; } function pl(){ if(bt1==0) { document.getElementById('submenu1').style.display='block'; document.getElementById('submenu2').style.display='non e'; document.getElementById('submenu3').style.display='none'; document.getElementById('submenu4').style.display='none'; document.getElementById('submenu5').style.display='none'; document.getElementById('submenu6').style.display='none'; document.getElementById('submenu7').style.display='none'; ((bt1=1)&&(bt2=0,bt3=0,bt4=0,bt5=0,bt6=0,bt7=0)); } else { document.getElementById('submenu1').style.display='none'; bt1=0,bt2=0,bt3=0,bt4=0,bt5=0,bt6=0,bt7=0; }
  • 54. APP para el cálculo de ICT Página 54 de 63 } function pi(){ if(bt2==0) { document.getElementById('submenu1').style.display='non e'; document.getElementById('submenu2').style.display='block'; document.getElementById('submenu3').style.display='none'; document.getElementById('submenu4').style.display='none'; document.getElementById('submenu5').style.display='none'; document.getElementById('submenu6').style.display='none'; document.getElementById('submenu7').style.display='none'; ((bt2=1)&&(bt1=0,bt3=0,bt4=0,bt5=0,bt6=0,bt7=0)); } else { document.getElementById('submenu2').style.display='none'; bt1=0,bt2=0,bt3=0,bt4=0,bt5=0,bt6=0,bt7=0; } } function ant(){ if(bt3==0) { document.getElementById('submenu1').style.display='none'; document.getElementById('submenu2').style.display='none'; document.getElementById('submenu3').style.display='block'; document.getElementById('submenu4').style.display='none'; document.getElementById('submenu5').style.display='none'; document.getElementById('submenu6').style.display='none'; document.getElementById('submenu7').style.display='none'; ((bt3=1)&&(bt1=0,bt2=0,bt4=0,bt5=0,bt6=0,bt7=0)); } else { document.getElementById('submenu3').style.display='none'; bt1=0,bt2=0,bt3=0,bt4=0,bt5=0,bt6=0,bt7=0; } }
  • 55. APP para el cálculo de ICT Página 55 de 63 function amp(){ if(bt4==0) { document.getElementById('submenu1').style.display='none'; document.getElementById('submenu2').style.display='none'; document.getElementById('submenu3').style.display='none'; document.getElementById('submenu4').style.display='block'; document.getElementById('submenu5').style.display='none'; document.getElementById('submenu6').style.display='none'; document.getElementById('submenu7').style.display='none'; ((bt4=1)&&(bt1=0,bt2=0,bt3=0,bt5=0,bt6=0,bt7=0)); } else { document.getElementById('submenu4').style.display='none'; bt1=0,bt2=0,bt3=0,bt4=0,bt5=0,bt6=0,bt7=0; } } function der(){ if(bt5==0) { document.getElementById('submenu1').style.display='none'; document.getElementById('submenu2').style.display='none'; document.getElementById('submenu3').style.display='none'; document.getElementById('submenu4').style.display='none'; document.getElementById('submenu5').style.display='block'; document.getElementById('submenu6').style.display='none'; document.getElementById('submenu7').style.display='none'; ((bt5=1)&&(bt1=0,bt2=0,bt3=0,bt4=0,bt6=0,bt7=0)); } else { document.getElementById('submenu5').style.display='none'; bt1=0,bt2=0,bt3=0,bt4=0,bt5=0,bt6=0,bt7=0; } } function cab(){ if(bt6==0) { document.getElementById('submenu1').style.display='none'; document.getElementById('submenu2').style.display='none'; document.getElementById('submenu3').style.display='none'; document.getElementById('submenu4').style.display='none'; document.getElementById('submenu5').style.display='none'; document.getElementById('submenu6').style.display='block'; document.getElementById('submenu7').style.display='none'; ((bt6=1)&&(bt1=0,bt2=0,bt3=0,bt4=0,bt5=0,bt7=0)); } else {
  • 56. APP para el cálculo de ICT Página 56 de 63 document.getElementById('submenu6').style.display='none'; bt1=0,bt2=0,bt3=0,bt4=0,bt5=0,bt6=0,bt7=0; } } function tom(){ if(bt7==0) { document.getElementById('submenu1').style.display='none'; document.getElementById('submenu2').style.display='none'; document.getElementById('submenu3').style.display='none'; document.getElementById('submenu4').style.display='none'; document.getElementById('submenu5').style.display='none'; document.getElementById('submenu6').style.display='none'; document.getElementById('submenu7').style.display='block'; ((bt7=1)&&(bt1=0,bt2=0,bt3=0,bt4=0,bt5=0,bt6=0)); } else { document.getElementById('submenu7').style.display='none'; bt1=0,bt2=0,bt3=0,bt4=0,bt5=0,bt6=0,bt7=0; } } //** Sección tabla derivadores: este apartado crea la tabla con los cuatro derivadores por planta. functiontabla_deriv(){ var plantas=document.getElementById('plantas_num').value; var pisos=document.getElementById('pisos_num').value; //borrar filas while (document.getElementById('llenar1').lastChild) { document.getElementById('llenar1').removeChild(documen t.getElementById('llenar1').lastChild); } for (y=plantas;y>0;y--) { document.getElementById('llenar1').innerHTML+="<th><br >"+[y]+" &ordf;PLANTA>> Salidas: 1 paso "+[pisos]+" derivaci&oacute;n</br></th>"; for (z=1;z<5;z++) { document.getElementById('llenar1').innerHTML+="<th>Der ivador "+[1+z-1]+":<input type='radio'"+[z+1]+"'
  • 57. APP para el cálculo de ICT Página 57 de 63 name='nderiv"+[y]+"' value='"+[z]+"' id='nderiv"+[y]+"'/> "+[(1+z-1)-0.5]+" dB paso y "+[22-((z-1)+(z+1))]+" dB derivaci&oacute;n</th>"; } } } //** Función cálculo: esta es la que realiza todo el cálculo tras obtener los valores de las variables. function calculo(){ varderiv_final = new Array (); varvalor_toma = new Array (); var plantas=document.getElementById('plantas_num').value; varplantas_select=document.getElementById('plantas_num ').value; var pisos=document.getElementById('pisos_num').value; var antena=document.getElementById('antena_num').value; varampli=document.getElementById('ampli_num').value; vars_in=parseInt(antena)+parseInt(ampli); var cable = $("input[name='cable']:checked").val(); vars_ant=sin[plantas]=parseInt(antena)+parseInt(ampli) ;
  • 58. APP para el cálculo de ICT Página 58 de 63 //**Para obtener el valor del radio seleccionado en los derivadores y almacenarlosen variables separadas. var deriv_pl_1 = $("input[name='nderiv1']:checked").val(); var deriv_pl_2 = $("input[name='nderiv2']:checked").val(); var deriv_pl_3 = $("input[name='nderiv3']:checked").val(); var deriv_pl_4 = $("input[name='nderiv4']:checked").val(); var deriv_pl_5 = $("input[name='nderiv5']:checked").val(); var deriv_pl_6 = $("input[name='nderiv6']:checked").val(); var deriv_pl_7 = $("input[name='nderiv7']:checked").val(); var deriv_pl_8 = $("input[name='nderiv8']:checked").val(); var deriv_pl_9 = $("input[name='nderiv9']:checked").val(); var deriv_pl_10= $("input[name='nderiv10']:checked").val(); //**Crear una array con todas las variables anteriores. deriv_final.push(deriv_pl_1,deriv_pl_2,deriv_pl_3,deri v_pl_4,deriv_pl_5,deriv_pl_6,deriv_pl_7,deriv_pl_8,deriv_pl _9,deriv_pl_10) //**Sección para el cálculo de la señal en toma. Se realiza un “for” desde la planta superior definida por el usuario hasta la planta final.En cada planta se calcula la señal según el derivador seleccionado, los metros y la pérdida en cable, obteniendo la señal final en la toma para cada piso. if ((plantas!=0)&&(pisos!=0)&&(antena>40)&&(cable!=0)) { for (y=plantas;y>0;y--) { if (y==plantas_select) { vars_in=parseInt(antena)+parseInt(ampli); varderiv=deriv_final[plantas_select-1]; if (deriv==1) { mts_cable=3;
  • 59. APP para el cálculo de ICT Página 59 de 63 vars_deriv=s_in-20; vars_paso=s_in-(mts_cable*cable)-0.5; for(x=1;x<=pisos;x++) { varperdida_cable=mts_cable*cable; vars_toma=s_deriv-perdida_cable; valor_toma.push(s_toma); mts_cable=mts_cable+3; } } if (deriv==2) { mts_cable=3; vars_deriv=s_in-18; vars_paso=s_in-(mts_cable*cable)-1.5; varmts_cable=3; for(x=1;x<=pisos;x++) { varperdida_cable=mts_cable*cable; vars_toma=s_deriv-perdida_cable; valor_toma.push(s_toma); mts_cable=mts_cable+3; } } if (deriv==3) { mts_cable=3; vars_deriv=s_in-16; vars_paso=s_in-(mts_cable*cable)-2.5; for(x=1;x<=pisos;x++) { varperdida_cable=mts_cable*cable; vars_toma=s_deriv-perdida_cable; valor_toma.push(s_toma); mts_cable=mts_cable+3; } } if (deriv==4) { mts_cable=3; vars_deriv=s_in-14; vars_paso=s_in-3.5; for(x=1;x<=pisos;x++) { varperdida_cable=mts_cable*cable;
  • 60. APP para el cálculo de ICT Página 60 de 63 vars_toma=s_deriv-perdida_cable; valor_toma.push(s_toma); mts_cable=mts_cable+3; } } if (deriv==null)//Control de errores { alert ('Existen derivadores por seleccionar!!. Seleccione todos los derivadores por planta y posteriormente realice el cálculo final'); } } else { vars_in=s_paso; varderiv=deriv_final[y-1]; if (deriv==1) { mts_cable=3; vars_deriv=s_in-20; vars_paso=s_in-0.5; for(x=1;x<=pisos;x++) { varperdida_cable=mts_cable*cable; vars_toma=s_deriv-perdida_cable; valor_toma.push(s_toma); mts_cable=mts_cable+3; } } if (deriv==2) { mts_cable=3; vars_deriv=s_in-18; vars_paso=s_in-1.5; for(x=1;x<=pisos;x++) { varperdida_cable=mts_cable*cable; vars_toma=s_deriv-perdida_cable; valor_toma.push(s_toma); mts_cable=mts_cable+3; } } if (deriv==3) { mts_cable=3;
  • 61. APP para el cálculo de ICT Página 61 de 63 vars_deriv=s_in-16; vars_paso=s_in-2.5; for(x=0;x<pisos;x++) { varperdida_cable=mts_cable*cable; vars_toma=s_deriv-perdida_cable; valor_toma.push(s_toma); mts_cable=mts_cable+3; } } if (deriv==4) { mts_cable=3; vars_deriv=s_in-14; vars_paso=s_in-3.5; for(x=1;x<=pisos;x++) { varperdida_cable=mts_cable*cable; vars_toma=s_deriv-perdida_cable; valor_toma.push(s_toma); mts_cable=mts_cable+3; } } if (deriv==null)//Control de errores { alert ('Existen derivadores por seleccionar!!. Seleccione todos los derivadores por planta y posteriormente realice el cálculo final'); } } } //**Este apartado genera la tabla para mostrar el nivel de señal en las tomas de cada piso. var plantas=document.getElementById('plantas_num').value; var pisos=document.getElementById('pisos_num').value; //**While: borra la tabla de cálculos anteriores. while (document.getElementById('llenar2').lastChild) { document.getElementById('llenar2').removeChild(documen t.getElementById('llenar2').lastChild); }
  • 62. APP para el cálculo de ICT Página 62 de 63 var v=0; for (y=plantas;y>0;y--) { document.getElementById('llenar2').innerHTML+="<th><br ><br>"+[y]+"&ordf; PLANTA</br></th>"; for (x=1;x<=pisos;x++) { document.getElementById('llenar2').innerHTML+="<th>Pis o "+[x]+"&ordm;:<input value='"+deriv_final[v]+" dB&micro;V' readonly/>"; var v=v+1; } } } else { alert ('Verifique que haya introducido todos los datos correctamente'); alert ('Recuerde que el cálculo solo se realizará si el nivel de señal de la antena no es inferior a 45dBµV'); } } //**Final del cálculo. window.addEventListener('load', iniciar, false);
  • 63. APP para el cálculo de ICT Página 63 de 63 7. BIBLIOGRAFÍA Y WEBGRAFÍA La mayor parte de la información y soportes para la creación de la aplicación es de páginas y foros de internet relacionados con la programación web. El gran libro de HTML5, CSS3 y JavaScript. http://www.w3schools.com/ [20/06/2013] http://www.desarrolloweb.com/ [10/05/2013] http://jquerymobile.com/ [7/04/2013] http://www.codexexempla.org/ [7/05/2013] http://www.programacionfacil.com/ [5/06/2013] http://www.virtualnauta.com/html-formularios [17/03/2013] http://www.librosweb.es/JavaScript [2/04/2013]