Nouvel Ampli
Lora Interface
This commit is contained in:
parent
a98f292e65
commit
ac4e5aeb93
@ -124,6 +124,7 @@ INCLUDEPATH += $$PWD/ \
|
||||
$$PWD/blynk-library-master/src/ \
|
||||
$$PWD/Sources/Modbus \
|
||||
$$PWD/Sources/Ispindel \
|
||||
$$PWD/Sources/LoraModuleInterface \
|
||||
# $$PWD/Lib/QtHTTPServer/include/ \
|
||||
|
||||
LIBS += -L$$PWD/Lib/QtHTTPServer/ -lQt5HttpServer
|
||||
|
||||
@ -385,3 +385,48 @@ QByteArray CAVReceiverDevice::GetReceiverStatus()
|
||||
return StatusArray;
|
||||
}
|
||||
|
||||
int CAVReceiverDevice::SelectScene(char Zone, char Scene)
|
||||
{
|
||||
QString Cmd;
|
||||
if(Zone == AV_RECEIVER_MAIN_ZONE)
|
||||
{
|
||||
Cmd = QString("@MAIN:SCENE=Scene %1\r\n").arg((int)Scene,1);
|
||||
|
||||
}
|
||||
else if(Zone == AV_RECEIVER_ZONE_2)
|
||||
{
|
||||
Cmd = QString("@ZONE2:SCENE=Scene %1\r\n").arg((int)Scene,1);
|
||||
}
|
||||
else
|
||||
{
|
||||
return RET_ERROR;
|
||||
}
|
||||
|
||||
SendReceiverCommand(Cmd);
|
||||
DisconnectReceiverDelayed(2000);
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
int CAVReceiverDevice::SetMainVolume(float Volume)
|
||||
{
|
||||
QString Cmd;
|
||||
Cmd = QString("@MAIN:VOL=%1\r\n").arg(Volume,1,'f',1);
|
||||
|
||||
// qDebug("%s",qPrintable(Cmd));
|
||||
|
||||
SendReceiverCommand(Cmd);
|
||||
// DisconnectReceiverDelayed();
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
int CAVReceiverDevice::SetZone2Volume(float Volume)
|
||||
{
|
||||
QString Cmd;
|
||||
Cmd = QString("@ZONE2:VOL=%1\r\n").arg(Volume,1,'f',1);
|
||||
|
||||
SendReceiverCommand(Cmd);
|
||||
// DisconnectReceiverDelayed();
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
@ -71,6 +71,9 @@ public:
|
||||
int SetMainZone(bool OnOff);
|
||||
int SetSpeakers(int SpeakerA, int SpeakerB);
|
||||
int SendRawCommand(QString Cmd);
|
||||
int SelectScene(char Zone, char Scene);
|
||||
int SetMainVolume(float Volume);
|
||||
int SetZone2Volume(float Volume);
|
||||
QByteArray GetReceiverStatus();
|
||||
|
||||
private:
|
||||
|
||||
@ -3,6 +3,13 @@
|
||||
#include <QString>
|
||||
#include "GlobalDefine.h"
|
||||
|
||||
enum eAVReceiverZones
|
||||
{
|
||||
AV_RECEIVER_MAIN_ZONE = 1,
|
||||
AV_RECEIVER_ZONE_2,
|
||||
|
||||
AV_RECEIVER_MAX_ZONE
|
||||
};
|
||||
|
||||
class CAvReceiverMainStatus
|
||||
{
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
#include "AvReceiverInterface.h"
|
||||
#include "ProtocolDefs.h"
|
||||
#include "AVReceiverDevice.h"
|
||||
#include <QDataStream>
|
||||
|
||||
CAvReceiverInterface::CAvReceiverInterface(int Address, CAbstractNetworkCommIF *NetworkInterface , CAVReceiverDevice *DevicePtr):
|
||||
CNetworkDevice(ID_AVRECEIVER_INTERFACE,Address,NetworkInterface)
|
||||
@ -53,12 +54,38 @@ int CAvReceiverInterface::NewDeviceFrameReceived(int DeviceID, int DeviceAddress
|
||||
{
|
||||
break;
|
||||
}
|
||||
case AV_RECEIVER_INTERFACE_SELECT_SCENE_REQUEST:
|
||||
{
|
||||
mAvReceiverDevice->SelectScene(Data[0],Data[1]);
|
||||
break;
|
||||
}
|
||||
case AV_RECEIVER_INTERFACE_SET_MAIN_VOLUME_REQUEST:
|
||||
{
|
||||
float VolumeData;
|
||||
QDataStream Strm(&Data,QIODevice::ReadOnly);
|
||||
Strm >> VolumeData;
|
||||
|
||||
mAvReceiverDevice->SetMainVolume(VolumeData);
|
||||
break;
|
||||
}
|
||||
case AV_RECEIVER_INTERFACE_SET_ZONE2_VOLUME_REQUEST:
|
||||
{
|
||||
float VolumeData;
|
||||
QDataStream Strm(&Data,QIODevice::ReadOnly);
|
||||
Strm >> VolumeData;
|
||||
|
||||
mAvReceiverDevice->SetZone2Volume(VolumeData);
|
||||
break;
|
||||
}
|
||||
case AV_RECEIVER_INTERFACE_GENERAL_STATUS_RESPONSE:
|
||||
case AV_RECEIVER_INTERFACE_SET_MAIN_POWER_RESPONSE:
|
||||
case AV_RECEIVER_INTERFACE_SET_ZONE2_RESPONSE:
|
||||
case AV_RECEIVER_INTERFACE_SEND_DIRECT_CMD_RESPONSE:
|
||||
case AV_RECEIVER_INTERFACE_SET_SPEAKERS_RESPONSE:
|
||||
case AV_RECEIVER_INTERFACE_SET_MAIN_ZONE_RESPONSE:
|
||||
case AV_RECEIVER_INTERFACE_SELECT_SCENE_RESPONSE:
|
||||
case AV_RECEIVER_INTERFACE_SET_MAIN_VOLUME_RESPONSE:
|
||||
case AV_RECEIVER_INTERFACE_SET_ZONE2_VOLUME_RESPONSE:
|
||||
default:
|
||||
{
|
||||
qDebug("Received invalid msg from Sprinkler Interface");
|
||||
|
||||
@ -2,15 +2,76 @@
|
||||
|
||||
CLoraModuleInterface::CLoraModuleInterface()
|
||||
{
|
||||
connect(&mLoraModuleIFSerialPort,SIGNAL(readyRead()),this,SLOT(NewLoraModuleIFDataReady()));
|
||||
|
||||
mLoraModuleIFStatusTimer = new QTimer();
|
||||
mLoraModuleIFStatusTimer->setSingleShot(false);
|
||||
mLoraModuleIFStatusTimer->setInterval(1000);
|
||||
mLoraModuleIFStatusTimer->start();
|
||||
|
||||
connect(mLoraModuleIFStatusTimer,SIGNAL(timeout()),this,SLOT(LoraModuleStatusTimerExpired()));
|
||||
}
|
||||
|
||||
CLoraModuleInterface::~CLoraModuleInterface()
|
||||
{
|
||||
delete mLoraModuleIFStatusTimer;
|
||||
}
|
||||
|
||||
|
||||
//This the handling of the Microcontroller (LoraModuleInterface)
|
||||
int CLoraModuleInterface::NewFrameReceived(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray Data)
|
||||
{
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
//This is to answer to CChaletDevice requests
|
||||
int CLoraModuleInterface::SendNetworkMessage(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray *Data)
|
||||
{
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void CLoraModuleInterface::LoraModuleStatusTimerExpired()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
int CLoraModuleInterface::SetLoraModuleInterfaceParameters(QString ComPort, qint32 BaudRate)
|
||||
{
|
||||
mLoraModuleIFComPortName = ComPort;
|
||||
mLoraModuleIFComPortBaudRate = BaudRate;
|
||||
|
||||
|
||||
if(mLoraModuleIFSerialPort.isOpen())
|
||||
{
|
||||
mLoraModuleIFSerialPort.close();
|
||||
}
|
||||
|
||||
mLoraModuleIFSerialPort.setPortName(mLoraModuleIFComPortName);
|
||||
if(mLoraModuleIFSerialPort.setBaudRate(mLoraModuleIFComPortBaudRate) == false)
|
||||
{
|
||||
qDebug("Invalid Lora Device serial port baud rate...");
|
||||
}
|
||||
|
||||
//The other serial port parameters (parity, stop bits, data bits) are all set to mentally sane default values so no need to set them.
|
||||
if(mLoraModuleIFSerialPort.open(QIODevice::ReadWrite) == false)
|
||||
{
|
||||
qDebug("Could not open Lora device port");
|
||||
return RET_ERROR;
|
||||
}
|
||||
|
||||
qDebug("Lora serial port opened");
|
||||
return RET_OK;
|
||||
|
||||
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
void CLoraModuleInterface::NewLoraModuleIFDataReady()
|
||||
{
|
||||
QByteArray NewData = mLoraModuleIFSerialPort.readAll();
|
||||
|
||||
AnalyzeRxBuffer(NewData);
|
||||
}
|
||||
|
||||
@ -7,6 +7,8 @@
|
||||
#include "NetworkProtocol.h"
|
||||
#include "AbstractNetworkInterface.h"
|
||||
#include "NetworkDevice.h"
|
||||
#include <QTimer>
|
||||
#include <QSerialPort>
|
||||
|
||||
class CLoraModuleInterface : public QObject, public CNetworkProtocol, public CAbstractNetworkCommIF
|
||||
{
|
||||
@ -14,6 +16,16 @@ class CLoraModuleInterface : public QObject, public CNetworkProtocol, public CAb
|
||||
|
||||
public:
|
||||
CLoraModuleInterface();
|
||||
~CLoraModuleInterface();
|
||||
|
||||
int SetLoraModuleInterfaceParameters(QString ComPort,qint32 BaudRate);
|
||||
|
||||
QTimer *mLoraModuleIFStatusTimer;
|
||||
QSerialPort mLoraModuleIFSerialPort;
|
||||
QString mLoraModuleIFComPortName;
|
||||
qint32 mLoraModuleIFComPortBaudRate;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -22,6 +34,10 @@ public:
|
||||
|
||||
//NetworkCommIF implementation
|
||||
virtual int SendNetworkMessage(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray *Data);
|
||||
|
||||
public slots:
|
||||
void LoraModuleStatusTimerExpired();
|
||||
void NewLoraModuleIFDataReady();
|
||||
};
|
||||
|
||||
#endif // LORAMODULEINTERFACE_H
|
||||
|
||||
@ -77,7 +77,7 @@ void CLoraNetworkCommIF::LoraDeviceNewDataReady()
|
||||
{
|
||||
QByteArray NewData = mLoraDeviceSerialPort.readAll();
|
||||
|
||||
QString Printf = "New Lora Data: ";
|
||||
// QString Printf = "New Lora Data: ";
|
||||
|
||||
AnalyzeRxBuffer(NewData);
|
||||
|
||||
|
||||
@ -15,11 +15,15 @@ CMasterCtrl::CMasterCtrl()
|
||||
mSettingsWindow = new CSettingsWindow();
|
||||
mSettingsWindow->mProgramHandle = this;
|
||||
|
||||
mChaletLoraNetworkCommInterface = new CLoraNetworkCommIF();
|
||||
|
||||
mChaletLoraDevice = new CChaletLoraDevice(1,mChaletLoraNetworkCommInterface);
|
||||
// mChaletLoraNetworkCommInterface = new CLoraNetworkCommIF();//JFM LoraInterface Dev
|
||||
mChaletLoraModuleInterface = new CLoraModuleInterface();
|
||||
|
||||
// mChaletLoraDevice = new CChaletLoraDevice(1,mChaletLoraNetworkCommInterface);//JFM LoraInterface Dev
|
||||
mChaletLoraDevice = new CChaletLoraDevice(1,mChaletLoraModuleInterface);
|
||||
// mChaletLoraInterface = new CChaletLoraInterface(mRooftopTowerLoraDevice);
|
||||
|
||||
|
||||
mIspindelDevice = new CIspindelDevice;
|
||||
|
||||
|
||||
@ -41,7 +45,8 @@ CMasterCtrl::~CMasterCtrl()
|
||||
delete mEthernetNetworkServer;
|
||||
delete mContactsRepository;
|
||||
delete mSprinklerManager;
|
||||
delete mChaletLoraNetworkCommInterface;
|
||||
//delete mChaletLoraNetworkCommInterface; //JFM LoraInterface Dev
|
||||
delete mChaletLoraModuleInterface;
|
||||
delete mChaletLoraDevice;
|
||||
delete mIspindelDevice;
|
||||
// delete mMasterCtrlSettings;
|
||||
@ -94,10 +99,13 @@ void CMasterCtrl::Start()
|
||||
|
||||
mAVReceiverDevice->Start();
|
||||
|
||||
/* //JFM LoraInterface Dev
|
||||
mChaletLoraNetworkCommInterface->mMyLoraAddress = 5;
|
||||
mChaletLoraNetworkCommInterface->mMyLoraChannel = 4;
|
||||
mChaletLoraNetworkCommInterface->SetLoraDestinationAddress(mMasterCtrlSettings.mChaletLoraAddress,mMasterCtrlSettings.mChaletLoraChannel);
|
||||
mChaletLoraNetworkCommInterface->SetLoraSerialPortSettings(mMasterCtrlSettings.mChaletComPort,QSerialPort::Baud9600);
|
||||
*/ //JFM LoraInterface Dev
|
||||
|
||||
// mChaletLoraNetworkCommInterface->SetLoraSerialPortSettings("COM5",QSerialPort::Baud9600);
|
||||
mChaletLoraDevice->Start();
|
||||
|
||||
@ -144,8 +152,8 @@ unsigned int CMasterCtrl::SettingsWindowClosed()
|
||||
{
|
||||
mVoipMsSMSClient->SetVOIPMsSettings(&mMasterCtrlSettings.mVoipMSSettings);
|
||||
mVoipMsSMSClient->DownloadSMSFromServer();
|
||||
mChaletLoraNetworkCommInterface->SetLoraDestinationAddress(mMasterCtrlSettings.mChaletLoraAddress,mMasterCtrlSettings.mChaletLoraChannel);
|
||||
mChaletLoraNetworkCommInterface->SetLoraSerialPortSettings(mMasterCtrlSettings.mChaletComPort,QSerialPort::Baud9600);
|
||||
//mChaletLoraNetworkCommInterface->SetLoraDestinationAddress(mMasterCtrlSettings.mChaletLoraAddress,mMasterCtrlSettings.mChaletLoraChannel); //JFM LoraInterface Dev
|
||||
//mChaletLoraNetworkCommInterface->SetLoraSerialPortSettings(mMasterCtrlSettings.mChaletComPort,QSerialPort::Baud9600); //JFM LoraInterface Dev
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
|
||||
@ -17,6 +17,7 @@
|
||||
#include "LoraNetworkCommIF.h"
|
||||
#include "HttpServer.h"
|
||||
#include "IspindelDevice.h"
|
||||
#include "LoraModuleInterface.h"
|
||||
|
||||
//#include "AppIconWidget.h"
|
||||
|
||||
@ -42,7 +43,8 @@ public:
|
||||
|
||||
CChaletLoraDevice *mChaletLoraDevice;
|
||||
// CChaletLoraInterface *mChaletLoraInterface;
|
||||
CLoraNetworkCommIF *mChaletLoraNetworkCommInterface;
|
||||
// CLoraNetworkCommIF *mChaletLoraNetworkCommInterface;
|
||||
CLoraModuleInterface *mChaletLoraModuleInterface;
|
||||
// CAppIconWidget mAppWidget;
|
||||
|
||||
// CHttpServer mHttpServer;
|
||||
|
||||
@ -245,6 +245,12 @@ enum AV_RECEIVER_INTERFACE_CMDS
|
||||
AV_RECEIVER_INTERFACE_SET_SPEAKERS_RESPONSE,
|
||||
AV_RECEIVER_INTERFACE_SEND_DIRECT_CMD_REQUEST,
|
||||
AV_RECEIVER_INTERFACE_SEND_DIRECT_CMD_RESPONSE,
|
||||
AV_RECEIVER_INTERFACE_SELECT_SCENE_REQUEST,
|
||||
AV_RECEIVER_INTERFACE_SELECT_SCENE_RESPONSE,
|
||||
AV_RECEIVER_INTERFACE_SET_MAIN_VOLUME_REQUEST,
|
||||
AV_RECEIVER_INTERFACE_SET_MAIN_VOLUME_RESPONSE,
|
||||
AV_RECEIVER_INTERFACE_SET_ZONE2_VOLUME_REQUEST,
|
||||
AV_RECEIVER_INTERFACE_SET_ZONE2_VOLUME_RESPONSE,
|
||||
|
||||
|
||||
MAX_AV_RECEIVER_INTERFACE_CMD
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user