Download - 02 - Programacion C & LabWindows - II
37
II. LabWindows
© FRSoft Lda
IntroducciónProceso de creación de una aplicación LabWindows
C & LW
Ý
38
Introducción
© FRSoft Lda
Características destacables:
• Entorno de programación C, compatible con el estándar ANSI• Herramienta software para: Adquisición, análisis y presentación de datos
• Amplio conjunto de librerías:q Adquisición de datos (7):ü GPIB, RS-232, VXI, VISA, IVI, Data Acquisition, Easy I/O
q Análisis de datos (2):ü Formating and I/O, Advanced Analysis
q Presentación de datos (1):üUser Interface
q Redes y comunicación entre procesos (4):ü DDE, ActiveX, DataSocket, TCP
q Librería “ANSI C (1)”, con funciones estándar del lenguaje Cq Librería “Utility (1)”, con funciones para E/S a través de puertos, ...qMenú “Instrument“, permite la carga de librerías para manejo de osciloscopios, ...
C & LW
39
Introducción
© FRSoft Lda
Aplicación LabWindows
Eventos
E/S
Componentes:• Interfaz gráfico de usuario (GUI)
• Hw de adquisición de datos y control• Programa en lenguaje C
Generación de eventos:• Objetos del interfaz gráfico
• Interfaces hardware• Procesos de comunicación
C & LW
40
Introducción
© FRSoft Lda
Elementos de programa:
Interfaz de Usuario
• Paneles• Menús• Cuadros de diálogo• Gráficos científicos• Copia impresa
Adquisición de datos
• GPIB• VXI• RS-232• Tarjetas de interfaz• Drivers de instrumentos
Análisis de datos
• Formateo• Procesado digital• Estadísticas• Aproximación de curvas• Operaciones con arrays
Control de programa
• Lógica de control• Almacenamiento de datos
C & LW
Ý
41
Proceso de Creación de una aplicación LabWindows
© FRSoft Lda
Diseño del GUI y generación de la
aplicación
Aplicación LW
Generación interactiva de
código
•Construir (Build)
•Ejecutar proyecto
SW aplicación
Errores?Si
No
Definir archivos del proyecto
Herramientas de depuración
• Ventana del Editor de interfaz• Ventana del Editor de código•Ventana de Ejecución interactiva•Ventanas de Paneles de función
• Ventana de Variables•Ventana Watch Expressions•Ventana de arrays•Ventana de cadenas
• Ventana de proyecto
C & LW
• Ventana Build Errors (Sintáxis)
Ý
42© FRSoft Lda
Ventanas del entorno:• Proyecto:qUn fichero de proyecto (.PRJ) contiene una lista de todos los ficheros que forman parte del proyecto
• Editor del interfaz de usuario:q Se utiliza para crear el interfaz gráfico de usuario (.UIR) y el fichero de cabecera (.H)
• Editor de código fuente:qUtilizado para crear, editar, ejecutar, depurar y salvar código fuente (.C )
• Ejecución interactiva:qUtilizada para la ejecución selectiva de porciones de código
• Panel de función:q Permite la ejecución interactiva de funciones de librería y la inserción de éstas en el código fuente
• Editor del árbol de funciones:q Se utiliza para construir la estructura arborescente de los ficheros de paneles de función (.FP)
• Editor de paneles de función. Utilizado para construir los paneles de función.• Variables, arrays, cadenas y seguimiento de variables (Watch). Utilizadas para depurar programas. • Editor de ayuda de árbol de funciones / paneles de función. q Permiten añadir ayuda en línea a los paneles de función
C & LW
Ý
Proceso de Creación de una aplicación LabWindows
43
§ Editor del Interfaz Gráfico de Usuario
© FRSoft Lda C & LW
Area edición
Herramientas
Menús
44© FRSoft Lda C & LW
§ Editor del Interfaz Gráfico de UsuarioComponentes del GUI
Panel (Ventana)
Menús
• Parent / child• Emergente (Pop – Up)
Controles• Numeric• Text• Command Button• Toggle button• ...
45© FRSoft Lda C & LW
§ Editor del Interfaz Gráfico de UsuarioEditar propiedades de panel
Conexión con código fuente:• Constant Name
q Id del panel en el programa• Callback Function
q Función activada por eventos del panel
Atributos del panel
Atributos de paneles descendientes (Child)
46© FRSoft Lda C & LW
§ Editor del Interfaz Gráfico de UsuarioAjustes del panel de la aplicación
47© FRSoft Lda C & LW
§ Editor del Interfaz Gráfico de UsuarioCrear menú / Editar propiedades del menú / Ajustes del menú de la aplicación
NOTA. Cuadro de diálogo LabWindows V7.0
48© FRSoft Lda C & LW
§ Editor del Interfaz Gráfico de UsuarioEditar propiedades de controles
Conexión con código fuente:• Constant Name
q <ct. name_panel> + <ct. name_ctrl> = Id control
• Callback Function
q Función activada por eventos del control
Atributos del control:• Dependientes del tipo de control
• “Control modes”. Modos de operar controles:q Indicatorq Normal
q HotqValidate
Apariencia física del control
Apariencia física de la etiqueta
49© FRSoft Lda C & LW
§ Editor del Interfaz Gráfico de UsuarioAjustes de los controles de la aplicación (LW V7.0)
50© FRSoft Lda C & LW
§ Editor del Interfaz Gráfico de UsuarioSalvar .UIR / Incluir en proyecto / Archivo de cabecera asociado (.H)
51© FRSoft Lda C & LW
§ Editor del Interfaz Gráfico de UsuarioEventos y callback functions
EVENTOS DE CONTROLES / PANELES / MENU:• Pulsaciones de tecla• Activación mediante ratón• Selección de un menú
HARDWARE:• Interrupciones DAQ• Procesos de comunicación
Evento
“Callback function” asociada
52© FRSoft Lda C & LW
§ Editor del Interfaz Gráfico de UsuarioTipos de eventos de controles / paneles
Code à Preferences à Default Panel EventsCode à Preferences à Default Control Events
53© FRSoft Lda C & LW
§ Editor del Interfaz Gráfico de UsuarioGeneración automática de código: CodeBuilder
Code à Set Target File ...Code à Generate à All Code
Ý
54
§ Ventana de proyecto
© FRSoft Lda
ÝC & LW
55
§ Generación interactiva de código
© FRSoft Lda C & LW
Editor de códigoESQUELETO CODIGO:• Declaraciones #include• Declaraciones de variables• Función main()• Esqueleto Callback Functionsq De panelesü Prototipoü Valor de retornoü Sentencia switch
q De controlesü Prototipoü Valor de retornoü Sentencia switch
q De menúsü Prototipo y llaves
• Las Callback Function que finalizan la aplicación llaman a QuitUserInterface()• Para compiladores externos se debe usar WinMain(), en LabWindows es indistinto
56
§ Generación interactiva de código
© FRSoft Lda C & LW
Paneles de funciónLibrary à User Interface: Arbol de paneles de función
57
§ Generación interactiva de código
© FRSoft Lda C & LW
Declaración de variables de forma interactiva
58
§ Generación interactiva de código
© FRSoft Lda C & LW
Insertar llamada a función en el módulo fuente
59
§ Generación interactiva de código
© FRSoft Lda C & LW
Insertar constantes UIR en un parámetro de función
60
§ Generación interactiva de código
© FRSoft Lda C & LW
61
§ Generación interactiva de código
© FRSoft Lda C & LW
Ver el árbol de paneles de función actual
62
§ Generación interactiva de código
© FRSoft Lda C & LW
Establecer marcadores de textoView à Toggle Tag
Insertar construcciones del lenguaje
Edità Insert Construct à Do - Loop
63
§ Generación interactiva de código
© FRSoft Lda C & LW
Emparejar llaves
Edità Balance
64
§ Generación interactiva de código
© FRSoft Lda C & LW
Excluir líneas temporalmente de la compilación
Edità Toggle Exclusion
Línea excluida dela compilaciónLínea excluida de
la compilación
Ý
65
§ Construir la aplicación. Errores de sintáxis
© FRSoft Lda C & LW
Compilar con opciones de depuración
66© FRSoft Lda C & LW
Ý
§ Construir la aplicación. Errores de sintáxisVentana “Build Errors”. Localizar errores de sintáxis en el módulo fuente
67
§ Herramientas de depuración
© FRSoft Lda C & LW
Opciones de ejecución. Ventana de Módulo Fuente
Finalizar la ejecución de la aplicaciónTerminate ExecutionRun
Finalizar ejecución de la función actualFinish FunctionRun
Paso a paso (Sin salto a funciones)Step OverRun
Paso a paso (Salto a funciones)Step IntoRun
Ejecutar hasta la posición del cursorGo To CursorRun
Continuar la ejecuciónContinueRun
Ejecutar la aplicaciónDebug <Aplicación>Run
68
§ Herramientas de depuración
© FRSoft Lda C & LW
Puntos de ruptura. Ventana de Módulo Fuente• Establecer punto de ruptura al inicio de la aplicación: “Run”à “Break At First Statement”• Ejecutar aplicación con puntos de ruptura:
Número de veces que se ha de ejecutar sentencia antes de que
ocurra el punto de ruptura
TRUE: Activa punto rupturaFALSE: Ignora punto ruptura
69
§ Herramientas de depuración
© FRSoft Lda C & LW
Valor de una variable. Ventana de Módulo Fuente
Cursor sobre el identificador de la variable.
70
§ Herramientas de depuración
© FRSoft Lda C & LW
Ver estado de las variables. Ventana de Variables
Variables GLOBALES y STATIC
Variables LOCALES de las funciones activas (En ejecución) y valor de los
PARAMETROS ACTUALES
Variable se expande
71
§ Herramientas de depuración
© FRSoft Lda C & LW
Expandir variable estructurada. Ventana de Variables
72
§ Herramientas de depuración
© FRSoft Lda C & LW
Examinar variables tipo cadena. Ventana de Cadenas
73
§ Herramientas de depuración
© FRSoft Lda C & LW
Examinar variables tipo array. Ventana de Arrays
74
§ Herramientas de depuración
© FRSoft Lda C & LW
Ý
Evaluar expresiones. Ventana Watch
Módulo fuenteFunción Ejecutable
GLOBALES
LOCALES