LAN Devices presence
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
#include "LANDevicesPresenceMonitor.h"
|
||||
#include "OtarcikCan.h"
|
||||
|
||||
CLANDevicesPresenceMonitor::CLANDevicesPresenceMonitor()
|
||||
{
|
||||
mProgramPtr = 0;
|
||||
mLANDevicesPresenceStateUpdateTimer = new QTimer;
|
||||
mLANDevicesPresenceStateUpdateTimer->setInterval(LAN_DEVICE_MONITOR_PRESENCE_CHECK_TIMEOUT);
|
||||
mLANDevicesPresenceStateUpdateTimer->setSingleShot(false);
|
||||
connect(mLANDevicesPresenceStateUpdateTimer,&QTimer::timeout,this,&CLANDevicesPresenceMonitor::DevicesPresenceUpdateTimerExpired);
|
||||
}
|
||||
|
||||
CLANDevicesPresenceMonitor::~CLANDevicesPresenceMonitor()
|
||||
{
|
||||
Stop();
|
||||
delete mLANDevicesPresenceStateUpdateTimer;
|
||||
}
|
||||
|
||||
int CLANDevicesPresenceMonitor::Start(QList<CLANDevicePresenceConfig> *LANDevicesList)
|
||||
{
|
||||
mLANMonitorList.clear();
|
||||
for(int i = 0; i < LANDevicesList->size(); i++)
|
||||
{
|
||||
CLANDeviceMonitor *NewMonitor = new CLANDeviceMonitor(LANDevicesList->at(i).mDeviceIPAddress,LANDevicesList->at(i).mCANStatusBit,LANDevicesList->at(i).mIsDetectionActive,LANDevicesList->at(i).mDeviceDescription);
|
||||
mLANMonitorList.append(NewMonitor);
|
||||
}
|
||||
mLANDevicesPresenceStateUpdateTimer->start();
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
int CLANDevicesPresenceMonitor::Stop()
|
||||
{
|
||||
//destroy all LAN monitors.
|
||||
for(int i = 0; i < mLANMonitorList.size(); i++)
|
||||
{
|
||||
delete mLANMonitorList[i];
|
||||
}
|
||||
mLANMonitorList.clear();
|
||||
mLANDevicesPresenceStateUpdateTimer->stop();
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
quint64 CLANDevicesPresenceMonitor::GetDevicesPresenceCANMask()
|
||||
{
|
||||
quint64 Mask = 0;
|
||||
|
||||
for(int i = 0; i < mLANMonitorList.size(); i++)
|
||||
{
|
||||
Mask |= mLANMonitorList[i]->GetDeviceCANStatusMask();
|
||||
}
|
||||
|
||||
return Mask;
|
||||
}
|
||||
|
||||
void CLANDevicesPresenceMonitor::DevicesPresenceUpdateTimerExpired()
|
||||
{
|
||||
QList<bool> DevicesStatusList;
|
||||
|
||||
for(int i = 0; i < mLANMonitorList.size(); i++)
|
||||
{
|
||||
bool Status = mLANMonitorList.at(i)->IsDeviceOnline();
|
||||
DevicesStatusList.append(Status);
|
||||
}
|
||||
|
||||
mProgramPtr->UpdateLANDevicesPresenceStatusRequest(DevicesStatusList);
|
||||
}
|
||||
Reference in New Issue
Block a user