Hola, tengo un pequeño problema: estoy haciendo un programa que se comunica con el puerto serie; para ello envía una instrucción que se le introduce por teclado. El caso es que cuando llega a la lectura de teclado pasa una de estas dos cosas:
1- Si no hay nada en el puerto serie, lee de teclado con normalidad.
2- Si tengo conectado al puerto serie ( en este caso es un sensor de posicion, que manda datos continuamente), se salta la linea en la que tiene que leer por teclado y el programa termina.
Mi impresión es que está leyendo del puerto serie en vez de por teclado; pero uso "cin" que si no estoy equivocado lee por teclado,¿no?
#include <iostream>
#include <SerialPort.h>
#include <unistd.h>
//g++ -lserial -o pruebaPuerto pruebaPuerto.cpp
using namespace std;
string entrada;
int main(int argc, char **argv)
{
//Error si param < 2
if (argc<2) {
cerr << "Falta el puerto serie a abrir" << endl;
return 1;
}
//Se crea el puerto serie
SerialPort puerto(argv[1]);
try {
//Se abre el puerto
puerto.Open(SerialPort::BAUD_115200,
SerialPort::CHAR_SIZE_8,
SerialPort::PARITY_NONE,
SerialPort::STOP_BITS_1,
SerialPort::FLOW_CONTROL_NONE);
}
//Error al abrir el puerto
catch (SerialPort::OpenFailed E) {
cerr << "Error abriendo el puerto" << endl;
return 1;
}
//Se lee por pantalla el parametro a enviar
cout << "Puerto abierto con éxito" << endl;
cout << "Escribe lo que quieres enviar" << endl;
cin >> entrada;
//Se manda el parametro por el puerto
puerto.Write(entrada);
puerto.Close;
}