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;
}