void MessageMonitor::updateMessage(const IMC::Message* msg) { ScopedMutex l(m_mutex); IMC::Message* tmsg = msg->clone(); unsigned key = tmsg->getId() << 24 | tmsg->getSubId() << 8 | tmsg->getSourceEntity(); if (m_msgs[key]) delete m_msgs[key]; m_msgs[key] = tmsg; }
void MessageMonitor::updateMessage(const IMC::Message* msg) { ScopedMutex l(m_mutex); if (msg->getId() == DUNE_IMC_POWERCHANNELSTATE) updatePowerChannel(static_cast<const IMC::PowerChannelState*>(msg)); IMC::Message* tmsg = msg->clone(); unsigned key = tmsg->getId() << 24 | tmsg->getSubId() << 8 | tmsg->getSourceEntity(); if (m_msgs[key]) delete m_msgs[key]; m_msgs[key] = tmsg; }