1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-09-27 15:26:33 -04:00

LimeSDR output: optimize get device info by checking buddy leadership in the GUI

This commit is contained in:
f4exb 2017-07-03 23:29:06 +02:00
parent b867cf2335
commit efe921ffe7
2 changed files with 33 additions and 32 deletions

View File

@ -432,42 +432,39 @@ bool LimeSDROutput::handleMessage(const Message& message)
}
else if (MsgGetDeviceInfo::match(message))
{
if (m_deviceAPI->isBuddyLeader())
double temp = 0.0;
if (m_deviceShared.m_deviceParams->getDevice() && (LMS_GetChipTemperature(m_deviceShared.m_deviceParams->getDevice(), 0, &temp) == 0))
{
double temp = 0.0;
//qDebug("LimeSDROutput::handleMessage: MsgGetDeviceInfo: temperature: %f", temp);
}
else
{
qDebug("LimeSDROutput::handleMessage: MsgGetDeviceInfo: cannot get temperature");
}
if (m_deviceShared.m_deviceParams->getDevice() && (LMS_GetChipTemperature(m_deviceShared.m_deviceParams->getDevice(), 0, &temp) == 0))
{
qDebug("LimeSDROutput::handleMessage: MsgGetDeviceInfo: temperature: %f", temp);
}
else
{
qDebug("LimeSDROutput::handleMessage: MsgGetDeviceInfo: cannot get temperature");
}
// send to oneself
DeviceLimeSDRShared::MsgReportDeviceInfo *report = DeviceLimeSDRShared::MsgReportDeviceInfo::create(temp);
m_deviceAPI->getDeviceOutputMessageQueue()->push(report);
// send to oneself
// send to source buddies
const std::vector<DeviceSourceAPI*>& sourceBuddies = m_deviceAPI->getSourceBuddies();
std::vector<DeviceSourceAPI*>::const_iterator itSource = sourceBuddies.begin();
for (; itSource != sourceBuddies.end(); ++itSource)
{
DeviceLimeSDRShared::MsgReportDeviceInfo *report = DeviceLimeSDRShared::MsgReportDeviceInfo::create(temp);
m_deviceAPI->getDeviceOutputMessageQueue()->push(report);
(*itSource)->getDeviceOutputMessageQueue()->push(report);
}
// send to source buddies
const std::vector<DeviceSourceAPI*>& sourceBuddies = m_deviceAPI->getSourceBuddies();
std::vector<DeviceSourceAPI*>::const_iterator itSource = sourceBuddies.begin();
// send to sink buddies
const std::vector<DeviceSinkAPI*>& sinkBuddies = m_deviceAPI->getSinkBuddies();
std::vector<DeviceSinkAPI*>::const_iterator itSink = sinkBuddies.begin();
for (; itSource != sourceBuddies.end(); ++itSource)
{
DeviceLimeSDRShared::MsgReportDeviceInfo *report = DeviceLimeSDRShared::MsgReportDeviceInfo::create(temp);
(*itSource)->getDeviceOutputMessageQueue()->push(report);
}
// send to sink buddies
const std::vector<DeviceSinkAPI*>& sinkBuddies = m_deviceAPI->getSinkBuddies();
std::vector<DeviceSinkAPI*>::const_iterator itSink = sinkBuddies.begin();
for (; itSink != sinkBuddies.end(); ++itSink)
{
DeviceLimeSDRShared::MsgReportDeviceInfo *report = DeviceLimeSDRShared::MsgReportDeviceInfo::create(temp);
(*itSink)->getDeviceOutputMessageQueue()->push(report);
}
for (; itSink != sinkBuddies.end(); ++itSink)
{
DeviceLimeSDRShared::MsgReportDeviceInfo *report = DeviceLimeSDRShared::MsgReportDeviceInfo::create(temp);
(*itSink)->getDeviceOutputMessageQueue()->push(report);
}
return true;

View File

@ -342,8 +342,12 @@ void LimeSDROutputGUI::updateStatus()
}
else
{
LimeSDROutput::MsgGetDeviceInfo* message = LimeSDROutput::MsgGetDeviceInfo::create();
m_sampleSink->getInputMessageQueue()->push(message);
if (m_deviceAPI->isBuddyLeader())
{
LimeSDROutput::MsgGetDeviceInfo* message = LimeSDROutput::MsgGetDeviceInfo::create();
m_sampleSink->getInputMessageQueue()->push(message);
}
m_deviceStatusCounter = 0;
}
}