Merge branch 'master' of https://bitbucket.org/jfmartel/systemgui
Conflicts: Sources/Sprinkler/SprinklerDevice.cpp Sources/Sprinkler/SprinklerDevice.h SystemGui.pro ui_SprinklerGui.h
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
#include "SprinklerMasterCtrlInterface.h"
|
||||
#include <QByteArray>
|
||||
#include <QDataStream>
|
||||
#include <QBuffer>
|
||||
#include "SystemGui.h"
|
||||
#include "Sprinkler.h"
|
||||
|
||||
|
||||
|
||||
CSprinklerMasterCtrlInterface::CSprinklerMasterCtrlInterface(CSprinkler *ProgramHandle)
|
||||
{
|
||||
mDeviceAddress = 1;
|
||||
mNetworkPort = 2182;
|
||||
mMasterCtrlAddress = "127.0.0.1";
|
||||
// mNetworkPort = 6463;
|
||||
// mMasterCtrlAddress = "192.168.0.112";
|
||||
mNetworkCommSocket = 0;
|
||||
mMyDeviceID = ID_SPRINKLER_INTERFACE;
|
||||
|
||||
mProgramHandle = ProgramHandle;
|
||||
}
|
||||
|
||||
CSprinklerMasterCtrlInterface::~CSprinklerMasterCtrlInterface()
|
||||
{
|
||||
// if(mNetworkCommSocket !=0)
|
||||
// {
|
||||
//// mNetworkCommSocket->disconnectFromHost();
|
||||
// // delete mNetworkCommSocket;
|
||||
// }
|
||||
}
|
||||
|
||||
int CSprinklerMasterCtrlInterface::DeviceConnectedToMaster(bool Connected)
|
||||
{
|
||||
if(Connected)
|
||||
{
|
||||
mNetworkCommSocket->write(GetTxPacket(SPRINKLER_INTERFACE_GET_SPRINKLERS_REQUEST,0,0,0,1,ID_MASTER,mMyDeviceID,mDeviceAddress));
|
||||
}
|
||||
else
|
||||
{
|
||||
//???
|
||||
}
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
int CSprinklerMasterCtrlInterface::DeviceFrameReceived(int TargetDeviceID, int TargetDeviceAddress, int SenderDeviceID, int SenderAddress, int MessageID, int DataSize, QByteArray Data)
|
||||
{
|
||||
Q_UNUSED(DataSize)
|
||||
|
||||
|
||||
if(TargetDeviceID == mMyDeviceID && (TargetDeviceAddress == BROADCAST_VALUE || TargetDeviceAddress == mDeviceAddress))
|
||||
{
|
||||
switch(MessageID)
|
||||
{
|
||||
case SPRINKLER_INTERFACE_ACK:
|
||||
{
|
||||
break;
|
||||
}
|
||||
case SPRINKLER_INTERFACE_STATUS_REQUEST:
|
||||
{
|
||||
QByteArray Frame,ResponseData;
|
||||
ResponseData.append(ACK);
|
||||
ResponseData.append((char)SPRINKLER_INTERFACE_STATUS_RESPONSE);
|
||||
Frame = GetTxPacket(SPRINKLER_INTERFACE_STATUS_RESPONSE,0,ResponseData.data(),ResponseData.size(),1,ID_MASTER,ID_SPRINKLER_INTERFACE,mDeviceAddress);
|
||||
mNetworkCommSocket->write(Frame);
|
||||
break;
|
||||
}
|
||||
case SPRINKLER_INTERFACE_GET_SPRINKLERS_RESPONSE:
|
||||
{
|
||||
break;
|
||||
}
|
||||
case SPRINKLER_INTERFACE_GET_SPRINKLER_DATA_RESPONSE:
|
||||
{
|
||||
break;
|
||||
}
|
||||
case SPRINKLER_INTERFACE_SET_SPRINKLER_DATA_ACK:
|
||||
{
|
||||
break;
|
||||
}
|
||||
case SPRINKLER_INTERFACE_GET_SPRINKLER_STATE_RESPONSE:
|
||||
{
|
||||
for(int i = 0; i < Data.at(0); i++)
|
||||
{
|
||||
mProgramHandle->SetSprinklerState(Data.at(1+(i+1)*i)),Data.at(2+((i+1)*i)));
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SPRINKLER_INTERFACE_SET_SPRINKLER_STATE_ACK:
|
||||
{
|
||||
QByteArray Frame,RequestData;
|
||||
RequestData.append(1); //device address
|
||||
Frame = GetTxPacket(SPRINKLER_INTERFACE_GET_SPRINKLER_STATE_REQUEST,0,RequestData.data(),RequestData.size(),1,ID_MASTER,ID_SPRINKLER_INTERFACE,mDeviceAddress);
|
||||
mNetworkCommSocket->write(Frame);
|
||||
break;
|
||||
}
|
||||
case SPRINKLER_INTERFACE_STATUS_RESPONSE:
|
||||
case SPRINKLER_INTERFACE_GET_SPRINKLERS_REQUEST:
|
||||
case SPRINKLER_INTERFACE_GET_SPRINKLER_DATA_REQUEST:
|
||||
case SPRINKLER_INTERFACE_SET_SPRINKLER_DATA_REQUEST:
|
||||
case SPRINKLER_INTERFACE_GET_SPRINKLER_STATE_REQUEST:
|
||||
case SPRINKLER_INTERFACE_SET_SPRINKLER_STATE_REQUEST:
|
||||
default:
|
||||
{
|
||||
qDebug("Sprinkler: Invalid Ethernet MSg received: %d",MessageID);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
Reference in New Issue
Block a user