Sei sulla pagina 1di 10

http://www.activexperts.

com/activcomport/howto/vc/

Usando el kit de herramientas de ActiveComport puerto serie con Visual C + + 5.x/6.x


ActiveComport es un kit de desarrollo de software (SDK) que permite al usuario comunicarse con un dispositivo a travs de una interfaz en serie.

Tal dispositivo puede ser: un indicador de peso, un mdem, un escner, o cualquier otro dispositivo que est equipado con un puerto serie. Incluso puede ser otro PC, conectado a travs de un cable de mdem nulo.

ActiveComport tiene las siguientes caractersticas:

COM apoyo directo del puerto (como 'COM1'), TAPI (Telephony de dispositivos de Windows) de apoyo (como el 'estndar de 56000 bps Modem "), el apoyo a RS-232/RS422/RS485, hasta 256 puertos simultneas, soporte para todo tipo de Hayes mdems compatibles, soporte para el cable de serie, las conexiones por cable USB o Bluetooth, soporte para mdems GSM / GPRS, soporte para puertos COM virtuales (es decir, los puertos COM redirigido a travs de la red), el control de flujo por hardware (RTS / CTS, DTR / DSR), el software flowcontrol (XON / XOFF), velocidad de transmisin configurable / paridad / bits de parada, completa la transferencia de buffer de datos, texto / binario de transferencia de datos.

ActiveComport puede estar bien integrada en Visual C + + entornos.

Este documento describe cmo el Kit de herramientas ActiveComport puede ser integrado en Visual Studio C + + 5.x/6.x.

Paso 1: Descargar e instalar el kit de herramientas ActiveComport


Descargue el Kit de herramientas de ActiveComport de la pgina de descarga de ActiveXperts e iniciar la instalacin. La instalacin le guiar en el proceso de instalacin.

Paso 2: Crear un nuevo Visual C + + del proyecto


"Microsoft Visual C + + Lanzamiento desde el men Inicio y seleccione 'Nuevo' en el men 'Archivo'. El "nuevo" de dilogo.

Seleccione el tipo de proyecto (por ejemplo: "Aplicacin de consola Win32"), introduzca un nombre de proyecto "y seleccione" Location ":

(Haga clic en la foto para ampliarla)

Seleccione el tipo de proyecto, por ejemplo, un "Hola, mundo! ' aplicacin y haga clic en "Finalizar":

(Haga clic en la foto para ampliarla)

Paso 3: Consulte la Biblioteca ActiveComport y declarar los objetos


Un nuevo proyecto se crea ahora.

Antes de poder utilizar ActiveComport, es necesario hacer referencia a la biblioteca ActiveComport. Los archivos de referencia en realidad se suministra con el producto y se encuentran en el siguiente directorio:

C: \ Archivos de programa \ ActiveXperts \ ActiveComport \ Ejemplos \ Visual C + + \ Include

Copie todos los archivos en el directorio anterior ('AComport.h', 'AComport_i.c' y 'AComportConstants.h') para el directorio del proyecto.

En la parte superior de su cdigo, podr declarar el objeto siguiente:

IComPort pComPort * = NULL;

Paso 4: Crear los objetos


Dado que el kit de herramientas de ActiveComport es un objeto COM, debe inicializar la biblioteca COM antes de que puedan llamar a las funciones de la biblioteca COM (por ejemplo, las funciones ActiveComport):

CoInitialize (NULL);

Crear el objeto de la siguiente manera:

CoCreateInstance (CLSID_ComPort, NULL, CLSCTX_INPROC_SERVER, IID_IComPort, (void **) & pComPort);

Paso 5: Enviar comandos AT conectada a un mdem compatible con Hayes


Ahora puede enviar y / o recibir datos desde y / o de un puerto serie.

El siguiente cdigo muestra cmo consultar mdem:

# Include <comdef.h>

# Include <atlbase.h>

# Include <windows.h>

# Include

# Include ".. \ include \ AComportConstants.h"

# Include ".. \ include \ AComport.h"

# Include ".. \ include \ AComport_i.c"

NULA MyReadString (IComPort * pComPort, DWORD dwMaxMSecs);

NULA MyWriteString (IComPort * pComPort, _bstr_t bstrString);

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

int main (int argc, char * argv [])

IComPort pComPort * = NULL;

LARGO lLastError = 0L;

LARGO lDeviceCount = 0L;

Long l = 0L;

HRESULT hr;

_bstr_t bstrCmd1 = "AT & F";

_bstr_t bstrCmd2 = "ATE0";

_bstr_t bstrCmd3 = "AT + FCLASS =?";

_bstr_t bstrDev = "Standard 56000 bps Modem";

_bstr_t bstrLog = "C: \ \ AComport.log";

BSTR bstrDevice = NULL;

CoInitialize (NULL);

hr = CoCreateInstance (CLSID_ComPort, NULL, CLSCTX_INPROC_SERVER, IID_IComPort, (void **) & pComPort);

if (! SUCCEEDED (h))

pComPort = NULL;

printf ("No se puede crear una instancia del objeto. \ n");

goto _EndMain;

pComPort-> GetDeviceCount (y lDeviceCount);

para (l = 0, l <lDeviceCount; l + +)

pComPort-> GetDevice (l, y bstrDevice);

printf ("% ls \ n", bstrDevice);

/ / Abrir puerto

pComPort-> put_Device (bstrDev);

pComPort-> put_LogFile (bstrLog);

pComPort-> put_BaudRate (9600);

/ / 9600 bps

pComPort-> Open ();

pComPort-> get_LastError (y lLastError);

if (lLastError! = 0)

BSTR pErrorDescription = NULL;

pComPort-> GetErrorDescription (lLastError, y pErrorDescription);

wprintf (L "puerto abierto, error #% d:% s \ n", lLastError, (LPCWSTR) pErrorDescription);

SysFreeString (pErrorDescription);

goto _EndMain;

printf ("puerto abierto correctamente \ n");

/ / Escribir AT & F

MyWriteString (pComPort, bstrCmd1);

MyReadString (pComPort, 2000);

/ / Escribir ATE0

MyWriteString (pComPort, bstrCmd2);

MyReadString (pComPort, 8000);

/ / Escribir AT + FCLASS =?

MyWriteString (pComPort, bstrCmd3);

MyReadString (pComPort, 8000);

/ / Cerrar el puerto

pComPort-> Close ();

printf ("Listo. \ n");

_EndMain:

if (pComPort = NULL!) pComPort-> Release ();

return 0;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

NULA MyReadString (IComPort * pComPort, DWORD dwMaxMSecs)

DWORD dwStartTime = GetTickCount ();

BSTR bstrTemp;

_bstr_t bstrInputString;

BOOL bSomethingRead = false;

INT lenInputString;

hacer

Sleep (200);

pComPort-> ReadString (y bstrTemp);

bstrInputString = (LPCWSTR) bstrTemp;

lenInputString = lstrlen (bstrInputString.operator char * ());

printf ("<- '% s' \ n", bstrInputString.operator char * ());

SysFreeString (bstrTemp);

bSomethingRead = lenInputString> 0? VERDADERO: bSomethingRead;

mientras que (lenInputString = 0 | | (bSomethingRead && GetTickCount () <+ dwStartTime dwMaxMSecs)!);

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

NULA MyWriteString (IComPort * pComPort, _bstr_t bstrString)

pComPort-> WriteString (bstrString);

printf ("->% s \ n", bstrString.operator char * ());

Hay muchos ejemplos de trabajo que se incluyen con el producto. Tambin se pueden encontrar en el sitio FTP de ActiveXperts: ftp.activexperts-labs.com/samples/serial-port-component .

Potrebbero piacerti anche