#include <windows.h>
#include <iostream>
int main() {
HANDLE hSerial = CreateFile("COM1", // Nombre del puerto serie
GENERIC_READ | GENERIC_WRITE,
0, // No compartir
NULL, // Sin seguridad
OPEN_EXISTING, // Abrir puerto existente
0, // Sin atributos
NULL); // Sin plantilla
if (hSerial == INVALID_HANDLE_VALUE) {
std::cerr << "Error al abrir el puerto serie." << std::endl;
return 1;
}
// Variables para almacenar el estado del puerto
DWORD bytesRead;
COMSTAT comStat;
DWORD errors;
// Comprobar el estado del puerto
if (ClearCommError(hSerial, &errors, &comStat)) {
// comStat.cbInQue contiene el número de bytes en el buffer de recepción
std::cout << "Bytes en el buffer de recepción: " << comStat.cbInQue << std::endl;
if (comStat.cbInQue > 0) {
// Aquí puedes leer los datos si hay bytes disponibles
char buffer[256];
ReadFile(hSerial, buffer, comStat.cbInQue, &bytesRead, NULL);
buffer[bytesRead] = '\0'; // Asegúrate de que el buffer sea una cadena válida
std::cout << "Datos leídos: " << buffer << std::endl;
} else {
std::cout << "No hay datos disponibles en el buffer." << std::endl;
}
} else {
std::cerr << "Error al comprobar el estado del puerto." << std::endl;
}
// Cerrar el puerto serie
CloseHandle(hSerial);
return 0;
}