#include #include "globalstorage.h" #include "serialthread.h" inline void msleep(int s) { usleep(s*1000); } SerialThread::SerialThread() : Thread() { } void SerialThread::operator()() { const int delay = 5; mStopped = false; GlobalStorage* store = GlobalStorage::instance(); CH7Serial& serial = store->serialPort; while (mContinue) { store->led3 = serial.readTarget(0); msleep(delay); store->led4 = serial.readTarget(1); msleep(delay); store->led5 = serial.readTarget(2); msleep(delay); store->switch2 = serial.readTarget(3); msleep(delay); store->switch3 = serial.readTarget(4); msleep(delay); store->potmeter = serial.readTarget(5); msleep(delay); store->temp = serial.readTarget(6); std::cout << store->potmeter << std::endl; boost::mutex::scoped_lock lock(store->writeMutex); if (! store->commands.empty() ) { WriteCommand cmd = store->commands.front(); store->commands.pop(); serial.writeTarget( cmd.target, cmd.data); } msleep(80); } mStopped = true; }