#include "local_server.hpp" #include "jsonparse/communication_cmd.hpp" #include "common/global.hpp" #include #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; } }