Dev pour retour du LoRa au chalet
This commit is contained in:
parent
75f1a4d1c3
commit
1dadad4b09
@ -44,29 +44,6 @@ HEADERS += \
|
|||||||
Sources/Chalet/ChaletDataLogger.h \
|
Sources/Chalet/ChaletDataLogger.h \
|
||||||
Sources/Chalet/ChaletUbidotsInterface.h \
|
Sources/Chalet/ChaletUbidotsInterface.h \
|
||||||
Sources/Chalet/ThingsBoardInterface.h \
|
Sources/Chalet/ThingsBoardInterface.h \
|
||||||
Lib/QtHTTPServer/include/QtHttpServer/qabstracthttpserver.h \
|
|
||||||
Lib/QtHTTPServer/include/QtHttpServer/qabstracthttpserver_p.h \
|
|
||||||
Lib/QtHTTPServer/include/QtHttpServer/qhttpserver.h \
|
|
||||||
Lib/QtHTTPServer/include/QtHttpServer/qhttpserver_p.h \
|
|
||||||
Lib/QtHTTPServer/include/QtHttpServer/qhttpserverfutureresponse.h \
|
|
||||||
Lib/QtHTTPServer/include/QtHttpServer/qhttpserverliterals_p.h \
|
|
||||||
Lib/QtHTTPServer/include/QtHttpServer/qhttpserverrequest.h \
|
|
||||||
Lib/QtHTTPServer/include/QtHttpServer/qhttpserverrequest_p.h \
|
|
||||||
Lib/QtHTTPServer/include/QtHttpServer/qhttpserverresponder.h \
|
|
||||||
Lib/QtHTTPServer/include/QtHttpServer/qhttpserverresponder_p.h \
|
|
||||||
Lib/QtHTTPServer/include/QtHttpServer/qhttpserverresponse.h \
|
|
||||||
Lib/QtHTTPServer/include/QtHttpServer/qhttpserverresponse_p.h \
|
|
||||||
Lib/QtHTTPServer/include/QtHttpServer/qhttpserverrouter.h \
|
|
||||||
Lib/QtHTTPServer/include/QtHttpServer/qhttpserverrouter_p.h \
|
|
||||||
Lib/QtHTTPServer/include/QtHttpServer/qhttpserverrouterrule.h \
|
|
||||||
Lib/QtHTTPServer/include/QtHttpServer/qhttpserverrouterrule_p.h \
|
|
||||||
Lib/QtHTTPServer/include/QtHttpServer/qhttpserverrouterviewtraits.h \
|
|
||||||
Lib/QtHTTPServer/include/QtHttpServer/qhttpserverviewtraits.h \
|
|
||||||
Lib/QtHTTPServer/include/QtHttpServer/qhttpserverviewtraits_impl.h \
|
|
||||||
Lib/QtHTTPServer/include/QtHttpServer/qthttpserverglobal.h \
|
|
||||||
Lib/QtHTTPServer/include/QtSslServer/qsslserver.h \
|
|
||||||
Lib/QtHTTPServer/include/QtSslServer/qsslserver_p.h \
|
|
||||||
Lib/QtHTTPServer/include/QtSslServer/qtsslserverglobal.h \
|
|
||||||
Sources/ImageCropper/imagecropper.h \
|
Sources/ImageCropper/imagecropper.h \
|
||||||
Sources/ImageCropper/imagecropper_e.h \
|
Sources/ImageCropper/imagecropper_e.h \
|
||||||
Sources/ImageCropper/imagecropper_p.h \
|
Sources/ImageCropper/imagecropper_p.h \
|
||||||
|
|||||||
@ -12,6 +12,7 @@ CChaletMainStatus::CChaletMainStatus()
|
|||||||
mHarakiriDone = false;
|
mHarakiriDone = false;
|
||||||
mStatusToggleBit = 0;
|
mStatusToggleBit = 0;
|
||||||
mLostRequestPercentage = 0;
|
mLostRequestPercentage = 0;
|
||||||
|
mChaletTemperature = -100;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -57,6 +58,7 @@ QByteArray CChaletMainStatus::ToByteArray()
|
|||||||
Strm << mThisStatusDateTime;
|
Strm << mThisStatusDateTime;
|
||||||
Strm << mLastLoraStatus;
|
Strm << mLastLoraStatus;
|
||||||
Strm << mStatusToggleBit;
|
Strm << mStatusToggleBit;
|
||||||
|
Strm << mChaletTemperature;
|
||||||
|
|
||||||
return Data;
|
return Data;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,6 +6,32 @@
|
|||||||
#include <QByteArray>
|
#include <QByteArray>
|
||||||
|
|
||||||
|
|
||||||
|
//Read registers
|
||||||
|
#define CHALET_MODBUS_ONLINE_STATE_REG 2000
|
||||||
|
#define CHALET_MODBUS_WIFI_STATE_REG 2001
|
||||||
|
#define CHALET_MODBUS_CURRENT_SENSOR_STATE_REG 2002
|
||||||
|
#define CHALET_MODBUS_HARAKIRI_DONE_REG 2003
|
||||||
|
#define CHALET_MODBUS_STATUS_TOGGLE_REG 2004
|
||||||
|
#define CHALET_MODBUS_WATCHDOG_STATUS_REG 2005
|
||||||
|
#define CHALET_MODBUS_INVERTER_REG 2006
|
||||||
|
|
||||||
|
#define CHALET_MODBUS_BATTERY_VOLTAGE_REG_1 2010
|
||||||
|
#define CHALET_MODBUS_BATTERY_VOLTAGE_REG_2 2011
|
||||||
|
#define CHALET_MODBUS_BATTERY_CURRENT_REG_1 2012
|
||||||
|
#define CHALET_MODBUS_BATTERY_CURRENT_REG_2 2013
|
||||||
|
#define CHALET_MODBUS_BATTERY_SOC_REG 2014
|
||||||
|
#define CHALET_MODBUS_LOST_REQUESTS_REG_1 2015
|
||||||
|
#define CHALET_MODBUS_LOST_REQUESTS_REG_2 2016
|
||||||
|
#define CHALET_MODBUS_TEMPERATURE_VAL_REG_1 2017
|
||||||
|
#define CHALET_MODBUS_TEMPERATURE_VAL_REG_2 2018
|
||||||
|
|
||||||
|
|
||||||
|
//Write registers
|
||||||
|
#define CHALET_MODBUS_SET_INVERTER_STATE_REG 3000
|
||||||
|
#define CHALET_MODBUS_SET_WIFI_STATE_REG 3001
|
||||||
|
#define CHALET_MODBUS_REBOOT_CPU_REQUEST_REG 3002
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class CChaletMainStatus
|
class CChaletMainStatus
|
||||||
{
|
{
|
||||||
@ -34,6 +60,8 @@ public:
|
|||||||
|
|
||||||
float mLostRequestPercentage;
|
float mLostRequestPercentage;
|
||||||
|
|
||||||
|
float mChaletTemperature;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
@ -7,6 +7,8 @@ CChaletInterface::CChaletInterface(int Address, CAbstractNetworkCommIF *NetworkI
|
|||||||
mChaletLoraDevice = DevicePtr;
|
mChaletLoraDevice = DevicePtr;
|
||||||
mChaletDataLogger = mChaletLoraDevice->GetDataLoggerHandle();
|
mChaletDataLogger = mChaletLoraDevice->GetDataLoggerHandle();
|
||||||
|
|
||||||
|
connect(mChaletLoraDevice,SIGNAL(DeviceWifiStoredParamsReceived()),this,SLOT(DeviceWiFiDataReceived()));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -94,6 +96,18 @@ int CChaletInterface::NewDeviceFrameReceived(int DeviceID, int DeviceAddress, in
|
|||||||
delete data;
|
delete data;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case CHALET_INTERFACE_WIFI_GET_DEVICE_PARAMS_REQUEST:
|
||||||
|
{
|
||||||
|
mChaletLoraDevice->SendGetWifiParams();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case CHALET_INTERFACE_WIFI_SET_DEVICE_PARAMS_REQUEST:
|
||||||
|
{
|
||||||
|
mChaletLoraDevice->SendSetWifiParams(Data);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case CHALET_INTERFACE_WIFI_GET_DEVICE_PARAMS_RESPONSE:
|
||||||
|
case CHALET_INTERFACE_WIFI_SET_DEVICE_PARAMS_RESPONSE:
|
||||||
case CHALET_INTERFACE_GET_DATA_LOG_RESPONSE:
|
case CHALET_INTERFACE_GET_DATA_LOG_RESPONSE:
|
||||||
case CHALET_INTERFACE_GET_TODAYS_DATA_LOG_RESPONSE:
|
case CHALET_INTERFACE_GET_TODAYS_DATA_LOG_RESPONSE:
|
||||||
case CHALET_INTERFACE_GENERAL_STATUS_RESPONSE:
|
case CHALET_INTERFACE_GENERAL_STATUS_RESPONSE:
|
||||||
@ -120,3 +134,9 @@ void CChaletInterface::SendChaletCommActivityBeacon()
|
|||||||
{
|
{
|
||||||
mNetworkInterfacePtr->SendNetworkMessage(ID_CHALET_INTERFACE,mDeviceAddress,CHALET_INTERFACE_CHALET_ACTIVITY_RESPONSE,0,0);
|
mNetworkInterfacePtr->SendNetworkMessage(ID_CHALET_INTERFACE,mDeviceAddress,CHALET_INTERFACE_CHALET_ACTIVITY_RESPONSE,0,0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CChaletInterface::DeviceWiFiDataReceived()
|
||||||
|
{
|
||||||
|
QByteArray Data = mChaletLoraDevice->GetDeviceWiFiStoredParams();
|
||||||
|
mNetworkInterfacePtr->SendNetworkMessage(ID_CHALET_INTERFACE,mDeviceAddress,CHALET_INTERFACE_WIFI_GET_DEVICE_PARAMS_RESPONSE,Data.size(),&Data);
|
||||||
|
}
|
||||||
|
|||||||
@ -18,6 +18,9 @@ private:
|
|||||||
CChaletLoraDevice *mChaletLoraDevice;
|
CChaletLoraDevice *mChaletLoraDevice;
|
||||||
CChaletDataLogger *mChaletDataLogger;
|
CChaletDataLogger *mChaletDataLogger;
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void DeviceWiFiDataReceived();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CCHALETINTERFACE_H
|
#endif // CCHALETINTERFACE_H
|
||||||
|
|||||||
@ -1,7 +1,5 @@
|
|||||||
#include "ChaletLoraDevice.h"
|
#include "ChaletLoraDevice.h"
|
||||||
#include "GlobalDefine.h"
|
#include "GlobalDefine.h"
|
||||||
#include "ChaletInterface.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CChaletLoraDevice::CChaletLoraDevice(int Address, CAbstractNetworkCommIF *NetworkInterface):
|
CChaletLoraDevice::CChaletLoraDevice(int Address, CAbstractNetworkCommIF *NetworkInterface):
|
||||||
@ -16,10 +14,15 @@ CChaletLoraDevice::CChaletLoraDevice(int Address, CAbstractNetworkCommIF *Networ
|
|||||||
mChaletStatusTimer->setSingleShot(true);
|
mChaletStatusTimer->setSingleShot(true);
|
||||||
connect(mChaletStatusTimer,SIGNAL(timeout()),this,SLOT(CommTimerExpired()));
|
connect(mChaletStatusTimer,SIGNAL(timeout()),this,SLOT(CommTimerExpired()));
|
||||||
|
|
||||||
mJFUbidotsInterface = new CChaletJFUbidotsInterface("BBFF-tEq4lGAegEyP1H4EaYckNQ7ZHdZYzI");
|
// mJFUbidotsInterface = new CChaletJFUbidotsInterface("BBFF-tEq4lGAegEyP1H4EaYckNQ7ZHdZYzI");
|
||||||
|
|
||||||
mThingsBoardInterface.mChaletLoraDevice = this;
|
mThingsBoardInterface.mChaletLoraDevice = this;
|
||||||
|
|
||||||
|
mChaletModbusRepo.AddHRDataMap(0x2000,50);
|
||||||
|
mChaletModbusServer = new CChaletModbusServer(&mChaletModbusRepo,512,1);
|
||||||
|
|
||||||
|
mDeviceWiFiParameters.fill(0xFF);
|
||||||
|
|
||||||
ResetCommStats();
|
ResetCommStats();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,6 +58,7 @@ int CChaletLoraDevice::NewDeviceFrameReceived(int DeviceID, int DeviceAddress, i
|
|||||||
qint16 temp2;
|
qint16 temp2;
|
||||||
qDebug("Chalet Status RX");
|
qDebug("Chalet Status RX");
|
||||||
char VoltageArray[4];
|
char VoltageArray[4];
|
||||||
|
char TemperatureArray[4];
|
||||||
char SolarPanelCurrentArray[2];
|
char SolarPanelCurrentArray[2];
|
||||||
char BatterySOCArray[2];
|
char BatterySOCArray[2];
|
||||||
|
|
||||||
@ -79,6 +83,13 @@ int CChaletLoraDevice::NewDeviceFrameReceived(int DeviceID, int DeviceAddress, i
|
|||||||
memcpy(&temp2,BatterySOCArray,2);
|
memcpy(&temp2,BatterySOCArray,2);
|
||||||
mChaletMainStatus.mBatterySOC = temp2;
|
mChaletMainStatus.mBatterySOC = temp2;
|
||||||
|
|
||||||
|
TemperatureArray[0] = Data[10];
|
||||||
|
TemperatureArray[1] = Data[11];
|
||||||
|
TemperatureArray[2] = Data[12];
|
||||||
|
TemperatureArray[3] = Data[13];
|
||||||
|
memcpy(&temp,TemperatureArray,4);
|
||||||
|
mChaletMainStatus.mChaletTemperature = temp;
|
||||||
|
|
||||||
mChaletMainStatus.mStatusToggleBit = !mChaletMainStatus.mStatusToggleBit;
|
mChaletMainStatus.mStatusToggleBit = !mChaletMainStatus.mStatusToggleBit;
|
||||||
mChaletMainStatus.mLastLoraStatus = QDateTime::currentDateTime();
|
mChaletMainStatus.mLastLoraStatus = QDateTime::currentDateTime();
|
||||||
|
|
||||||
@ -90,18 +101,36 @@ int CChaletLoraDevice::NewDeviceFrameReceived(int DeviceID, int DeviceAddress, i
|
|||||||
|
|
||||||
mChaletDataLogger.LogChaletLORAData(&mChaletMainStatus);
|
mChaletDataLogger.LogChaletLORAData(&mChaletMainStatus);
|
||||||
|
|
||||||
mJFUbidotsInterface->LogUbidotsChaletData(&mChaletMainStatus);
|
// mJFUbidotsInterface->LogUbidotsChaletData(&mChaletMainStatus);
|
||||||
|
|
||||||
mBlynkInterface.UpdateChaletCurrent(mChaletMainStatus.mBatteryCurrent);
|
// mBlynkInterface.UpdateChaletCurrent(mChaletMainStatus.mBatteryCurrent);
|
||||||
mBlynkInterface.UpdateChaletVoltage(mChaletMainStatus.mBatteryVoltage);
|
// mBlynkInterface.UpdateChaletVoltage(mChaletMainStatus.mBatteryVoltage);
|
||||||
// mBlynkInterface.UpdateChaletWifiStatus((int)mChaletMainStatus.mInverterRelayStatus);
|
// mBlynkInterface.UpdateChaletWifiStatus((int)mChaletMainStatus.mInverterRelayStatus);
|
||||||
mBlynkInterface.UpdateChaletInverterStatus((int)mChaletMainStatus.mInverterRelayStatus);
|
// mBlynkInterface.UpdateChaletInverterStatus((int)mChaletMainStatus.mInverterRelayStatus);
|
||||||
mBlynkInterface.UpdateChaletStatusLed(((int)mChaletMainStatus.mStatusToggleBit)*255);
|
// mBlynkInterface.UpdateChaletStatusLed(((int)mChaletMainStatus.mStatusToggleBit)*255);
|
||||||
|
|
||||||
// mThingsBoardInterface.UpdateChaletVoltage(mChaletMainStatus.mBatteryVoltage);
|
// mThingsBoardInterface.UpdateChaletVoltage(mChaletMainStatus.mBatteryVoltage);
|
||||||
mThingsBoardInterface.UpdateChaletData(mChaletMainStatus.mInverterRelayStatus,mChaletMainStatus.mWiFiModuleStatus,mChaletMainStatus.mCurrentSensorStatus,mChaletMainStatus.mBatteryVoltage,mChaletMainStatus.mBatteryCurrent,mChaletMainStatus.mBatterySOC,mChaletMainStatus.mIsOnline);
|
//mThingsBoardInterface.UpdateChaletData(mChaletMainStatus.mInverterRelayStatus,mChaletMainStatus.mWiFiModuleStatus,mChaletMainStatus.mCurrentSensorStatus,mChaletMainStatus.mBatteryVoltage,mChaletMainStatus.mBatteryCurrent,mChaletMainStatus.mBatterySOC,mChaletMainStatus.mIsOnline);
|
||||||
|
mThingsBoardInterface.UpdateChaletData(&mChaletMainStatus);
|
||||||
|
|
||||||
|
|
||||||
|
mChaletModbusRepo.WriteSingleReg(CHALET_MODBUS_ONLINE_STATE_REG,(quint16)mChaletMainStatus.mIsOnline);
|
||||||
|
mChaletModbusRepo.WriteSingleReg(CHALET_MODBUS_WIFI_STATE_REG,(quint16)mChaletMainStatus.mWiFiModuleStatus);
|
||||||
|
mChaletModbusRepo.WriteSingleReg(CHALET_MODBUS_CURRENT_SENSOR_STATE_REG,(quint16)mChaletMainStatus.mCurrentSensorStatus);
|
||||||
|
mChaletModbusRepo.WriteSingleReg(CHALET_MODBUS_HARAKIRI_DONE_REG,(quint16)mChaletMainStatus.mHarakiriDone);
|
||||||
|
mChaletModbusRepo.WriteSingleReg(CHALET_MODBUS_STATUS_TOGGLE_REG,(quint16)mChaletMainStatus.mStatusToggleBit);
|
||||||
|
//mChaletModbusRepo.WriteSingleReg(CHALET_MODBUS_WATCHDOG_STATUS_REG,(quint16),mChaletMainStatus.m)
|
||||||
|
mChaletModbusRepo.WriteSingleReg(CHALET_MODBUS_INVERTER_REG,(quint16)mChaletMainStatus.mInverterRelayStatus);
|
||||||
|
|
||||||
|
quint16 TempInt16;
|
||||||
|
memcpy(&TempInt16,&VoltageArray[0],2);
|
||||||
|
mChaletModbusRepo.WriteSingleReg(CHALET_MODBUS_BATTERY_VOLTAGE_REG_1,TempInt16);
|
||||||
|
memcpy(&TempInt16,&VoltageArray[2],2);
|
||||||
|
mChaletModbusRepo.WriteSingleReg(CHALET_MODBUS_BATTERY_VOLTAGE_REG_2,TempInt16);
|
||||||
|
|
||||||
|
mChaletModbusRepo.WriteSingleReg(CHALET_MODBUS_BATTERY_CURRENT_REG_1,mChaletMainStatus.mBatteryCurrent);
|
||||||
|
mChaletModbusRepo.WriteSingleReg(CHALET_MODBUS_BATTERY_SOC_REG,mChaletMainStatus.mBatterySOC);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case CHALET_AC_POWER_STATE_STATUS_RESPONSE:
|
case CHALET_AC_POWER_STATE_STATUS_RESPONSE:
|
||||||
@ -167,6 +196,21 @@ int CChaletLoraDevice::NewDeviceFrameReceived(int DeviceID, int DeviceAddress, i
|
|||||||
CmdResponseReceived(CHALET_DO_HARAKIRI_REQUEST);
|
CmdResponseReceived(CHALET_DO_HARAKIRI_REQUEST);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case CHALET_GET_STORED_WIFI_SETTINGS_RESPONSE:
|
||||||
|
{
|
||||||
|
|
||||||
|
CmdResponseReceived(CHALET_GET_STORED_WIFI_SETTINGS_REQUEST);
|
||||||
|
mDeviceWiFiParameters = Data.left(8);
|
||||||
|
emit DeviceWifiStoredParamsReceived();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case CHALET_SET_STORED_WIFI_SETTINGS_RESPONSE:
|
||||||
|
{
|
||||||
|
CmdResponseReceived(CHALET_SET_STORED_WIFI_SETTINGS_REQUEST);
|
||||||
|
emit DeviceWifiSetParamsResult(Data[0]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
return RET_ERROR;
|
return RET_ERROR;
|
||||||
@ -280,6 +324,15 @@ int CChaletLoraDevice::SendRebootCmd()
|
|||||||
|
|
||||||
return ScheduleChaletCommand(CHALET_REBOOT_CPU_REQUEST,Data);
|
return ScheduleChaletCommand(CHALET_REBOOT_CPU_REQUEST,Data);
|
||||||
}
|
}
|
||||||
|
int CChaletLoraDevice::SendGetWifiParams()
|
||||||
|
{
|
||||||
|
return ScheduleChaletCommand(CHALET_GET_STORED_WIFI_SETTINGS_REQUEST,QByteArray());
|
||||||
|
}
|
||||||
|
|
||||||
|
int CChaletLoraDevice::SendSetWifiParams(QByteArray Data)
|
||||||
|
{
|
||||||
|
return ScheduleChaletCommand(CHALET_SET_STORED_WIFI_SETTINGS_REQUEST,Data);
|
||||||
|
}
|
||||||
|
|
||||||
int CChaletLoraDevice::SendChaletCommand(int CmdID, int DataSize, QByteArray Data)
|
int CChaletLoraDevice::SendChaletCommand(int CmdID, int DataSize, QByteArray Data)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -13,6 +13,8 @@
|
|||||||
#include "ChaletDataLogger.h"
|
#include "ChaletDataLogger.h"
|
||||||
#include "ChaletUbidotsInterface.h"
|
#include "ChaletUbidotsInterface.h"
|
||||||
#include "ThingsBoardInterface.h"
|
#include "ThingsBoardInterface.h"
|
||||||
|
#include "ChaletModbusServer.h"
|
||||||
|
#include "ModbusRepository.h"
|
||||||
|
|
||||||
|
|
||||||
#define LORA_MAGIC_WORD 0xBAADCAFE
|
#define LORA_MAGIC_WORD 0xBAADCAFE
|
||||||
@ -24,7 +26,6 @@
|
|||||||
#define LORA_CHALET_STATUS_POWER_RELAY_MASK 0x01
|
#define LORA_CHALET_STATUS_POWER_RELAY_MASK 0x01
|
||||||
#define LORA_CHALET_STATUS_CUR_SENSOR_MASK 0x02
|
#define LORA_CHALET_STATUS_CUR_SENSOR_MASK 0x02
|
||||||
|
|
||||||
|
|
||||||
class CChaletLoraDevice : public QObject, public CNetworkDevice
|
class CChaletLoraDevice : public QObject, public CNetworkDevice
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@ -39,8 +40,11 @@ public:
|
|||||||
int Start();
|
int Start();
|
||||||
|
|
||||||
CChaletMainStatus GetChaletMainStatus() {return mChaletMainStatus;}
|
CChaletMainStatus GetChaletMainStatus() {return mChaletMainStatus;}
|
||||||
|
QByteArray GetDeviceWiFiStoredParams() {return mDeviceWiFiParameters;}
|
||||||
CBlynkCloudClient mBlynkInterface;
|
CBlynkCloudClient mBlynkInterface;
|
||||||
CThingsBoardInterface mThingsBoardInterface;
|
CThingsBoardInterface mThingsBoardInterface;
|
||||||
|
CChaletModbusServer *mChaletModbusServer;
|
||||||
|
CModbusRepository mChaletModbusRepo;
|
||||||
|
|
||||||
CChaletMainStatus mChaletMainStatus;
|
CChaletMainStatus mChaletMainStatus;
|
||||||
QList<CChaletNetworkMessage> mPendingNetworkMsgList;
|
QList<CChaletNetworkMessage> mPendingNetworkMsgList;
|
||||||
@ -52,6 +56,8 @@ public:
|
|||||||
|
|
||||||
CChaletDataLogger *GetDataLoggerHandle() {return &mChaletDataLogger;} //for Interface use...
|
CChaletDataLogger *GetDataLoggerHandle() {return &mChaletDataLogger;} //for Interface use...
|
||||||
|
|
||||||
|
QByteArray mDeviceWiFiParameters;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int SendWiFiModuleSetState(bool State);
|
int SendWiFiModuleSetState(bool State);
|
||||||
@ -61,12 +67,17 @@ public:
|
|||||||
int SendChaletCommand(int CmdID,int DataSize, QByteArray Data);
|
int SendChaletCommand(int CmdID,int DataSize, QByteArray Data);
|
||||||
int ResetCommStats();
|
int ResetCommStats();
|
||||||
int ComputeCommStats();
|
int ComputeCommStats();
|
||||||
|
int SendGetWifiParams();
|
||||||
|
int SendSetWifiParams(QByteArray Data);
|
||||||
|
|
||||||
int CmdResponseReceived(int CmdID);
|
int CmdResponseReceived(int CmdID);
|
||||||
int ScheduleChaletStatusRequest();
|
int ScheduleChaletStatusRequest();
|
||||||
int ScheduleChaletCommand(int CmdID, int DataSize, QByteArray Data);
|
int ScheduleChaletCommand(int CmdID, int DataSize, QByteArray Data);
|
||||||
int ScheduleChaletCommand(int CmdID,QByteArray Data);
|
int ScheduleChaletCommand(int CmdID,QByteArray Data);
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void DeviceWifiStoredParamsReceived();
|
||||||
|
void DeviceWifiSetParamsResult(char);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void CommTimerExpired();
|
void CommTimerExpired();
|
||||||
|
|||||||
@ -5,3 +5,19 @@ CChaletModbusServer::CChaletModbusServer(CModbusRepository *Repo, int ModbusPort
|
|||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CChaletModbusServer::~CChaletModbusServer()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CChaletModbusServer::RegistersDatabaseUpdated(quint16 StartAddress, quint16 Length)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void CChaletModbusServer::ModbusRequestException(quint8 ExceptionCode, quint8 FctCode)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
@ -4,6 +4,8 @@
|
|||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <ModbusBackend.h>
|
#include <ModbusBackend.h>
|
||||||
|
|
||||||
|
class CChaletLoraDevice;
|
||||||
|
|
||||||
class CChaletModbusServer : public CModbusBackend
|
class CChaletModbusServer : public CModbusBackend
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|||||||
@ -30,7 +30,7 @@ int CThingsBoardInterface::RegisterThingsboardRPC()
|
|||||||
{
|
{
|
||||||
|
|
||||||
QNetworkRequest Req;
|
QNetworkRequest Req;
|
||||||
Req.setUrl(QUrl("http://192.168.50.100:8085/api/v1/aQIocLkJM2ECSqVT2VRx/rpc"));
|
Req.setUrl(QUrl("http://192.168.50.225:8080/api/v1/qpJ6tWCkXHJzDQviDJ64/rpc"));
|
||||||
|
|
||||||
mThingsBoardRPCReply = mThingsBoardRPCSocket->get(Req);
|
mThingsBoardRPCReply = mThingsBoardRPCSocket->get(Req);
|
||||||
// connect(mThingsBoardRPCReply,SIGNAL(readyRead()),this,SLOT(RPCData()));
|
// connect(mThingsBoardRPCReply,SIGNAL(readyRead()),this,SLOT(RPCData()));
|
||||||
@ -49,7 +49,7 @@ void CThingsBoardInterface::UpdateChaletVoltage(float Voltage)
|
|||||||
|
|
||||||
QNetworkRequest Req;
|
QNetworkRequest Req;
|
||||||
Req.setHeader(QNetworkRequest::ContentTypeHeader,"application/json");
|
Req.setHeader(QNetworkRequest::ContentTypeHeader,"application/json");
|
||||||
Req.setUrl(QUrl("http://192.168.50.100:8085/api/v1/aQIocLkJM2ECSqVT2VRx/telemetry"));
|
Req.setUrl(QUrl("http://192.168.50.225:8080/api/v1/qpJ6tWCkXHJzDQviDJ64/telemetry"));
|
||||||
|
|
||||||
mThingsBoardSocket->post(Req,JsonByteArray);
|
mThingsBoardSocket->post(Req,JsonByteArray);
|
||||||
|
|
||||||
@ -82,7 +82,7 @@ void CThingsBoardInterface::UpdateChaletData(quint8 mInverterRelayStatus, quint8
|
|||||||
|
|
||||||
QNetworkRequest Req;
|
QNetworkRequest Req;
|
||||||
Req.setHeader(QNetworkRequest::ContentTypeHeader,"application/json");
|
Req.setHeader(QNetworkRequest::ContentTypeHeader,"application/json");
|
||||||
Req.setUrl(QUrl("http://192.168.50.100:8085/api/v1/aQIocLkJM2ECSqVT2VRx/telemetry"));
|
Req.setUrl(QUrl("http://192.168.50.225:8080/api/v1/qpJ6tWCkXHJzDQviDJ64/telemetry"));
|
||||||
|
|
||||||
mThingsBoardSocket->post(Req,JsonByteArray);
|
mThingsBoardSocket->post(Req,JsonByteArray);
|
||||||
|
|
||||||
@ -96,6 +96,39 @@ void CThingsBoardInterface::UpdateChaletData(quint8 mInverterRelayStatus, quint8
|
|||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CThingsBoardInterface::UpdateChaletData(CChaletMainStatus *Data)
|
||||||
|
{
|
||||||
|
QByteArray JsonByteArray = "{\"Bat_Voltage\":";
|
||||||
|
JsonByteArray.append((QString("%1, ").arg(Data->mBatteryVoltage)).toUtf8().data());
|
||||||
|
|
||||||
|
JsonByteArray.append("\"Bat_SOC\":");
|
||||||
|
JsonByteArray.append((QString("%1, ").arg(Data->mBatterySOC)).toUtf8().data());
|
||||||
|
|
||||||
|
JsonByteArray.append("\"WiFi_State\":");
|
||||||
|
JsonByteArray.append((QString("%1, ").arg(Data->mWiFiModuleStatus)).toUtf8().data());
|
||||||
|
|
||||||
|
JsonByteArray.append("\"CurrentSensor_State\":");
|
||||||
|
JsonByteArray.append((QString("%1, ").arg(Data->mCurrentSensorStatus)).toUtf8().data());
|
||||||
|
|
||||||
|
JsonByteArray.append("\"Bat_Current\":");
|
||||||
|
JsonByteArray.append((QString("%1, ").arg(Data->mBatteryCurrent)).toUtf8().data());
|
||||||
|
|
||||||
|
JsonByteArray.append("\"LoRa_State\":");
|
||||||
|
JsonByteArray.append((QString("%1, ").arg(Data->mIsOnline)).toUtf8().data());
|
||||||
|
|
||||||
|
JsonByteArray.append("\"Inverter_State\":");
|
||||||
|
JsonByteArray.append((QString("%1, ").arg(Data->mInverterRelayStatus)).toUtf8().data());
|
||||||
|
|
||||||
|
JsonByteArray = "{\"Temperature_Sensor\":";
|
||||||
|
JsonByteArray.append((QString("%1}").arg(Data->mChaletTemperature)).toUtf8().data());
|
||||||
|
|
||||||
|
QNetworkRequest Req;
|
||||||
|
Req.setHeader(QNetworkRequest::ContentTypeHeader,"application/json");
|
||||||
|
Req.setUrl(QUrl("http://192.168.50.225:8080/api/v1/qpJ6tWCkXHJzDQviDJ64/telemetry"));
|
||||||
|
|
||||||
|
mThingsBoardSocket->post(Req,JsonByteArray);
|
||||||
|
}
|
||||||
|
|
||||||
void CThingsBoardInterface::ThingsBoardServerFinished(QNetworkReply *NetworkReply)
|
void CThingsBoardInterface::ThingsBoardServerFinished(QNetworkReply *NetworkReply)
|
||||||
{
|
{
|
||||||
if(NetworkReply->isFinished() == false)
|
if(NetworkReply->isFinished() == false)
|
||||||
|
|||||||
@ -5,6 +5,7 @@ class CChaletLoraDevice;
|
|||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QNetworkAccessManager>
|
#include <QNetworkAccessManager>
|
||||||
|
#include "ChaletData.h"
|
||||||
|
|
||||||
class CThingsBoardInterface : public QObject
|
class CThingsBoardInterface : public QObject
|
||||||
{
|
{
|
||||||
@ -18,6 +19,7 @@ public:
|
|||||||
int RegisterThingsboardRPC();
|
int RegisterThingsboardRPC();
|
||||||
void UpdateChaletVoltage(float Voltage);
|
void UpdateChaletVoltage(float Voltage);
|
||||||
void UpdateChaletData(quint8 mInverterRelayStatus, quint8 mWiFiModuleStatus, qint8 mCurrentSensorStatus, float mBatteryVoltage, qint16 mBatteryCurrent, qint16 mBatterySOC, qint8 LoraState);
|
void UpdateChaletData(quint8 mInverterRelayStatus, quint8 mWiFiModuleStatus, qint8 mCurrentSensorStatus, float mBatteryVoltage, qint16 mBatteryCurrent, qint16 mBatterySOC, qint8 LoraState);
|
||||||
|
void UpdateChaletData(CChaletMainStatus *Data);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QNetworkAccessManager *mThingsBoardSocket, *mThingsBoardRPCSocket;
|
QNetworkAccessManager *mThingsBoardSocket, *mThingsBoardRPCSocket;
|
||||||
|
|||||||
@ -61,6 +61,7 @@ int CLoraNetworkCommIF::SetLoraSerialPortSettings(QString PortName, qint32 BaudR
|
|||||||
|
|
||||||
int CLoraNetworkCommIF::SendLoraFrame(unsigned short DestAddress, unsigned char DestChannel, QByteArray Payload)
|
int CLoraNetworkCommIF::SendLoraFrame(unsigned short DestAddress, unsigned char DestChannel, QByteArray Payload)
|
||||||
{
|
{
|
||||||
|
|
||||||
mLoraDeviceSerialPort.write(GetLoraFrame(DestAddress,DestChannel,Payload));
|
mLoraDeviceSerialPort.write(GetLoraFrame(DestAddress,DestChannel,Payload));
|
||||||
mLoraDeviceSerialPort.waitForBytesWritten(500);
|
mLoraDeviceSerialPort.waitForBytesWritten(500);
|
||||||
return RET_OK;
|
return RET_OK;
|
||||||
|
|||||||
@ -270,6 +270,11 @@ enum CHALET_INTERFACE_CMDS
|
|||||||
CHALET_INTERFACE_CHALET_ACTIVITY_RESPONSE,
|
CHALET_INTERFACE_CHALET_ACTIVITY_RESPONSE,
|
||||||
CHALET_INTERFACE_GET_DATA_LOG_REQUEST,
|
CHALET_INTERFACE_GET_DATA_LOG_REQUEST,
|
||||||
CHALET_INTERFACE_GET_DATA_LOG_RESPONSE,
|
CHALET_INTERFACE_GET_DATA_LOG_RESPONSE,
|
||||||
|
CHALET_INTERFACE_WIFI_GET_DEVICE_PARAMS_REQUEST,
|
||||||
|
CHALET_INTERFACE_WIFI_GET_DEVICE_PARAMS_RESPONSE,
|
||||||
|
CHALET_INTERFACE_WIFI_SET_DEVICE_PARAMS_REQUEST,
|
||||||
|
CHALET_INTERFACE_WIFI_SET_DEVICE_PARAMS_RESPONSE,
|
||||||
|
|
||||||
|
|
||||||
MAX_CHALET_INTERFACE_CMD
|
MAX_CHALET_INTERFACE_CMD
|
||||||
};
|
};
|
||||||
@ -295,6 +300,10 @@ enum CHALET_CMDS
|
|||||||
CHALET_DO_HARAKIRI_CONFIRMATION,
|
CHALET_DO_HARAKIRI_CONFIRMATION,
|
||||||
CHALET_REBOOT_CPU_REQUEST, //12
|
CHALET_REBOOT_CPU_REQUEST, //12
|
||||||
CHALET_REBOOT_CPU_RESPONSE,
|
CHALET_REBOOT_CPU_RESPONSE,
|
||||||
|
CHALET_GET_STORED_WIFI_SETTINGS_REQUEST, //14
|
||||||
|
CHALET_GET_STORED_WIFI_SETTINGS_RESPONSE,
|
||||||
|
CHALET_SET_STORED_WIFI_SETTINGS_REQUEST,
|
||||||
|
CHALET_SET_STORED_WIFI_SETTINGS_RESPONSE,
|
||||||
|
|
||||||
|
|
||||||
MAX_CHALET_CMD
|
MAX_CHALET_CMD
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user