Dev pour retour du LoRa au chalet

This commit is contained in:
jfmartel 2021-10-12 11:27:15 -04:00
parent 75f1a4d1c3
commit 1dadad4b09
15 changed files with 196 additions and 39 deletions

View File

@ -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 \
@ -134,6 +111,6 @@ INCLUDEPATH += $$PWD/ \
$$PWD/Sources/HttpServer \ $$PWD/Sources/HttpServer \
$$PWD/blynk-library-master/src/ \ $$PWD/blynk-library-master/src/ \
$$PWD/Sources/Modbus \ $$PWD/Sources/Modbus \
# $$PWD/Lib/QtHTTPServer/include/ \ # $$PWD/Lib/QtHTTPServer/include/ \
LIBS += -L$$PWD/Lib/QtHTTPServer/ -lQt5HttpServer LIBS += -L$$PWD/Lib/QtHTTPServer/ -lQt5HttpServer

View File

@ -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;
} }

View File

@ -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;
}; };

View File

@ -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);
}

View File

@ -18,6 +18,9 @@ private:
CChaletLoraDevice *mChaletLoraDevice; CChaletLoraDevice *mChaletLoraDevice;
CChaletDataLogger *mChaletDataLogger; CChaletDataLogger *mChaletDataLogger;
public slots:
void DeviceWiFiDataReceived();
}; };
#endif // CCHALETINTERFACE_H #endif // CCHALETINTERFACE_H

View File

@ -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)
{ {

View File

@ -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();

View File

@ -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)
{
}

View File

@ -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

View File

@ -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)

View File

@ -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;

View File

@ -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;

View File

@ -351,7 +351,7 @@ void CNetworkProtocol::PrepareForNewPacket()
int CNetworkProtocol::AnalyzeRxBuffer(QByteArray Buffer) int CNetworkProtocol::AnalyzeRxBuffer(QByteArray Buffer)
{ {
int ret = PROTOCOL_RET_ERROR_EMPTY_BUFFER; int ret = PROTOCOL_RET_ERROR_EMPTY_BUFFER;
// qDebug("Rx %d bytes",Buffer.size()); // qDebug("Rx %d bytes",Buffer.size());
for(int i = 0; i < Buffer.size(); i++) for(int i = 0; i < Buffer.size(); i++)
{ {
ret = RxStateMachine(Buffer.at(i)); ret = RxStateMachine(Buffer.at(i));

View File

@ -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