WLG/localserver/cmt_cmd.cpp
2025-01-13 20:11:40 +08:00

83 lines
2.3 KiB
C++

#include "local_server.hpp"
#include "jsonparse/communication_cmd.hpp"
#include "common/global.hpp"
#include <string.h>
#include "zlog.h"
extern zlog_category_t *zct;
void LocalServer::HandleTcp_cmd(const char* recv_data,char* send_data,uint8_t& rescmd,int& send_length)
{
zlog_info(zct,"HandleTcp_cmd");
PackgeHead head;
memcpy(&head,recv_data,sizeof(PackgeHead));
uint8_t cmd = head.cmd;
rescmd = head.cmd;
printf("cmd = %d\n",cmd);
JsonData jd;
switch (cmd)
{
case 1:{
Search search;
search.version = 1;
memcpy(search.mac,GlobalConfig::MacAddr_G.c_str(),sizeof(search.mac));
search.gw_type = kGWTDG102;
send_length = sizeof(Search);
printf("send length = %d\n",send_length);
memcpy(send_data,&search,sizeof(Search));
}break;
case kGateWayVersion: {
jd.CmtCmd_80(send_data,send_length);
// memcpy(send_data,&send_data_,sizeof(send_length));
// if (send_data_){
// free(send_data_);
// }
}break;
case kSensorInfo:{
jd.CmtCmd_81(send_data,send_length);
}break;
case kSensorWave:{
WaveReq wave_req;
memcpy(&wave_req,recv_data + sizeof(PackgeHead),sizeof(WaveReq));
jd.CmtCmd_82(wave_req.measurement_id,send_data,wave_req.channel,send_length);
}break;
case KDownloadConfig:{
DownloadConfigReq download_config;
memcpy(&download_config,recv_data + sizeof(PackgeHead),sizeof(DownloadConfigReq));
jd.CmtCmd_83(download_config.measurement_id,send_data,send_length);
zlog_info(zct, "CmtCmd_83 = %d",send_length);
}break;
case KUploadConfig:{
UpgradeSensorReq upgrade_sensor;
memcpy(&upgrade_sensor,recv_data + sizeof(PackgeHead),sizeof(UpgradeSensorReq));
jd.CmtCmd_84(upgrade_sensor.filename);
}break;
case KUpgadeGateway:{
sleep(3);
int iRet = system("/opt/opt.sh");
zlog_info(zct, "iRet = %d", iRet);
if (iRet == -1) {
zlog_error(zct, "system() error");
}
}break;
case KUpgradeSensor:{
}
break;
case KEigenvalue:{
}
break;
case KUpgradeSensorStop:{
}
break;
default:
return NULL;
break;
}
}