#include "serialecho.h"
#ifndef WIN32
#include <cstdlib>
#endif
SerialEcho::SerialEcho(const char *device,
int priority, int stacksize) :
TTYSession( device, priority, stacksize ) {
cout << "Creating SerialEcho" << endl;
if (!(*this)) {
throw xError();
::exit(1);
} else {
cout << "modem ready" << endl;
}
interactive(false);
if (setSpeed(38400)) cout << getErrorString() << endl;
if (setCharBits(8)) cout << getErrorString() << endl;
if (setParity(Serial::parityNone)) cout << getErrorString() << endl;
if (setStopBits(1)) cout << getErrorString() << endl;
if (setFlowControl(Serial::flowHard)) cout << getErrorString() << endl;
cout << "config done" << endl;
}
void SerialEcho::run() {
char* s = new char[getBufferSize()];
cout << "start monitor" << endl;
while (s[0] != 'X') {
while (isPending(Serial::pendingInput)) {
cout.put( TTYStream::get() );
}
sleep(500);
}
cout << "end of monitor" << endl;
delete [] s;
exit();
}