02 - Programacion C & LabWindows - II

Preview:

Citation preview

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

Recommended