#include <iostream>
#include <windows.h>
using namespace std;
int main() {
/****************************
CONFIGURACION DEL PUERTO COM
****************************/
HANDLE hSerial;
hSerial = CreateFile("COM3",
GENERIC_READ | GENERIC_WRITE,
0,
0,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
if(hSerial==INVALID_HANDLE_VALUE){
if(GetLastError()==ERROR_FILE_NOT_FOUND){
cout << "The COM port doesn\'t exist" << endl;
}
cout << "Error: Invalid Handle" << endl;
}
DCB dcbSerialParams = {0};
dcbSerialParams.DCBlength=sizeof(dcbSerialParams); // Esta linea esta mal en el PDF (aqui esta bien)
if (!GetCommState(hSerial, &dcbSerialParams)) {
cout << "Error getting state" << endl;
}
dcbSerialParams.BaudRate=CBR_9600;
dcbSerialParams.ByteSize=8;
dcbSerialParams.StopBits=ONESTOPBIT;
dcbSerialParams.Parity=NOPARITY;
if(!SetCommState(hSerial, &dcbSerialParams)){
cout << "Error setting serial port state" << endl;
}
COMMTIMEOUTS timeouts={0};
timeouts.ReadIntervalTimeout=50;
timeouts.ReadTotalTimeoutConstant=50;
timeouts.ReadTotalTimeoutMultiplier=10;
timeouts.WriteTotalTimeoutConstant=50;
timeouts.WriteTotalTimeoutMultiplier=10;
if(!SetCommTimeouts(hSerial, &timeouts)){
cout << "Error Setting time out" << endl;
}
/********************
TRANSMISION DE DATOS
********************/
char szBuff[1] = {0};
DWORD dwBytesRead = 0;
char palabra[64]; // 8 * 8
while (palabra[0] != \'!\') {
cout << "Palabra (! para salir): ";
cin >> palabra;
cout << endl;
unsigned short int i = 0;
while (palabra[i] != 0) {
szBuff[0] = palabra[i];
if(!WriteFile(hSerial, szBuff, 1, &dwBytesRead, NULL)){
cout << "No se pudo" << endl;
break;
}
i++;
}
}
}