C/Visual C - Puerto Paralelo

 
Vista:

Puerto Paralelo

Publicado por Andres (1 intervención) el 03/08/2005 02:58:31
Necesito hacer transmisión y recepción de datos por medio de puerto paralelo entre dos computadotas usando visual C++. Me podrian ayudar con cualquier tipo de información para poder hacer esto?? gracias..
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Puerto Paralelo

Publicado por fernando.gomez (1603 intervenciones) el 03/08/2005 04:47:40
Usualmente esto se hace como si fuese un archivo cualquiera, sólo que el nombre del archivo es el del puerto. Aunque tentativamente std::ofstream y std::ifstream debiesen funcionar, te recomiendo que mejor emplees el API de Windows para ello. Primero necesitas abrir el archivo con CreateFile, donde el nombre del archivo sería LPT1, LPT2, COM1, etc (con algún IRDA o USB es algo diferente). Luego empleas WriteFile para escribir los bytes que necesites, o ReadFile para leer del puerto. Finalmente, CloseHandle para cerrar el archivo. Sería algo como:

HANDLE hFile;
const TCHAR szLPT[] = _T("LPT1:"); // nota los dos puntos después del nombre
TCHAR pInBuffer[50];
TCHAR pOutBuffer[50];
BOOL bSucceed;
DWORD dwRead;

memset(pInBuffer, 0, 50);
memset(pOutBuffer, 0, 50);
_tcscpy(pOutBuffer, _T("HOLA MUNDO"));

hFile = CreateFile(
szLPT, //nombre del archivo --el puerto
GENERIC_READ | GENERIC_WRITE, //tipo de acceso --lectura/escritura
NULL, //cómo compartir el archivo --no compartir
NULL, //atributos de seguridad --usar los predefinidos
OPEN_EXISTING, //creación del archivo --ya existente (se supone)
NULL, //otros atributos --sólo para archivos, no aplica para el puerto
NULL //plantilla --no usado
);
if (hFile == INVALID_HANDLE_VALUE) {
//error, usar GetLastError para más información
}

bSucceed = ReadFile(hFile, szInBuffer, 50, &dwRead, NULL);
if (!bSucceed) {
// error
}

cout << "Leídos: " << dwRead << " bytes";
cout.flush();

bSucceed = WriteFile(hFile, szOutBuffer, 50, &dwRead, NULL);
if (!bSucceed) {
//error
}

cout << "Escritos: " << dwRead << " bytes";
cout.flush();

CloseHandle(hFile);

Voilá! Esto debería funcionar, con suerte =D

Saludos.



Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar