Interface Ispindel + dev ChaletInterface
This commit is contained in:
@@ -8,6 +8,7 @@ CChaletInterface::CChaletInterface(int Address, CAbstractNetworkCommIF *NetworkI
|
||||
mChaletDataLogger = mChaletLoraDevice->GetDataLoggerHandle();
|
||||
|
||||
connect(mChaletLoraDevice,SIGNAL(DeviceWifiStoredParamsReceived()),this,SLOT(DeviceWiFiDataReceived()));
|
||||
connect(mChaletLoraDevice,SIGNAL(DeviceFirmwareVersionReceived()),this,SLOT(DeviceFirmwareVersionReceived()));
|
||||
|
||||
}
|
||||
|
||||
@@ -106,6 +107,10 @@ int CChaletInterface::NewDeviceFrameReceived(int DeviceID, int DeviceAddress, in
|
||||
mChaletLoraDevice->SendSetWifiParams(Data);
|
||||
break;
|
||||
}
|
||||
case CHALET_INTERFACE_GET_FIRMWARE_VERSION_REQUEST:
|
||||
{
|
||||
mChaletLoraDevice->SendGetFirmwareVersion();
|
||||
}
|
||||
case CHALET_INTERFACE_WIFI_GET_DEVICE_PARAMS_RESPONSE:
|
||||
case CHALET_INTERFACE_WIFI_SET_DEVICE_PARAMS_RESPONSE:
|
||||
case CHALET_INTERFACE_GET_DATA_LOG_RESPONSE:
|
||||
@@ -140,3 +145,9 @@ void CChaletInterface::DeviceWiFiDataReceived()
|
||||
QByteArray Data = mChaletLoraDevice->GetDeviceWiFiStoredParams();
|
||||
mNetworkInterfacePtr->SendNetworkMessage(ID_CHALET_INTERFACE,mDeviceAddress,CHALET_INTERFACE_WIFI_GET_DEVICE_PARAMS_RESPONSE,Data.size(),&Data);
|
||||
}
|
||||
|
||||
void CChaletInterface::DeviceFirmwareVersionReceived()
|
||||
{
|
||||
QByteArray Data = mChaletLoraDevice->GetDeviceFirmwareVersion();
|
||||
mNetworkInterfacePtr->SendNetworkMessage(ID_CHALET_INTERFACE,mDeviceAddress,CHALET_INTERFACE_GET_FIRMWARE_VERSION_RESPONSE,Data.size(),&Data);
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ private:
|
||||
|
||||
public slots:
|
||||
void DeviceWiFiDataReceived();
|
||||
void DeviceFirmwareVersionReceived();
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ CChaletLoraDevice::CChaletLoraDevice(int Address, CAbstractNetworkCommIF *Networ
|
||||
mChaletModbusServer = new CChaletModbusServer(&mChaletModbusRepo,512,1);
|
||||
|
||||
mDeviceWiFiParameters.fill(0xFF);
|
||||
mDeviceFirmwareVersion.fill(0xFF);
|
||||
|
||||
ResetCommStats();
|
||||
}
|
||||
@@ -56,7 +57,7 @@ int CChaletLoraDevice::NewDeviceFrameReceived(int DeviceID, int DeviceAddress, i
|
||||
{
|
||||
float temp;
|
||||
qint16 temp2;
|
||||
qDebug("Chalet Status RX");
|
||||
// qDebug("Chalet Status RX");
|
||||
char VoltageArray[4];
|
||||
char TemperatureArray[4];
|
||||
char SolarPanelCurrentArray[2];
|
||||
@@ -94,10 +95,10 @@ int CChaletLoraDevice::NewDeviceFrameReceived(int DeviceID, int DeviceAddress, i
|
||||
mChaletMainStatus.mLastLoraStatus = QDateTime::currentDateTime();
|
||||
|
||||
CmdResponseReceived(CHALET_GENERAL_STATUS_REQUEST);
|
||||
qDebug("voltage: %f",mChaletMainStatus.mBatteryVoltage);
|
||||
// qDebug("voltage: %f",mChaletMainStatus.mBatteryVoltage);
|
||||
// qDebug("Current: %d",mChaletMainStatus.mBatteryCurrent);
|
||||
// qDebug("SOC: %d",mChaletMainStatus.mBatterySOC);
|
||||
qDebug("Inverter: %d",mChaletMainStatus.mInverterRelayStatus);
|
||||
// qDebug("Inverter: %d",mChaletMainStatus.mInverterRelayStatus);
|
||||
|
||||
mChaletDataLogger.LogChaletLORAData(&mChaletMainStatus);
|
||||
|
||||
@@ -114,22 +115,22 @@ int CChaletLoraDevice::NewDeviceFrameReceived(int DeviceID, int DeviceAddress, i
|
||||
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);
|
||||
// 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);
|
||||
// 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);
|
||||
// mChaletModbusRepo.WriteSingleReg(CHALET_MODBUS_BATTERY_CURRENT_REG_1,mChaletMainStatus.mBatteryCurrent);
|
||||
// mChaletModbusRepo.WriteSingleReg(CHALET_MODBUS_BATTERY_SOC_REG,mChaletMainStatus.mBatterySOC);
|
||||
|
||||
break;
|
||||
}
|
||||
@@ -141,7 +142,7 @@ int CChaletLoraDevice::NewDeviceFrameReceived(int DeviceID, int DeviceAddress, i
|
||||
}
|
||||
case CHALET_AC_POWER_SET_STATE_RESPONSE:
|
||||
{
|
||||
qDebug("Lora set Inverter Power response : 0x%d",(int)Data[0]);
|
||||
// qDebug("Lora set Inverter Power response : 0x%d",(int)Data[0]);
|
||||
mChaletMainStatus.mInverterRelayStatus = Data[0];
|
||||
CmdResponseReceived(CHALET_AC_POWER_SET_STATE_REQUEST);
|
||||
break;
|
||||
@@ -164,7 +165,7 @@ int CChaletLoraDevice::NewDeviceFrameReceived(int DeviceID, int DeviceAddress, i
|
||||
}
|
||||
case CHALET_WIFI_SET_STATE_RESPONSE:
|
||||
{
|
||||
qDebug("Lora set WiFi response : 0x%d",(int)Data[0]);
|
||||
// qDebug("Lora set WiFi response : 0x%d",(int)Data[0]);
|
||||
mChaletMainStatus.mWiFiModuleStatus = Data[0];
|
||||
CmdResponseReceived(CHALET_WIFI_SET_STATE_REQUEST);
|
||||
break;
|
||||
@@ -210,6 +211,13 @@ int CChaletLoraDevice::NewDeviceFrameReceived(int DeviceID, int DeviceAddress, i
|
||||
emit DeviceWifiSetParamsResult(Data[0]);
|
||||
break;
|
||||
}
|
||||
case CHALET_GET_FIRMWARE_VERSION_RESPONSE:
|
||||
{
|
||||
CmdResponseReceived(CHALET_GET_FIRMWARE_VERSION_REQUEST);
|
||||
mDeviceFirmwareVersion = Data.left(15);
|
||||
emit DeviceFirmwareVersionReceived();
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
@@ -252,7 +260,7 @@ void CChaletLoraDevice::CommTimerExpired()
|
||||
ComputeCommStats();
|
||||
}
|
||||
|
||||
qDebug("Sending chalet request 0x%x",mPendingNetworkMsgList.at(0).mMessageID);
|
||||
// qDebug("Sending chalet request 0x%x",mPendingNetworkMsgList.at(0).mMessageID);
|
||||
|
||||
mPendingNetworkMsgList[0].PendingResponse = true;
|
||||
SendChaletCommand(mPendingNetworkMsgList.at(0).mMessageID,mPendingNetworkMsgList.at(0).mData.size(),mPendingNetworkMsgList.at(0).mData);
|
||||
@@ -334,6 +342,11 @@ int CChaletLoraDevice::SendSetWifiParams(QByteArray Data)
|
||||
return ScheduleChaletCommand(CHALET_SET_STORED_WIFI_SETTINGS_REQUEST,Data);
|
||||
}
|
||||
|
||||
int CChaletLoraDevice::SendGetFirmwareVersion()
|
||||
{
|
||||
return ScheduleChaletCommand(CHALET_GET_FIRMWARE_VERSION_REQUEST,QByteArray());
|
||||
}
|
||||
|
||||
int CChaletLoraDevice::SendChaletCommand(int CmdID, int DataSize, QByteArray Data)
|
||||
{
|
||||
mNetworkInterfacePtr->SendNetworkMessage(ID_CHALET_DEVICE,mDeviceAddress,CmdID,DataSize,&Data);
|
||||
@@ -352,7 +365,7 @@ int CChaletLoraDevice::CmdResponseReceived(int CmdID)
|
||||
qDebug("Chalet is ONLINE!");
|
||||
}
|
||||
|
||||
qDebug("Chalet response received from cmd: 0x%x",CmdID);
|
||||
//qDebug("Chalet response received from cmd: 0x%x",CmdID);
|
||||
if(mPendingNetworkMsgList.size() == 0)
|
||||
{
|
||||
qDebug("Cmd ack received but list is empty!!!");
|
||||
|
||||
@@ -41,6 +41,7 @@ public:
|
||||
|
||||
CChaletMainStatus GetChaletMainStatus() {return mChaletMainStatus;}
|
||||
QByteArray GetDeviceWiFiStoredParams() {return mDeviceWiFiParameters;}
|
||||
QByteArray GetDeviceFirmwareVersion() {return mDeviceFirmwareVersion;}
|
||||
CBlynkCloudClient mBlynkInterface;
|
||||
CThingsBoardInterface mThingsBoardInterface;
|
||||
CChaletModbusServer *mChaletModbusServer;
|
||||
@@ -57,6 +58,7 @@ public:
|
||||
CChaletDataLogger *GetDataLoggerHandle() {return &mChaletDataLogger;} //for Interface use...
|
||||
|
||||
QByteArray mDeviceWiFiParameters;
|
||||
QByteArray mDeviceFirmwareVersion;
|
||||
|
||||
|
||||
|
||||
@@ -69,15 +71,19 @@ public:
|
||||
int ComputeCommStats();
|
||||
int SendGetWifiParams();
|
||||
int SendSetWifiParams(QByteArray Data);
|
||||
int SendGetFirmwareVersion();
|
||||
|
||||
int CmdResponseReceived(int CmdID);
|
||||
int ScheduleChaletStatusRequest();
|
||||
int ScheduleChaletCommand(int CmdID, int DataSize, QByteArray Data);
|
||||
int ScheduleChaletCommand(int CmdID,QByteArray Data);
|
||||
|
||||
bool IsInverterON(){return mChaletMainStatus.mInverterRelayStatus == 1;}
|
||||
|
||||
signals:
|
||||
void DeviceWifiStoredParamsReceived();
|
||||
void DeviceWifiSetParamsResult(char);
|
||||
void DeviceFirmwareVersionReceived();
|
||||
|
||||
public slots:
|
||||
void CommTimerExpired();
|
||||
|
||||
@@ -119,7 +119,7 @@ void CThingsBoardInterface::UpdateChaletData(CChaletMainStatus *Data)
|
||||
JsonByteArray.append("\"Inverter_State\":");
|
||||
JsonByteArray.append((QString("%1, ").arg(Data->mInverterRelayStatus)).toUtf8().data());
|
||||
|
||||
JsonByteArray = "{\"Temperature_Sensor\":";
|
||||
JsonByteArray.append("\"Temperature_Sensor\":");
|
||||
JsonByteArray.append((QString("%1}").arg(Data->mChaletTemperature)).toUtf8().data());
|
||||
|
||||
QNetworkRequest Req;
|
||||
@@ -173,7 +173,7 @@ void CThingsBoardInterface::ThingsBoardRPCFinished(QNetworkReply *NetworkReply)
|
||||
{
|
||||
if(mThingsBoardRPCReply->error() != QNetworkReply::NoError)
|
||||
{
|
||||
qDebug("Network error (ThingsBoardRPC)... %d", mThingsBoardRPCReply->error());
|
||||
// qDebug("Network error (ThingsBoardRPC)... %d", mThingsBoardRPCReply->error());
|
||||
RegisterThingsboardRPC();
|
||||
return;
|
||||
}
|
||||
@@ -204,17 +204,17 @@ void CThingsBoardInterface::ThingsBoardRPCFinished(QNetworkReply *NetworkReply)
|
||||
if(RequestedState == true)
|
||||
{
|
||||
qDebug("Server Inverter TURN ON request received.");
|
||||
mChaletLoraDevice->SendInverterPowerRelayState(true);
|
||||
// mChaletLoraDevice->SendInverterPowerRelayState(true);
|
||||
}
|
||||
if(RequestedState == false)
|
||||
{
|
||||
qDebug("Server Inverter TURN OFF request received.");
|
||||
mChaletLoraDevice->SendInverterPowerRelayState(false);
|
||||
// mChaletLoraDevice->SendInverterPowerRelayState(false);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else if(RequestedCmd.toString().contains("setWiFiState"))
|
||||
else if(RequestedCmd.toString().contains("setChaletWiFiState"))
|
||||
{
|
||||
//Fetch the required state.
|
||||
QString RequestedState = RPCCmd.value("params").toString();
|
||||
@@ -227,6 +227,28 @@ void CThingsBoardInterface::ThingsBoardRPCFinished(QNetworkReply *NetworkReply)
|
||||
qDebug("Server WiFi TURN OFF request received.");
|
||||
}
|
||||
}
|
||||
else if(RequestedCmd.toString().contains("getChaletInverterState"))
|
||||
{
|
||||
qDebug("Inverter state request received");
|
||||
QByteArray JsonByteArray;
|
||||
int ReqID = RPCCmd.value("id").toInt();
|
||||
if(mChaletLoraDevice->IsInverterON())
|
||||
{
|
||||
JsonByteArray = "{\"InverterSwitchState\":\"1\"}";
|
||||
}
|
||||
else
|
||||
{
|
||||
JsonByteArray = "{\"InverterSwitchState\":\"0\"}";
|
||||
}
|
||||
|
||||
QNetworkRequest Req;
|
||||
// QString URL = QString("http://192.168.50.225:8080/api/v1/qpJ6tWCkXHJzDQviDJ64/rpc/%1").arg(ReqID);
|
||||
QString URL = QString("http://192.168.50.225:8080/api/v1/qpJ6tWCkXHJzDQviDJ64/attributes");
|
||||
Req.setHeader(QNetworkRequest::ContentTypeHeader,"application/json");
|
||||
Req.setUrl(QUrl(URL));
|
||||
|
||||
mThingsBoardSocket->post(Req,JsonByteArray);
|
||||
}
|
||||
else
|
||||
{
|
||||
qDebug("Received an unknown RPC call from ThingsBoard server");
|
||||
|
||||
Reference in New Issue
Block a user