/*******************************************************************
* FUNCIONES DE PUERTO PARALELO *
*******************************************************************/
[/SIZE]void receive_string_LPT(unsigned char *a)
{
DWORD bytesRead;
UCHAR r
ata = 1;
unsigned char c;
c=0; //inicializa variable
do{
ReadFile(hParallel, &r
ata, sizeof(r
ata), &bytesRead, NULL); //lee dato del puerto
*(a+c) = r
ata; //agrega dato a la cadena
c++; //incrementa el contador de c
}while(r
ata != 0x0A && r
ata != 0x0); //mientras no sea un Return o nulo
}
void send_byte_LPT(unsigned char Data)
{
DWORD bytesSent;
UCHAR t
ata;
t
ata = Data; //asigna valor a trasmitir
WriteFile(hParallel, &t
ata, sizeof(t
ata), &bytesSent, NULL); //envia byte por puerto
}
unsigned char init_LPT(void)
{
COMMTIMEOUTS parallelTimeouts; //estatus de puerto
LPCWSTR gszPort;
gszPort = LPT;
SetLastError(0); //cancela ultimo error
hParallel = CreateFile( gszPort, //crea connection a comm
GENERIC_READ | GENERIC_WRITE,
0,
0,
OPEN_EXISTING,
0, //FILE_FLAG_OVERLAPPED,
0);
if(hParallel == INVALID_HANDLE_VALUE)return(0); //envia error
parallelTimeouts.ReadIntervalTimeout = MAXDWORD;
parallelTimeouts.ReadTotalTimeoutMultiplier = 0;
parallelTimeouts.ReadTotalTimeoutConstant = 0;
parallelTimeouts.WriteTotalTimeoutMultiplier = 0;
parallelTimeouts.WriteTotalTimeoutConstant = 0;
SetCommTimeouts(hParallel, ¶llelTimeouts);
return(1); //envia OK
}