• No results found

En la figura 3.9 se muestra el método principal “main” del programa del servicio

controlador de la tarjeta controladora, este método pertenece a la clase definida

como ControladorGPIB.java.

70

Inicializar variables generales

Se crea un objeto que atenderá las peticiones de los usuarios Main

Crear un objeto tipo servidorGPIB “servidor”

Crear e inicializar un objeto tipo “TektronixTDS640A”

Se crea un objeto con algunas funcionalidades y

caracteristicas del osciloscopio

Método del objeto servidorGPIB, levanta al thread „ThreadServidor‟ que atiende las peticiones del usuario. servidor.escuchar

Informacion del cliente lista==true

Decodificar en el vector si la informacion es para el Tektronix

S == hardcopy S == acquire S == select hardcopy acquire select

Se quiere configurar la opcion HARDCOPY

Se quiere configurar la opcion ACQUIRE

Se quiere configurar la opcion SELECT

El ThreadServidor activara la bandera InfoClienteLista cuando se tenga una peticion y la devuelve en “S” Informacion Para Tektronix NO SI NO SI NO SI NO SI NO SI

Decodificar el vector string “s” con las peticiones del cliente

S == run/stop Run/stop Se quiere configurar la opcion RUN/STOP

SI

71

El diagrama de flujo de la figura 3.9 es desglosado en las siguientes etapas:

1. Inicializar variables de propósito general: en esta primera se declaran e

inicializan variables de carácter general tal como contadores y variables

para guardar datos temporales.

2. Crear un objeto del tipo ServidorGPIB con nombre “Servidor”, el objeto de

este es permitir la recepción de peticiones de un cliente y generar una

respuesta en base a la misma petición.

3. Crear e inicializar un objeto tipo Tektronix TDS640AS con nombre

“Osciloscopio” el cual hereda de una clase base abstracta madre llamada

Instrumentos GPIB, este proceso se describe en la figura 3.10

4. Llamar al método “escuchar” del objeto tipo “servidorGPIB” para comenzar

a esperar por peticiones del cliente por medio del inicio de un hilo (thread).

5. Cuando una petición esta lista entonces el hilo (thread) que inicio con el

método “escuchar” activa la bandera “InfoClientLista” y es cuando se

procede a descifrar el contenido de este de lo contrario se sigue

esperando por dicha información.

6. Se revisa cual es el instrumento que el cliente desea controlar, si es el

Osciloscopio Tektronix se procede a seguir analizando los datos, de lo

contrario se espera por mas peticiones.

7. Si los datos o ordenes son para el Osciloscopio entonces se revisa que

control se quiere acceder en forma remota, entre los que se revisan están:

Acquire, Hardcopy, Select.

3.3.4.1 Inicialización del servicio manejador de la tarjeta GPIB

La inicialización se refiere a la carga de configuración de la tarjeta GPIB como la

de los instrumentos conectados al bus. La carga de la configuración de la tarjeta

se realiza cuando creamos por primera vez un objeto tipo “InstrumentoGPIB” ver

tabla 3.4, esto se realiza según los siguientes pasos y se describe en la figura

3.10:

72

Si se construye por primera

ves entonces inicializar

Datos inicializados= verdadero

Se crea un objeto tipo

“TarjetaBD”

El objeto tipo “ComunicacionGPIB”

establece comunicacion con la tarjeta y

crea dos thread para transmitir y recibir

datos

Datos inicializados

==

verdadero

SI

NO

Crear un objeto TarjetaBD

TarjetaBD.datosTarjeta

Se accesa a los datos de la

tarjeta almacenados en la base

de datos

Crear un objeto

ComunicacionGPIB

fin

InstrumentosGPIB

Figura 3.10. Método constructor de objetos que extienden de “InstrumentosGPIB”

 Se revisa si la configuración de la tarjeta controladora, ha sido leída desde

la base de datos sino se finaliza la ejecución del método.

 Si es primera vez que se construirá un objeto que hereda de “Instrumento”

entonces:

 Se indica datos inicializados.

Se crea un objeto de tipo “TarjetaBD” y se accede a su método “Datos

tarjeta” que obtiene los parámetros de configuración de la tarjeta

controladora como la dirección IP y el numero de puerto TCP.

Se crea un objeto tipo “ComunicacionGPIB” que se encarga de establecer

un socket TCP-IP con la tarjeta y además se levantan dos thread que

utilizan el mismo socket de comunicación uno para transmitir y otro para

recibir datos de la tarjeta.

73

3.3.4.2 Inicialización del software controlador del Tektronix TDS640A

La inicialización del manejador del Osciloscopio Tektronix se muestra en el

diagrama de flujo de la figura 3.11, donde se ejecuta el método constructor

respectivo que se describe a continuación y es el llamado el método “inicializar”

que carga la configuración del medidor y los respectivos parámetros para su

adecuado control en forma remota.

Crear un thread para el tratamiento

de datos provenientes de la tarjeta

controladora

Este thread permanece en

comunicación con el thread de

recepción del objeto

“ComunicacionGPIB”

Cargar donfiguracion actual del

instrumento

Obtener de la base de datos la

direccion GPIB, ID y el nombre de la

tabla del instrumento en la base de

datos

Cargar comandos de configuracion

almacenados en la tabla del medidor

Se realiza una serie de

interrogaciones al medidor

acerca de su configuracion y

luego se actualiza la respectiva

tabla

fin

inicializar

Figura 3.11 Diagrama de flujo del método “inicializar” del objeto “TektronixTDS640A”

Descripción del método Inicializar del objeto Tektronix :

 Establecer una conexión con la base de datos de la tarjeta controladora

para obtener datos de configuración del instrumento Tektronix tales como

dirección GPIB, identificador del instrumento (ID) y el nombre de la

correspondiente tabla en la base de datos de la tarjeta controladora.

 Crea un thread para el instrumento con el fin de recibir los datos

destinados para el y poder decidir el tratamiento de estos datos que

pueden ser respuestas a peticiones del instrumento o petición de servicio

por parte del mismo, este thread realmente no se comunica directamente

con la tarjeta sino espera a que el thread de recepción indique que hay

datos provenientes de la tarjeta GPIB.

74

 Se cargan de la tabla respectiva en la base de datos los conjuntos de

comandos que pueden ser enviados al medidor.

 Se interroga al medidor por su configuración actual para actualizar su

estado en sus correspondientes campos de la tabla en la base de datos.