Capítulo 1 EMBEDDED VISUAL C++ (EVC)



Documentos relacionados
Documentación del Terminal

Este programa mueve cada motor de forma independiente, y cuando termina una línea pasa a la siguiente.

1 MANUAL DE INSTALACIÓN

Tutorial de Introducción a la Informática Tema 0 Windows. Windows. 1. Objetivos

Carrera: Analista de Sistemas. Asignatura: Resolución de Problemas y Algoritmos

Ejercicio 1. Desarrollar un pequeño juego para practicar mecanografía.

CÓMO CREAR NUESTRO CATÁLOGO

MACROS Y FORMULARIOS

NORMA (SEPA) 22/11/2013

Vamos a ver las dos formas básicas de arrancar PowerPoint.

GUÍA RÁPIDA DE TRABAJOS CON ARCHIVOS.

L U I S P A T I Ñ O IN FOR M Á T I C A SIS T E M A S AVA N Z A DOS

Un Navegador es un programa que nos conecta a Internet y nos permite organizar nuestro

INSTALACIÓN, UTILIZACIÓN Y OPTIMIZACIÓN

6.1. Conoce la papelera

La pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición.

Elementos de Microsoft Word

ZILOG DEVELOPER STUDIO

Manual de OpenOffice Impress

Descarga Automática. Manual de Usuario. Operador del Mercado Ibérico de Energía - Polo Español Alfonso XI, Madrid

CAPÍTULO 17: ASPECTOS BÁSICOS DEL SISTEMA OPERATIVO WINDOWS

Combinar comentarios y cambios de varios documentos en un documento

Para crear formularios se utiliza la barra de herramientas Formulario, que se activa a través del comando Ver barra de herramientas.

CURSO SOBRE LA PDi SMART USO DEL SOFTWARE NOTEBOOK.

Uso del simulador Modelsim

MANUAL DE AYUDA MÓDULO PDA ALMACEN E INVENTARIO

Microsoft Word Los formatos son las características que le asignamos a cualquier carácter, a un conjunto de caracteres o a otros elementos.

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

Estructurar la información dentro del ordenador:

Introducción a Microsoft Word

MANEJANDO FICHEROS Y CARPETAS

Práctica 3ProgramacionRS232: Programación básica de la RS232

Instituto Mar de Cortés Elaborar Documentos en Procesador de Texto

1. El entorno de desarrollo Eclipse

Instrucciones de instalación de TrueCode

Centro de Capacitación en Informática

MANUAL DE USO DEL PROGRAMA ARKITOOL 2012

Recursos de Aprendizaje

MANUAL DE USUARIO DE LA HERAMIENTA CONFIGURACION DE PRESUPUESTOS PARA DISTRIBUIDORES

Plantillas Office. Manual de usuario Versión 1.1

Manual de Instrucciones

2. Doctores 2.1. Dar de alta un doctor 2.2. Buscar un doctor 2.3. Editar un doctor 2.4. Borrar un doctor

COMO CREAR UN ÁLBUM DE FOTOGRAFÍAS EN MICROSOFT OFFICE POWERPOINT?

Instalación de Sistema Operativo Mac OsX Lion en VirtualBox.

UF0320: Aplicaciones informáticas de tratamiento de textos

Manual de mejora de uso del correo

ENTORNO DE TRABAJO DE WORD 2007

WinHIPE: edición, compilación y ejecución de programas; y generación de animaciones web. Manual de usuario.

SIMULADOR DE REDES DE PETRI ASINCRONICAS

Dev C++. Compilador de C para Windows

MANUAL BÁSICO DE WRITER

GESTION DE LA BASE DE DATOS

Puede acceder a estas opciones a través del menú Inicio: Inicio/Configuración, o bien, a través del Icono Mi Pc situado en el Escritorio:

CORREO ELECTRÓNICO GMAIL. 1 Enviar correo electrónico Acceder a una cuenta de correo electrónico... 2

GUIA DE LABORATORIO N 3

Manual de usuario del Directorio Activo

Manual Impress Impress Impress Impress Impress Draw Impress Impress

Programa diseñado y creado por Art-Tronic Promotora Audiovisual, S.L.

NORMA / (SEPA)

INSTALACIÓN Y REGISTRO

Plantilla de texto plano

Muchos programas de aplicación contienen herramientas para proteger la información, por ejemplo, Microsoft Word que te permite:

Curso Internet Básico - Aularagon

Teclado sobre una PDA para Personas con Parálisis Cerebral

Módulo 8: Ofimática básica. Unidad didáctica 4: Introducción y modificación de datos. Access

ASISTENCIA TÉCNICA A LA SEGURIDAD INFORMÁTICA EN PYMES MANUAL KEEPASS WINDOWS

TEMA 5: HOJAS DE CÁLCULO. Edición de hojas de cálculo con OpenOffice Calc

MINI MANUAL PARA CREAR FORMULARIOS CON PHP Marzo 2007

APUNTES DE WINDOWS. Windows y sus Elementos INSTITUTO DE CAPACITACIÓN PROFESIONAL. Elementos de Windows

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10

Versatils. Apéndice. ODBC Orígenes de datos. ODBC Orígenes de datos.

!"#$%!&&'(#%')"*#++,%-.-!*'/0%

PROTEUS Depuración de programas para microprocesadores

Una plantilla es un modelo que puede servir como base para muchas hojas de cálculo. Puede incluir tanto datos como formatos.

REGISTRAR LOS SITIOS WEB MÁS INTERESANTES

Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes:

Módulo II - Word. Eliminar caracteres Selección de texto Selección de una palabra Selección de varias palabras...

Práctica 00: Compilador

Manual de Procedimiento

Índice general de materias LECCIÓN 7 74

Instalación del Sistema Operativo Microsoft Windows 7 Service Pack 1

Capítulo 8 Ficheros de Configuración

Base de datos OpenOffice ª parte. por Pedro Peregrín González CEIP San Juan de Dios Granada -España-

A continuación, se detalla el uso de los accesorios más comunes:

Guía N 1: Fundamentos básicos(i)

Comerciales. Comisiones en Documentos de Venta WhitePaper Enero de 2008

Proyecto de Facturación con Filemaker Pro 12

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

USO DEL COMANDO. Fdisk. Autor :. Alejandro Curquejo. Recopilación :. Agustí Guiu i Ribera. Versión :.. 1.0

MANUAL DE AYUDA MODULO TALLAS Y COLORES

La visualización de la ventana de Word tiene las siguientes partes:

Páginas web ::: Viñetas y marcadores Diseño de materiales multimedia. Web Viñetas y marcadores

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: Fax.:

Práctica 2 de Microsoft Access

Añadir el texto de la LOPD a los documentos

SISTEMA InfoSGA Manual de Actualización Mensajeros Radio Worldwide C.A Código Postal 1060

Descarga e instalación de Visual Basic. Entorno de programación (IDE). Visual Studio (CU00304A)

CLASE 12.-INSERTAR COLUMNAS

Transcripción:

Capítulo 1 EMBEDDED VISUAL C++ (EVC) 0 Introducción En la presente práctica se pretender ofrecer la primera toma de contacto con el entorno de desarrollo que se usa para programar PDAs en el lenguaje de programación C/C++. Este entorno de desarrollo permite crear aplicaciones muy complicadas con ventanas Windows PPC 2003. Pero en esta asignatura no se pretende que el alumno aprenda a programar aplicaciones con ventanas, ni siquiera que aprenda a programar en C o C++. Pero por otro lado, para poder controlar los robots es necesario saber programar en C. Aunque la programación en C se da por supuesta, el alumno no tiene por qué conocer el entorno de desarrollo necesario para programar PDAs. Por ello los objetivos de esta practica son: Saber realizar y depurar proyectos sencillos en el Embedded Visual C++. Estos proyectos están orientados a controlar robots. Estas aplicaciones constan de un interfaz gráfico, donde al menos se indica al robot que arranque y pare, y de un algoritmo de control, que funciona a ritmo de reloj, donde se programa la inteligencia del robot. Por ello, los proyectos se basarán en una aplicación con una ventana (llamada también Dialogo) que servirá de interfaz con el usuario y de un timer que se usará para ejecutar un algoritmo de forma periódica. Entender como se hacen interfaces gráficos sencillos, de forma que la práctica sea una guía de referencia para futuras prácticas. En esta primera toma de contacto el procedimiento a seguir es el siguiente: En primer lugar se aprenderá a crear un proyecto basado en una ventana de Dialogo. Es importantísimo realizar todos los pasos exactamente tal y como se indica en la práctica, sino es muy fácil perderse en la misma. Este

procedimiento debe seguirse siempre que se quiera crear un nuevo proyecto en sucesivas prácticas. Posteriormente se irán adquiriendo conocimientos para poder personalizar el interfaz de la aplicación, hasta hacerlo interactivo con el usuario. Un aspecto importante es cómo se usan los timers, para poder programar los robots. Se irán introduciendo conceptos para poder depurar un programa que funcionando no lo hace de forma satisfactoria. Finalmente se aprenderá cómo cargar y ejecutar un programa desde una PDA real. 1 Creación de un nuevo proyecto El objetivo es crear un proyecto basado en una ventana de Dialogo. Es importantísimo realizar todos los pasos exactamente tal y como se indica en la práctica, sino es muy fácil perderse en la misma. Este procedimiento debe seguirse siempre que se quiera crear un nuevo proyecto en sucesivas prácticas. 1. Ir al menú File->New. 2. Seleccionar en el cuadro de dialogo New las siguientes opciones: Asegurarse de elegir WCE Pocket PC 2003 MFC AppWizard (exe)!!! Project name: Dlg Location: c:\temp\ grupo de laboratorio \p1. Este directorio tiene que existir; por ello, es necesario crearlo con el Explorador de Windows. Resto de opciones por defecto como en figura

3. Pulsar OK. 4. En el nuevo cuadro de dialogo seleccionar Dialog Based y pulsar el botón "Finish" 5. Pulsar OK.

2 Descripción de la ventana de proyecto En la siguiente figura se muestran los nombre de las diferentes ventanas que hay en el proyecto. Barra de selección Ventana workspace de Ventana de código Ventana de mensajes En la ventana de workspace hay tres pestañas: 1. Classes: no la vamos a usar. 2. Resources: es donde vamos a tocar para poder cambiar el interfaz gráfico de nuestra aplicación. 3. FileView: es el lugar donde se encuentran nuestros ficheros de código C/C++. Una vez creado el proyecto EVC crea 4 ficheros, ver Ventana workspace- >FileView->Source Files:

Dlg.cpp/.h: fichero donde se encuentra el código de la aplicación principal; es decir, el equivalente a main. Este fichero no es necesario tocarlo en ninguna aplicación que hagamos en el laboratorio. Dlg.rc: En este fichero se encuentran almacenados los recursos que usa la aplicación. Estos recursos son las ventanas, botones, etc. Este fichero no se puede tocar directamente. De hecho si se hace doble clic sobre él se muestra un entorno gráfico donde se puede modificar el aspecto de la ventana de Dialogo del proyecto. Dlgdlg.cpp/.h: Es el código de la ventana de Dialogo creada. Este fichero es el punto de partida que se tiene que tocar para poder desarrollar el programa que va a ir en el robot. Stdafx.cpp/.h: Es un fichero que siempre existe en todos los proyectos, y que no hace falta entender pero que es necesario para que todo funcione. 3 Ejecutar el programa En esta sección se va a aprender cómo se ejecuta un programa desde el emulador de la PDA, bien lanzado desde el propio emulador (usando el explorador de archivos) o desde el EVC (con la instrucción Go). 1) En la barra de selección. Elegir en las tres listas desplegables: Pocket PC 2003, Win32 (WinCE Emulator) debug, Pocket PC 2003 Emulation. Esto selecciona el tipo de archivo ejecutable que se necesita. Según el tipo de PDA y de sistema operativo el archivo ejecutable tiene diferente formato. Como ejemplo: en un ordenador convencional no se puede ejecutar un programa de UNIX en Windows. 2) Escribir en Project->Project settings->debug->download directory \Windows\Programs. De esta manera se define el lugar de la PDA (o emulador) en donde se quiere descargar el ejecutable generado por EVC. Por lo tanto, si queremos ejecutar este programa desde el emulador es necesario ir con el explorador al directorio correspondiente. OJO!!! Este

directorio varía si se cambia de tipo de archivo ejecutable (ver punto anterior). Si no sale la pestaña Debug significa que en el árbol de proyecto de la izda de la ventana Project settings no se ha seleccionado, el nodo raíz (seleccionado por defecto), que es el proyecto Dlg. 3) Ejecutar Build->Start Debug->Go. Decir que sí a lo que se pregunte. Tiene que arrancar el Emulador de PPC 2003 y ejecutarse el programa en el mismo. El emulador es como la PDA que hay en el laboratorio. 4) Parar el programa Build->Stop Debugging. 5) Estudiar un poco el emulador. Utilizar el explorador de archivos, etc. Ejecutar desde la PDA el programa que se acaba de hacer. Pararlo. Si no se para cuando se intente volver a cargar el programa desde EVC el sistema no podrá hacerlo porque el archivo ejecutable está en uso. 4 Cambiar el aspecto del Dialogo 1) Seleccionar el fichero de recursos donde se muestra la ventana de Dialogo. 2) Hacer doble clic sobre Ventana Workspace->Resources->Dialog- >IDD_DLG_DIALOG 3) Borramos la etiqueta que hay por defecto en el Dialogo. Se selecciona y se pulsa el botón suprimir. 4) Añadimos una etiqueta al Dialogo. Elegir Static Text de la ventana de controles que aparece en el punto 2 y arrastrar hasta el lugar que queramos de la ventana de Dialogo. Si no se puede ver la ventana de controles, activar Controls en Tools->Customize->Toolbars, o bien pulsar botón derecho en la barra de herramientas y activar Controls. 5) Escribir hola mundo. Hacer clic con el botón derecho del ratón y seleccionar propiedades. En la pestaña General escribir hola mundo en Caption.

6) Ejecutar el programa de nuevo. 5 Dialogo interactivo En esta sección es necesario seguir los pasos tal y como se explica. No se pueden añadir más componentes de los indicados, ni borrarlos. En tal caso, en posteriores apartados se pueden tener problemas (ver último párrafo de esta sección en caso de que surjan problemas). 1) Seleccionar el fichero de recursos donde se muestra la ventana de Dialogo. 2) Hacer doble clic sobre Ventana Workspace->Resources->Dialog- >IDD_DLG_DIALOG 3) Añadimos un cuadro de texto. Elegir Edit Box de la ventana de controles que aparece en el punto 2 y arrastrar hasta el lugar que queramos de la ventana. 4) Añadimos otro cuadro de texto. Elegir Edit Box de la ventana de controles que aparece en el punto 2 y arrastrar hasta el lugar que queramos de la ventana. 5) Añadimos un botón. Elegir Button de la ventana de controles que aparece en el punto 2 y arrastrar hasta el lugar que queramos de la ventana. 6) Escribir Run en el botón. Hacer clic con el botón derecho del ratón y seleccionar propiedades. En la pestaña General escribir Run en Caption. 7) Hacer doble click sobre el botón. Aceptar el nombre que sugiere en la pantalla. 8) Escribir el siguiente código en la función que se acaba de crear. Pulsar F1 sobre la función que queráis ayuda. Este código copia el texto del cuadro de texto primero sobre el segundo.

unsigned short utext[10]; // variable donde se almacena el texto unsigned int nelem; // número de caracteres del texto nelem = GetDlgItemText(IDC_EDIT1,uText,10); // coge el texto SetDlgItemText(IDC_EDIT2, utext); // lo copia al otro cuadro de texto SetDlgItemInt(IDC_EDIT1, 12,false); // ejemplo de como se escribe un número UpdateData(false); // actualiza los datos en pantalla 9) Ejecutar el programa Es necesario hacer notar que el cuadro de texto que se añadió primero se llama por defecto IDC_EDIT1 y que el segundo cuadro de texto se llama IDC_EDIT2. Si se quieren modificar esos nombres hacer clic con el botón derecho del ratón sobre el cuadro de texto y seleccionar Propiedades->General. Evidentemente si los nombres cambian, entonces el código que hace referencia a ellos es necesario también cambiarlos. 6 A golpe de reloj El objetivo es crear un contador que se incremente cada 10 segundos. De esta manera se aprende a manejar un timer, esencial para programar un robot. 1) Ir a la ventana de recursos 2) Hacer clic en botón derecho del ratón (sobre la ventana de dialogo "Ventana Workspace->Resources->Dialog->IDD_DLG_DIALOG") y ejecutar Events. Seleccionar WM_TIMER y pulsar el botón Add Handler. Luego pulsad OK. 3) En dlgdlg.cpp se ha añadido una nueva función, que hay que completar como sigue ( Ojo la función ya existe, no hay que copiarla, sólo rellenarla!) void CdlgDlg::OnTimer(UINT nidevent) { // La funcion se ejecuta cada vez que el timer termina la cuenta, esto después de que pasan los 10 segundos

KillTimer(1); // borrado de la cuenta del timer, se pone a 0 SetDlgItemInt(IDC_EDIT1, i++,false); // aumenta en 1 el contador, el numero del Edit Box UpdateData(false); // actualiza los datos en pantalla SetTimer(1,10000, NULL); // inicializa el timer; cada 10 segundos aumenta la cuenta CDialog::OnTimer(nIDEvent); } 4) Añadir la siguiente variable global en dlgdlg.cpp int i = 0; 5) En la función BOOL CDlgDlg::OnInitDialog() añadir justo antes del return : SetTimer(1, 10000,NULL); // inicializa el timer para que cuente 10 segundos 6) Ejecutar el programa. qué hace? 7 Debug de programas En esta sección se va a tratar de cómo depurar programas. Un Breakpoint es un lugar del código donde se le dice a VCE que pause la ejecución del programa cuando llegue al mismo. Sirve para ver el estado de las variables en ese momento o para seguir ejecutando el programa de una línea en una línea. 1) Añadir un Breakpoint en la siguiente línea de la función OnTimer. Encima de la línea clic botón derecho del ratón y ejecutar Inserta Breakpoint SetDlgItemInt(IDC_EDIT1, i++,false); //aumenta en 1 el contador

2) Ejecutar el programa 3) Cuando el programa se para en el Breakpoint, ver el valor de la variable i en la ventana de watch. View->Debug Windows->Watch 4) A partir de ese punto ejecutar línea a línea el código bien pulsando la tecla F10, o bien Debug->Step Over. Observar como cambia el valor de la variable i en la ventana de watch. El comando Debug->Step Into sirve para que si la ejecución de la línea contiene una función, poder introducirse en la misma. 5) Investigar el comando Debug->Run to cursor. 8 Ejecución en la PDA Se puede hacer todo lo dicho hasta ahora en la PDA seleccionando en la barra de selección: Pocket PC 2003, Win32 (WinCE ARM) debug, Pocket PC 2003 Device. Para que todo funcione es necesario tener arrancado el ActiveSync con la PDA conectada. Ojo! en Project->Settings->Debug con el directorio de descarga del programa. 1. Investigar todas las secciones anteriores pero con la PDA conectada. 9 Ejercicio Hacer un programa que muestre un círculo en pantalla que en función de un número introducido por un cuadro de texto se coloree de color rojo si el número es mayor que 0 y de color verde si el número es menor o igual que 0. 1) Hacerlo con un botón 2) Hacerlo muestreando cada 5 segundos

Pistas: CDC *pdc=getdc( ); // coge la zona de la pantalla donde se pinta CBrush verde(rgb(255,0,0)); // Define una brocha de pintura verde CBrush rojo(rgb(0,255,0)); if(rojo) pdc->selectobject(rojo); // indica que pinte de rojo else pdc->selectobject(verde); pdc->ellipse(50,70,70,90); // pinta una elipse Para coger un número de un cuadro de texto (Edit Box): int num; // número donde se va a guardar el resultado num = GetDlgItemInt(IDC_EDIT1, NULL, true); // Coge un número con signo de IDC_EDIT1