Moved sources to subdirs in project
Add sprinkler device
This commit is contained in:
parent
2139293944
commit
c7c015dab3
@ -1,5 +1,6 @@
|
|||||||
#QT += Network
|
#QT += Network
|
||||||
QT += gui declarative network
|
QT += gui declarative network
|
||||||
|
#CONFIG += console
|
||||||
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
Sources/MasterCtrl.h \
|
Sources/MasterCtrl.h \
|
||||||
@ -8,8 +9,6 @@ HEADERS += \
|
|||||||
Sources/EthernetNetworkCommIF.h \
|
Sources/EthernetNetworkCommIF.h \
|
||||||
Sources/232NetworkCommIF.h \
|
Sources/232NetworkCommIF.h \
|
||||||
Sources/NetworkProtocol.h \
|
Sources/NetworkProtocol.h \
|
||||||
Sources/DeadboltDevice.h \
|
|
||||||
Sources/AVReceiverDevice.h \
|
|
||||||
Sources/VoipSMS/VoipMsSMSClient.h \
|
Sources/VoipSMS/VoipMsSMSClient.h \
|
||||||
Sources/Gui/SystemTrayManager.h \
|
Sources/Gui/SystemTrayManager.h \
|
||||||
Sources/Gui/SettingsWindow.h \
|
Sources/Gui/SettingsWindow.h \
|
||||||
@ -18,13 +17,18 @@ HEADERS += \
|
|||||||
Sources/ProtocolDefs.h \
|
Sources/ProtocolDefs.h \
|
||||||
Sources/EthernetNetworkServer.h \
|
Sources/EthernetNetworkServer.h \
|
||||||
Sources/NetworkDevicesMgr.h \
|
Sources/NetworkDevicesMgr.h \
|
||||||
Sources/SMSDevice.h \
|
|
||||||
Sources/NetworkDevice.h \
|
Sources/NetworkDevice.h \
|
||||||
Sources/AbstractNetworkInterface.h \
|
Sources/AbstractNetworkInterface.h \
|
||||||
Sources/VoipSMS/SMSMessage.h \
|
Sources/VoipSMS/SMSMessage.h \
|
||||||
Sources/Gui/CContactsWindow.h \
|
Sources/Gui/CContactsWindow.h \
|
||||||
Sources/Contact.h \
|
Sources/Contact.h \
|
||||||
Sources/ContactRepository.h
|
Sources/ContactRepository.h \
|
||||||
|
Sources/Sprinkler/SprinklerDevice.h \
|
||||||
|
Sources/VoipSMS/SMSDevice.h \
|
||||||
|
Sources/Deadbolt/DeadboltDevice.h \
|
||||||
|
Sources/AvReceiver/AVReceiverDevice.h \
|
||||||
|
Sources/Sprinkler/SprinklerInterface.h \
|
||||||
|
Sources/Sprinkler/SprinklerMgr.h
|
||||||
|
|
||||||
SOURCES += \
|
SOURCES += \
|
||||||
Sources/main.cpp \
|
Sources/main.cpp \
|
||||||
@ -33,8 +37,6 @@ SOURCES += \
|
|||||||
Sources/232NetworkCommIF.cpp \
|
Sources/232NetworkCommIF.cpp \
|
||||||
Sources/EthernetNetworkCommIF.cpp \
|
Sources/EthernetNetworkCommIF.cpp \
|
||||||
Sources/NetworkProtocol.cpp \
|
Sources/NetworkProtocol.cpp \
|
||||||
Sources/DeadboltDevice.cpp \
|
|
||||||
Sources/AVReceiverDevice.cpp \
|
|
||||||
Sources/VoipSMS/VoipMsSMSClient.cpp \
|
Sources/VoipSMS/VoipMsSMSClient.cpp \
|
||||||
Sources/Gui/SystemTrayManager.cpp \
|
Sources/Gui/SystemTrayManager.cpp \
|
||||||
Sources/Gui/SettingsWindow.cpp \
|
Sources/Gui/SettingsWindow.cpp \
|
||||||
@ -42,12 +44,17 @@ SOURCES += \
|
|||||||
Sources/Gui/AppIconWidget.cpp \
|
Sources/Gui/AppIconWidget.cpp \
|
||||||
Sources/EthernetNetworkServer.cpp \
|
Sources/EthernetNetworkServer.cpp \
|
||||||
Sources/NetworkDevicesMgr.cpp \
|
Sources/NetworkDevicesMgr.cpp \
|
||||||
Sources/SMSDevice.cpp \
|
|
||||||
Sources/NetworkDevice.cpp \
|
Sources/NetworkDevice.cpp \
|
||||||
Sources/VoipSMS/SMSMessage.cpp \
|
Sources/VoipSMS/SMSMessage.cpp \
|
||||||
Sources/Gui/CContactsWindow.cpp \
|
Sources/Gui/CContactsWindow.cpp \
|
||||||
Sources/Contact.cpp \
|
Sources/Contact.cpp \
|
||||||
Sources/ContactRepository.cpp
|
Sources/ContactRepository.cpp \
|
||||||
|
Sources/Sprinkler/SprinklerDevice.cpp \
|
||||||
|
Sources/VoipSMS/SMSDevice.cpp \
|
||||||
|
Sources/Deadbolt/DeadboltDevice.cpp \
|
||||||
|
Sources/AvReceiver/AVReceiverDevice.cpp \
|
||||||
|
Sources/Sprinkler/SprinklerInterface.cpp \
|
||||||
|
Sources/Sprinkler/SprinklerMgr.cpp
|
||||||
|
|
||||||
|
|
||||||
#win32:SOURCES += $$PWD/Source/qextserialport/win_qextserialport.cpp \
|
#win32:SOURCES += $$PWD/Source/qextserialport/win_qextserialport.cpp \
|
||||||
@ -58,4 +65,7 @@ INCLUDEPATH += $$PWD/ \
|
|||||||
$$PWD/Sources/ \
|
$$PWD/Sources/ \
|
||||||
$$PWD/Sources/qextserialport/ \
|
$$PWD/Sources/qextserialport/ \
|
||||||
$$PWD/Sources/VoipSMS/ \
|
$$PWD/Sources/VoipSMS/ \
|
||||||
$$PWD/Sources/Gui/
|
$$PWD/Sources/Gui/ \
|
||||||
|
$$PWD/Sources/Deadbolt \
|
||||||
|
$$PWD/Sources/Sprinkler \
|
||||||
|
$$PWD/Sources/AvReceiver \
|
||||||
|
|||||||
75
Sources/Deadbolt/DeadboltDevice.cpp
Normal file
75
Sources/Deadbolt/DeadboltDevice.cpp
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
#include "DeadboltDevice.h"
|
||||||
|
#include "ProtocolDefs.h"
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
|
|
||||||
|
CDeadboltDevice::CDeadboltDevice(int Address, CAbstractNetworkCommIF *NetworkInterface):
|
||||||
|
CNetworkDevice(ID_DEADBOLT_DEVICE,Address,NetworkInterface)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
CDeadboltDevice::~CDeadboltDevice()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
int CDeadboltDevice::NewDeviceFrameReceived(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray Data)
|
||||||
|
{
|
||||||
|
Q_UNUSED(DeviceID)
|
||||||
|
Q_UNUSED(DeviceAddress)
|
||||||
|
Q_UNUSED(DataSize)
|
||||||
|
Q_UNUSED(Data)
|
||||||
|
|
||||||
|
return RET_OK;
|
||||||
|
|
||||||
|
switch(MessageID)
|
||||||
|
{
|
||||||
|
case DEADBOLT_DEVICE_STATUS_RESPONSE:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case DEADBOLT_DEVICE_ACK:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case DEADBOLT_DEVICE_GET_LOCKED_STATE_REQUEST:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case DEADBOLT_DEVICE_GOTO_LOCKED_ACK:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case DEADBOLT_DEVICE_GOTO_UNLOCKED_ACK:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case DEADBOLT_DEVICE_GET_PASSWORDS_RESPONSE:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case DEADBOLT_DEVICE_SET_PASSWORDS_ACK:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case DEADBOLT_DEVICE_LOCK_EVENT:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case DEADBOLT_DEVICE_STATUS_REQUEST:
|
||||||
|
case DEADBOLT_DEVICE_LOCKED_STATE_RESPONSE:
|
||||||
|
case DEADBOLT_DEVICE_GOTO_LOCKED_REQUEST:
|
||||||
|
case DEADBOLT_DEVICE_SET_PASSWORDS_REQUEST:
|
||||||
|
case DEADBOLT_DEVICE_GET_PASSWORDS_REQUEST:
|
||||||
|
case DEADBOLT_DEVICE_GOTO_UNLOCKED_REQUEST:
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
qDebug("Received invalid msg from Deadbolt Device");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -6,8 +6,9 @@
|
|||||||
#include "NetworkDevice.h"
|
#include "NetworkDevice.h"
|
||||||
|
|
||||||
|
|
||||||
class CDeadboltDevice: public CNetworkDevice
|
class CDeadboltDevice: public QObject, public CNetworkDevice
|
||||||
{
|
{
|
||||||
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
CDeadboltDevice(int Address, CAbstractNetworkCommIF *NetworkInterface);
|
CDeadboltDevice(int Address, CAbstractNetworkCommIF *NetworkInterface);
|
||||||
virtual ~CDeadboltDevice();
|
virtual ~CDeadboltDevice();
|
||||||
@ -1,46 +0,0 @@
|
|||||||
#include "DeadboltDevice.h"
|
|
||||||
#include "ProtocolDefs.h"
|
|
||||||
#include <QDebug>
|
|
||||||
|
|
||||||
|
|
||||||
CDeadboltDevice::CDeadboltDevice(int Address, CAbstractNetworkCommIF *NetworkInterface):
|
|
||||||
CNetworkDevice(ID_DEADBOLT,Address,NetworkInterface)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
CDeadboltDevice::~CDeadboltDevice()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
int CDeadboltDevice::NewDeviceFrameReceived(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray Data)
|
|
||||||
{
|
|
||||||
Q_UNUSED(DeviceID)
|
|
||||||
Q_UNUSED(DeviceAddress)
|
|
||||||
Q_UNUSED(DataSize)
|
|
||||||
Q_UNUSED(Data)
|
|
||||||
|
|
||||||
return RET_OK;
|
|
||||||
|
|
||||||
switch(MessageID)
|
|
||||||
{
|
|
||||||
case DEADBOLT_DEVICE_STATUS_RESPONSE:
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case DEADBOLT_DEVICE_ACK:
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case DEADBOLT_DEVICE_STATUS_REQUEST:
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
qDebug("Received invalid msg from Deadbolt Device");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@ -155,6 +155,40 @@ void CEthernetNetworkServer::DeviceSocketDataAvail()
|
|||||||
CloseSocket = true;
|
CloseSocket = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
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)
|
// if(IsDeviceRegistered(DeviceID) == true)
|
||||||
// {
|
// {
|
||||||
|
|||||||
@ -48,6 +48,14 @@ int CNetworkDevicesMgr::CreateNewSMSDevice(int Address, CAbstractNetworkCommIF *
|
|||||||
return RET_OK;
|
return RET_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int CNetworkDevicesMgr::CreateNewSprinklerDevice(int Address, CAbstractNetworkCommIF *NetworkIF)
|
||||||
|
{
|
||||||
|
CSprinklerDevice *SprinklerDevice = new CSprinklerDevice(Address,NetworkIF);
|
||||||
|
mNetworkDevicesList.append((CNetworkDevice*)SprinklerDevice);
|
||||||
|
|
||||||
|
return RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
void CNetworkDevicesMgr::EthernetNetworkDeviceDisconnected(CNetworkDevice *Device)
|
void CNetworkDevicesMgr::EthernetNetworkDeviceDisconnected(CNetworkDevice *Device)
|
||||||
{
|
{
|
||||||
qDebug("Device disconnected. ID: %d, Address: %d",Device->GetDeviceID(),Device->GetDeviceAddress());
|
qDebug("Device disconnected. ID: %d, Address: %d",Device->GetDeviceID(),Device->GetDeviceAddress());
|
||||||
@ -86,6 +94,20 @@ CNetworkDevice* CNetworkDevicesMgr::GetDevice(int DeviceID, int Address)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QList<CNetworkDevice*> CNetworkDevicesMgr::GetDevices(int DeviceID)
|
||||||
|
{
|
||||||
|
QList<CNetworkDevice*> DevicesList;
|
||||||
|
for(int i = 0; i < mNetworkDevicesList.size(); i++)
|
||||||
|
{
|
||||||
|
if(mNetworkDevicesList.at(i)->GetDeviceID() == DeviceID)
|
||||||
|
{
|
||||||
|
DevicesList.append(mNetworkDevicesList.at(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return DevicesList;
|
||||||
|
}
|
||||||
|
|
||||||
int CNetworkDevicesMgr::NewSMSMessagesReceived(QList<CSMSMessage> NewMessages)
|
int CNetworkDevicesMgr::NewSMSMessagesReceived(QList<CSMSMessage> NewMessages)
|
||||||
{
|
{
|
||||||
for(int i = 0; i < mNetworkDevicesList.size(); i++)
|
for(int i = 0; i < mNetworkDevicesList.size(); i++)
|
||||||
|
|||||||
@ -4,6 +4,7 @@
|
|||||||
#include "DeadboltDevice.h"
|
#include "DeadboltDevice.h"
|
||||||
#include "AVReceiverDevice.h"
|
#include "AVReceiverDevice.h"
|
||||||
#include "SMSDevice.h"
|
#include "SMSDevice.h"
|
||||||
|
#include "SprinklerDevice.h"
|
||||||
#include "AbstractNetworkInterface.h"
|
#include "AbstractNetworkInterface.h"
|
||||||
#include "QList"
|
#include "QList"
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
@ -22,9 +23,12 @@ public:
|
|||||||
int InitNetworkDevices();
|
int InitNetworkDevices();
|
||||||
|
|
||||||
int CreateNewSMSDevice(int Address,CAbstractNetworkCommIF *NetworkIF);
|
int CreateNewSMSDevice(int Address,CAbstractNetworkCommIF *NetworkIF);
|
||||||
|
int CreateNewSprinklerDevice(int Address, CAbstractNetworkCommIF *NetworkIF);
|
||||||
|
|
||||||
|
|
||||||
int FindDeviceByPtr(CNetworkDevice *Device);
|
int FindDeviceByPtr(CNetworkDevice *Device);
|
||||||
CNetworkDevice *GetDevice(int DeviceID, int Address);
|
CNetworkDevice *GetDevice(int DeviceID, int Address);
|
||||||
|
QList<CNetworkDevice*> GetDevices(int DeviceID);
|
||||||
|
|
||||||
CVoipMsSMSClient *mVoipMSInterfaceHandle;
|
CVoipMsSMSClient *mVoipMSInterfaceHandle;
|
||||||
CContactRepository *mContactRepositoryHandle;
|
CContactRepository *mContactRepositoryHandle;
|
||||||
|
|||||||
@ -21,8 +21,8 @@ jean-francois.martel@polymtl.ca
|
|||||||
|
|
||||||
#define FRAME_HEADER 0x8A
|
#define FRAME_HEADER 0x8A
|
||||||
#define DATA_START 11
|
#define DATA_START 11
|
||||||
#define ACK 0xA3;
|
#define ACK 0xA3
|
||||||
#define NAK 0x90;
|
#define NAK 0x90
|
||||||
#define BROADCAST_VALUE 0xFF
|
#define BROADCAST_VALUE 0xFF
|
||||||
|
|
||||||
enum eFrameIndex
|
enum eFrameIndex
|
||||||
@ -36,8 +36,6 @@ enum eFrameIndex
|
|||||||
FRAME_COMMAND_INDEX,
|
FRAME_COMMAND_INDEX,
|
||||||
FRAME_SIZE1_INDEX,
|
FRAME_SIZE1_INDEX,
|
||||||
FRAME_SIZE2_INDEX,
|
FRAME_SIZE2_INDEX,
|
||||||
FRAME_SIZE3_INDEX,
|
|
||||||
FRAME_SIZE4_INDEX,
|
|
||||||
FRAME_DATA_INDEX
|
FRAME_DATA_INDEX
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -48,10 +46,13 @@ enum DEVICES_IDS
|
|||||||
ID_PC, //PC
|
ID_PC, //PC
|
||||||
ID_AV_MUX, //Audio Video Multiplexer
|
ID_AV_MUX, //Audio Video Multiplexer
|
||||||
ID_IR_REMOTE, //Infra red transmitter
|
ID_IR_REMOTE, //Infra red transmitter
|
||||||
ID_DEADBOLT,
|
ID_DEADBOLT_DEVICE,
|
||||||
ID_RECEIVER_AMP,
|
ID_RECEIVER_AMP,
|
||||||
ID_SMS_CLIENT,
|
ID_SMS_CLIENT,
|
||||||
ID_ETHERNET_VIRTUAL,
|
ID_ETHERNET_VIRTUAL,
|
||||||
|
ID_SPRINKLER_DEVICE,
|
||||||
|
ID_SPRINKLER_INTERFACE,
|
||||||
|
ID_DEADBOLT_INTERFACE,
|
||||||
ID_NB_DEVICE_ID
|
ID_NB_DEVICE_ID
|
||||||
|
|
||||||
};
|
};
|
||||||
@ -119,18 +120,19 @@ enum IR_REMOTE_CMDS
|
|||||||
MAX_IR_REMOTE_CMD
|
MAX_IR_REMOTE_CMD
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//The SMS remote interface commands
|
||||||
enum SMS_CLIENT_CMDS
|
enum SMS_CLIENT_CMDS
|
||||||
{
|
{
|
||||||
SMS_CLIENT_DEVICE_ACK = 1,
|
SMS_CLIENT_DEVICE_ACK = 1,
|
||||||
SMS_CLIENT_DEVICE_STATUS_REQUEST, //2
|
SMS_CLIENT_DEVICE_STATUS_REQUEST,
|
||||||
SMS_CLIENT_DEVICE_STATUS_RESPONSE,
|
SMS_CLIENT_DEVICE_STATUS_RESPONSE,
|
||||||
SMS_CLIENT_DEVICE_DID_INFO_REQUEST, //4
|
SMS_CLIENT_DEVICE_DID_INFO_REQUEST,
|
||||||
SMS_CLIENT_DEVICE_DID_INFO_RESPONSE,
|
SMS_CLIENT_DEVICE_DID_INFO_RESPONSE,
|
||||||
SMS_CLIENT_DEVICE_GET_ALL_MSG_REQUEST, //6
|
SMS_CLIENT_DEVICE_GET_ALL_MSG_REQUEST,
|
||||||
SMS_CLIENT_DEVICE_GET_ALL_MSG_RESPONSE,
|
SMS_CLIENT_DEVICE_GET_ALL_MSG_RESPONSE,
|
||||||
SMS_CLIENT_DEVICE_NEW_MSG_NOTIFICATION, //8
|
SMS_CLIENT_DEVICE_NEW_MSG_NOTIFICATION,
|
||||||
SMS_CLIENT_DEVICE_SEND_SMS_REQUEST,
|
SMS_CLIENT_DEVICE_SEND_SMS_REQUEST,
|
||||||
SMS_CLIENT_DEVICE_SEND_SMS_ACK, //10
|
SMS_CLIENT_DEVICE_SEND_SMS_ACK,
|
||||||
SMS_CLIENT_DEVICE_GET_CONTACTS_REQUEST,
|
SMS_CLIENT_DEVICE_GET_CONTACTS_REQUEST,
|
||||||
SMS_CLIENT_DEVICE_GET_CONTACTS_RESPONSE,//12
|
SMS_CLIENT_DEVICE_GET_CONTACTS_RESPONSE,//12
|
||||||
SMS_CLIENT_DEVICE_CONTACTS_CHANGED_NOTIFICATION,
|
SMS_CLIENT_DEVICE_CONTACTS_CHANGED_NOTIFICATION,
|
||||||
@ -139,15 +141,75 @@ enum SMS_CLIENT_CMDS
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//The actual deadbolt device commands
|
||||||
enum DEADBOLT_CMDS
|
enum DEADBOLT_CMDS
|
||||||
{
|
{
|
||||||
DEADBOLT_DEVICE_ACK = 1,
|
DEADBOLT_DEVICE_ACK = 1,
|
||||||
DEADBOLT_DEVICE_STATUS_REQUEST,
|
DEADBOLT_DEVICE_STATUS_REQUEST,
|
||||||
DEADBOLT_DEVICE_STATUS_RESPONSE,
|
DEADBOLT_DEVICE_STATUS_RESPONSE,
|
||||||
|
DEADBOLT_DEVICE_GET_LOCKED_STATE_REQUEST,
|
||||||
|
DEADBOLT_DEVICE_LOCKED_STATE_RESPONSE,
|
||||||
|
DEADBOLT_DEVICE_GOTO_LOCKED_REQUEST,
|
||||||
|
DEADBOLT_DEVICE_GOTO_LOCKED_ACK,
|
||||||
|
DEADBOLT_DEVICE_GOTO_UNLOCKED_REQUEST,
|
||||||
|
DEADBOLT_DEVICE_GOTO_UNLOCKED_ACK,
|
||||||
|
DEADBOLT_DEVICE_GET_PASSWORDS_REQUEST,
|
||||||
|
DEADBOLT_DEVICE_GET_PASSWORDS_RESPONSE,
|
||||||
|
DEADBOLT_DEVICE_SET_PASSWORDS_REQUEST,
|
||||||
|
DEADBOLT_DEVICE_SET_PASSWORDS_ACK,
|
||||||
|
DEADBOLT_DEVICE_LOCK_EVENT,
|
||||||
|
|
||||||
MAX_DEADBOLT_DEVICE_CMD
|
MAX_DEADBOLT_DEVICE_CMD
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//The actual sprinkler module device commands
|
||||||
|
enum SPRINKLER_DEVICE_CMDS
|
||||||
|
{
|
||||||
|
SPRINKLER_DEVICE_ACK = 1,
|
||||||
|
SPRINKLER_DEVICE_STATUS_REQUEST,
|
||||||
|
SPRINKLER_DEVICE_STATUS_RESPONSE,
|
||||||
|
SPRINKLER_DEVICE_SET_SPRINKLER_STATE_REQUEST,
|
||||||
|
SPRINKLER_DEVICE_SET_SPRINKLER_STATE_ACK,
|
||||||
|
SPRINKLER_DEVICE_GET_SPRINKLER_STATE_REQUEST,
|
||||||
|
SPRINKLER_DEVICE_GET_SPRINKLER_STATE_RESPONSE,
|
||||||
|
SPRINKLER_DEVICE_GET_WATER_FLOW_REQUEST,
|
||||||
|
SPRINKLER_DEVICE_GET_WATER_FLOW_RESPONSE,
|
||||||
|
SPRINKLER_DEVICE_GET_MOISTURE_REQUEST,
|
||||||
|
SPRINKLER_DEVICE_GET_MOISTURE_RESPONSE,
|
||||||
|
SPRINKLER_DEVICE_SET_PROGRAM_REQUEST,
|
||||||
|
SPRINKLER_DEVICE_SET_PROGRAM_ACK,
|
||||||
|
SPRINKLER_DEVICE_GET_PROGRAM_REQUEST,
|
||||||
|
SPRINKLER_DEVICE_GET_PROGRAM_RESPONSE,
|
||||||
|
SPRINKLER_DEVICE_SET_PARAMETERS_REQUEST,
|
||||||
|
SPRINKLER_DEVICE_SET_PARAMETERS_ACK,
|
||||||
|
SPRINKLER_DEVICE_GET_PARAMETERS_REQUEST,
|
||||||
|
SPRINKLER_DEVICE_GET_PARAMETERS_RESPONSE,
|
||||||
|
|
||||||
|
|
||||||
|
MAX_SPRINKLER_DEVICE_CMD
|
||||||
|
};
|
||||||
|
|
||||||
|
//The sprinkler interface commands
|
||||||
|
enum SPRINKLER_INTERFACE_CMDS
|
||||||
|
{
|
||||||
|
SPRINKLER_INTERFACE_ACK = 1,
|
||||||
|
SPRINKLER_INTERFACE_STATUS_REQUEST,
|
||||||
|
SPRINKLER_INTERFACE_STATUS_RESPONSE,
|
||||||
|
SPRINKLER_INTERFACE_GET_SPRINKLERS_REQUEST,
|
||||||
|
SPRINKLER_INTERFACE_GET_SPRINKLERS_RESPONSE,
|
||||||
|
SPRINKLER_INTERFACE_GET_SPRINKLER_DATA_REQUEST,
|
||||||
|
SPRINKLER_INTERFACE_GET_SPRINKLER_DATA_RESPONSE,
|
||||||
|
SPRINKLER_INTERFACE_SET_SPRINKLER_DATA_REQUEST,
|
||||||
|
SPRINKLER_INTERFACE_SET_SPRINKLER_DATA_ACK,
|
||||||
|
SPRINKLER_INTERFACE_GET_SPRINKLER_STATE_REQUEST,
|
||||||
|
SPRINKLER_INTERFACE_GET_SPRINKLER_STATE_RESPONSE,
|
||||||
|
SPRINKLER_INTERFACE_SET_SPRINKLER_STATE_REQUEST,
|
||||||
|
SPRINKLER_INTERFACE_SET_SPRINKLER_STATE_ACK,
|
||||||
|
|
||||||
|
MAX_SPRINKLER_INTERFACE_CMD
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
enum ETHERNET_NETWORK_VIRTUAL_CMDS
|
enum ETHERNET_NETWORK_VIRTUAL_CMDS
|
||||||
{
|
{
|
||||||
ETH_NETWK_DEVICE_INFO_REQUEST = 0xD0,
|
ETH_NETWK_DEVICE_INFO_REQUEST = 0xD0,
|
||||||
|
|||||||
90
Sources/Sprinkler/SprinklerDevice.cpp
Normal file
90
Sources/Sprinkler/SprinklerDevice.cpp
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
#include "SprinklerDevice.h"
|
||||||
|
#include "ProtocolDefs.h"
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
|
|
||||||
|
CSprinklerDevice::CSprinklerDevice(int Address, CAbstractNetworkCommIF *NetworkInterface):
|
||||||
|
CNetworkDevice(ID_SPRINKLER_DEVICE,Address,NetworkInterface)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
CSprinklerDevice::~CSprinklerDevice()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
int CSprinklerDevice::NewDeviceFrameReceived(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray Data)
|
||||||
|
{
|
||||||
|
Q_UNUSED(DeviceID)
|
||||||
|
Q_UNUSED(DeviceAddress)
|
||||||
|
Q_UNUSED(DataSize)
|
||||||
|
Q_UNUSED(Data)
|
||||||
|
|
||||||
|
return RET_OK;
|
||||||
|
|
||||||
|
switch(MessageID)
|
||||||
|
{
|
||||||
|
case SPRINKLER_DEVICE_STATUS_RESPONSE:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SPRINKLER_DEVICE_ACK:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SPRINKLER_DEVICE_SET_SPRINKLER_STATE_ACK:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SPRINKLER_DEVICE_GET_SPRINKLER_STATE_RESPONSE:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SPRINKLER_DEVICE_GET_WATER_FLOW_RESPONSE:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SPRINKLER_DEVICE_GET_MOISTURE_RESPONSE:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SPRINKLER_DEVICE_SET_PROGRAM_ACK:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case SPRINKLER_DEVICE_GET_PROGRAM_RESPONSE:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case SPRINKLER_DEVICE_SET_PARAMETERS_ACK:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case SPRINKLER_DEVICE_GET_PARAMETERS_RESPONSE:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case SPRINKLER_DEVICE_SET_SPRINKLER_STATE_REQUEST:
|
||||||
|
case SPRINKLER_DEVICE_GET_SPRINKLER_STATE_REQUEST:
|
||||||
|
case SPRINKLER_DEVICE_GET_WATER_FLOW_REQUEST:
|
||||||
|
case SPRINKLER_DEVICE_GET_MOISTURE_REQUEST:
|
||||||
|
case SPRINKLER_DEVICE_SET_PROGRAM_REQUEST:
|
||||||
|
case SPRINKLER_DEVICE_GET_PROGRAM_REQUEST:
|
||||||
|
case SPRINKLER_DEVICE_SET_PARAMETERS_REQUEST:
|
||||||
|
case SPRINKLER_DEVICE_GET_PARAMETERS_REQUEST:
|
||||||
|
case SPRINKLER_DEVICE_STATUS_REQUEST:
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
qDebug("Received invalid msg from Sprinkler Device");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
19
Sources/Sprinkler/SprinklerDevice.h
Normal file
19
Sources/Sprinkler/SprinklerDevice.h
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#ifndef SPRINKLERDEVICE_H
|
||||||
|
#define SPRINKLERDEVICE_H
|
||||||
|
|
||||||
|
#include "GlobalDefine.h"
|
||||||
|
#include "NetworkDevice.h"
|
||||||
|
|
||||||
|
|
||||||
|
class CSprinklerDevice: public QObject, public CNetworkDevice
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
CSprinklerDevice(int Address, CAbstractNetworkCommIF *NetworkInterface);
|
||||||
|
virtual ~CSprinklerDevice();
|
||||||
|
|
||||||
|
virtual int NewDeviceFrameReceived(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray Data);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // SPRINKLERDEVICE_H
|
||||||
72
Sources/Sprinkler/SprinklerInterface.cpp
Normal file
72
Sources/Sprinkler/SprinklerInterface.cpp
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
#include "SprinklerInterface.h"
|
||||||
|
#include "ProtocolDefs.h"
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
|
|
||||||
|
CSprinklerInterface::CSprinklerInterface(int Address, CAbstractNetworkCommIF *NetworkInterface):
|
||||||
|
CNetworkDevice(ID_SPRINKLER_DEVICE,Address,NetworkInterface)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
CSprinklerInterface::~CSprinklerInterface()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
int CSprinklerInterface::NewDeviceFrameReceived(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray Data)
|
||||||
|
{
|
||||||
|
Q_UNUSED(DeviceID)
|
||||||
|
Q_UNUSED(DeviceAddress)
|
||||||
|
Q_UNUSED(DataSize)
|
||||||
|
Q_UNUSED(Data)
|
||||||
|
|
||||||
|
return RET_OK;
|
||||||
|
|
||||||
|
switch(MessageID)
|
||||||
|
{
|
||||||
|
case SPRINKLER_INTERFACE_STATUS_RESPONSE:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SPRINKLER_INTERFACE_ACK:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SPRINKLER_INTERFACE_GET_SPRINKLERS_REQUEST:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SPRINKLER_INTERFACE_GET_SPRINKLER_DATA_REQUEST:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SPRINKLER_INTERFACE_GET_SPRINKLER_DATA_RESPONSE:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SPRINKLER_INTERFACE_GET_SPRINKLER_STATE_REQUEST:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SPRINKLER_INTERFACE_SET_SPRINKLER_STATE_REQUEST:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case SPRINKLER_INTERFACE_SET_SPRINKLER_DATA_REQUEST:
|
||||||
|
case SPRINKLER_INTERFACE_GET_SPRINKLER_STATE_RESPONSE:
|
||||||
|
case SPRINKLER_INTERFACE_GET_SPRINKLERS_RESPONSE:
|
||||||
|
case SPRINKLER_INTERFACE_SET_SPRINKLER_DATA_ACK:
|
||||||
|
case SPRINKLER_INTERFACE_SET_SPRINKLER_STATE_ACK:
|
||||||
|
case SPRINKLER_INTERFACE_STATUS_REQUEST:
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
qDebug("Received invalid msg from Sprinkler Interface");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
19
Sources/Sprinkler/SprinklerInterface.h
Normal file
19
Sources/Sprinkler/SprinklerInterface.h
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#ifndef SPRINKLERINTERFACE_H
|
||||||
|
#define SPRINKLERINTERFACE_H
|
||||||
|
|
||||||
|
#include "GlobalDefine.h"
|
||||||
|
#include "NetworkDevice.h"
|
||||||
|
|
||||||
|
|
||||||
|
class CSprinklerInterface: public QObject, public CNetworkDevice
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
CSprinklerInterface(int Address, CAbstractNetworkCommIF *NetworkInterface);
|
||||||
|
virtual ~CSprinklerInterface();
|
||||||
|
|
||||||
|
virtual int NewDeviceFrameReceived(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray Data);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // SPRINKLERDEVICE_H
|
||||||
6
Sources/Sprinkler/SprinklerMgr.cpp
Normal file
6
Sources/Sprinkler/SprinklerMgr.cpp
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#include "SprinklerMgr.h"
|
||||||
|
|
||||||
|
CSprinklerMgr::CSprinklerMgr(QObject *parent) : QObject(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
17
Sources/Sprinkler/SprinklerMgr.h
Normal file
17
Sources/Sprinkler/SprinklerMgr.h
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
#ifndef SPRINKLERMGR_H
|
||||||
|
#define SPRINKLERMGR_H
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
|
||||||
|
class CSprinklerMgr : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit CSprinklerMgr(QObject *parent = 0);
|
||||||
|
|
||||||
|
signals:
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // SPRINKLERMGR_H
|
||||||
@ -45,6 +45,8 @@ int CSMSDevice::NewDeviceFrameReceived(int DeviceID, int DeviceAddress, int Mess
|
|||||||
}
|
}
|
||||||
case SMS_CLIENT_DEVICE_STATUS_RESPONSE:
|
case SMS_CLIENT_DEVICE_STATUS_RESPONSE:
|
||||||
{
|
{
|
||||||
|
// mStatusRequestTimer->start();
|
||||||
|
DeviceStatusReceived();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SMS_CLIENT_DEVICE_DID_INFO_REQUEST:
|
case SMS_CLIENT_DEVICE_DID_INFO_REQUEST:
|
||||||
@ -209,6 +211,13 @@ void CSMSDevice::StatusReqTimerExpired()
|
|||||||
mIsOnline = false;
|
mIsOnline = false;
|
||||||
qDebug("SMS Device offline,Address: %d",mDeviceAddress);
|
qDebug("SMS Device offline,Address: %d",mDeviceAddress);
|
||||||
}
|
}
|
||||||
// RequestStatus();
|
RequestStatus();
|
||||||
|
mStatusRequestTimer->start();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CSMSDevice::DeviceStatusReceived()
|
||||||
|
{
|
||||||
|
|
||||||
|
mStatusRequestsCount = 0;
|
||||||
mStatusRequestTimer->start();
|
mStatusRequestTimer->start();
|
||||||
}
|
}
|
||||||
@ -24,6 +24,7 @@ public:
|
|||||||
int mStatusRequestsCount;
|
int mStatusRequestsCount;
|
||||||
|
|
||||||
void SendNewSMSReceived(QList<CSMSMessage> NewMessages);
|
void SendNewSMSReceived(QList<CSMSMessage> NewMessages);
|
||||||
|
void DeviceStatusReceived();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void RequestStatus();
|
void RequestStatus();
|
||||||
@ -6,6 +6,7 @@
|
|||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
#include "MasterCtrl.h"
|
#include "MasterCtrl.h"
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
CVoipMsSMSClient::CVoipMsSMSClient()
|
CVoipMsSMSClient::CVoipMsSMSClient()
|
||||||
{
|
{
|
||||||
@ -137,6 +138,7 @@ int CVoipMsSMSClient::DownloadNewSMS()
|
|||||||
int CVoipMsSMSClient::CheckForNewSMS()
|
int CVoipMsSMSClient::CheckForNewSMS()
|
||||||
{
|
{
|
||||||
// qDebug("Check new SMS");
|
// qDebug("Check new SMS");
|
||||||
|
qDebug() << QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss") << ":" << "Check New SMS";
|
||||||
if(mSMSMessagesList.isEmpty() == true)
|
if(mSMSMessagesList.isEmpty() == true)
|
||||||
{
|
{
|
||||||
return RET_ERROR;
|
return RET_ERROR;
|
||||||
@ -207,6 +209,11 @@ void CVoipMsSMSClient::VoipServerReplyFinished(QNetworkReply *NetworkReply)
|
|||||||
{
|
{
|
||||||
SendSMSAckReceived(false);
|
SendSMSAckReceived(false);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//Restart timer...
|
||||||
|
StartSMSCheckTimer();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reply.clear();
|
Reply.clear();
|
||||||
}
|
}
|
||||||
@ -357,6 +364,7 @@ unsigned int CVoipMsSMSClient::SMSReceived(QJsonArray *SMSArray)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
mSMSMessagesList.append(NewMessages);
|
mSMSMessagesList.append(NewMessages);
|
||||||
|
StartSMSCheckTimer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -395,6 +403,7 @@ unsigned int CVoipMsSMSClient::SMSReceived(QJsonArray *SMSArray)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
qDebug("No SMS to download in this period.");
|
qDebug("No SMS to download in this period.");
|
||||||
|
StartSMSCheckTimer();
|
||||||
}
|
}
|
||||||
|
|
||||||
return RET_OK;
|
return RET_OK;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user