Software">
Introducción A Visual C++
Introducción A Visual C++
Introducción A Visual C++
Lo primero que se ejecutará será la función main del fichero principal, que cargará las librerías
de Windows, y lanzará el formulario por defecto.
Por ejemplo, si yo escribo “int a;”, estoy declarando una variable que se llama a y de tipo
“int”.
Si escribo “Clase1 b;”, estaré definiendo una variable que se llama b y de tipo Clase1. Si Clase1
es un tipo de dato que yo he creado como una clase (datos y código), entonces b será un
objeto de la clase Clase1.
La sentencia
nos permite definer la clase principal de una aplicación Visual C++(Windows forms), que es el
formulario.
CONSTRUCTOR
El constructor, es una función que se ejecuta de forma automática al crear un objeto de esa
clase.
La sentencia
public:
Form1(void)
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
}
Donde están las líneas en verde, podemos poner sentencias que se ejcutarán, antes de abrirsa
la ventana de nuestro programa en ejecución.
El código de las librerías se puede aportar como un fichero que se enlaza una sóla vez durante
el proceso de linkado (lo hace el compilador con un fichero de tipo Lib) o que se enlaza
durante la ejecución de forma dinámica, viniendo entonces como un fichero externo de tipo
dll. A veces se usa una mezcla de los dos.
Los tes ficheros debemos colocarlos en la carpeta de nuestro proyecto. La dll habrá que
distribuirla junto al fichero ejecutable.
FICHERO.h
#include "ftd2xx.h"
Lo ponemos entre comillas, para indicar que se debe buscar en el directorio actual, y no en la
carpeta “include”.
Otro fichero que es necesario incluir es la libería clásica de windows
#include <windows.h>
FICHERO.lib
El fichero .lib contiene el código que implementa las funciones declaradas en las cabecaras.
Para que el linkador lo enlace, lo debemos añadir en el apartado correspondiente del menú de
opciones del proyecto.
FICHERO .dll
Simplemente lo dejamos en la carpeta del proyecto.
El driver del FT232, instala al chip como un puerto serie en nuestro ordenador.
El primer paso, será por lo tanto instalar el driver en nuestro equipo, con lo que al conectar el
chip al usb, nos debe aparecer un puerto serie nuevo.
Nuestro programa, usará las librerías del driver, para detectar si tenemos pinchado algún ft232
ft
y el puerto serie en el que se ha configurado.
Si no hay ft, seguiremos desactivados, si lo hay, guardamos el puerto, para realizar el resto de
la comunicación como si de un puerto serie normal se tratara.
Creamos una variable de tipo FT_HANDLE que contendrá el manehador del puerto com, en el
caso de ser encontrado
FT_HANDLE fthandle;
FT_STATUS res;
long COMPORT=0;
res= FT_Open (0,&fthandle);
if (res== FT_OK){
res = FT_GetComPortNumber(fthandle,&COMPORT);
this->label1->Text=
>Text="Puerto "+COMPORT;
res=FT_ResetDevice(fthandle);
esetDevice(fthandle);
}else
this->label1
>label1->Text="Error. Puerto no encontrado ";
res=FT_Close(fthandle)
Si estaba conectado el FT, la variable COMPORT, contendrá el número del puerto asignado.
EJEMPLO ESCRITURA
LECTURA
Para la recepción de datos establecemos que ocurra un evento por parte del puerto serial al
recibir un Byte, y allí utilizando la propiedad BytesToRead podemos determinar cuántos bytes
disponemos para leer. Si hay datos, tenemos varias opciones para realizar la lectura, leer bytes
->ReadByte(), leer cierta cantidad de bytes ->Read(), leer una línea (hasta recibir salto de línea)
->ReadLinea() o leer lo que se encuentre en el buffer de recepción ->ReadExisting (). En
nuestro caso leemos lo que hay en el buffer, lo guardamos en un string e invocamos a una
función que se encarga de escribir los datos en un TextBox.
EJEMPLO LECTURA
char a;
if(serialPort1->BytesToRead>0) { // Si hay datos a leer...
a=serialPort1->ReadChar(); // Leemos 1 carácter.-
label3->Text=" "+a;
}
Cuando manejanos eventos del objeto serialPort, se crean hilos o threads, lo que nos puede
originar errores.
CheckForIllegalCrossThreadCalls = 0;