Sprinkler device et interface dev
This commit is contained in:
parent
c7c015dab3
commit
8a0c368243
@ -121,51 +121,66 @@ void CEthernetNetworkServer::DeviceSocketDataAvail()
|
||||
DeviceID = Data.at(0);
|
||||
DeviceAddress = Data.at(1);
|
||||
|
||||
if(DeviceID == ID_SMS_CLIENT)
|
||||
int Result = RES_CREATION_FAILED;
|
||||
switch(DeviceID)
|
||||
{
|
||||
if(mDevicesMgrHandle != 0)
|
||||
case ID_SMS_CLIENT:
|
||||
{
|
||||
if(mDevicesMgrHandle->CreateNewSMSDevice(DeviceAddress,(CAbstractNetworkCommIF*)NetworkIF) == RET_OK)
|
||||
{
|
||||
//All OK.
|
||||
|
||||
//Redirect signals.
|
||||
DeviceSocket->disconnect();
|
||||
// disconnect(DeviceSocket,SIGNAL(readyRead()),this,SLOT(DeviceSocketDataAvail()));
|
||||
connect(DeviceSocket,SIGNAL(readyRead()),NetworkIF,SLOT(SocketDataAvailable()));
|
||||
connect(DeviceSocket,SIGNAL(disconnected()),NetworkIF,SLOT(SocketDisconnected()));
|
||||
connect(NetworkIF,SIGNAL(EthernetInterfaceSocketDisconnected(CNetworkDevice*)),mDevicesMgrHandle,SLOT(EthernetNetworkDeviceDisconnected(CNetworkDevice*)));
|
||||
|
||||
//Inform device that it is connected
|
||||
QByteArray Frame = GetTxPacket((unsigned char)ETH_NETWK_SET_DEVICE_INFO_ACK,0,0,0,DeviceAddress,(unsigned char)ID_ETHERNET_VIRTUAL);
|
||||
DeviceSocket->write(Frame);
|
||||
Result = RES_CREATION_SUCCESS;
|
||||
qDebug("Created new SMS device");
|
||||
}
|
||||
else
|
||||
{
|
||||
Result = RES_CREATION_FAILED;
|
||||
qDebug("Could not create SMS device in ethernet server");
|
||||
QByteArray Frame = GetTxPacket((unsigned char)ETH_NETWK_CONNECTION_REFUSED,0,0,0,DeviceAddress,(unsigned char)ID_ETHERNET_VIRTUAL);
|
||||
DeviceSocket->write(Frame);
|
||||
CloseSocket = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case ID_SPRINKLER_DEVICE:
|
||||
{
|
||||
if(mDevicesMgrHandle->CreateNewSprinklerDevice(DeviceAddress,(CAbstractNetworkCommIF*)NetworkIF) == RET_OK)
|
||||
{
|
||||
Result = RES_CREATION_SUCCESS;
|
||||
qDebug("Created new Sprinkler device");
|
||||
}
|
||||
else
|
||||
{
|
||||
Result = RES_CREATION_FAILED;
|
||||
qDebug("Could not create Sprinkler device in ethernet server");
|
||||
}
|
||||
break;
|
||||
}
|
||||
case ID_SPRINKLER_INTERFACE:
|
||||
{
|
||||
if(mDevicesMgrHandle->CreateNewSprinklerInterface(DeviceAddress,(CAbstractNetworkCommIF*)NetworkIF) == RET_OK)
|
||||
{
|
||||
Result = RES_CREATION_SUCCESS;
|
||||
qDebug("Created new Sprinkler Interface");
|
||||
}
|
||||
else
|
||||
{
|
||||
Result = RES_CREATION_FAILED;
|
||||
qDebug("Could not create Sprinkler Interface in ethernet server");
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
Result = RES_CREATION_UNKNOWN_DEVICE;
|
||||
qDebug("Invalid DevicesMgrHandle in ethernet server");
|
||||
CloseSocket = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(DeviceID == ID_SPRINKLER_DEVICE)
|
||||
{
|
||||
if(mDevicesMgrHandle != 0)
|
||||
{
|
||||
if(mDevicesMgrHandle->CreateNewSprinklerDevice(DeviceAddress,(CAbstractNetworkCommIF*)NetworkIF) == RET_OK)
|
||||
|
||||
if(Result == RES_CREATION_SUCCESS)
|
||||
{
|
||||
//All OK.
|
||||
|
||||
//Redirect signals.
|
||||
DeviceSocket->disconnect();
|
||||
// disconnect(DeviceSocket,SIGNAL(readyRead()),this,SLOT(DeviceSocketDataAvail()));
|
||||
connect(DeviceSocket,SIGNAL(readyRead()),NetworkIF,SLOT(SocketDataAvailable()));
|
||||
connect(DeviceSocket,SIGNAL(disconnected()),NetworkIF,SLOT(SocketDisconnected()));
|
||||
connect(NetworkIF,SIGNAL(EthernetInterfaceSocketDisconnected(CNetworkDevice*)),mDevicesMgrHandle,SLOT(EthernetNetworkDeviceDisconnected(CNetworkDevice*)));
|
||||
@ -173,22 +188,83 @@ void CEthernetNetworkServer::DeviceSocketDataAvail()
|
||||
//Inform device that it is connected
|
||||
QByteArray Frame = GetTxPacket((unsigned char)ETH_NETWK_SET_DEVICE_INFO_ACK,0,0,0,DeviceAddress,(unsigned char)ID_ETHERNET_VIRTUAL);
|
||||
DeviceSocket->write(Frame);
|
||||
qDebug("Created new Sprinkler device");
|
||||
}
|
||||
else
|
||||
else if(Result == RES_CREATION_FAILED)
|
||||
{
|
||||
qDebug("Could not create Sprinkler device in ethernet server");
|
||||
QByteArray Frame = GetTxPacket((unsigned char)ETH_NETWK_CONNECTION_REFUSED,0,0,0,DeviceAddress,(unsigned char)ID_ETHERNET_VIRTUAL);
|
||||
DeviceSocket->write(Frame);
|
||||
CloseSocket = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
qDebug("Invalid DevicesMgrHandle in ethernet server");
|
||||
CloseSocket = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// if(DeviceID == ID_SMS_CLIENT)
|
||||
// {
|
||||
// if(mDevicesMgrHandle != 0)
|
||||
// {
|
||||
// if(mDevicesMgrHandle->CreateNewSMSDevice(DeviceAddress,(CAbstractNetworkCommIF*)NetworkIF) == RET_OK)
|
||||
// {
|
||||
// //All OK.
|
||||
|
||||
// //Redirect signals.
|
||||
// DeviceSocket->disconnect();
|
||||
// // disconnect(DeviceSocket,SIGNAL(readyRead()),this,SLOT(DeviceSocketDataAvail()));
|
||||
// connect(DeviceSocket,SIGNAL(readyRead()),NetworkIF,SLOT(SocketDataAvailable()));
|
||||
// connect(DeviceSocket,SIGNAL(disconnected()),NetworkIF,SLOT(SocketDisconnected()));
|
||||
// connect(NetworkIF,SIGNAL(EthernetInterfaceSocketDisconnected(CNetworkDevice*)),mDevicesMgrHandle,SLOT(EthernetNetworkDeviceDisconnected(CNetworkDevice*)));
|
||||
|
||||
// //Inform device that it is connected
|
||||
// QByteArray Frame = GetTxPacket((unsigned char)ETH_NETWK_SET_DEVICE_INFO_ACK,0,0,0,DeviceAddress,(unsigned char)ID_ETHERNET_VIRTUAL);
|
||||
// DeviceSocket->write(Frame);
|
||||
// qDebug("Created new SMS device");
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// qDebug("Could not create SMS device in ethernet server");
|
||||
// QByteArray Frame = GetTxPacket((unsigned char)ETH_NETWK_CONNECTION_REFUSED,0,0,0,DeviceAddress,(unsigned char)ID_ETHERNET_VIRTUAL);
|
||||
// DeviceSocket->write(Frame);
|
||||
// CloseSocket = true;
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// qDebug("Invalid DevicesMgrHandle in ethernet server");
|
||||
// CloseSocket = true;
|
||||
// }
|
||||
// }
|
||||
// else if(DeviceID == ID_SPRINKLER_DEVICE)
|
||||
// {
|
||||
// if(mDevicesMgrHandle != 0)
|
||||
// {
|
||||
// if(mDevicesMgrHandle->CreateNewSprinklerDevice(DeviceAddress,(CAbstractNetworkCommIF*)NetworkIF) == RET_OK)
|
||||
// {
|
||||
// //All OK.
|
||||
|
||||
// //Redirect signals.
|
||||
// DeviceSocket->disconnect();
|
||||
// // disconnect(DeviceSocket,SIGNAL(readyRead()),this,SLOT(DeviceSocketDataAvail()));
|
||||
// connect(DeviceSocket,SIGNAL(readyRead()),NetworkIF,SLOT(SocketDataAvailable()));
|
||||
// connect(DeviceSocket,SIGNAL(disconnected()),NetworkIF,SLOT(SocketDisconnected()));
|
||||
// connect(NetworkIF,SIGNAL(EthernetInterfaceSocketDisconnected(CNetworkDevice*)),mDevicesMgrHandle,SLOT(EthernetNetworkDeviceDisconnected(CNetworkDevice*)));
|
||||
|
||||
// //Inform device that it is connected
|
||||
// QByteArray Frame = GetTxPacket((unsigned char)ETH_NETWK_SET_DEVICE_INFO_ACK,0,0,0,DeviceAddress,(unsigned char)ID_ETHERNET_VIRTUAL);
|
||||
// DeviceSocket->write(Frame);
|
||||
// qDebug("Created new Sprinkler device");
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// qDebug("Could not create Sprinkler device in ethernet server");
|
||||
// QByteArray Frame = GetTxPacket((unsigned char)ETH_NETWK_CONNECTION_REFUSED,0,0,0,DeviceAddress,(unsigned char)ID_ETHERNET_VIRTUAL);
|
||||
// DeviceSocket->write(Frame);
|
||||
// CloseSocket = true;
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// qDebug("Invalid DevicesMgrHandle in ethernet server");
|
||||
// CloseSocket = true;
|
||||
// }
|
||||
// }
|
||||
|
||||
// if(IsDeviceRegistered(DeviceID) == true)
|
||||
// {
|
||||
|
||||
@ -25,6 +25,14 @@ class CEthernetNetworkServer : public QObject, CNetworkProtocol
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
|
||||
enum eDeviceCreationResult
|
||||
{
|
||||
RES_CREATION_FAILED,
|
||||
RES_CREATION_SUCCESS,
|
||||
RES_CREATION_UNKNOWN_DEVICE
|
||||
};
|
||||
|
||||
CEthernetNetworkServer();
|
||||
~CEthernetNetworkServer();
|
||||
|
||||
|
||||
@ -19,6 +19,7 @@ CMasterCtrl::CMasterCtrl()
|
||||
mEthernetNetworkServer = new CEthernetNetworkServer;
|
||||
mNetworkDevicesManager = new CNetworkDevicesMgr;
|
||||
mContactsRepository = new CContactRepository;
|
||||
mSprinklerManager = new CSprinklerMgr;
|
||||
|
||||
// mMasterCtrlSettings = new CSettings;
|
||||
}
|
||||
@ -35,6 +36,7 @@ CMasterCtrl::~CMasterCtrl()
|
||||
delete mNetworkDevicesManager;
|
||||
delete mEthernetNetworkServer;
|
||||
delete mContactsRepository;
|
||||
delete mSprinklerManager;
|
||||
// delete mMasterCtrlSettings;
|
||||
}
|
||||
|
||||
@ -58,10 +60,15 @@ void CMasterCtrl::Start()
|
||||
mNetworkDevicesManager->mVoipMSInterfaceHandle = mVoipMsSMSClient;
|
||||
mNetworkDevicesManager->mContactRepositoryHandle = mContactsRepository;
|
||||
mNetworkDevicesManager->mProgramHandle = this;
|
||||
mNetworkDevicesManager->mSprinklerMgrHandle = mSprinklerManager;
|
||||
|
||||
mEthernetNetworkServer->mDevicesMgrHandle = mNetworkDevicesManager;
|
||||
mEthernetNetworkServer->mProgramHandle = this;
|
||||
|
||||
mVoipMsSMSClient->mProgramHandle = this;
|
||||
|
||||
mSprinklerManager->mProgramHandle = this;
|
||||
|
||||
connect(mVoipMsSMSClient,SIGNAL(DIDSFetched(QStringList)),mSettingsWindow,SLOT(DIDsListFetched(QStringList)));
|
||||
|
||||
mAVReceiverDevice->ConnectToReceiver();
|
||||
|
||||
@ -11,6 +11,7 @@
|
||||
#include "NetworkDevicesMgr.h"
|
||||
#include "EthernetNetworkServer.h"
|
||||
#include "ContactRepository.h"
|
||||
#include "SprinklerMgr.h"
|
||||
//#include "AppIconWidget.h"
|
||||
|
||||
class CMasterCtrl : public QObject
|
||||
@ -30,6 +31,7 @@ public:
|
||||
CNetworkDevicesMgr *mNetworkDevicesManager;
|
||||
CEthernetNetworkServer *mEthernetNetworkServer;
|
||||
CContactRepository *mContactsRepository;
|
||||
CSprinklerMgr *mSprinklerManager;
|
||||
// CAppIconWidget mAppWidget;
|
||||
|
||||
|
||||
|
||||
@ -10,6 +10,7 @@ CNetworkDevicesMgr::CNetworkDevicesMgr()
|
||||
{
|
||||
mVoipMSInterfaceHandle = 0;
|
||||
mProgramHandle = 0;
|
||||
mSprinklerMgrHandle = 0;
|
||||
}
|
||||
|
||||
CNetworkDevicesMgr::~CNetworkDevicesMgr()
|
||||
@ -50,12 +51,30 @@ int CNetworkDevicesMgr::CreateNewSMSDevice(int Address, CAbstractNetworkCommIF *
|
||||
|
||||
int CNetworkDevicesMgr::CreateNewSprinklerDevice(int Address, CAbstractNetworkCommIF *NetworkIF)
|
||||
{
|
||||
CSprinklerDevice *SprinklerDevice = new CSprinklerDevice(Address,NetworkIF);
|
||||
if(mSprinklerMgrHandle == 0)
|
||||
{
|
||||
return RET_ERROR;
|
||||
}
|
||||
|
||||
CSprinklerDevice *SprinklerDevice = new CSprinklerDevice(Address,NetworkIF,mSprinklerMgrHandle);
|
||||
mNetworkDevicesList.append((CNetworkDevice*)SprinklerDevice);
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
int CNetworkDevicesMgr::CreateNewSprinklerInterface(int Address, CAbstractNetworkCommIF *NetworkIF)
|
||||
{
|
||||
if(mSprinklerMgrHandle == 0)
|
||||
{
|
||||
return RET_ERROR;
|
||||
}
|
||||
|
||||
CSprinklerInterface *SprinklerInterface = new CSprinklerInterface(Address,NetworkIF,mSprinklerMgrHandle);
|
||||
mNetworkDevicesList.append((CNetworkDevice*)SprinklerInterface);
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
void CNetworkDevicesMgr::EthernetNetworkDeviceDisconnected(CNetworkDevice *Device)
|
||||
{
|
||||
qDebug("Device disconnected. ID: %d, Address: %d",Device->GetDeviceID(),Device->GetDeviceAddress());
|
||||
@ -118,4 +137,6 @@ int CNetworkDevicesMgr::NewSMSMessagesReceived(QList<CSMSMessage> NewMessages)
|
||||
SMSDevice->SendNewSMSReceived(NewMessages);
|
||||
}
|
||||
}
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
@ -5,6 +5,7 @@
|
||||
#include "AVReceiverDevice.h"
|
||||
#include "SMSDevice.h"
|
||||
#include "SprinklerDevice.h"
|
||||
#include "SprinklerInterface.h"
|
||||
#include "AbstractNetworkInterface.h"
|
||||
#include "QList"
|
||||
#include <QObject>
|
||||
@ -12,6 +13,8 @@
|
||||
class CVoipMsSMSClient;
|
||||
class CMasterCtrl;
|
||||
class CContactRepository;
|
||||
class CSprinklerMgr;
|
||||
|
||||
class CNetworkDevicesMgr: public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
@ -24,6 +27,7 @@ public:
|
||||
|
||||
int CreateNewSMSDevice(int Address,CAbstractNetworkCommIF *NetworkIF);
|
||||
int CreateNewSprinklerDevice(int Address, CAbstractNetworkCommIF *NetworkIF);
|
||||
int CreateNewSprinklerInterface(int Address, CAbstractNetworkCommIF *NetworkIF);
|
||||
|
||||
|
||||
int FindDeviceByPtr(CNetworkDevice *Device);
|
||||
@ -33,6 +37,7 @@ public:
|
||||
CVoipMsSMSClient *mVoipMSInterfaceHandle;
|
||||
CContactRepository *mContactRepositoryHandle;
|
||||
CMasterCtrl *mProgramHandle;
|
||||
CSprinklerMgr *mSprinklerMgrHandle;
|
||||
|
||||
int NewSMSMessagesReceived(QList<CSMSMessage> NewMessages);
|
||||
|
||||
|
||||
@ -1,12 +1,13 @@
|
||||
#include "SprinklerDevice.h"
|
||||
#include "ProtocolDefs.h"
|
||||
#include <QDebug>
|
||||
#include "SprinklerMgr.h"
|
||||
|
||||
|
||||
CSprinklerDevice::CSprinklerDevice(int Address, CAbstractNetworkCommIF *NetworkInterface):
|
||||
CSprinklerDevice::CSprinklerDevice(int Address, CAbstractNetworkCommIF *NetworkInterface, CSprinklerMgr *SprinklerMgr):
|
||||
CNetworkDevice(ID_SPRINKLER_DEVICE,Address,NetworkInterface)
|
||||
{
|
||||
|
||||
mSprinklerMgr = SprinklerMgr;
|
||||
}
|
||||
|
||||
CSprinklerDevice::~CSprinklerDevice()
|
||||
|
||||
@ -4,16 +4,20 @@
|
||||
#include "GlobalDefine.h"
|
||||
#include "NetworkDevice.h"
|
||||
|
||||
class CSprinklerMgr;
|
||||
|
||||
class CSprinklerDevice: public QObject, public CNetworkDevice
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
CSprinklerDevice(int Address, CAbstractNetworkCommIF *NetworkInterface);
|
||||
CSprinklerDevice(int Address, CAbstractNetworkCommIF *NetworkInterface, CSprinklerMgr *SprinklerMgr);
|
||||
virtual ~CSprinklerDevice();
|
||||
|
||||
virtual int NewDeviceFrameReceived(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray Data);
|
||||
|
||||
|
||||
CSprinklerMgr *mSprinklerMgr;
|
||||
|
||||
};
|
||||
|
||||
#endif // SPRINKLERDEVICE_H
|
||||
|
||||
@ -1,12 +1,13 @@
|
||||
#include "SprinklerInterface.h"
|
||||
#include "ProtocolDefs.h"
|
||||
#include <QDebug>
|
||||
#include "SprinklerMgr.h"
|
||||
|
||||
|
||||
CSprinklerInterface::CSprinklerInterface(int Address, CAbstractNetworkCommIF *NetworkInterface):
|
||||
CNetworkDevice(ID_SPRINKLER_DEVICE,Address,NetworkInterface)
|
||||
CSprinklerInterface::CSprinklerInterface(int Address, CAbstractNetworkCommIF *NetworkInterface, CSprinklerMgr *SprinklerMgr):
|
||||
CNetworkDevice(ID_SPRINKLER_INTERFACE,Address,NetworkInterface)
|
||||
{
|
||||
|
||||
mSprinklerMgr = SprinklerMgr;
|
||||
}
|
||||
|
||||
CSprinklerInterface::~CSprinklerInterface()
|
||||
|
||||
@ -5,15 +5,20 @@
|
||||
#include "NetworkDevice.h"
|
||||
|
||||
|
||||
class CSprinklerMgr;
|
||||
|
||||
|
||||
class CSprinklerInterface: public QObject, public CNetworkDevice
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
CSprinklerInterface(int Address, CAbstractNetworkCommIF *NetworkInterface);
|
||||
CSprinklerInterface(int Address, CAbstractNetworkCommIF *NetworkInterface, CSprinklerMgr *SprinklerMgr);
|
||||
virtual ~CSprinklerInterface();
|
||||
|
||||
virtual int NewDeviceFrameReceived(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray Data);
|
||||
|
||||
CSprinklerMgr *mSprinklerMgr;
|
||||
|
||||
};
|
||||
|
||||
#endif // SPRINKLERDEVICE_H
|
||||
|
||||
@ -2,5 +2,5 @@
|
||||
|
||||
CSprinklerMgr::CSprinklerMgr(QObject *parent) : QObject(parent)
|
||||
{
|
||||
|
||||
mProgramHandle = 0;
|
||||
}
|
||||
|
||||
@ -3,12 +3,17 @@
|
||||
|
||||
#include <QObject>
|
||||
|
||||
|
||||
class CMasterCtrl;
|
||||
|
||||
class CSprinklerMgr : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit CSprinklerMgr(QObject *parent = 0);
|
||||
|
||||
CMasterCtrl *mProgramHandle;
|
||||
|
||||
signals:
|
||||
|
||||
public slots:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user