83 lines
2.3 KiB
C++
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;
|
|
}
|
|
|
|
} |