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

View File

@ -12,6 +12,7 @@ CChaletMainStatus::CChaletMainStatus()
mHarakiriDone = false;
mStatusToggleBit = 0;
mLostRequestPercentage = 0;
mChaletTemperature = -100;
}
@ -57,6 +58,7 @@ QByteArray CChaletMainStatus::ToByteArray()
Strm << mThisStatusDateTime;
Strm << mLastLoraStatus;
Strm << mStatusToggleBit;
Strm << mChaletTemperature;
return Data;
}

View File

@ -6,6 +6,32 @@
#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
{
@ -34,6 +60,8 @@ public:
float mLostRequestPercentage;
float mChaletTemperature;
};

View File

@ -7,6 +7,8 @@ CChaletInterface::CChaletInterface(int Address, CAbstractNetworkCommIF *NetworkI
mChaletLoraDevice = DevicePtr;
mChaletDataLogger = mChaletLoraDevice->GetDataLoggerHandle();
connect(mChaletLoraDevice,SIGNAL(DeviceWifiStoredParamsReceived()),this,SLOT(DeviceWiFiDataReceived()));
}
@ -94,6 +96,18 @@ int CChaletInterface::NewDeviceFrameReceived(int DeviceID, int DeviceAddress, in
delete data;
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_TODAYS_DATA_LOG_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);
}
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;
CChaletDataLogger *mChaletDataLogger;
public slots:
void DeviceWiFiDataReceived();
};
#endif // CCHALETINTERFACE_H

View File

@ -1,7 +1,5 @@
#include "ChaletLoraDevice.h"
#include "GlobalDefine.h"
#include "ChaletInterface.h"
CChaletLoraDevice::CChaletLoraDevice(int Address, CAbstractNetworkCommIF *NetworkInterface):
@ -16,10 +14,15 @@ CChaletLoraDevice::CChaletLoraDevice(int Address, CAbstractNetworkCommIF *Networ
mChaletStatusTimer->setSingleShot(true);
connect(mChaletStatusTimer,SIGNAL(timeout()),this,SLOT(CommTimerExpired()));
mJFUbidotsInterface = new CChaletJFUbidotsInterface("BBFF-tEq4lGAegEyP1H4EaYckNQ7ZHdZYzI");
// mJFUbidotsInterface = new CChaletJFUbidotsInterface("BBFF-tEq4lGAegEyP1H4EaYckNQ7ZHdZYzI");
mThingsBoardInterface.mChaletLoraDevice = this;
mChaletModbusRepo.AddHRDataMap(0x2000,50);
mChaletModbusServer = new CChaletModbusServer(&mChaletModbusRepo,512,1);
mDeviceWiFiParameters.fill(0xFF);
ResetCommStats();
}
@ -55,6 +58,7 @@ int CChaletLoraDevice::NewDeviceFrameReceived(int DeviceID, int DeviceAddress, i
qint16 temp2;
qDebug("Chalet Status RX");
char VoltageArray[4];
char TemperatureArray[4];
char SolarPanelCurrentArray[2];
char BatterySOCArray[2];
@ -79,6 +83,13 @@ int CChaletLoraDevice::NewDeviceFrameReceived(int DeviceID, int DeviceAddress, i
memcpy(&temp2,BatterySOCArray,2);
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.mLastLoraStatus = QDateTime::currentDateTime();
@ -90,18 +101,36 @@ int CChaletLoraDevice::NewDeviceFrameReceived(int DeviceID, int DeviceAddress, i
mChaletDataLogger.LogChaletLORAData(&mChaletMainStatus);
mJFUbidotsInterface->LogUbidotsChaletData(&mChaletMainStatus);
// mJFUbidotsInterface->LogUbidotsChaletData(&mChaletMainStatus);
mBlynkInterface.UpdateChaletCurrent(mChaletMainStatus.mBatteryCurrent);
mBlynkInterface.UpdateChaletVoltage(mChaletMainStatus.mBatteryVoltage);
// mBlynkInterface.UpdateChaletCurrent(mChaletMainStatus.mBatteryCurrent);
// mBlynkInterface.UpdateChaletVoltage(mChaletMainStatus.mBatteryVoltage);
// mBlynkInterface.UpdateChaletWifiStatus((int)mChaletMainStatus.mInverterRelayStatus);
mBlynkInterface.UpdateChaletInverterStatus((int)mChaletMainStatus.mInverterRelayStatus);
mBlynkInterface.UpdateChaletStatusLed(((int)mChaletMainStatus.mStatusToggleBit)*255);
// mBlynkInterface.UpdateChaletInverterStatus((int)mChaletMainStatus.mInverterRelayStatus);
// mBlynkInterface.UpdateChaletStatusLed(((int)mChaletMainStatus.mStatusToggleBit)*255);
// 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;
}
case CHALET_AC_POWER_STATE_STATUS_RESPONSE:
@ -167,6 +196,21 @@ int CChaletLoraDevice::NewDeviceFrameReceived(int DeviceID, int DeviceAddress, i
CmdResponseReceived(CHALET_DO_HARAKIRI_REQUEST);
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:
{
return RET_ERROR;
@ -280,6 +324,15 @@ int CChaletLoraDevice::SendRebootCmd()
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)
{

View File

@ -13,6 +13,8 @@
#include "ChaletDataLogger.h"
#include "ChaletUbidotsInterface.h"
#include "ThingsBoardInterface.h"
#include "ChaletModbusServer.h"
#include "ModbusRepository.h"
#define LORA_MAGIC_WORD 0xBAADCAFE
@ -24,7 +26,6 @@
#define LORA_CHALET_STATUS_POWER_RELAY_MASK 0x01
#define LORA_CHALET_STATUS_CUR_SENSOR_MASK 0x02
class CChaletLoraDevice : public QObject, public CNetworkDevice
{
Q_OBJECT
@ -39,8 +40,11 @@ public:
int Start();
CChaletMainStatus GetChaletMainStatus() {return mChaletMainStatus;}
QByteArray GetDeviceWiFiStoredParams() {return mDeviceWiFiParameters;}
CBlynkCloudClient mBlynkInterface;
CThingsBoardInterface mThingsBoardInterface;
CChaletModbusServer *mChaletModbusServer;
CModbusRepository mChaletModbusRepo;
CChaletMainStatus mChaletMainStatus;
QList<CChaletNetworkMessage> mPendingNetworkMsgList;
@ -52,6 +56,8 @@ public:
CChaletDataLogger *GetDataLoggerHandle() {return &mChaletDataLogger;} //for Interface use...
QByteArray mDeviceWiFiParameters;
int SendWiFiModuleSetState(bool State);
@ -61,12 +67,17 @@ public:
int SendChaletCommand(int CmdID,int DataSize, QByteArray Data);
int ResetCommStats();
int ComputeCommStats();
int SendGetWifiParams();
int SendSetWifiParams(QByteArray Data);
int CmdResponseReceived(int CmdID);
int ScheduleChaletStatusRequest();
int ScheduleChaletCommand(int CmdID, int DataSize, QByteArray Data);
int ScheduleChaletCommand(int CmdID,QByteArray Data);
signals:
void DeviceWifiStoredParamsReceived();
void DeviceWifiSetParamsResult(char);
public slots:
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 <ModbusBackend.h>
class CChaletLoraDevice;
class CChaletModbusServer : public CModbusBackend
{
Q_OBJECT

View File

@ -30,7 +30,7 @@ int CThingsBoardInterface::RegisterThingsboardRPC()
{
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);
// connect(mThingsBoardRPCReply,SIGNAL(readyRead()),this,SLOT(RPCData()));
@ -49,7 +49,7 @@ void CThingsBoardInterface::UpdateChaletVoltage(float Voltage)
QNetworkRequest Req;
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);
@ -82,7 +82,7 @@ void CThingsBoardInterface::UpdateChaletData(quint8 mInverterRelayStatus, quint8
QNetworkRequest Req;
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);
@ -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)
{
if(NetworkReply->isFinished() == false)

View File

@ -5,6 +5,7 @@ class CChaletLoraDevice;
#include <QObject>
#include <QNetworkAccessManager>
#include "ChaletData.h"
class CThingsBoardInterface : public QObject
{
@ -18,6 +19,7 @@ public:
int RegisterThingsboardRPC();
void UpdateChaletVoltage(float Voltage);
void UpdateChaletData(quint8 mInverterRelayStatus, quint8 mWiFiModuleStatus, qint8 mCurrentSensorStatus, float mBatteryVoltage, qint16 mBatteryCurrent, qint16 mBatterySOC, qint8 LoraState);
void UpdateChaletData(CChaletMainStatus *Data);
private:
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)
{
mLoraDeviceSerialPort.write(GetLoraFrame(DestAddress,DestChannel,Payload));
mLoraDeviceSerialPort.waitForBytesWritten(500);
return RET_OK;

View File

@ -92,7 +92,7 @@ void CMasterCtrl::Start()
mAVReceiverDevice->Start();
mChaletLoraNetworkCommInterface->SetLoraSerialPortSettings("COM3",QSerialPort::Baud9600);
// mChaletLoraNetworkCommInterface->SetLoraSerialPortSettings("COM5",QSerialPort::Baud9600);
// mChaletLoraNetworkCommInterface->SetLoraSerialPortSettings("COM5",QSerialPort::Baud9600);
mChaletLoraDevice->Start();

View File

@ -351,7 +351,7 @@ void CNetworkProtocol::PrepareForNewPacket()
int CNetworkProtocol::AnalyzeRxBuffer(QByteArray 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++)
{
ret = RxStateMachine(Buffer.at(i));

View File

@ -270,6 +270,11 @@ enum CHALET_INTERFACE_CMDS
CHALET_INTERFACE_CHALET_ACTIVITY_RESPONSE,
CHALET_INTERFACE_GET_DATA_LOG_REQUEST,
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
};
@ -295,6 +300,10 @@ enum CHALET_CMDS
CHALET_DO_HARAKIRI_CONFIRMATION,
CHALET_REBOOT_CPU_REQUEST, //12
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