Proyecto Fin de Carrera Desarrollo de un conjunto de módulos OCX en Visual Basic para un sistema de adquisición de datos vía USB

Documentos relacionados
Manual de Visual Basic Principiante Autor: Jorge Alvarez

Tutorial de MuseScore, editor de partituras Primeros pasos

Tema 1. Introducción a OpenOffice Writer

GUÍA DE USUARIO: HAIKU DECK

Microsoft Office Word

FUNDAMENTOS DE INFORMÁTICA

PROGRAMACION EN VISUAL BASIC

Programación en Visual Basic Ricardo Rodríguez García

Accede a la siguiente dirección para obtener un ID de Adobe:

MICROSOFT EXCEL 2007

OPERACIONES CON UNIDADES, DIRECTORIOS Y ARCHIVOS (3 puntos = 1 test + 2 supuesto práctico)

Asociación Gaditana de Jubilados Docentes Informática Básica Cap 5. Curso de informática básica: Como descargar e instalar programas

Componer imágenes utilizando diferentes fuentes que proporcionan las capas: fotos digitales, textos, transparencias, etc.

Universidad José Carlos Mariátegui

Manual de Instrucciones para el uso con un ordenador

INSTITUCION EDUCATIVA MANUEL ANGEL ANACHURY AREA: TECNOLOGIA E INFORMATICA

REPRODUCCIÓN Y ARCHIVO

Transferir de Forex Tester 2 a Forex Tester 3

CLASE 1 de VISUAL BASIC (V6)

Luxómetro Registrador HD450 PRESENTACIÓN DEL SOFTWARE

ARCHIVOS Y CARPETAS 1

Editor de código Visual Basic. Lista de miembros automática, sugerencias de sintaxis, autocompletado y otras opciones. (CU00313A)

Requisitos mínimos del sistema. 3. Comenzar la instalación. 2. Instalación de software Después de la instalación. 3

MANUAL PARA PHOTO STORY 3

INSTRUCCIONES DE INSTALACIÓN DEL SOFTWARE FLAV1.0

Nimbus, servicios en la nube. Google Drive para PC

Práctica 2. Controles Básicos.

Buttons (Command Buttons) en Visual Basic. Propiedades y ejemplos. Código asociado a eventos. (CU00321A)

Diseño de página y configurar un documento

SESIÓN 9 TRABAJO CON LOS OBJETOS GRÁFICOS DE POWER POINT

Aplicativos: Cómo se realiza la descarga e instalación de Aplicativos AFIP?

VBA. Visual Basic para Aplicaciones. Guía 1. Visual Basic para Aplicaciones en Office 1

Introducción a Windows 98

PERIODO 3 HOJA DE CÁLCULO CONCEPTOS INTERMEDIOS OPERACIONES CON CELDAS, FILAS Y COLUMNAS EN EXCEL SELECCIONAR COPIAR MOVER BORRAR

Como configurar el servidor y el cliente de FTP paso a paso

1. PRIMEROS PASOS EN POWERPOINT... 3

CUESTIONES PREVIAS. 1) No lleva altavoces. Lleva instalada una barra de sonido en la parte superior, pero funciona de forma independiente.

Archivos Datanet. Si desea acceder directamente a un capítulo, posicionese sobre el número de página y haga clic.

UTILIZACIÓN DE PLANTILLAS Y ASISTENTES QUE INCORPORA LA APLICACIÓN Y CREACIÓN DE PLANTILLAS PROPIAS

Descubre Drive. Encuentra tus archivos fácilmente con Drive y mantén todos los documentos seguros y protegidos.

MANUAL PREZI. Elaboración: Ing. Jocabed Bautista. 1. INGRESAR A LA PAGINA: prezi.com y dar click en Registrarse

TEMA 3: DIBUJO VECTORIAL. Realización de dibujos vectoriales con la herramienta OpenOffice Draw

Web Services. Visual Basic 2005 Ejemplo de Web Services. Alumnos Colaboradores: Rosario Avendaño Mirta Frias Laura Langer

BLOQUE Qué productos no encuentra en las tiendas de la localidad? 4. A partir de qué horario le gustaría encontrar abierta una tienda?

A la derecha de este botón irán apareciendo todas las aplicaciones abiertas en ese momento en el sistema.

INSTITUCION EDUCATIVA COLEGIO TOLEDO PLATA PLAN DE ÁREA DE TECNOLOGIA E INFORMATICA GRADO 8º

INDICE Parte 1. Visual Basic Capitulo 1. Qué es Visual Basic? Capitulo 22. Mi Primera Aplicación Capitulo 3. Elementos del lenguaje

Objetivo: Construir un programa integrando sentencias de decisión MARCO TEÓRICO

INTRODUCCIÓN THINK-CELL. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Práctica 3 Ambiente de desarrollo Visual

HRS-9 Batch Processing Tool. HRS-9 Houston Texas 2011

Como hacer un troyano en Visual Basic 6.0

Manual de instalación y actualización de la aplicación Sigma

El Cuadro de herramientas de Paint

UNIVERSIDAD DE ALCALÁ. E.U.P. DEPARTAMENTO DE ELECTRÓNICA.

Ejercicio: Creación de Bosquejos *

Práctica 1. Entorno del Sistema Operativo Windows XP

1.1 Presentación de 3ds Max 2010

En la parte inferior de la pantalla se podrá ver el estado de la última copia y la fecha y hora actual.

Paint Otro de los accesorios que incorpora Windows 95 es Microsoft Paint, un sencillo programa de Dibujo.

PLANTILLAS. Para utilizar nuestra platilla debemos:

PROGRAMAS PARA LA CLASSPAD MANAGER.

Trabajar con Tablas. capítulo 07

Actualización FX Store

1. INSTALACIÓN DEL FICHERO EN EL SISTEMA DE NAVEGACIÓN

Manual de instalación de PVR-TV USB2.0

ojovoz Una plataforma de código abierto para la creación de memorias comunitarias. Manual del usuario

Cómo escribo mis textos?

MANUAL DEL AULA VIRTUAL (MOODLE)

PIC MICRO ESTUDIO Display de 2 y4 Dígitos RS-232 (Clave 701 y 702) Guía de Uso

OPENOFFICE IMPRESS. Creación básica de presentaciones digitales

Sentencias o instrucciones en Visual BASIC

Tabletas en el aula. Mi primera hoja de cálculo con WPS Office. Edición Autor: Fernando Posada Prieto canaltic.com

Manual de Windows XP Copyleft - Jorge Sánchez 2005

INSTITUTO ELECTORAL DEL ESTADO DE MÉXICO SECRETARÍA EJECUTIVA UNIDAD DE INFORMÁTICA Y ESTADÍSTICA

Cómo consigo una cuenta en Twitter? TUTORIAL. Por Mtro. Juan Manuel Manzano Torres

Outlook Express de la A a la Z

Word Básico Word Básico

Herramienta PowToon. 2. Tecleamos en nuestro navegador la dirección (versión

Informática Primer año

C.F.G.S. DESARROLLO DE APLICACIONES INFORMÁTICAS. MÓDULO: Diseño y realización de servicios de presentación en entornos gráficos.

Profesor: Marcelo Rebellato. Teórico 3. Teclado

Movimiento rápido en la hoja

MANUAL DE INSTALACIÓN Y USO DE FBackup

Gestión de bases de datos de mysql desde Dreamweaver

Conectar el reloj BB-runner a Sporttracks

Reconocer la importancia del paquete Microsoft Office 2010 en todos los campos de nuestra vida diaria.

Caso práctico: Proyecto Usuario y contraseña

Primeros pasos en Word capítulo 01

Fundamentos de PowerPoint

Facebook Business Manager

COLEGIO PABLO DE TARSO IED CONSTRUCCION DE PROYECTOS DE VIDA PRODUCTIVOS DREAMWEAVER UNO- PRÁCTICAS DOC RAUL MONROY PAMPLONA

MHI Reefer Data Control System Versión 5.03

Fundamentos de Word. Identificar los elementos de la interfaz de usuario que puede usar para realizar las tareas básicas.

SESIÓN 3 WINDOWS. I. CONTENIDOS 1. Iniciación a Windows. 2. Escritorio. 3. Panel de control.

Tecnologías de la Información. Apuntes de programación en Visual Basic 6.0

Manual de Usuario Webmail Horde

INTRODUCCION A POWER POINT

Guías de Windows XP. Primeros pasos en Windows XP. Contenidos. 1. El escritorio de Windows

Tutorial sobre EndNote

Transcripción:

Proyecto Fin de Carrera Desarrollo de un conjunto de módulos OCX en Visual Basic para un sistema de adquisición de datos vía USB Ioannis Lykidis Sokratis Partalas Donostia 2004

ÍNDICE CAPÍTULO 1... 3 ARCHIVOS OCX CAPÍTULO 2... 4 DESCRIPCIÓN DE LOS ARCHIVOS OCX CAPÍTULO 3... 5 DESCRIPCIÓN DEL PROGRAMA PRINCIPAL CAPÍTULO 4... 10 FORMULARIOS CON CIRCUITOS CAPÍTULO 5... 12 PROBLEMAS DURANTE LA CREACIÓN DEL PROYECTO CAPÍTULO 6... 14 EL CÓDIGO 2

Capítulo 1.0 Archivos OCX 1.1 Diseño de archivo OCX Para diseñar los archivos OCX el usuario tiene que instalar a su ordenador el programa Microsoft Visual Studio 6.0. Después debe seguir los próximos pasos: Cuando está en su escritorio elige la opción Inicio. Después va a los programas y elige Microsoft Visual Studio 6.0 y Visual Basic. Al cabo de paso anterior en su pantalla aparece un menú donde el usuario debe elegir la opción ActiveX Control. Escribe el código y diseña los formularios que quiere. Guarda el proyecto que ha hecho. 1.2 Creación de archivo OCX Cuando el usuario ha guardado su proyecto, va a la opción Archivo y elige Make ocx file. Lo guarda otra vez y el archivo OCX está preparado para utilizarlo. 1.3 Diseño de archivo EXE con archivos OCX El usuario debe hacer los dos primeros pasos en párrafo 1.1 pero en lugar de ActiveX Control elige Standard EXE. Para poner los archivos OCX sigue los próximos pasos: Lleva el cursor a Tool box, que está a la izquierda de la pantalla, y hace derecho click y elige la opción Components. Este momento aparece una formulario que se llama Controls y hace un click al botón que escribe Browse para encontrar los archivos OCX. Cuando lo ha encontrado, lo elige y pulsa el botón Abrir. El archivo aparece a la formulario Controls donde ahora será elegido, y el usuario puede hacer un click al botón Apply y después close. Ahora en Tool box aparece el dibujo de archivo OCX. Elige este icono y el cursor sobre el formulario transforme a una cruz. A continuación hace click a un punto y arrastra el cruz hasta el punto que el OCX aparecerá todo. Ahora el usuario puede escribir el código para utilizar el OCX, cuando terminará, guardará el proyecto y para crear una aplicación debe que ir a la opción Archivo y elegir Make exe file. Después esto el archivo EXE está preparado para utilizarlo. 3

Capítulo 2.0 Descripción de los archivos OCX 2.1 Los archivos OCX Los archivos OCX que se están utilizando en este programa son: a. Analogiko05 b. Analogiko55 c. Bar05 d. Bar55 e. Grafikh05 f. Grafikh55 g. Gain h. Metro 2.2 Utilización de archivos OCX Para utilizar un archivo OCX dentro en un programa el usuario tiene que utilizar los métodos con esta manera: Los métodos son los siguientes: NombreOCX.Método(parámetro) Archivos Métodos Parámetros Descripción OCX Analogiko05 Analogiko a La amplitud de parámetro a es 0 255 (0-5 V) y representa la amplitud de la Scroll Bar y lo utiliza para mover la línea en el voltímetro. Analogiko55 Analogiko a La amplitud de parámetro a es 0 510 (-5 - +5 V) y representa la amplitud de la Scroll Bar y lo utiliza para mover la línea en el voltímetro. Bar05 Bar a La amplitud de parámetro a es 0 255 (0-5 V) y representa la amplitud de la Scroll Bar y lo utiliza para mover la línea en el voltímetro. Bar55 Bar a La amplitud de parámetro a es 0 510 (-5 - +5 V) y representa la amplitud de la Scroll Bar y lo utiliza para mover la línea en el voltímetro. Grafikh05 Paint a La amplitud de parámetro a es 0 255 (0-5 V) y representa la amplitud de la Scroll Bar y lo utiliza para dibujar el voltaje en un sistema X,Y. Grafikh55 Paint a La amplitud de parámetro a es 0 510 (-5 - +5 V) y representa la amplitud de la Scroll Bar y lo utiliza para dibujar el voltaje en un sistema X,Y. Gain Gain a, b, c Los parámetros a y b son los mínimo y máximo valor de la escala, y el parámetro c es el aumento. Metro ------- ------- Solo tiene 4 textboxes para escribir el mínimo, máximo, valor, título que quiere introducir. 4

Capítulo 3.0 Descripción del programa principal 3.1 Formulario inicial En este formulario hay tres opciones Exit : el usuario puede terminar la aplicación Start : con esta opción comienza la aplicación, pero si el usuario no ha hecho los settings, la aplicación no comienza, sino aparece el próximo mensaje 5

Settings : después la elección de esta opción, aparece un formulario nuevo donde el usuario puede hacer los ajustes que desea 3.2 Formulario de ajustes En este formulario el usuario tiene cinco opciones. Puede elegir dos voltímetros, dos gráficas de barras (barr-graph) y una gráfica. En principio, ninguna opción está elegida y por eso, la aplicación no puede comenzar. Sólo dos opciones están activas (estas de los dos voltímetros). Cuando un voltímetro está elegido, entonces el barr-graph correspondiente está activo y la gráfica también. Si el voltímetro 0-5 volts está elegido automáticamente está activa la gráfica con la escala de 0-5 volts. En caso que está elegido el voltímetro 5 - +5 volts o los dos voltímetros juntos entonces aparece la gráfica con la escala de 5 - +5 volts. 6

Hay también tres botones: Accept : si el usuario pulsa este botón todas los ajustes se guardan y la aplicación está preparada para comenzar y el programa vuelve a la formulario inicial. Si ninguna ajuste está guardando entonces a la pantalla aparece el mensaje próximo que dice al usuario que elija una opción: Reset : borra todas las opciones que están en el formulario Cancel : el programa vuelve a la formulario inicial Si el usuario ha hecho los ajustes que quiere, puede pulsar el botón Start para comenzar la aplicación. 7

3.3 Formulario final En el caso que ha hecho todos los ajustes y ha pulsado el botón Start aparece en la pantalla el tercer formulario con todos los instrumentos que ha elegido. Además de este formulario hay un instrumento más que lo utiliza para introducir las unidades. Esto tiene cuatro Textboxes y tiene que escribir en estos la mínima, máxima unidad para crear la escala, también la unidad que quiere ver y la unidad. Empujando el botón Accept puede ver el resultado. En caso que quiere cambiar el valor tiene que pulsar el botón Change. Además en la versión que el programa funciona con el circuito hay un archivo OCX más para hacer y demostrar la existencia de la conexión. 8

Abajo de la gráfica hay tres botones: Empieza la gráfica. Stop la gráfica. Después esto, si el usuario pulsa el botón anterior empieza un gráfica con color diferente. Borra la gráfica. Existen dos botones más: Back: vuelve a la formulario inicial. Exit: El usuario sale del programa. 9

Capítulo 4.0 Formularios con circuitos 4.1 Ejemplos El usuario puede elegir entre 17 circuitos diferentes. A continuación, están describiendo los dos formularios más representativos. 4.1.1 Ejemplo 1 El usuario puede cambiar el voltaje que entra al circuito (Vinput) con un Scroll Bar y puede ver el cambio también el voltaje que sale de circuito (Voutput). El cambio parece en los voltímetros analógicos y a los barr-graphs también. Además si quiere, puede empezar la gráfica y ver allí el cambio. En cada formulario hay un circuito diferente que parece arriba a la derecha. 10

4.1.2 Ejemplo 2 El usuario puede cambiar las voltajes que entran al circuito (Vinput1,2) con dos Scroll Bars y puede ver el cambio también la voltaje que sale de circuito (Voutput). El cambio parece a los voltímetros analógicos. Existe otro instrumento que aparece la ganancia del circuito que es un número constante. Si el usuario quiere cambiarlo, puede con un Scroll Bar que representa el valor de potenciómetro. El cambio del valor de potenciómetro parece también al circuito. Cada formulario hay un circuito diferente que parece arriba a la derecha. 11

Capítulo 5.0 Problemas durante la creación del proyecto Durante la creación del proyecto aparecían algunos problemas. La mayoría se han resuelto. Los problemas son los siguientes: La lengua Española La conexión USB Precisión de la escala Los archivos OCX El circuito Los resultados de los voltímetros La lengua Española En el principio no había conocimiento del idioma español para hacer el proyecto y la presentación. Pero paso a paso, con el curso de español y la vida en el País Vasco, el problema estaba enfrentado. La conexión USB Este proyecto debía trabajar con la adquisición de datos USB pero no ha sido así. Nuestro ordenador tiene el sistema operativo en lengua griega y no es compatible con el sistema USB que está en lengua española. No ha sido posible instalar Visual Basic en español en los ordenadores del centro de cálculo por eso se ha realizado todo en inglés y sin poder usar la conexión USB. Precisión de la escala Las escalas que están en los voltímetros y los barr-graphs no están precisos porque hay problemas con los dibujos. Está haciendo una esfuerzo para corregirlas pero todavía continúan a existir. Los archivos OCX Si el usuario tenía un programa con archivos OCX y quería transportarlo en un otro ordenador, no podía funcionarlo porque el ordenador no los encontraba y debe cada vez declararlos en el programa. La solución es la colocación de los archivos OCX en una carpeta y después debe : Va a Inicio y después a Realización. Allí los registra y está escribiendo : 12

Regsvr32 RUTA\nombre.ocx Ej. Regsvr32 C:\fp\Analogiko05.ocx El circuito La lengua del microprocesador que está programado, no está compatible con la lengua del ordenador que está utilizado por la creación de este proyecto. Para resolver este problema están situado a las formularios, Scroll Bars para simular la función del circuito. Los resultados de los voltímetros Si el usuario cambia por la primera vez el voltaje en el voltímetro no muestra el valor correcto pero cuando continua está corregido. Este problema está ocurriendo porque las variables en el principio no toman los valores propios. 13

Capítulo 6.0 El Código 6.1 Código de archivos OCX 6.1.1 Analogiko05 Dim x As Long Dim y As Long Dim xarxiko As Long Dim yarxiko As Long Dim xteliko As Long Dim yteliko As Long Dim angleg As Double Dim angler As Double Dim inp As Double Private Sub Timer1_Timer() analogiko (a) Public Sub analogiko(a As Integer) xarxiko = 1800 yarxiko = 1800 inp = a / 1.495 angleg = inp + 5 angler = angleg * 3.14 / 180 x = Cos(angler) * 1450 y = Sin(angler) * 750 Line1.X1 = xarxiko - x Line1.Y1 = yteliko - 0.95 * y xteliko = xarxiko - x 14

yteliko = yarxiko - y 6.1.2 Analogiko55 Dim x As Long Dim y As Long Dim xarxiko As Long Dim yarxiko As Long Dim xteliko As Long Dim yteliko As Long Dim angleg As Double Dim angler As Double Dim inp As Double Dim a As Integer Private Sub Timer1_Timer() analogiko (a) Public Sub analogiko(a As Integer) xarxiko = 1800 yarxiko = 1800 inp = a / 2.97 angleg = 4 + inp angler = angleg * 3.14 / 180 x = Cos(angler) * 1450 y = Sin(angler) * 750 Line1.X2 = xarxiko - x Line1.Y2 = yteliko - y xteliko = xarxiko - x yteliko = yarxiko - y 15

6.1.3 Bar05 Private Sub Timer1_Timer() bar (a) Public Sub bar(a As Integer) Picture1.Height = 2650 - a * 10.3 If (Picture1.Height >= 2650) Then Picture1.Height = 2650 If (Picture1.Height <= 24) Then Picture1.Height = 25 6.1.4 Bar55 Dim a As Integer Private Sub Timer1_Timer() bar (a) 16

Public Sub bar(a As Integer) Picture1.Height = 2655 - a * 5 If (Picture1.Height >= 2655) Then Picture1.Height = 2655 If (Picture1.Height <= 115) Then Picture1.Height = 15 6.1.5 Grafikh05 Dim ay As Integer Dim ax As Integer Dim by As Integer Dim bx As Integer Dim countg As Boolean Dim a As Integer 17

Dim c As Integer Private Sub Command3_Click() ax = 400 If (countg = True) Then Picture1.Line (ax, ay)-((ax + 30), by), RGB(255, 0, 0) Timer2.Enabled = True Timer2.Interval = 200 Timer1.Enabled = True Timer1.Interval = 200 Private Sub Command4_Click() countg = True Timer1.Enabled = False Timer2.Enabled = False Private Sub Command5_Click() Picture1.Cls ax = 400 countg = False Private Sub Timer1_Timer() grafikh (a) Private Sub Timer2_Timer() grafikh2 (a) Private Sub grafikh(a As Integer) by = a * 10.3 Picture1.Line (ax, ay)-((ax + 30), by), RGB(0, 255, 0) Picture1.DrawWidth = 3 ax = ax + 50 ay = by If ax = 7700 Then Picture1.Refresh ax = 400 Private Sub grafikh2(b As Integer) by = b * 10.3 Picture1.Line (ax, ay)-((ax + 30), by), RGB(255, 0, 0) 18

Picture1.DrawWidth = 3 ax = ax + 50 ay = by If ax = 7700 Then Picture1.Refresh ax = 400 Private Sub UserControl_Initialize() ay = 2625 by = 2625 Public Sub paint(c As Integer) a = 255 - c / 1.1 6.1.6 Grafikh55 Dim ay As Integer 19

Dim ax As Integer Dim by As Integer Dim bx As Integer Dim countg As Boolean Dim a As Integer Dim c As Integer Private Sub Command3_Click() ax = 400 If (countg = True) Then Picture1.Line (ax, ay)-((ax + 50), by), RGB(255, 0, 0) Timer2.Enabled = True Timer2.Interval = 200 Timer1.Enabled = True Timer1.Interval = 200 Private Sub Command4_Click() countg = True Timer1.Enabled = False Timer2.Enabled = False Private Sub Command5_Click() Picture1.Cls ax = 400 countg = False Private Sub Timer1_Timer() grafikh (a) Private Sub Timer2_Timer() grafikh2 (a) Private Sub UserControl_Initialize() ay = 5050 by = 5050 Private Sub grafikh(a As Integer) by = a * 10.3 Picture1.Line (ax, ay)-((ax + 50), by), RGB(0, 255, 0) Picture1.DrawWidth = 3 ax = ax + 50 ay = by 20

If ax = 7700 Then Picture1.Refresh ax = 400 Private Sub grafikh2(b As Integer) by = a * 10.3 Picture1.Line (ax, ay)-((ax + 50), by), RGB(255, 0, 0) Picture1.DrawWidth = 3 ax = ax + 50 ay = by If ax = 7700 Then Picture1.Refresh ax = 400 Public Sub paint(c As Integer) a = 255 * 1.92 - c / 1.1 6.1.7 Metro Dim inp As Double Dim amount As Double Private Sub Command1_Click() Picture1.Visible = True Text7.Visible = False Text8.Visible = False Text9.Visible = False Text10.Visible = False Text5.Text = Text7.Text Text6.Text = Text8.Text Text2.Text = Text10.Text Text1.Text = ((Text6.Text - Text5.Text) / 2) + Text5.Text 21

Text3.Text = ((Text6.Text - Text5.Text) / 4) + Text5.Text Text4.Text = (((Text6.Text - Text5.Text) * 3) / 4) + Text5.Text inp = Text8.Text - Text7.Text amount = Text9.Text If (Text8.Text <= Text7.Text) Then Picture1.Visible = False Text7.Visible = True Text8.Visible = True Text9.Visible = True Text10.Visible = True Text7.Text = "" Text8.Text = "" Text9.Text = "" Text1.Text = "" Text3.Text = "" Text5.Text = "" Text4.Text = "" Text6.Text = "" Text10.Text = "" MsgBox ("Wrong Scale") Call Command2_Click If (amount >= Text7.Text And amount < (0.05 * inp + Text7.Text)) Then Line1.X2 = 720 Line1.Y2 = 1800 If (amount >= (0.05 * inp + Text7.Text) And amount < (0.1 * inp + Text7.Text)) Then Line1.X2 = 720 Line1.Y2 = 1680 If (amount >= (0.1 * inp + Text7.Text) And amount < (0.15 * inp + Text7.Text)) Then Line1.X2 = 720 Line1.Y2 = 1460 If (amount >= (0.15 * inp + Text7.Text) And amount < (0.2 * inp + Text7.Text)) Then Line1.X2 = 840 Line1.Y2 = 1280 If (amount >= (0.2 * inp + Text7.Text) And amount < (0.25 * inp + Text7.Text)) Then Line1.X2 = 960 Line1.Y2 = 1050 22

If (amount >= (0.25 * inp + Text7.Text) And amount < (0.3 * inp + Text7.Text)) Then Line1.X2 = 1080 Line1.Y2 = 855 If (amount >= (0.3 * inp + Text7.Text) And amount < (0.35 * inp + Text7.Text)) Then Line1.X2 = 1200 Line1.Y2 = 720 If (amount >= (0.35 * inp + Text7.Text) And amount < (0.4 * inp + Text7.Text)) Then Line1.X2 = 1350 Line1.Y2 = 650 If (amount >= (0.4 * inp + Text7.Text) And amount < (0.45 * inp + Text7.Text)) Then Line1.X2 = 1650 Line1.Y2 = 500 If (amount >= (0.45 * inp + Text7.Text) And amount < (0.5 * inp + Text7.Text)) Then Line1.X2 = 1900 Line1.Y2 = 440 If (amount >= (0.5 * inp + Text7.Text) And amount < (0.55 * inp + Text7.Text)) Then Line1.X2 = 2145 Line1.Y2 = 400 If (amount >= (0.55 * inp + Text7.Text) And amount < (0.6 * inp + Text7.Text)) Then Line1.X2 = 2350 Line1.Y2 = 440 If (amount >= (0.6 * inp + Text7.Text) And amount < (0.65 * inp + Text7.Text)) Then Line1.X2 = 2650 Line1.Y2 = 510 If (amount >= (0.65 * inp + Text7.Text) And amount < (0.7 * inp + Text7.Text)) Then Line1.X2 = 2850 Line1.Y2 = 600 If (amount >= (0.7 * inp + Text7.Text) And amount < (0.75 * inp + Text7.Text)) Then Line1.X2 = 3050 Line1.Y2 = 720 If (amount >= (0.75 * inp + Text7.Text) And amount < (0.8 * inp + Text7.Text)) Then 23

Line1.X2 = 3190 Line1.Y2 = 860 If (amount >= (0.8 * inp + Text7.Text) And amount < (0.85 * inp + Text7.Text)) Then Line1.X2 = 3280 Line1.Y2 = 970 If (amount >= (0.85 * inp + Text7.Text) And amount < (0.9 * inp + Text7.Text)) Then Line1.X2 = 3420 Line1.Y2 = 1200 If (amount >= (0.9 * inp + Text7.Text) And amount < (0.95 * inp + Text7.Text)) Then Line1.X2 = 3520 Line1.Y2 = 1480 If (amount >= (0.95 * inp + Text7.Text) And amount < (inp + Text7.Text)) Then Line1.X2 = 3580 Line1.Y2 = 1600 If (amount = Text8.Text) Then Line1.X2 = 3600 Line1.Y2 = 1800 Private Sub Command2_Click() 24

Picture1.Visible = False Text7.Visible = True Text8.Visible = True Text9.Visible = True Text10.Visible = True Private Sub UserControl_Initialize() Picture1.Visible = False Text7.Visible = True Text8.Visible = True Text9.Visible = True Text10.Visible = True 6.1.8 Gain Public Sub gain(a As Double, b As Double, c As Double) Text5.Text = a Text6.Text = b Text2.Text = "Gain" Text1.Text = ((Text6.Text - Text5.Text) / 2) + Text5.Text Text3.Text = ((Text6.Text - Text5.Text) / 4) + Text5.Text Text4.Text = (((Text6.Text - Text5.Text) * 3) / 4) + Text5.Text inp = b - a amount = c If (amount >= a And amount < (0.05 * inp + a)) Then Line1.X2 = 720 Line1.Y2 = 1800 25

If (amount >= (0.05 * inp + a) And amount < (0.1 * inp + a)) Then Line1.X2 = 720 Line1.Y2 = 1680 If (amount >= (0.1 * inp + a) And amount < (0.15 * inp + a)) Then Line1.X2 = 720 Line1.Y2 = 1460 If (amount >= (0.15 * inp + a) And amount < (0.2 * inp + a)) Then Line1.X2 = 840 Line1.Y2 = 1280 If (amount >= (0.2 * inp + a) And amount < (0.25 * inp + a)) Then Line1.X2 = 960 Line1.Y2 = 1050 If (amount >= (0.25 * inp + a) And amount < (0.3 * inp + a)) Then Line1.X2 = 1080 Line1.Y2 = 855 If (amount >= (0.3 * inp + a) And amount < (0.35 * inp + a)) Then Line1.X2 = 1200 Line1.Y2 = 720 If (amount >= (0.35 * inp + a) And amount < (0.4 * inp + a)) Then Line1.X2 = 1350 Line1.Y2 = 650 If (amount >= (0.4 * inp + a) And amount < (0.45 * inp + a)) Then Line1.X2 = 1650 Line1.Y2 = 500 If (amount >= (0.45 * inp + a) And amount < (0.5 * inp + a)) Then Line1.X2 = 1900 Line1.Y2 = 440 If (amount >= (0.5 * inp + a) And amount < (0.55 * inp + a)) Then Line1.X2 = 2145 Line1.Y2 = 400 If (amount >= (0.55 * inp + a) And amount < (0.6 * inp + a)) Then 26

Line1.X2 = 2350 Line1.Y2 = 440 If (amount >= (0.6 * inp + a) And amount < (0.65 * inp + a)) Then Line1.X2 = 2650 Line1.Y2 = 510 If (amount >= (0.65 * inp + a) And amount < (0.7 * inp + a)) Then Line1.X2 = 2850 Line1.Y2 = 600 If (amount >= (0.7 * inp + a) And amount < (0.75 * inp + a)) Then Line1.X2 = 3050 Line1.Y2 = 720 If (amount >= (0.75 * inp + a) And amount < (0.8 * inp + a)) Then Line1.X2 = 3190 Line1.Y2 = 860 If (amount >= (0.8 * inp + a) And amount < (0.85 * inp + a)) Then Line1.X2 = 3280 Line1.Y2 = 970 If (amount >= (0.85 * inp + a) And amount < (0.9 * inp + a)) Then Line1.X2 = 3420 Line1.Y2 = 1200 If (amount >= (0.9 * inp + a) And amount < (0.95 * inp + a)) Then Line1.X2 = 3520 Line1.Y2 = 1480 If (amount >= (0.95 * inp + a) And amount < (inp + a)) Then Line1.X2 = 3580 Line1.Y2 = 1600 If (amount = b) Then Line1.X2 = 3600 Line1.Y2 = 1800 27

28

6.2 Código de programa principal 6.2.1 Forma 1 Dim chkarray2(5) As Boolean Private Sub Exit_Click() End Private Sub Settings_Click() Unload Form1 Form2.Visible = True Public Sub Start_Click() Dim count As Integer For i = 0 To 4 If (chkarray2(i) = False) Then count = count + 1 Next i If (count = 5) Then MsgBox ("No Settings") Unload Form1 Form3.Visible = True Form3.analogiko05.Visible = chkarray2(0) Form3.analogiko55.Visible = chkarray2(1) Form3.bar05.Visible = chkarray2(2) Form3.Bar55.Visible = chkarray2(3) 29

If (chkarray2(0) = True And chkarray2(1) = False) Then Form3.grafikh05.Visible = chkarray2(4) If (chkarray2(0) = False And chkarray2(1) = True) Then Form3.grafikh55.Visible = chkarray2(4) If (chkarray2(0) = True And chkarray2(1) = True) Then Form3.grafikh55.Visible = chkarray2(4) Public Sub record(chkarray() As Boolean) For i = 0 To 4 chkarray2(i) = chkarray(i) Next i 6.2.2 Forma 2 Public Sub Accept_Click() Dim count As Integer Dim chkarray(5) As Boolean Dim countg As Integer chkarray(0) = Check1.Value chkarray(1) = Check3.Value chkarray(2) = Check5.Value chkarray(3) = Check7.Value chkarray(4) = Check9.Value 30

Call Form1.record(chkarray()) For i = 0 To 4 If (chkarray(i) = False) Then count = count + 1 If (chkarray(i) = True) Then countg = 1 Next i If (count = 5) Then MsgBox ("Make a choise") If (count < 5) Then Unload Form2 Form1.Visible = True Private Sub Cancel_Click() Unload Form2 Form1.Visible = True Private Sub Check1_Click() Check5.Enabled = True Check9.Enabled = True If (Check1.Value = False) Then Check5.Enabled = False Check5.Value = False If (Check3.Value = True) Then Check9.Enabled = True If (Check3.Value = False) Then Check9.Enabled = False Check9.Value = False Private Sub Check3_Click() Check7.Enabled = True Check9.Enabled = True If (Check3.Value = False) Then Check7.Enabled = False Check7.Value = False If (Check1.Value = True) Then Check9.Enabled = True If (Check1.Value = False) Then Check9.Enabled = False 31

Check9.Value = False Private Sub Reset_Click() Check1.Value = False Check3.Value = False Check5.Value = False Check7.Value = False Check9.Value = False 6.2.3 Forma 3 Dim a As Integer Dim b As Integer Private Sub Command1_Click() Unload Form3 Form1.Visible = True Private Sub Command2_Click() End Private Sub HScroll1_Change() a = HScroll1.Value 32

bar05.bar (a) analogiko05.analogiko (a) grafikh05.paint (a) Private Sub HScroll2_Change() b = HScroll2.Value analogiko55.analogiko (b * 2) grafikh55.paint (b * 2) Bar55.bar (b * 2) 6.3 Código de los formularios con circuito 6.3.1 C_204 Dim a As Double Dim b As Double Private Sub HScroll1_Change() a = HScroll1.Value If (a >= 82) Then b = 0 analogiko55.analogiko (b) bar55.bar (b - 0.05) grafikh55.paint (b) If (a < 82) Then 33

b = 255 + (a * (-3.1)) analogiko55.analogiko (b) bar55.bar (b - 0.05) grafikh55.paint (b) analogiko05.analogiko (a) bar05.bar (a) 6.3.2 C_326 Dim a As Double Dim b As Double Dim c As Double Dim d As Double Dim e As Double Private Sub HScroll1_Change() a = HScroll1.Value If (a >= 23.5) Then b = 0 c = -10.8 analogiko55.analogiko (b) bar55.bar (b - 0.05) 34

If (a < 23.5) Then b = 255 + (a * (-10.8)) analogiko55.analogiko (b) bar55.bar (b - 0.05) d = a / 51 e = (b / 51) - 5 c = e / d analogiko05.analogiko (a) bar05.bar (a) Call gain1.gain(-12, 12, c) 6.3.3 C_337 Dim a As Double Dim b As Double Dim c As Double Dim d As Double Dim e As Double Dim p As Double Private Sub HScroll1_Change() a = HScroll1.Value If (b >= 331.8) Then a = 255 35

b = 255 + (a * 0.3) c = 0.3 analogiko55.analogiko (b) bar55.bar (b - 0.05) If (b <= 331.8) Then b = 255 + (a * 0.3) d = a / 51 e = (b / 51) - 5 c = e / d analogiko55.analogiko (b) bar55.bar (b - 0.05) analogiko05.analogiko (a) bar05.bar (a) Call gain1.gain(-2, 2, c) 6.3.4 C_347 Dim a As Double Dim b As Double Private Sub HScroll1_Change() a = HScroll1.Value If (a >= 87) Then 36

b = 0 analogiko55.analogiko (b) bar55.bar (b - 0.05) grafikh55.paint (b) If (a < 87) Then b = 255 + (a * (-3)) analogiko55.analogiko (b) bar55.bar (b - 0.05) grafikh55.paint (b) analogiko05.analogiko (a) bar05.bar (a) 6.3.5 C_350 Dim a As Double Dim b As Double Dim c As Double Dim d As Double Dim e As Double Private Sub HScroll1_Change() a = HScroll1.Value 37

If (b >= 383) Then a = 255 b = 255 + (a * 0.5) c = 0.5 analogiko55.analogiko (b) bar55.bar (b - 0.05) If (b < 383) Then b = 255 + (a * 0.5) d = a / 51 e = (b / 51) - 5 c = e / d analogiko55.analogiko (b) bar55.bar (b - 0.05) analogiko05.analogiko (a) bar05.bar (a) Call gain1.gain(0.1, 1.2, c) 6.3.6 C_358 Dim a As Double Dim b As Double Dim c As Double 38

Private Sub HScroll1_Change() a = HScroll1.Value analogiko05.analogiko (a) bar05.bar (a) Call calc(a, b) Private Sub HScroll2_Change() b = HScroll2.Value analogikoref.analogiko (b) barref.bar (b) Call calc(a, b) Private Sub calc(a As Double, b As Double) c = (2 * a - b) + 255 If (c = 509) Then c = 509 analogiko55.analogiko (c) bar55.bar (c) If (c = 0) Then c = 0 analogiko55.analogiko (c) bar55.bar (c) If (c > 0 And c < 509) Then c = (2 * a - b) + 255 analogiko55.analogiko (c) bar55.bar (c) 39

6.3.7 C_366 Dim a As Double Dim b As Double Private Sub HScroll2_Change() a = HScroll2.Value If (a >= 127) Then b = 510 analogiko55.analogiko (b) bar55.bar (b - 0.05) grafikh55.paint (b) If (a < 127) Then b = 255 + (a * 2) analogiko55.analogiko (b) bar55.bar (b - 0.05) grafikh55.paint (b) analogiko05.analogiko (a) bar05.bar (a) 40

6.3.8 C_369 Dim a As Double Dim b As Double Private Sub HScroll1_Change() a = HScroll1.Value analogiko05.analogiko (a) bar05.bar (a) b = (a * 9.8) + 255 If (b = 509) Then b = 509 analogiko55.analogiko (b) bar55.bar (b) : If (a = 0) Then b = 255 analogiko55.analogiko (b) bar55.bar (b) : If (b < 510) Then b = (a * 9.8) + 255 analogiko55.analogiko (b) bar55.bar (b) 41

6.3.9 C_377 Dim a As Double Dim b As Double Private Sub HScroll1_Change() a = HScroll1.Value b = 255 + a analogiko55.analogiko (b) bar55.bar (b - 0.05) analogiko05.analogiko (a) bar05.bar (a) 6.3.10 C_387 42

Dim a As Double Dim b As Double Dim c As Double Dim d As Double Private Sub HScroll1_Change() a = HScroll1.Value analogiko05.analogiko (a) bar05.bar (a) Call calc(a, b) Private Sub HScroll2_Change() b = HScroll2.Value analogiko2.analogiko (b) bar2.bar (b) Call calc(a, b) Private Sub calc(a As Double, b As Double) d = a + b c = 255 - d If (c = 0) Then c = 0 analogiko55.analogiko (c) bar55.bar (c) If (c > 0) Then c = 255 - d analogiko55.analogiko (c) bar55.bar (c) 43

6.3.11 C_398 Dim a As Double Dim b As Double Dim c As Double Private Sub HScroll1_Change() a = HScroll1.Value analogiko05.analogiko (a) bar05.bar (a) Call calc(a, b) Private Sub HScroll2_Change() b = HScroll2.Value analogiko2.analogiko (b) bar2.bar (b) Call calc(a, b) Private Sub calc(a As Double, b As Double) c = (a + b) + 255 If (c = 509) Then c = 510 analogiko55.analogiko (c) bar55.bar (c) If (c < 509) Then c = a + b + 255 analogiko55.analogiko (c) 44

bar55.bar (c) 6.3.12 C_420 Dim a As Double Dim b As Double Dim c As Double Dim d As Double Dim p As Double Private Sub HScroll1_Change() a = HScroll1.Value analogiko05.analogiko (a) Call calc(a, b, p) Private Sub HScroll2_Change() b = HScroll2.Value analogiko2.analogiko (b) Call calc(a, b, p) 45

Private Sub calc(a As Double, b As Double, p As Double) p = p + 0.1 c = ((b - a) * ((2 * 10 + p) / p)) + 255 If (c = 509) Then c = 510 analogiko55.analogiko (c) Call gain2(a, b, c, p) If (c <= 0) Then c = 0 analogiko55.analogiko (c) Call gain2(a, b, c, p) If (c < 509 And c > 0) Then c = ((b - a) * ((2 * 10 + p) / p)) + 255 analogiko55.analogiko (c) Call gain2(a, b, c, p) Private Sub gain2(a As Double, b As Double, c As Double, p As Double) p = p + 0.1 If (c = 256 Or b = a Or (b = 0 And a = 0)) Then d = 0 Call gain1.gain(0, 6, d) d = (2 * 10 + p) / p Call gain1.gain(0, 6, d) Private Sub HScroll3_Change() p = HScroll3.Value Text5.Text = " " & (HScroll3.Value) Call calc(a, b, p) 46

6.3.13 C_430 Dim a As Double Dim b As Double Dim c As Double Private Sub HScroll1_Change() a = HScroll1.Value analogiko05.analogiko (a) bar05.bar (a) Call calc(a, b) Private Sub HScroll2_Change() b = HScroll2.Value analogiko2.analogiko (b) bar2.bar (b) Call calc(a, b) Private Sub calc(a As Double, b As Double) c = (a - b) + 255 analogiko55.analogiko (c) bar55.bar (c) 47

6.3.14 C_442 Dim a As Double Dim b As Double Dim c As Double Private Sub HScroll1_Change() a = HScroll1.Value analogiko05.analogiko (a) bar05.bar (a) Call calc(a, b) Private Sub HScroll2_Change() b = HScroll2.Value analogiko2.analogiko (b) bar2.bar (b) Call calc(a, b) Private Sub calc(a As Double, b As Double) c = ((a - b) * 2) + 255 If (c = 509) Then c = 510 analogiko55.analogiko (c) bar55.bar (c) If (c <= 0) Then c = 0 analogiko55.analogiko (c) 48

bar55.bar (c) If (c < 509) Then c = ((a - b) * 2) + 255 analogiko55.analogiko (c) bar55.bar (c) 6.3.15 C_452 Dim a As Double Dim b As Double Dim c As Double Private Sub HScroll1_Change() a = HScroll1.Value analogiko05.analogiko (a) bar05.bar (a) Call calc(a, b) Private Sub HScroll2_Change() b = HScroll2.Value analogiko2.analogiko (b) 49

bar2.bar (b) Call calc(a, b) Private Sub calc(a As Double, b As Double) c = ((a - b) * 2) + 255 If (c = 509) Then c = 510 analogiko55.analogiko (c) bar55.bar (c) If (c <= 0) Then c = 0 analogiko55.analogiko (c) bar55.bar (c) If (c < 509) Then c = ((a - b) * 2) + 255 analogiko55.analogiko (c) bar55.bar (c) 6.3.16 C_464 50

Dim a As Double Dim b As Double Dim c As Double Private Sub HScroll1_Change() a = HScroll1.Value analogiko05.analogiko (a) bar05.bar (a) Call calc(a, b) Private Sub HScroll2_Change() b = HScroll2.Value analogiko2.analogiko (b) bar2.bar (b) Call calc(a, b) Call calc2(a, b) Private Sub calc(a As Double, b As Double) c = ((b - a) * 2) + 255 If (c = 509) Then c = 510 analogiko55.analogiko (c) bar55.bar (c) If (c <= 0) Then c = 0 analogiko55.analogiko (c) bar55.bar (c) If (c < 509) Then c = ((b - a) * 2) + 255 analogiko55.analogiko (c) bar55.bar (c) Private Sub calc2(a As Double, b As Double) c = (a - b) + 255 If (c = 509) Then c = 510 analogiko22.analogiko (c) bar22.bar (c) If (c <= 0) Then c = 0 analogiko22.analogiko (c) 51

bar22.bar (c) If (c < 509) Then c = (a - b) + 255 analogiko22.analogiko (c) bar22.bar (c) 6.3.17 C_471 Dim a As Double Dim b As Double Dim c As Double Private Sub HScroll1_Change() a = HScroll1.Value analogiko05.analogiko (a) bar05.bar (a) Call calc(a, b) Private Sub HScroll2_Change() b = HScroll2.Value analogiko2.analogiko (b) 52

bar2.bar (b) Call calc(a, b) Private Sub calc(a As Double, b As Double) c = (((a - b) * 2) * -1) + 255 If (c = 509) Then c = 510 analogiko55.analogiko (c) bar55.bar (c) If (c <= 0) Then c = 0 analogiko55.analogiko (c) bar55.bar (c) If (c < 509) Then c = (((a - b) * 2) * -1) + 255 analogiko55.analogiko (c) bar55.bar (c) 53