Masterctrl/Sources/NetworkDevicesMgr.cpp
J-F Martel f4fc549a8a Dev.
2016-01-15 14:43:58 -05:00

87 lines
2.0 KiB
C++

#include "NetworkDevicesMgr.h"
#include "232NetworkCommIF.h"
#include "485NetworkCommIF.h"
#include "EthernetNetworkCommIF.h"
#include "MasterCtrl.h"
CNetworkDevicesMgr::CNetworkDevicesMgr()
{
mVoipMSInterfaceHandle = 0;
mProgramHandle = 0;
}
CNetworkDevicesMgr::~CNetworkDevicesMgr()
{
for(int i = 0; i < mNetworkDevicesList.size(); i++)
{
delete mNetworkDevicesList.at(i);
}
mNetworkDevicesList.clear();
}
int CNetworkDevicesMgr::InitNetworkDevices()
{
C232NetworkCommIF *NetworkInterface = new C232NetworkCommIF();
CDeadboltDevice *DeadboltDevice = new CDeadboltDevice(1,(CAbstractNetworkCommIF*)NetworkInterface);
mNetworkDevicesList.append(DeadboltDevice);
return RET_OK;
}
int CNetworkDevicesMgr::CreateNewSMSDevice(int Address, CAbstractNetworkCommIF *NetworkIF)
{
if(mVoipMSInterfaceHandle == 0)
{
return RET_ERROR;
}
CSMSDevice *SMSDevice = new CSMSDevice(Address,NetworkIF,mVoipMSInterfaceHandle);
mNetworkDevicesList.append((CNetworkDevice*)SMSDevice);
return RET_OK;
}
void CNetworkDevicesMgr::EthernetNetworkDeviceDisconnected(CNetworkDevice *Device)
{
qDebug("Device disconnected. ID: %d, Address: %d",Device->GetDeviceID(),Device->GetDeviceAddress());
int index = FindDeviceByPtr(Device);
if(index != -1)
{
delete mNetworkDevicesList.at(index);
mNetworkDevicesList.removeAt(index);
}
}
int CNetworkDevicesMgr::FindDeviceByPtr(CNetworkDevice *Device)
{
for(int i = 0; i < mNetworkDevicesList.size(); i++)
{
if(mNetworkDevicesList.at(i) == Device)
{
return i;
}
}
return -1;
}
CNetworkDevice* CNetworkDevicesMgr::GetDevice(int DeviceID, int Address)
{
for(int i = 0; i < mNetworkDevicesList.size(); i++)
{
if(mNetworkDevicesList.at(i)->GetDeviceID() == DeviceID &&
mNetworkDevicesList.at(i)->GetDeviceAddress() == Address)
{
return mNetworkDevicesList.at(i);
}
}
return 0;
}