|
From: Evandro H. R. <ero...@ro...> - 2002-09-11 16:13:40
|
Hi people,
I trying to produce a little program to configurate my external modem
(USR 56K).
First I create a file with CreateFile() function, then I used
WriteFile() function to send the configuration strings to modem.
For test I sent a string like "ATDT 9092" to put the modem to dial to
the number 9092, but the ligths on the modem blink but modem does not mak=
e
the call...
Using HYPERTERMINAL, this work fine.
What is wrong?
I put the program below if someone can help me I will be grateful.
Thanks in advance
--------------------------------------
Evandro H. Rodrigues
Ind=FAstrias ROMI S/A - Brazil
Quality Assurance Dep F14-07
Phone: 55-19-455-9529
Fax: 55-19-455-9084
email: ero...@ro...
---------- program -------------------------
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
#include <string>
int main(int argc, char *argv[])
{
DCB dcb;
HANDLE hCom;
BOOL fSuccess;
LPCVOID buffer;
char *pcCommPort =3D "COM2";
using namespace std;
hCom =3D CreateFile( pcCommPort,
GENERIC_READ | GENERIC_WRITE,
0, // comm devices must be opened w/exclusive-acc=
ess
NULL, // no security attributes
OPEN_EXISTING, // comm devices must use OPEN_EXISTIN=
G
0, // not overlapped I/O
NULL // hTemplate must be NULL for comm devices
);
if (hCom =3D=3D INVALID_HANDLE_VALUE) {
// Handle the error.
printf ("CreateFile failed with error %d.\n", GetLastError());
return (1);
}
// We will build on the current configuration, and skip setting the siz=
e
// of the input and output buffers with SetupComm.
fSuccess =3D GetCommState(hCom, &dcb);
if (!fSuccess) {
// Handle the error.
printf ("GetCommState failed with error %d.\n", GetLastError());
return (2);
}
// Fill in the DCB: baud=3D57,600 bps, 8 data bits, no parity, and 1 st=
op
bit.
dcb.BaudRate =3D CBR_57600; // set the baud rate
dcb.ByteSize =3D 8; // data size, xmit, and rcv
dcb.Parity =3D NOPARITY; // no parity bit
dcb.StopBits =3D ONESTOPBIT; // one stop bit
fSuccess =3D SetCommState(hCom, &dcb);
if (!fSuccess) {
// Handle the error.
printf ("SetCommState failed with error %d.\n", GetLastError());
return (3);
}
string codigo =3D "ATDT 9092\n";
DWORD nBytes;
string lida =3D "1234567890123456789012345678901";
if (WriteFile(hCom, &codigo, 10, &nBytes, NULL))
cout << "Foram escritos " << nBytes << " Bytes" << endl;
if (ReadFile(hCom, &lida, 10, &nBytes, NULL))
cout << "String lida -> " << lida << " Bytes lidos " << nBytes << end=
l;
system("PAUSE");
return (0);
}
|