#include "serialwatcher.h" void SerialWatcher::run() { abort(); loop.reset(new QEventLoop); QTimer timer; connect(&timer, SIGNAL(timeout()), this, SLOT(doTick())); timer.setInterval(500); timer.start(); loop->exec(); } void SerialWatcher::abort() { if (!loop.isNull()){ loop->quit(); } } void SerialWatcher::doTick() { char charBuf; while(sRead(_serial, &charBuf, 1) == 1) { _buffer.push_back(charBuf); if( _buffer.endsWith('\n') ) { textRecived(_buffer); _buffer.clear(); } } }