Documento Jorge Cardenas

64
1 1. DESCRIPCION DEL SISTEMA GLOBAL DE COMUNICACIONES MOVILES (GSM) En este capítulo se explicaran los conceptos básicos de la tecnología GSM, se darán a conocer los elementos de hardware que componen una red, la estructura de la interfaz de radio, el funcionamiento básico y se explicarán los indicadores de desempeño más relevantes para monitorear el comportamiento de la red y la implicación que estos poseen en la percepción del usuario de la calidad del servicio. 1.1 Elementos de la red 1.1.1 Estación móvil: Esta compuesto por el terminal y una tarjeta SIM (Suscriber Identifier Module). La tarjeta SIM es personal y única para cada suscriptor. El terminal debe poseer características similares a un teléfono fijo en términos de calidad. Tiene funcionalidades como modulación y demodulación GMSK, codificación y decodificación de canal, debe tener generación multifrecuencia dobletono y una batería de larga duración. La Tarjeta SIM es un microchip operando en conjunto con una tarjeta de memoria, su principal función es el almacenamiento de datos del operador y el usuario. Las funciones más importantes de la tarjeta SIM son la autenticación, seguridad en la transmisión y el almacenamiento de los datos del usuario. 1.1.2 Sistema de estaciones Base (BSS): El Sistema de Estaciones Base está compuesto por dos componentes: ¾ Base Transceiver Station (BTS): Se encarga de proveer la conexión física con el terminal del usuario por medio de la interfaz de aire. Opera a uno o varios pares de frecuencia.

Transcript of Documento Jorge Cardenas

Page 1: Documento Jorge Cardenas

 

1  

 

 

1. DESCRIPCION DEL SISTEMA GLOBAL DE COMUNICACIONES MOVILES 

(GSM) 

 

En este capítulo se explicaran los conceptos básicos de la tecnología GSM, se darán a conocer los 

elementos  de  hardware  que  componen  una  red,  la  estructura  de  la  interfaz  de  radio,  el 

funcionamiento  básico  y  se  explicarán  los  indicadores  de  desempeño  más  relevantes  para 

monitorear el comportamiento de  la red y  la  implicación que estos poseen en  la percepción del 

usuario de la calidad del servicio. 

1.1 Elementos de la red 

1.1.1 Estación móvil: 

Esta compuesto por el terminal y una tarjeta SIM (Suscriber Identifier Module). La tarjeta SIM es 

personal  y  única  para  cada  suscriptor.  El  terminal  debe  poseer  características  similares  a  un 

teléfono  fijo  en  términos  de  calidad.  Tiene  funcionalidades  como modulación  y  demodulación 

GMSK, codificación y decodificación de canal, debe tener generación multi‐frecuencia doble‐tono 

y una batería de  larga duración. La Tarjeta SIM es un microchip operando en conjunto con una 

tarjeta de memoria, su principal función es el almacenamiento de datos del operador y el usuario. 

Las funciones más importantes de la tarjeta SIM son la autenticación, seguridad en la transmisión 

y el almacenamiento de los datos del usuario. 

1.1.2 Sistema de estaciones Base (BSS): 

El Sistema de Estaciones Base está compuesto por dos componentes: 

Base Transceiver Station (BTS): Se encarga de proveer la conexión física con el terminal del 

usuario por medio de la interfaz de aire. Opera a uno o varios pares de frecuencia. 

Page 2: Documento Jorge Cardenas

 

2  

Base  Station  Controller  (BSC):  Se  encarga  de  controlar  un  grupo  de  BTSs,  entre  sus 

funciones se encuentran el control del Handover y gestión de la red de radio. 

1.1.3 Mobile Switching Center (MSC): 

El MSC se encarga de enrutar y gestionar las llamadas desde y hacia los abonados. También tiene 

como función la autenticación de los usuarios en la red. 

 

Figura 1. Estructura de una red GSM [10] 

 

1.2 Estructura de la Interfaz de Radio: 

El  estándar  GSM  está  basado  en  TDMA  sobre  múltiples  portadoras  (FDMA),  y  duplexión  en 

frecuencia. Cada portadora tiene un ancho de banda de 200 KHz, y está dividida en tramas TDMA 

de 4.615 ms. Cada trama está compuesta por ocho time slots. En  la siguiente tabla se observa  la 

definición de las bandas para GSM. 

Page 3: Documento Jorge Cardenas

 

3  

 

Tabla 1. Bandas de frecuencia para GSM [2] 

 

Figura 2. Esquema de una trama GSM [2] 

Los canales se dividen en dos clases: canales lógicos y canales físicos. Cada slot de tiempo de una 

trama  TDMA  representa  un  canal  físico.  Un  canal  lógico  se  refiere  al  tipo  de  información 

transmitida en cada canal  físico. Los canales  lógicos  se dividen en dos clases: canales de  tráfico 

(TCH) y canales de control (CCH). Los canales de tráfico son usados para transportar la información 

de  voz  o  datos  enviada  por  el  usuario.  Los  canales  de  control  se  encargan  de  transmitir  la 

información de señalización y control. En la siguiente tabla se puede observar los diferentes tipos 

de canales lógicos. 

Page 4: Documento Jorge Cardenas

 

4  

 

Tabla 2. Canales lógicos de control. [2] 

 

Un canal de tráfico Full‐Rate (TCH/F) es un canal de voz o de datos que usa una codificación de 13 

Kbps,  a  una  tasa  de  transmisión  efectiva  de  9.6,  4.8  o  2.4  Kbps. Un  canal  de  tráfico Half‐Rate 

(TCH/H) usa codificación a 7 Kbps y tiene una tasa efectiva de transmisión de 4.8 Kbps y  2.4 Kbps. 

A cada slot de tiempo se  le puede asignar un canal de tráfico Full‐Rate(TCH/F), o dos canales de 

tráfico Half Rate (TCH/F), es decir, una portadora GSM soporta 8 usuarios usando codificación Full 

Rate o 16 usuarios si se usa codificación Full Rate. 

1.3 Desempeño de la interfaz de radio 

El  sistema GSM  implementa  funcionalidades  que  incrementan  el  desempeño  de  la  interfaz  de 

radio  ante  la  interferencia, mejorando  así  la  calidad  de  la  voz  y  aumentando  la  capacidad  del 

sistema mediante la disminución de la sensibilidad a la interferencia. 

 

 

Page 5: Documento Jorge Cardenas

 

5  

1.3.1 Saltos en frecuencia (Frequency Hopping) 

Frequency Hopping  (FH) es una  técnica que mejora  la  relación señal a  ruido  (C/I) por medio del  

uso de múltiples portadoras de diferentes frecuencias. El principio del FH es la no correlación del 

efecto del desvanecimiento en un punto  sobre dos  frecuencias distintas, es  como  implementar 

diversidad de frecuencia, resultando en una misma calidad de comunicación con menor relación 

portadora/interferente (C/I) y portadora/ruido (C/N). [2] 

1.3.2 Transmisión discontinua (DTX) 

Consiste  en  la  reducción  de  la  información  transmitida  en  los momentos  de  silencio  en  una 

comunicación. Esto  se  logra mediante  la  función VAD  (Voice activity detection). Cuando hay un 

periodo de silencio se envían únicamente 12 tramas en un periodo de 480 ms, cuando se detecta 

sonido se envían 100 tramas en el mismo periodo. Usando trasmisión discontinua se incrementa la 

relación señal a ruido (C/I) en un factor de aproximadamente 3 dB. 

 

Figura 3. Transmisión discontinua (DTX) [2] 

1.4 Indicadores de desempeño de la red GSM (KPIs) 

El  desempeño  de  una  red  celular  se  puede  determinar  usando  diferentes  “Key  performance 

indicators”  (KPIs),  los  cuales  pueden  medirse  por  medio  de  Drive  Test.  Algunos  de  estos 

indicadores son: 

1.4.1 Potencia recibida (RXLEVEL) y Relación Señal‐Interferencia (C/I) 

Estos indicadores son muy importantes ya que nos indican la cobertura o no cobertura del servicio 

en una zona específica. En condiciones típicas del medio ambiente, la relación señal a ruido de ser 

mayor a 9 dB y  la potencia recibida debe ser superior a ‐104 dBm para GSM, ‐102 dBm para PCS 

1900  y  ‐100  dBm  para  DCS  1800.  [1]  El  parámetro  RXLEVEL  puede  ser  de  tipo  Full  y  Sub 

Page 6: Documento Jorge Cardenas

 

6  

dependiendo  del  número  de  tramas  que  son  tenidas  en  cuanta  para  el  cálculo  del  nivel  de 

potencia  recibida.  El  valor  de  RXLEVEL  FULL    el  promedio  de  la  potencia  recibida  en  todas  las 

tramas en un periodo de 480 ms, y es reportado en el SACCH (Slow Associated Control Channel). 

En este periodo de  tiempo ocurren 104  tramas TDMA, pero 4 de ellas  son  tramas  “Idle” por  lo 

tanto la medición se realiza en promedio sobre 100 Tramas.  Cuando se usa la función DTX, el valor 

de RXLEVEL SUB, es calculado sobre 12 tramas, cuando hay un periodo de silencio (4 SACCH + 8 

SID). Las tramas SID (Silence Descriptor), contienen información, para crear ruido de confort en los 

receptores. Los valores de Sub deben ser mayores a los de Full. 

1.4.2.  Mean Opinion Score (MOS) 

La calidad de la voz puede ser cuantificada mediante el “Mean Opinion Score” (MOS). Los valores 

del MOS están comprendidos entre uno y cinco, siendo uno malo y cinco excelente. El valor del 

MOS se basa en la opinión subjetiva de grupo de personas que califican la calidad de la voz que se 

escucha  en  una  comunicación.  Los  fabricantes  de  equipos  de medición  de  calidad  de  voz  han 

desarrollado algoritmos para calificar el MOS, mediante la comparación de la señal de voz recibida 

en el terminal y la señal original. 

1.4.3 Bit Error Rate (BER) 

Es la medición de la tasa de error de bit en recepción antes del proceso de codificación. En GSM el 

BER se muestra en el RXQUAL, este parámetro tiene valores entre cero y siete. La distribución del 

RXQUAL se muestra en la tabla 3. 

 

Tabla 3. Valores de RXQUAL y su correspondiente BER [2]  

 

Page 7: Documento Jorge Cardenas

 

7  

Al igual que en el RXLEVEL, el RXQUAL puede ser Full y Sub, y se calculan de la misma manera. En 

la siguiente gráfica se enseña la composición de un periodo SACCH. 

 

 

Figura 4. Ráfaga TDMA [11] 

 

Un periodo SACCH consiste en 4 multitramas,  la cuales constan de 26 tramas TDMA cada una. El 

cálculo  del  RXQUAL  se  realiza  sobre  todas  las  tramas.  En  la  siguiente  gráfica  se  muestra  la 

composición de una  ráfaga TDMA  cuando  la  función DTX está habilitada y hay un momento de 

silencio. 

Page 8: Documento Jorge Cardenas

 

8  

 

Figura 5. Ráfaga TDMA, en un periodo de silencio.[11] 

 

Debido a que en una conversación humana, un gran porcentaje del tiempo son silencios, entonces 

el valor Sub es un indicador más representativo del desempeño de la red.  

 

1.4.4. Frame Erasure Rate (FER) 

Es un indicador de desempeño muy importante ya que tiene una gran correlación con la calidad de 

la voz final que percibe el usuario. GSM codifica  la voz en tramas de 20 ms de duración. En cada 

trama, son añadidos 3 bit CRC (Código de redundancia cíclica). Cuando un terminal decodifica los 

260 recibidos en la trama, verifica los 3 bit CRC para los 50 bits más significativos. Si el CRC falla la 

trama es descartada. Como solo se usan 3 bit  la probabilidad de detectar tramas defectuosas es 

muy baja. El FER es el porcentaje del total de tramas descartadas sobre 100 tramas recibidas. No 

se puede relacionar directamente el BER con el FER, ya que el valor del FER también depende del 

esquema de codificación de canal usado o de las técnicas de salto en frecuencia (FH).  

 

1.4.5 Tasa de llamadas caídas (DCR) 

Mide el porcentaje de conexiones perdidas, este un KPI muy importante ya que se considera que 

una  llamada caída afecta generalmente muy negativamente  la percepción de calidad del servicio 

Page 9: Documento Jorge Cardenas

 

9  

del usuario final. En un drive test el DCR se calcula contando las llamadas caídas, sobre el total de 

intentos de llamadas. 

 

1.4.6 Tasa de llamadas bloqueadas (BCR) 

Como su nombre  lo  indica mide el  índice de  llamadas generadas que no  logran registrarse en  la 

red. Es también, un indicador muy importante en la perspectiva del usuario final. 

 

Todos los indicadores de desempeño son bastante útiles ya que muestran diferentes aspectos del 

desempeño de  la red. El  factor  importante es entender  lo que cada uno representa y  la relación 

que existe entre ellos. Por ejemplo no es posible relacionar directamente el BER con la calidad del 

audio,  ya  que  está  también  depende  del  esquema  de  decodificación,  pero  el  BER  es  útil  para 

determinar  la calidad de la interfaz de aire. 

 

Figura 6. Ubicación en la cadena de recepción de los KPIs [2] 

   

Page 10: Documento Jorge Cardenas

 

10  

 

2. CARACTERISTICAS DE LOS EQUIPOS Y PROCEDIMIENTO DE MEDICION 

 

La calidad de una red celular es determinada finalmente, por el grado de satisfacción del usuario 

de  la  red. Drive Test es una herramienta muy útil para  los operadores y  los entes  reguladores, 

porque  les  permite  verificar  en  campo  la  percepción  que  el  usuario  tiene  del  servicio,    así  el 

operador podrá hacer una optimización más eficiente de la red y un ente regulador podrá verificar 

el cumplimiento de las normas de la calidad del servicio, exigidos en la legislación.  

 

2.1 Tipos de Drive Test 

Existen tres clases de Drive Test,  los cuales son útiles para comprobar distintos parámetros de  la 

red. 

 

2.1.1 Scanning: 

Es el Drive Test más simple y consiste en la medición del nivel de potencia de las portadoras que 

atienden una región. Este tipo de medición se utiliza para determinar las zonas donde se presenta 

interferencia  co‐canal  e  interferencia  de  canal  adyacente.  El  Scanning  se  puede  desarrollar  a 

cualquier hora del día ya que no se ve afectado por el tráfico generado por los usuarios en la zona. 

En las ciudades este tipo de medición se debe hacer cuadra a cuadra, en lo posible, con el fin de 

recolectar la mayor cantidad de muestras, que permitan hacer un análisis correcto del estado de la 

red. El equipo más utilizado para este tipo de medición es Clarify de la compañía PCTEL. 

 

2.1.2 Benchmarking 

Este tipo de medición es muy usado por los operadores, consiste en comparar el desempeño de la 

red celular de un operador con sus competidores.  Para realizar este tipo de medición se requiere 

un equipo, que cuente con un terminal para cada operador, estos se deben encontrar en igualdad 

de  condiciones,  por  lo  general  se  ubican  en  la  parte  de  atrás  del  vehículo.  Los  terminales  son 

controlados por un dispositivo que genera  llamadas automáticamente hacia unas  líneas  fijas,  las 

cuales están conectadas a un terminal que responde automáticamente, y envía una grabación de 

voz la cual es analizada y calificada por el dispositivo, y los datos son almacenados en la unidad del 

Page 11: Documento Jorge Cardenas

 

11  

disco  duro.  En  este  tipo  de medición  también  se  capturan  los  valores  de  los  KPIs  vistos  en  el 

capítulo  uno.  El  equipo  más  usado  en  este  tipo  de  medición  es  Seven.Five  de  la  compañía 

Comarco. Está medición se debe desarrollar en horas de alto nivel de tráfico. 

 

Figura 7. Equipo para Benchmarking Seven.Five  

 

 

2.1.3 Drive Test Simple  

Consiste en la verificación de los indicadores de desempeño de la red celular. También se requiere 

un teléfono móvil que genere llamadas automáticamente a otro destino, por lo general una línea 

fija, para que los valores capturados no se vean afectados por un mal desempeño de la región de 

la  red  donde  se  encuentra  el  destinatario.  Existen  varios  equipos  para  realizar  este  tipo  de 

mediciones, entre otros están TEMS de la compañía Ericsson y Qualipoc de Swissqual. 

 

2.2 Procedimiento de toma de datos 

Las mediciones  que  serán  analizadas  se  obtuvieron mediante  un  Drive  Test  simple,  el  cual  se 

desarrollo para verificar  la cobertura y  la calidad del servicio en vías principales, algunos cascos 

urbanos y ciudades principales. El Drive Test se realizo en horas  laborales, es decir de 8:00 de  la 

mañana a 5:00 de  la  tarde, durante días hábiles para obtener una percepción de  la  calidad del 

servicio en horas en las que la red celular es más exigida. Se realiza únicamente un recorrido a una 

velocidad máxima de 50 Km/hora. El  teléfono es ubicado sobre el panel  frontal del equipo para 

que el ingeniero de Drive Test pueda verificar fácilmente el correcto funcionamiento de dispositivo 

Page 12: Documento Jorge Cardenas

 

12  

y así asegurarse que  los datos  recopilados  tengan validez. Todos  los parámetros capturados son 

geográficamente referenciados  

 

2.3 Equipos de medición 

 

2.3.1 Qualipoc 

Es  un  novedoso  sistema  basado  en  un  teléfono  inteligente  para  optimización  y  medición  y 

monitoreo de la calidad del servicio. La aplicación Qualipoc es instalada en teléfonos comerciales 

que soporten el sistema operativo Symbian. Las pruebas se realizan sin la necesidad de hardware 

adicional. 

Qualipoc  soporta  varios  tipos de Test, dependiendo de  los  requerimientos de  la medición para 

obtener  realmente  la  perspectiva  del  usuario  sobre  el  servicio.  Los  tipos  de medición  que  se 

pueden desarrollar con Qualipoc son: 

 

Llamada  a  cualquier  número:  este  tipo  de medición  se  realiza  con  el  fin  de medir  la 

accesibilidad a la red. 

Pruebas de calidad de voz (MOS) 

Pruebas de datos como Ping, FTP y UDP 

Pruebas de navegación en portales WAP y HTTP URL 

Mensajería 

Video Streaming y Video llamada con calidad de video. 

 

El equipo usado en  las mediciones es el nokia N75, el  cual es un  teléfono  convencional, por  lo 

tanto se puede decir que las mediciones realizadas son comparables con la visión del usuario de la 

calidad del servicio. 

Page 13: Documento Jorge Cardenas

 

13  

 

Figura 8. Qualipoc [8] 

 

2.3.2 TEMS Investigation 

Desarrollado por  la empresa Ericsson, este equipo permite el monitorea de  las  tecnolgías GSM, 

Edge, WCDM y HSPA. El equipo básico para  realizar una medición es el  terminal. TEMS soporta 

marcas  de  distintos  fabricantes,  cada  terminal  es  un  equipo  convencional  con  un  Firmware 

instalado para realizar este tipo de mediciones. Se requiere también de un computador portátil, 

que es el que se encarga de controlar el proceso de medición y el almacenamiento de los datos y 

un GPS  (Global Positioning  System) para  la  georeferenciación de  los eventos  capturados en  los 

recorridos.  

 

El teléfono móvil usado en las mediciones es el equipo K790 de Sony Ericsson. Este es un teléfono 

convencional,  con  las  especificaciones  técnicas  típicas  de  un  terminal  GSM  en  cuanto  a 

desempeño. 

  

 

Figura 9. Tems Investigation. [9] 

Page 14: Documento Jorge Cardenas

 

14  

 

 

Ambos dispositivos están en capacidad de medir  todos  las KPI explicados en el capítulo 1, y  las 

funcionalidades  de  ambos  son  similares,  se  diferencian  en  la  portabilidad,  la  visualización  y  la 

estabilidad de los sistemas. Todos los equipo de medición tienen como información de salida una 

base de datos, geográficamente  referenciados, con  los valores de  los KPI capturados durante el 

recorrido, esta base de datos es analizada por  los  Ingenieros para encontrar  las zonas de  la  red 

donde  se  está  presentando  un  mal  desempeño.  En  los  documentos  anexos  se  encuentra  la 

información completa de los equipos. 

 

 

 

 

   

Page 15: Documento Jorge Cardenas

 

15  

 

3. PROGRAMACION USANDO SISTEMAS DE INFORMACION GEOGRAFICA 

  

En este capítulo se explicara el proceso usado para  importar  las bases de datos creadas por  los 

equipos de medición y la forma como estos datos son analizados y visualizados, en la herramienta 

de Post Proceso. 

A  partir  de  las  bases  de  datos  creadas,  se  obtienen  archivos  tipo  texto,  con  un  formato 

estructurado por columnas. Cada columna guarda  la  información de algún parámetro y cada  fila 

representa  la  información  captada  en  un  punto.  Todos  los  puntos  están  geográficamente 

referenciados. El proceso de importación de los datos es diferente para cada equipo de medición a 

continuación  se  explica  el  procedimiento  para Qualipoc  y  TEMS.  La  herramienta  se  desarrollo 

sobre Visual Basic 2005. 

 

3.1. Proceso de importación de datos 

Con el equipo Qualipoc, el programa para  la exportación de  los datos,  crea archivos diferentes 

para cada parámetro, es decir, cada KPI se almacena un archivo, por esta razón se deben cargar 

varios archivos en la herramienta para importar los datos que son relevantes para el análisis de la 

calidad del servicio. Los parámetros que vamos a utilizar para el análisis de  la medición realizada 

con este equipo son: 

RXLEVELSUB 

RXQUALSUB 

MOS 

Tasa de llamadas caídas (DCR). 

Tasa de llamadas bloqueadas BCR).   

Page 16: Documento Jorge Cardenas

 

16  

Ya  que  la  información  de  la  tasa  de  llamadas  caídas  y  la  tasa  de  llamadas  bloqueadas  están 

incluidas  en  un  archivo,  se  deben  importar  en  total  cuatro  archivos.  En  la  siguiente  figura  se 

muestra el menú para la selección de los datos a importar. 

 

Figura 10. Menú para la importación de datos. 

Antes de cargar una medición, se debe seleccionar el equipo de medición, y el parámetro que será 

importado. Los datos son importados de acuerdo a la columna en la que están ubicados dentro del 

archivo de texto.  

TEMS, por el contrario crea un archivo estructurado de texto con todos los datos requeridos, por 

lo  tanto  solo  es  necesario  importar  un  archivo.  Los  datos  captados  por  el  equipo  TEMS  para 

evaluar la calidad del servicio son: 

 

Page 17: Documento Jorge Cardenas

 

17  

RXLEVELSUB 

RXQUALSUB 

FER 

Tasa de llamadas caídas (DCR). 

Tasa de llamadas bloqueadas (BCR). 

 

Una vez realizada la importación, se hará uso de un sistema de información geográfica incluido en 

la herramienta para visualizar el sitio exacto donde ocurrieron los eventos más relevantes y poder 

correlacionar  los  problemas  de  la  red,  con  los  parámetros  de  señal  obtenidos  en  una  región 

específica. A continuación se hará una breve introducción a los sistemas de información geográfica 

y se dará una descripción del desarrollo para la herramienta.   

 

3.2 Introducción a los sistemas de información geográfica: 

Los  sistemas  de  información  geográfica  permiten  la  manipulación,  el  análisis,  la  captura  y  el 

despliegue de información geográficamente referenciada y son usados por diferentes organismos, 

como  empresas  prestadoras  de  servicios  públicos,  planificación  urbanística,  operadores  de 

telecomunicaciones, etc. Ya que estos permiten resolver problemas complejos de   planificación y 

gestión. 

“El SIG funciona como una base de datos con información geográfica (datos alfanuméricos) que se 

encuentra asociada por un identificador común a los objetos gráficos de un mapa digital. De esta 

forma,  señalando  un  objeto  se  conocen  sus  atributos  e,  inversamente,  preguntando  por  un 

registro de la base de datos se puede saber su localización en la cartografía.”[7] 

La información es trabajada mediante capas, en cada capa se visualiza diferentes clases de

información, por ejemplo, una capa puede ser malla vial, y la capa que se monta encima

puede ser la red de acueducto y alcantarillado, de esta manera se puede observar como una

Page 18: Documento Jorge Cardenas

 

18  

obra en las tuberías puede afectar la malla vial. Este método de trabajar por capas permite

que el análisis de los datos sea rápido y sencillo.

 

Figura 11. Trabajo mediante capas [7] 

La herramienta está en capacidad de crear archivos de mapas en formato “Shape”. Este formato  

es compatible con diferentes programas de sistemas de información geográfica, entre los cuales 

está Mapinfo que es uno de los más usados por los operadores de telecomunicaciones. 

 

3.3 Uso de sistemas de información geográfica en la herramienta de software 

Para  lograr  trabajar  con  sistemas  de  información  geográfica  sobre  Visual  Basic  2005,  se  debe 

instalar el controlador “Mapwingis ActiveX Control” de la página www.mapwindow.com, el cual es 

de libre distribución. Este controlador es necesario para agregar el componente “Map Control” y la 

librería de  instrucciones para  la creación, manipulación y visualización de mapas en Visual Basic 

2005. 

Como primer paso se  implemento  la función de abrir mapas en formato Shape y visualizarlos en 

una  ventana,  con  el  fin  de  lograr  ubicar  geográficamente  la  zona  donde  se  realizaron  las 

mediciones y obtener una mejor perspectiva de los objetos ubicados en la zona de medición que 

puedan afectar  la  señal  transmitida e pueda  influenciar negativamente  la  calidad  recibida en el 

terminal del usuario, como por ejemplo montañas que se interpongan entre la estación base y el 

terminal,  o mapas  con  información  del  uso  del  suelo,  que  permite  determinar  las  zonas  que 

Page 19: Documento Jorge Cardenas

 

19  

pueden absorber la señal  y causar desvanecimientos, en ciertas partes del recorrido. En la figura 

13 se pueden visualizar las capas de departamentos y cascos urbanos abiertos en la herramienta. 

 

Figura 12. Departamentos y Cascos Urbanos de Colombia 

 

La  ventana  “Data  Layers”  que  tiene  como  función  el  control  de  la  visibilidad  de  las  capas.  Las 

mediciones se visualizaran usando un mapa temático de colores para visualizar  los niveles de  los 

parámetros captados. 

Para el parámetro RXLEVELSUB se utilizan dos colores, el verde  indica  los puntos donde el nivel 

recibido es mayor a ‐104 dBm y rojo los puntos donde el nivel recibido es menor. Se usa este valor 

porque como se explico en el capítulo dos, ‐104 dBm es el límite de sensibilidad en la mayoría de 

los  teléfonos convencionales. Entonces en  los puntos donde se presenta un nivel por debajo de      

‐104 dBm, existe una probabilidad muy baja de que un usuario puede establecer una llamada o de 

mantener una  comunicación. En  la  siguiente  figura  se muestra  la  forma  como es  visualizado el 

mapa de RXLEVELSUB del Drive Test que se realizo en la ciudad de Villavicencio. 

Page 20: Documento Jorge Cardenas

 

20  

 

 

Figura 13. Zonas de cobertura y no cobertura. 

Para lograr entender la información que se visualiza en el programa, en la parte inferior izquierda 

se muestra la leyenda por colores del mapa, indicando que representa cada color. 

El  siguiente  KPI  es  el  RXQUAL  SUB  también  de  la  ciudad  de  Villavicencio,  en  la  ventana  de  la 

leyenda se observa el valor del RXQUAL SUB que representa cada valor. En este mapa se puede 

visualizar  las  zonas donde  el  valor de BER  es bastante  alto.  Si  lo  comparamos  con  el mapa de 

RXLEVEL  SUB,  las  zonas  donde  el  RXQUAL  SUB  es  malo,  coinciden  con  las  zonas  donde  las 

potencias son más, descubriendo de esta manera las posibles causas del aumento del BER en esas 

regiones. 

Page 21: Documento Jorge Cardenas

 

21  

 

Figura 14. RXQUAL SUB en la ciudad de Villavicencio. 

En  la  siguiente  figura  se muestra  el mapa  del MOS medido  con  la  herramienta Qualipoc.  Los 

valores mostrados en la leyenda están de acuerdo a los siguientes rangos: 

Bueno: valores de MOS mayores a 3.8. 

Aceptable: valores de MOS menores a 3.8 y mayores a 3.2 

Malo: valores de MOS menores a 3.2 y mayores a 2.5 

Pésimo: valores de MOS menores a 2.5 

Si  se  compara  el mapa  de MOS  con  el  de  RXQUAL  SUB  se  puede  observar  que  no  existe  una 

relación directa entre estos. No es posible afirmar que en  las zonas donde se midió un valor alto 

de RXQUAL SUB se presentará una calidad de voz baja. 

Page 22: Documento Jorge Cardenas

 

22  

 

Figura 15. MOS medido en la ciudad de Villavicencio 

En el caso de una medición realizada con el equipo TEMS no se presentara el MOS si no el FER, 

este parámetro está muy  ligado a  la calidad de voz  final  recibida en el terminal del usuario. Los 

rangos definidos para este parámetro son:  

<=2, el usuario no detecta ningún error en la comunicación. 

>2 y <=5, el usuario puede experimentar un sonido “Ping‐Pong”, parecido al rompimiento 

de una botella. 

>5, la comunicación es incompresible. 

El mapa de FER se visualiza de la siguiente manera. 

 

Page 23: Documento Jorge Cardenas

 

23  

 

Figura 17. FER Villavicencio, Drive Test realizado con TEMS Investigation. 

 

Las  estadísticas  de  llamadas  se  presentan  de  la  siguiente  manera.  Algunos  puntos  donde  se 

presentan  llamadas  caídas,  están  en  las  zonas  que  presentan  bajos  niveles  de  potencia. Otras 

razones por las que pueden ocurrir éstos eventos son fallos de Handover o exceso de tráfico en la 

red.  Este  es  un  indicador  del  desempeño,  ya  que  una  llamada  caída  o  bloqueado  afecta 

directamente la percepción que tiene el usuario de la calidad del servicio de la red.     

Page 24: Documento Jorge Cardenas

 

24  

 

Figura 17. Estadísticas de llamadas 

Con  los  indicadores de desempeño que  se visualizan en  la herramienta un  ingeniero esta en  la 

capacidad de encontrar  las zonas de  la red con bajos niveles de desempeño y si se cuenta con la 

base de datos de las estaciones y sus configuraciones, se podrá descubrir el problema y aplicar los 

correctivos necesarios. 

    

Page 25: Documento Jorge Cardenas

 

25  

 

4. ANALISIS DE LA CALIDAD DEL SERVICIO 

 

En este capítulo se definirá el concepto de calidad del servicio desde el punto de vista del usuario, 

se explicar la correlación de los KPI con la calidad del servicio y los cálculos de los KPI para dar una 

calificación global de la calidad en una zona de la red. 

 

4.1 Definición de calidad del servicio y desempeño de la red 

La  calidad del  servicio  se define  como el efecto  colectivo del desempeño de un  servicio el  cual 

determina el grado de satisfacción del usuario de éste.[4] Pero  la calidad del servicio también se 

puede definir de varias maneras, dependiendo del punto de vista:  

Desde el punto de vista del usuario,  la calidad se define como el nivel de satisfacción de 

éste;  es  decir  con  el  cumplimiento  de  las  expectativas  de  un  usuario  al momento  de 

adquirir   un  servicio  (publicidad,  tarifas,  atención al usuario, etc).[3]Se puede dividir en 

aspectos  técnico  y no  técnicos. A un usuario, generalmente, no  le  interesa  la  forma de 

como  se  provee  un  servicio,  o  de  alguno  de  los  aspectos  del  diseño  de  la  red,  solo  le 

interesa la calidad del servicio “end to end”.[3] 

 

Desde  el  punto  de  vista  del  proveedor  del  servicio,  la  calidad  es  el  resultado  de  las 

prestaciones ofrecidas por cada una de  las partes  implicadas:   terminales, red de acceso, 

red de transporte (Core) y los servicios.  

Los siguientes parámetros conforman la calidad del servicio de telefonía de una red GSM: 

Accesibilidad de red: Probabilidad de que un usuario disponga del servicio de telefonía. 

Accesibilidad del servicio: Probabilidad de que un usuario pueda establecer una llamada. 

Integridad del servicio:  Se refiere a la calidad de la voz, la voz recibida en el terminal debe 

ser patente para el usuario.[3]  

Page 26: Documento Jorge Cardenas

 

26  

Mantenimiento del servicio:  Se refiere a la terminación de una llamada sin que una de las 

partes de la comunicación haya decidido terminarla. 

 

 

Figura 18. Relación entre la satisfacción del cliente, Calidad de servicio y desempeño de la red.[3] 

 

El  grado  de  satisfacción  de  un usuario  la  componen  aspectos  técnicos  y  no  técnicos,  entre  los 

aspectos no técnicos se encuentran la disponibilidad de los puntos de venta, atención al usuario, 

planes y tarifas. 

 

Los aspectos técnicos  lo conforman el desempeño del terminal del usuario y el desempeño de  la 

red en una determinada zona. Se entiende como desempeño “la habilidad de  la  red de proveer 

funciones relacionadas con la comunicación” [3].  

 

Es  la  evaluación  del  desempeño  de  un  elemento  de  conexión  o  la  concatenación  de  varios 

elementos empleados para proveer el  servicio. Se define y  se mide en  términos de parámetros 

que son significativos para la red y para el proveedor del servicio, y son usados para propósitos de 

diseño  del  sistema,  configuración,  operación  y  mantenimiento.  El  desempeño  de  la  red  es 

independiente del desempeño del terminal y de las acciones de los usuarios. El desempeño de la 

red está encaminado a proveer QoS ofrecido a los usuarios.   

Page 27: Documento Jorge Cardenas

 

27  

 

4.2 Calculo de la calidad del servicio 

 

Para realizar un cálculo  la calidad del servicio que realmente refleje  la percepción del usuario, se 

debe  tener  conocimiento  de  lo  que  representa  cada  KPI  explicado  en  el  capítulo  dos  y  sus 

implicaciones  dentro  de  los  parámetros  que  definen  la  calidad  del  servicio.  En  la  figura  X  se 

muestra el diagrama de flujo de la herramienta. 

 

4.2.1 Accesibilidad de la red 

 

El KPI relacionado con este punto el nivel recibido en una zona, RXLEVEL SUB. Este parámetro nos 

determina  la probabilidad de que un usuario pueda establecer una comunicación. Si el valor de 

este  parámetro  esta  por  encima  de  cierto  límite  la  probabilidad  de  que  un  usuario  pueda 

comunicarse es más alta, en este caso se eligió ‐104 dBm. Las zonas con valores por debajo de este 

valor se determinaron como zonas sin cobertura, debido a que tiene una menor probabilidad de 

acceso al servicio. El cálculo se hará teniendo en cuenta el porcentaje del número de kilómetros 

con valores medidos de RXLEVEL SUB  superiores a ‐104 dBm sobre la distancia total recorrida. 

 

100%    (Ecuación 1) 

 

4.2.2 Accesibilidad del servicio 

Para el cálculo de este parámetro se usará el porcentaje de llamadas bloqueadas sobre el número 

total de intentos en una medición. 

ú ú

100%    (Ecuación 2) 

 

 

Page 28: Documento Jorge Cardenas

 

28  

 

Figura 19. Diagrama de flujo 

Page 29: Documento Jorge Cardenas

 

29  

4.2.3 Integridad del servicio 

Este parámetro se deba calcular de manera diferente para una Drive Test realizado con Qualipoc 

uno realizado con TEMS, debido a que TEMS no tiene la posibilidad de calificar MOS se utilizara el 

FER para el calcular este parámetro y además se utilizara el valor medido de RXQUAL SUB pero en 

menor grado para obtener la evaluación de este parámetro. 

Para Qualipoc la ecuación quedaría: 

20% .

80%      (Ecuación 3) 

  

Al valor de RXQUAL  SUB se le dará un peso de 20 porciento y será el número de kilómetros en los 

que este valor resulto igual a cero dividido el número total de kilómetros recorridos. Al MOS se le 

dará un peso del 80 porciento y será cálculo del MOS promedio de la medición sobre 5. 

Para TEMS la ecuación resultaría: 

20%

80%

  (Ecuación 4) 

El RXQUALSUB se calcula de la misma que para la medición realizada con Qualipoc y se calculara la 

distancia en la que el FER resulto ser cero sobre la distancia total recorrido. Se determina un peso 

de  80  porciento  para  el  cálculo  del  FER  debido  a  que  este  parámetro  tiene  una  relación más 

directa con la calidad final de la voz. 

 

4.2.4 Mantenimiento del servicio 

Se calculara el porcentaje de llamadas caídas dividido el número total de intentos. 

ú íú

100%    

(Ecuación 5) 

Page 30: Documento Jorge Cardenas

 

30  

 

 

El promedio de la sumatoria de los parámetros calculados, determinara la calificación global de la 

calidad del servicio de la región de la red donde se desarrollo el Drive Test y dará una noción muy 

importante  para  conocer  la  perspectiva  del  usuario  para  el  analista  de  la  red.  Todos  los 

parámetros  tienen  el  mismo  peso,  ya  que  cada  uno  representa  aspectos  importantes  del 

desempeño  de  la  red.  En  la  siguiente  figura  se  presentan  los  resultados  de  la  ciudad  de 

Villavicencio. 

ó    (Ecuación 6) 

 

Figura 20. Resultado del QoS en la ciudad de Villavicencio 

 

Page 31: Documento Jorge Cardenas

 

31  

 

La herramienta muestra el resultado de cada uno de los parámetros que componen la calidad del 

servicio, los computa y obtiene el resultado final del QoS, en este caso, la red GSM de la ciudad de 

Villavicencio obtuvo una calificación global de 94.29%, lo que indica un buen desempeño de la red. 

   

Page 32: Documento Jorge Cardenas

 

32  

 

5. RESULTADOS DE LA HERRAMIENTA 

 

En  este  capítulo  se  presentarán  algunos  resultados  obtenidos  en  Drive  Test  desarrollado  en 

diferentes vías y ciudades del país, con Qualipoc y TEMS: 

5.1 Drive Test con Qualipoc  

5.1.1 Arauca 

 

Figura 21. Mapa de cobertura y no cobertura, Arauca. 

Page 33: Documento Jorge Cardenas

 

33  

 

Figura 22. Mapa de RXQUALSUB  

 

Figura 23. MOS medido 

 

Page 34: Documento Jorge Cardenas

 

34  

 

Figura 24. Estadísticas de llamadas. 

 

Figura 25. Calculo de QoS en la ciudad de Arauca. 

Page 35: Documento Jorge Cardenas

 

35  

De acuerdo a los indicadores que son presentados por la herramienta, la red de telefonía móvil de 

este operador en la ciudad de Arauca, presenta una zona con problemas de cobertura al norte de 

la  ciudad  como  se  puede  observar  en  el mapa.  En  esta  zona  bajan  los  valores  del MOS,    se 

presentan altos valores de RXQUAL SUB y algunos bloqueos de llamadas. La calificación global de 

la calidad del servicio es de 90% lo cual indica un buen desempeño de la red, pero claramente se 

observa una zona que requiere atención del operador.  

5.1.2  Vía Bogotá‐Villavicencio 

Figura 26. Mapa de cobertura y no cobertura 

Page 36: Documento Jorge Cardenas

 

36  

 

Figura 27. Mapa RXQUAL SUB 

 

Figura 28. MOS medido 

Page 37: Documento Jorge Cardenas

 

37  

 

Figura 29. Estadísticas de llamadas. 

 

Figura 31. Cálculo de QoS en la vía Bogotá‐Villavicencio 

Page 38: Documento Jorge Cardenas

 

38  

En  esta  vía  se  detecto  una  alta  tasa  de  llamadas  bloqueadas,  por  lo  cual  el  indicador  de 

accesibilidad  del  servicio  tuvo  una  baja  calificación.  Los  otros  indicadores  tienen  valores 

aceptables. La calificación del QoS es de 86.58%, indicando un buen desempeño de la red en esta 

vía. Las zonas donde aparecen los espacios en blanco son los túneles, allí el GPS pierde la señal y 

no se registran valores. Además también el usuario no tiene cobertura al entrar al túnel, por eso el 

aumento en el número de llamadas bloqueadas. Pero en general en el resto de la vía el operador 

garantiza el servicio y ofrece buena calidad de voz. 

 

5.2 Drive Test con TEMS 

 

5.2.1 Villavicencio 

Figura 31. Estadísticas de llamadas 

 

Se presenta una sola caída de la llamada, no hay bloqueos. 

 

 

Page 39: Documento Jorge Cardenas

 

39  

 

Figura 32. Mapa de cobertura y no cobertura 

 Figura 33. RXQUAL SUB 

   

Page 40: Documento Jorge Cardenas

 

40  

 Las regiones en color corresponden a puntos donde el equipo no tomo valores de este parámetro. 

 

Figura 34. FER 

 

Figura 35. QoS calculado 

Page 41: Documento Jorge Cardenas

 

41  

 

ANALISIS Y CONCLUSIONES 

 

La herramienta desarrollada está en capacidad de mostrar visualmente la información de los KPIs 

recolectados en el Drive Test. Esto  se  logró  gracias  al desarrollo de un  Sistema de  Información 

Geográfica, el cual permite crear para cada KPI un mapa temático por colores para indicar el rango 

en el que se encuentra el valor de un KPI en un determinado punto. Analizando estos mapas es 

posible  determinar  las  zonas  que  presentan  bajos  índices  de  desempeño.  También  es  posible 

agregar mapas  en  formato  “Shape”  para  visualizarlos  en  la  herramienta.  Con  ésta  utilidad  es 

posible  ver  la base de datos  geográficamente  referenciada de  las  estaciones base. Haciendo  el 

análisis de las mediciones junto al análisis del diseño de la red es posible determinar el problema 

que  causa  un mal  desempeño  de  la  red,  como  altos  niveles  de  interferencia,  bajos  niveles  de 

potencia o exceso de tráfico en una región, en  la cual  la  infraestructura  instalada no es capaz de 

atender. 

Mediante el  cómputo de  los  indicadores de  calidad del  servicio, vistos en el  capítulo  cuatro,  se 

obtiene una calificación del desempeño en una región de la red, permitiendo al operador obtener 

una imagen de la percepción de los usuarios con el servicio de telefonía. El operador determinará 

si está  cumpliendo  con  los objetivos propuestos o  si debe  implementar mejoras en  la  red para 

incrementar su desempeño. Un organismo regulador también puede valerse de estos índices para 

realizar interventorías a los operadores. 

Las mediciones se realizaron en horas laborales, donde el tráfico generado es alto y la mediciones 

realizadas reflejan el comportamiento de la red en los momentos donde es más exigida. No es lo 

mismo  realizar  esta  medición  por  la  noche,  donde  muy  poca  gente  esta  usando  el  servicio, 

entonces todos los canales están libres y la relación Señal‐Interferencia es más alta. Una medición 

a estas horas reflejaría un mejor desempeño de la red, pero los datos no serían validos porque la 

medición no reflejaría la perspectiva del usuario. 

Page 42: Documento Jorge Cardenas

 

42  

En  algunas  ocasiones  cuando  ocurre  una  caída  de  llamada  o  un  bloqueo,  se  debe  a  eventos 

fortuitos,  como  el  tráfico  de  la  zona  en  ese  momento  o  a  la  presencia  de  alguna  fuente 

interferente  en  un  determinado  momento  de  tiempo.  Para  detectar  que  estos  eventos  de 

llamadas  se  deben  a problemas de  la  red o  a  casos  fortuitos,  los operadores deberían  realizar 

varios Drive Test a diferentes horas del día, con el fin si el problema es constante en  la red o se 

debió a efectos del ambiente por un momento del día. Pero  los operadores, no acostumbran a 

realizar la misma medición a diferentes horas del día, debido a los costos y al tiempo requerido. 

Los  equipos  de  medición  usados  para  estás  mediciones,  cuentan  con  teléfonos  usados 

comercialmente. Estos teléfonos están equipados con un software especial para realizar este tipo 

de mediciones. Como son  teléfonos convencionales, no  representan ninguna ventaja  respecto a 

los usados por  los usuarios, por  lo tanto  las mediciones reflejan realmente  la calidad del servicio 

prestado a los usuarios. 

Hoy en día está cobrando vigencia el uso de  la telefonía móvil en otros servicios como  Internet, 

SMS (Short Message Service), MMS (Multimedia Message Service); y con la llegada de la telefonía 

3G,  se  impondrá Video‐Llamada  y Video‐Streaming.  Los operadores estarán en  la obligación de 

verificar constantemente  la calidad ofrecida en estos servicios. La herramienta de análisis podría 

encaminarse en estos rumbos. Los equipos de medición deberán estar en  la capacidad de medir 

los KPIs  correspondientes a estos  servicios, pero el analista de  red debe  conocer  la  relación de 

cada  KPI  con  el  resultado  final  del  servicio  que  esta  recibiendo  un  usuario.  La  herramienta  se 

podría enfocar al análisis de los KPI de estos servicios y así determinar automáticamente como se 

esta  desempeñando  la  red  en  cuanto  a  la  prestación  de  estos  servicios.  Igualmente  los  datos 

deberán visualizarse en mapas para localizar las zonas en las que el servicio debe mejorarse. 

  

 

 

 

 

Page 43: Documento Jorge Cardenas

 

43  

REFERENCIAS BIBLIOGRAFICAS 

 

[1] ETSI, Digital  cellular  telecommunications  system  (Phase  2);Physical  layer  on  the  radio  path 

General description (GSM 05.01), 1996 

[2] T. Halonen, J. Romero, J. Melero, “GSM, GPRS and Edge Performance”, 2003. 

[3] ETSI,  Speech  Processing,  Transmission  and Quality  Aspects  (STQ); QoS  aspects  for  popular 

services in GSM and 3G networks; Part 1: Identification of Quality of Service criteria, 2007 

[4] ETSI,  Network  Aspects  (NA);  General  aspects  of  Quality  of  Service  (QoS)and  Network 

Performance (NP), 1994 

[5] ETSI,  Speech  Processing,  Transmission  and Quality  Aspects  (STQ); QoS  aspects  for  popular 

services in GSM and 3G networks; Part 2: Definition of Quality of Service parameters and their 

computation, 2007. 

[6] ETSI,  Speech  Processing,  Transmission  and Quality  Aspects  (STQ); QoS  aspects  for  popular 

services  in  GSM  and  3G  networks;  Part  3:  Typical  procedures  for  Quality  of  Service 

measurement equipment, 2007 

[7] Wikipedia,  Sistemas  de  información  Geográfica,  disponible  en,http: 

//es.wikipedia.org/wiki/Sistema_de_Informaci%C3%B3n_Geogr%C3% 

[8] Swissqual, Manual Qualipoc 

[9] Ericcson, Manual TEMS 

[10] Ericsson, Principios del Planeamiento Celular, Libro del Estudiante. 

[11] Ericsson, Measurements in TEMS Investigation GSM, White Paper 

   

Page 44: Documento Jorge Cardenas

 

44  

 

 

 

 

 

ANEXO A 

ESPECIFICACIONES TECNICAS QUALIPOC 

   

Page 45: Documento Jorge Cardenas

 

45  

 

 

Page 46: Documento Jorge Cardenas

 

46  

 

Page 47: Documento Jorge Cardenas

 

47  

 

 

 

 

 

 

ANEXO B 

 

ESPECIFICACIONES TECNICAS TEMS INVESTIGATION 

   

Page 48: Documento Jorge Cardenas

 

48  

 

Page 49: Documento Jorge Cardenas

 

49  

 

 

 

 

 

 

 

ANEXO C 

 

CODIGO DE LA HERRAMIENTA DESAROLLADO EN VISUAL BASIC 2005 

   

Page 50: Documento Jorge Cardenas

 

50  

Imports system.IO Imports System.Text Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Legend1.Map = AxMap1.GetOcx() End Sub Public Sub loadmap() Dim mapa As New MapWinGIS.Shapefile Dim handle As Integer mapa.Open(OpenFileDialog1.FileName) 'AxMap1.AddLayer(mapa, True) handle = Legend1.Layers.Add(mapa, True) Legend1.Map.LayerName(handle) = System.IO.Path.GetFileNameWithoutExtension(mapa.Filename) End Sub Public Sub AxMap1_MouseDownEvent(ByVal sender As System.Object, ByVal e As AxMapWinGIS._DMapEvents_MouseDownEvent) Handles AxMap1.MouseDownEvent End Sub Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem2.Click Form2.Show() End Sub Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem3.Click If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then loadmap() Else Me.Show() End If End Sub Private Sub ToolBar1_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles ToolBar1.ButtonClick Dim tag As String tag = e.Button.Tag Select Case tag Case "Zoom In" AxMap1.CursorMode = MapWinGIS.tkCursorMode.cmZoomIn Case "Zoom Out" AxMap1.CursorMode = MapWinGIS.tkCursorMode.cmZoomOut Case "Pan" AxMap1.CursorMode = MapWinGIS.tkCursorMode.cmPan Case "Full Extension" AxMap1.ZoomToMaxExtents() End Select

Page 51: Documento Jorge Cardenas

 

51  

End Sub Private Sub MenuItem4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem4.Click Legend1.Layers.Remove(Legend1.SelectedLayer) Legend1.Refresh() End Sub Private Sub Legend1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Legend1.Load End Sub End Class

 

 

Imports system.io Imports System.Text Public Class Form2 'Declaracion de variables Dim mapa, mapa1, mapa2, mapa3, mapa4, mapa5 As New MapWinGIS.Shapefile Dim linea As String Dim x As String = Nothing Dim y As String = Nothing Dim contadorlin As Integer = 0 Dim latitud, longitud, distx, disty As Single Dim ilatitud As Single = 0 Dim ilongitud As Single = 0 Dim rxlevsub As Integer Dim rxlev As String = Nothing Dim tab As Boolean Dim carac As Char Dim ntab As Integer = 0 Dim distxkm As Single = 0 Dim distykm As Single = 0 Dim distkmtot As Single = 0 Dim mnc1 As String = Nothing Dim mnc As Single Dim distr As Single = 0 Dim i As Integer = 0 Dim j As Integer = 0 Dim distcober, distnocober As Single Dim srxqual As String = Nothing Dim rxqual As Integer Dim smos As String = Nothing Dim mos As Single = 0 Dim ruta(500000) As MapWinGIS.Shape Dim point(500000) As MapWinGIS.Point Dim index, intentos As Integer Dim field As New MapWinGIS.Field Dim distancialimite As Single

Page 52: Documento Jorge Cardenas

 

52  

Dim distint, int1, int2, intt, distfer As Single Dim cov, acc, mant, qos As Single Dim bloqueadas As Integer Dim caidas As Integer Dim completadas As Integer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then calculo() Else Me.Show() End If End Sub Private Sub calculo() 'Me.Close() distancialimite = NumericUpDown1.Value Dim tabla As StreamReader = New StreamReader(OpenFileDialog1.OpenFile) 'Captura de datos linea = tabla.ReadLine() If RadioButton5.Checked = True Then 'Qualipoc If RadioButton1.Checked = True Then 'Rxlevel field.Name = "RxLevel" mapa.CreateNew("f:\rxlevel.shp", MapWinGIS.ShpfileType.SHP_POINT) mapa.EditInsertField(field, 0) Do While Not (linea Is Nothing) linea = tabla.ReadLine() If linea = Nothing Then Exit Do End If For i = 0 To linea.Length - 1 tab = Char.IsWhiteSpace(linea, i) carac = linea.Chars(i) If tab = True Then ntab += 1 End If If ntab = 8 Then x = x + linea.Chars(i + 1) End If If ntab = 9 Then y = y + linea.Chars(i + 1) End If If ntab = 25 Then rxlev = rxlev + linea.Chars(i + 1) End If If ntab = 4 Then mnc1 = mnc1 + linea.Chars(i + 1) End If Next i = 0 ntab = 0

Page 53: Documento Jorge Cardenas

 

53  

latitud = CSng(y) longitud = CSng(x) rxlevsub = CInt(rxlev) mnc = CSng(mnc1) distx = latitud - ilatitud disty = longitud - ilongitud distxkm = distx * 110 distykm = disty * 110 distr = Math.Sqrt(Math.Pow(distxkm, 2) + Math.Pow(distykm, 2)) 'Crear mapas point(contadorlin) = New MapWinGIS.Point() point(contadorlin).x = longitud point(contadorlin).y = latitud ruta(contadorlin) = New MapWinGIS.Shape() ruta(contadorlin).Create(MapWinGIS.ShpfileType.SHP_POINT) ruta(contadorlin).InsertPoint(point(contadorlin), 0) mapa.EditInsertShape(ruta(contadorlin), index) mapa.EditCellValue(0, index, rxlevsub) If distr < distancialimite Then distkmtot = distkmtot + distr If rxlevsub > -104 And rxlevsub < -30 And mnc = 103 Then distcober = distcober + distr Else distnocober = distnocober + distr End If End If ilatitud = latitud ilongitud = longitud x = Nothing y = Nothing rxlev = Nothing mnc1 = Nothing contadorlin += 1 index = contadorlin Loop cov = (distcober / distkmtot) * 100 End If If RadioButton2.Checked = True Then 'Qualipoc RxQual field.Name = "RxQual Sub" mapa1.CreateNew("f:\rxqual.shp", MapWinGIS.ShpfileType.SHP_POINT) mapa1.EditInsertField(field, 0) Do While Not (linea Is Nothing) linea = tabla.ReadLine() If linea = Nothing Then Exit Do End If For i = 0 To linea.Length - 1 tab = Char.IsWhiteSpace(linea, i) carac = linea.Chars(i)

Page 54: Documento Jorge Cardenas

 

54  

If tab = True Then ntab += 1 End If If ntab = 8 Then x = x + linea.Chars(i) End If If ntab = 9 Then y = y + linea.Chars(i) End If If ntab = 25 Then srxqual = srxqual + linea.Chars(i) End If If ntab = 4 Then mnc1 = mnc1 + linea.Chars(i + 1) End If Next i = 0 ntab = 0 latitud = CSng(y) longitud = CSng(x) rxqual = CInt(srxqual) mnc = CInt(mnc1) distx = latitud - ilatitud disty = longitud - ilongitud distxkm = distx * 110 distykm = disty * 110 distr = Math.Sqrt(Math.Pow(distxkm, 2) + Math.Pow(distykm, 2)) 'Crear mapa point(contadorlin) = New MapWinGIS.Point() point(contadorlin).x = longitud point(contadorlin).y = latitud ruta(contadorlin) = New MapWinGIS.Shape() ruta(contadorlin).Create(MapWinGIS.ShpfileType.SHP_POINT) ruta(contadorlin).InsertPoint(point(contadorlin), 0) mapa1.EditInsertShape(ruta(contadorlin), index) mapa1.EditCellValue(0, index, rxqual) If distr < distancialimite Then distkmtot = distkmtot + distr If rxqual = 0 And mnc = 103 Then distint = distint + distr End If End If ilatitud = latitud ilongitud = longitud x = Nothing y = Nothing srxqual = Nothing mnc1 = Nothing contadorlin += 1 index = contadorlin Loop int1 = (distint / distkmtot) * 20

Page 55: Documento Jorge Cardenas

 

55  

End If If RadioButton7.Checked = True Then 'Qualipoc MOS Dim summos As Single Dim mospromedio As Single field.Name = "MOS" mapa2.CreateNew("f:\mos.shp", MapWinGIS.ShpfileType.SHP_POINT) mapa2.EditInsertField(field, 0) Do While Not (linea Is Nothing) linea = tabla.ReadLine() If linea = Nothing Then Exit Do End If For i = 0 To linea.Length - 1 tab = Char.IsWhiteSpace(linea, i) carac = linea.Chars(i) If tab = True Then ntab += 1 End If If ntab = 8 Then x = x + linea.Chars(i) End If If ntab = 9 Then y = y + linea.Chars(i) End If If ntab = 25 Then smos = smos + linea.Chars(i) End If 'If ntab = 4 Then 'mnc1 = mnc1 + linea.Chars(i + 1) 'End If Next i = 0 ntab = 0 latitud = CSng(y) longitud = CSng(x) mos = CSng(smos) distx = latitud - ilatitud disty = longitud - ilongitud distxkm = distx * 110 distykm = disty * 110 distr = Math.Sqrt(Math.Pow(distxkm, 2) + Math.Pow(distykm, 2)) 'Crear mapa point(contadorlin) = New MapWinGIS.Point() point(contadorlin).x = longitud point(contadorlin).y = latitud ruta(contadorlin) = New MapWinGIS.Shape() ruta(contadorlin).Create(MapWinGIS.ShpfileType.SHP_POINT) ruta(contadorlin).InsertPoint(point(contadorlin), 0) mapa2.EditInsertShape(ruta(contadorlin), index) mapa2.EditCellValue(0, index, mos)

Page 56: Documento Jorge Cardenas

 

56  

ilatitud = latitud ilongitud = longitud x = Nothing y = Nothing smos = Nothing contadorlin += 1 index = contadorlin summos = summos + mos Loop mospromedio = summos / contadorlin int2 = (mospromedio / 4.5) * 80 End If 'Estadisticas de llamadas If RadioButton8.Checked = True Then Dim accesoser As Integer = 0 Dim mantser As Integer = 0 Dim estatus As String = Nothing Dim cadena As String Dim ins As Boolean field.Name = "Estatus de llamada" mapa3.CreateNew("f:\llamadas.shp", MapWinGIS.ShpfileType.SHP_POINT) mapa3.EditInsertField(field, 0) Do While Not (linea Is Nothing) linea = tabla.ReadLine() If linea = Nothing Then Exit Do End If For i = 0 To linea.Length - 1 tab = Char.IsWhiteSpace(linea, i) carac = linea.Chars(i) If tab = True Then ntab += 1 End If If ntab = 8 Then x = x + linea.Chars(i) End If If ntab = 9 Then y = y + linea.Chars(i) End If If ntab = 25 Then estatus = estatus + linea.Chars(i) End If If ntab = 4 Then mnc1 = mnc1 + linea.Chars(i + 1) End If Next i = 0 ntab = 0 latitud = CSng(y) longitud = CSng(x) cadena = estatus.Substring(2, 6) distx = latitud - ilatitud disty = longitud - ilongitud

Page 57: Documento Jorge Cardenas

 

57  

distxkm = distx * 110 distykm = disty * 110 distr = Math.Sqrt(Math.Pow(distxkm, 2) + Math.Pow(distykm, 2)) 'Crear mapa point(contadorlin) = New MapWinGIS.Point() point(contadorlin).x = longitud point(contadorlin).y = latitud ruta(contadorlin) = New MapWinGIS.Shape() ruta(contadorlin).Create(MapWinGIS.ShpfileType.SHP_POINT) ruta(contadorlin).InsertPoint(point(contadorlin), 0) mapa3.EditInsertShape(ruta(contadorlin), index) ins = mapa3.EditCellValue(0, index, cadena) If cadena = "Failed" Then accesoser += 1 ElseIf cadena = "Droppe" Then mantser += 1 End If ilatitud = latitud ilongitud = longitud x = Nothing y = Nothing estatus = Nothing contadorlin += 1 index = contadorlin Loop acc = (1 - (accesoser / contadorlin)) * 100 mant = (1 - (mantser / contadorlin)) * 100 End If End If 'TEMS If RadioButton6.Checked = True Then If RadioButton1.Checked = True Then field.Name = "RxLevel" mapa.CreateNew("f:\rxlevel.shp", MapWinGIS.ShpfileType.SHP_POINT) mapa.EditInsertField(field, 0) 'mapa.EditCellValue(0, index, rxlevsub) End If If RadioButton2.Checked = True Then field.Name = "RxQual" mapa1.CreateNew("f:\rxqual.shp", MapWinGIS.ShpfileType.SHP_POINT) mapa1.EditInsertField(field, 0) 'mapa.EditCellValue(0, index, rxqual) End If If RadioButton3.Checked = True Then field.Name = "FER" mapa4.CreateNew("f:\fer.shp", MapWinGIS.ShpfileType.SHP_POINT) mapa4.EditInsertField(field, 0) 'mapa.EditCellValue(0, index, fer) End If

Page 58: Documento Jorge Cardenas

 

58  

If RadioButton4.Checked = True Then field.Name = "Eventos de llamada" mapa5.CreateNew("f:\Eventos de llamada", MapWinGIS.ShpfileType.SHP_POINT) mapa5.EditInsertField(field, 0) 'mapa.EditCellValue(0, index, estado) End If Dim sfer As String = Nothing Dim sci As String = Nothing Dim fer As Integer Dim status As String = Nothing Dim estado As String Do While Not (linea Is Nothing) linea = tabla.ReadLine() If linea = Nothing Then Exit Do End If For i = 0 To linea.Length - 1 tab = Char.IsWhiteSpace(linea, i) carac = linea.Chars(i) If tab = True Then ntab += 1 End If If ntab = 10 Then x = x + linea.Chars(i) End If If ntab = 11 Then y = y + linea.Chars(i) End If If ntab = 2 Then sfer = sfer + linea.Chars(i) End If If ntab = 3 Then mnc1 = mnc1 + linea.Chars(i) End If If ntab = 5 Then rxlev = rxlev + linea.Chars(i) End If If ntab = 7 Then srxqual = srxqual + linea.Chars(i) End If If ntab = 9 Then sci = sci + linea.Chars(i) End If If ntab = 12 Or ntab = 13 Or ntab = 14 Then status = status + linea.Chars(i) End If Next i = 0 ntab = 0 latitud = CSng(y) longitud = CSng(x) If status.Length > 10 Then intentos += 1

Page 59: Documento Jorge Cardenas

 

59  

estado = status.Substring(status.Length - 7, 6) Else : estado = "X" End If mnc = CInt(mnc1) rxlevsub = CInt(rxlev) rxqual = CInt(srxqual) fer = CInt(sfer) 'ci = CInt(sci) distx = latitud - ilatitud disty = longitud - ilongitud distxkm = distx * 110 distykm = disty * 110 distr = Math.Sqrt(Math.Pow(distxkm, 2) + Math.Pow(distykm, 2)) 'Crear mapa point(contadorlin) = New MapWinGIS.Point() point(contadorlin).x = longitud point(contadorlin).y = latitud ruta(contadorlin) = New MapWinGIS.Shape() ruta(contadorlin).Create(MapWinGIS.ShpfileType.SHP_POINT) ruta(contadorlin).InsertPoint(point(contadorlin), 0) 'mapa.EditInsertShape(ruta(contadorlin), index) If RadioButton1.Checked = True Then 'field.Name = "RxLevel" 'mapa.CreateNew("f:\rxlevel.shp", MapWinGIS.ShpfileType.SHP_POINT) 'mapa.EditInsertField(field, 0) mapa.EditInsertShape(ruta(contadorlin), index) mapa.EditCellValue(0, index, rxlevsub) If distr < distancialimite Then distkmtot = distkmtot + distr If rxlevsub > -104 And rxlevsub < -30 And mnc = 103 Then distcober = distcober + distr Else distnocober = distnocober + distr End If End If cov = (distcober / distkmtot) * 100 End If If RadioButton2.Checked = True Then 'field.Name = "RxQual" 'mapa.CreateNew("f:\rxqual.shp", MapWinGIS.ShpfileType.SHP_POINT) 'mapa.EditInsertField(field, 0) mapa1.EditInsertShape(ruta(contadorlin), index) mapa1.EditCellValue(0, index, rxqual) If distr < distancialimite Then distkmtot = distkmtot + distr If rxqual = 0 And mnc = 103 Then distint = distint + distr End If End If int1 = (distint / distkmtot) * 20

Page 60: Documento Jorge Cardenas

 

60  

End If If RadioButton3.Checked = True Then 'field.Name = "FER" 'mapa.CreateNew("f:\fer.shp", MapWinGIS.ShpfileType.SHP_POINT) 'mapa.EditInsertField(field, 0) mapa4.EditInsertShape(ruta(contadorlin), index) mapa4.EditCellValue(0, index, fer) If distr < distancialimite Then distkmtot = distkmtot + distr If fer = 0 And mnc = 103 Then distfer = distfer + distr End If End If int2 = (distfer / distkmtot) * 80 End If If RadioButton4.Checked = True Then 'field.Name = "Eventos de llamada" 'mapa.CreateNew("f:\Eventos de llamada", MapWinGIS.ShpfileType.SHP_POINT) 'mapa.EditInsertField(field, 0) Dim insert As Boolean mapa5.EditInsertShape(ruta(contadorlin), index) insert = mapa5.EditCellValue(0, index, estado) If estado = "d Call" Then caidas += 1 ElseIf estado = "Droppe" Then bloqueadas += 1 ElseIf estado = "ll End" Then completadas += 1 End If intentos = caidas + bloqueadas + completadas acc = (1 - (bloqueadas / intentos)) * 100 mant = (1 - (caidas / intentos)) * 100 End If ilatitud = latitud ilongitud = longitud x = Nothing y = Nothing status = Nothing contadorlin += 1 index = contadorlin rxlev = Nothing srxqual = Nothing sfer = Nothing sci = Nothing mnc1 = Nothing Loop End If contadorlin = 0 distkmtot = 0 'TextBox1.Text = distkmtot 'TextBox2.Text = distcober 'TextBox3.Text = distnocober

Page 61: Documento Jorge Cardenas

 

61  

'TextBox4.Text = (distcober / distkmtot) * 100 End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim j As Integer 'Qualipoc 'If RadioButton5.Checked = True Then 'Añadir mapa Rxlevel If RadioButton1.Checked = True Then Form1.PictureBox1.ImageLocation = ("C:\Documents and Settings\jhcardenas\Mis documentos\Visual Studio 2005\Projects\tesis\tesis\Resources\leyenda cobertura.jpg") mapa.SaveAs("F:\mapas\rxlevel.shp") Dim hroute As Integer Dim cobertura As Single hroute = Form1.Legend1.Layers.Add(mapa, True) Form1.Legend1.Map.LayerName(hroute) = System.IO.Path.GetFileNameWithoutExtension(mapa.Filename) For j = 0 To mapa.NumShapes - 1 cobertura = mapa.CellValue(0, j) Form1.AxMap1.set_ShapePointSize(hroute, j, 5) If cobertura < -104 Or cobertura > -20 Then Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(255, 0, 0))) ElseIf cobertura >= -104 And cobertura < -20 Then Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(0, 255, 0))) End If Next End If If RadioButton2.Checked = True Then 'Mapa rxqual Form1.PictureBox1.ImageLocation = ("C:\Documents and Settings\jhcardenas\Mis documentos\Visual Studio 2005\Projects\tesis\tesis\Resources\leyenda rxqual.jpg") mapa1.SaveAs("F:\mapas\rxqual.shp") Dim hroute As Integer Dim cal As Integer hroute = Form1.Legend1.Layers.Add(mapa1, True) Form1.Legend1.Map.LayerName(hroute) = System.IO.Path.GetFileNameWithoutExtension(mapa1.Filename) For j = 0 To mapa1.NumShapes - 1 cal = mapa1.CellValue(0, j) Form1.AxMap1.set_ShapePointSize(hroute, j, 8) Select Case cal Case Is = 7 Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(255, 0, 0))) Case Is = 6 Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(255, 100, 0))) Case Is = 5

Page 62: Documento Jorge Cardenas

 

62  

Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(255, 200, 0))) Case Is = 4 Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(255, 255, 0))) Case Is = 3 Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(0, 0, 255))) Case Is = 2 Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(0, 255, 255))) Case Is = 1 Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(0, 255, 100))) Case Is = 0 Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(0, 255, 0))) End Select Next End If 'End If If RadioButton7.Checked = True Then Form1.PictureBox1.ImageLocation = ("C:\Documents and Settings\jhcardenas\Mis documentos\Visual Studio 2005\Projects\tesis\tesis\Resources\leyenda mos.jpg") mapa2.SaveAs("F:\mapas\mos.shp") Dim hroute As Integer Dim lq As Single hroute = Form1.Legend1.Layers.Add(mapa2, True) Form1.Legend1.Map.LayerName(hroute) = System.IO.Path.GetFileNameWithoutExtension(mapa2.Filename) For j = 0 To mapa2.NumShapes - 1 lq = mapa2.CellValue(0, j) Form1.AxMap1.set_ShapePointSize(hroute, j, 6) If lq <= 2.5 Then Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(255, 0, 0))) ElseIf lq > 2.5 And lq <= 3.2 Then Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(255, 255, 0))) ElseIf lq > 3.2 And lq <= 3.8 Then Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(0, 0, 255))) ElseIf lq > 3.8 Then Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(0, 255, 0))) End If Next End If If RadioButton8.Checked = True Then Form1.PictureBox1.ImageLocation = ("C:\Documents and Settings\jhcardenas\Mis documentos\Visual Studio 2005\Projects\tesis\tesis\Resources\leyenda estados de llamadas.jpg") mapa3.SaveAs("F:\mapas\llamadas.shp")

Page 63: Documento Jorge Cardenas

 

63  

Dim hroute As Integer Dim llamadas As String hroute = Form1.Legend1.Layers.Add(mapa3, True) Form1.Legend1.Map.LayerName(hroute) = System.IO.Path.GetFileNameWithoutExtension(mapa3.Filename) For j = 0 To mapa3.NumShapes - 1 llamadas = mapa3.CellValue(0, j) Form1.AxMap1.set_ShapePointSize(hroute, j, 10) Select Case llamadas Case "Comple" Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(0, 255, 0))) Case "Failed" Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(255, 255, 0))) Case "Droppe" Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(255, 0, 0))) End Select Next End If If RadioButton4.Checked = True Then Form1.PictureBox1.ImageLocation = ("C:\Documents and Settings\jhcardenas\Mis documentos\Visual Studio 2005\Projects\tesis\tesis\Resources\leyenda estados de llamadas.jpg") mapa5.SaveAs("F:\mapas\llamadas.shp") Dim hroute As Integer Dim llamadas As String hroute = Form1.Legend1.Layers.Add(mapa5, True) Form1.Legend1.Map.LayerName(hroute) = System.IO.Path.GetFileNameWithoutExtension(mapa5.Filename) For j = 0 To mapa5.NumShapes - 1 llamadas = mapa5.CellValue(0, j) Form1.AxMap1.set_ShapePointSize(hroute, j, 10) If llamadas = "ll End" Then Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(0, 255, 0))) ElseIf llamadas = "d Call" Then Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(255, 255, 0))) ElseIf llamadas = "Droppe" Then Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(255, 0, 0))) Else Form1.AxMap1.set_ShapePointSize(hroute, j, 1) Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(255, 255, 255))) End If Next End If If RadioButton3.Checked = True Then Form1.PictureBox1.ImageLocation = ("C:\Documents and Settings\jhcardenas\Mis documentos\Visual Studio 2005\Projects\tesis\tesis\Resources\fer.jpg")

Page 64: Documento Jorge Cardenas

 

64  

mapa4.SaveAs("F:\mapas\fer.shp") Dim hroute As Integer Dim frame1 As String hroute = Form1.Legend1.Layers.Add(mapa4, True) Form1.Legend1.Map.LayerName(hroute) = System.IO.Path.GetFileNameWithoutExtension(mapa4.Filename) For j = 0 To mapa4.NumShapes - 1 frame1 = mapa4.CellValue(0, j) Form1.AxMap1.set_ShapePointSize(hroute, j, 8) If frame1 <= 2 And frame1 >= 0 Then Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(0, 255, 0))) ElseIf frame1 > 2 And frame1 <= 5 Then Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(255, 0, 255))) ElseIf frame1 > 5 Then Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(255, 0, 0))) End If Next End If 'Me.Close() End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click TextBox1.Text = cov intt = int1 + int2 TextBox4.Text = intt TextBox5.Text = acc TextBox3.Text = mant qos = (cov + intt + acc + mant) / 4 TextBox2.Text = qos End Sub End Class