WLG/localserver/cmt_cmd.cpp
2025-01-09 20:00:34 +08:00

45 lines
1.2 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;
char* LocalServer::HandleTcp_cmd(const char* recvData,uint8_t& rescmd,int& reslength)
{
zlog_info(zct,"HandleTcp_cmd");
PackgeHead head;
memcpy(&head,recvData,sizeof(PackgeHead));
uint8_t cmd = head.cmd;
rescmd = head.cmd;
JsonData jd;
switch (cmd)
{
case 1:{
Search search;
memcpy(search.mac,GlobalConfig::MacAddr_G.c_str(),sizeof(search.mac));
search.gw_type = kGWTDG102;
reslength = sizeof(Search);
return (char*)&search;
}break;
case kGateWayVersion: {
char* retData = jd.CmtCmd_80(reslength);
return retData;
}break;
case kSensorInfo:{
char* retData = jd.CmtCmd_81(reslength);
return retData;
}break;
case kSensorWave:
WaveReq wave_req;
memcpy(&wave_req,recvData + sizeof(PackgeHead),sizeof(WaveReq));
char* retData = jd.CmtCmd_82(wave_req.mac,wave_req.channel,reslength);
return retData;
break;
default:
return NULL;
break;
}
}