diff --git a/lib/wqueue.h b/lib/wqueue.h index bdff4bf2..be40507b 100644 --- a/lib/wqueue.h +++ b/lib/wqueue.h @@ -21,10 +21,7 @@ #define WQUEUE_H_ #include -#include #include -#include -#include template class WQueue { @@ -67,34 +64,6 @@ public: return item; } - T remove(const long delay) - { - struct timeval tv; - struct timezone tz; - struct timespec timeout; - - int ret = 0; - - pthread_mutex_lock(&m_mutex); - - gettimeofday(&tv, &tz); - timeout.tv_sec = tv.tv_sec + delay; - timeout.tv_nsec = tv.tv_usec * 1000; - - while (m_queue.size() == 0 && ret != ETIMEDOUT) - ret = pthread_cond_timedwait(&m_condv, &m_mutex, &timeout); - - if (ret == ETIMEDOUT) - return NULL; - - T item = m_queue.front(); - m_queue.pop_front(); - - pthread_mutex_unlock(&m_mutex); - - return item; - } - int size() { pthread_mutex_lock(&m_mutex); diff --git a/src/baseloop.cpp b/src/baseloop.cpp index c566f8ed..3906138a 100644 --- a/src/baseloop.cpp +++ b/src/baseloop.cpp @@ -96,27 +96,22 @@ std::string BaseLoop::decodeMessage(const std::string& data) m_ebusloop->addBusCommand(new BusCommand(type, ebusCommand)); BusCommand* busCommand = m_ebusloop->getBusCommand(); - if (busCommand != NULL) { - if (busCommand->getResult().c_str()[0] != '-') { - // decode data - Command* command = new Command(index, (*m_commands)[index], busCommand->getResult()); + if (busCommand->getResult().c_str()[0] != '-') { + // decode data + Command* command = new Command(index, (*m_commands)[index], busCommand->getResult()); - // return result - result << command->calcResult(cmd); + // return result + result << command->calcResult(cmd); - delete command; - } else { - L.log(bas, error, " %s", busCommand->getResult().c_str()); - result << busCommand->getResult(); - } - - - delete busCommand; + delete command; } else { - L.log(bas, error, " -7: receive timeout"); - result << "-7: receive timeout"; + L.log(bas, error, " %s", busCommand->getResult().c_str()); + result << busCommand->getResult(); } + + delete busCommand; + } else { result << "ebus command not found"; } @@ -155,25 +150,19 @@ std::string BaseLoop::decodeMessage(const std::string& data) m_ebusloop->addBusCommand(new BusCommand(type, ebusCommand)); BusCommand* busCommand = m_ebusloop->getBusCommand(); - if (busCommand != NULL) { - if (busCommand->getResult().c_str()[0] != '-') { - // decode result - if (busCommand->getResult().substr(busCommand->getResult().length()-8) == "00000000") - result << "done"; - else - result << "error"; + if (busCommand->getResult().c_str()[0] != '-') { + // decode result + if (busCommand->getResult().substr(busCommand->getResult().length()-8) == "00000000") + result << "done"; + else + result << "error"; - } else { - L.log(bas, error, " %s", busCommand->getResult().c_str()); - result << busCommand->getResult(); - } - - delete busCommand; } else { - L.log(bas, error, " -7: receive timeout"); - result << "-7: receive timeout"; + L.log(bas, error, " %s", busCommand->getResult().c_str()); + result << busCommand->getResult(); } + delete busCommand; delete command; } else { @@ -231,17 +220,12 @@ std::string BaseLoop::decodeMessage(const std::string& data) m_ebusloop->addBusCommand(new BusCommand(type, ebusCommand)); BusCommand* busCommand = m_ebusloop->getBusCommand(); - if (busCommand != NULL) { - if (busCommand->getResult().c_str()[0] == '-') - L.log(bas, error, " %s", busCommand->getResult().c_str()); + if (busCommand->getResult().c_str()[0] == '-') + L.log(bas, error, " %s", busCommand->getResult().c_str()); - result << busCommand->getResult(); + result << busCommand->getResult(); - delete busCommand; - } else { - L.log(bas, error, " -7: receive timeout"); - result << "-7: receive timeout"; - } + delete busCommand; } else { result << "specified message type is incorrect"; diff --git a/src/ebusloop.h b/src/ebusloop.h index 7d2d6a1a..44efc05c 100644 --- a/src/ebusloop.h +++ b/src/ebusloop.h @@ -40,7 +40,7 @@ public: std::string getData() { return m_cycBuffer.remove(); } void addBusCommand(BusCommand* busCommand) { m_sendBuffer.add(busCommand); } - BusCommand* getBusCommand() { return m_recvBuffer.remove(10); } + BusCommand* getBusCommand() { return m_recvBuffer.remove(); } void dump(const bool dumpState) { m_bus->setDumpState(dumpState); }