fix web bugs

This commit is contained in:
zhangsheng 2026-02-11 19:48:02 +08:00
parent 2ece225952
commit bf26028791
6 changed files with 93 additions and 45 deletions

View File

@ -113,7 +113,6 @@ std::string JsonData::JsonCmd_Cgi_26(Param_26 &param) {
jsSensorData["RSSI"] = arrRes[j][40]; jsSensorData["RSSI"] = arrRes[j][40];
rssi = arrRes[j][40]; rssi = arrRes[j][40];
} }
zlog_info(zct,"1arrRes[j][43] = %s",arrRes[j][43].c_str());
batteryPower = arrRes[j][43]; batteryPower = arrRes[j][43];
std::vector<std::string> vParamBatteryPower; std::vector<std::string> vParamBatteryPower;
float fBatteryPower = 100.0; float fBatteryPower = 100.0;
@ -123,7 +122,6 @@ std::string JsonData::JsonCmd_Cgi_26(Param_26 &param) {
fBatteryPower = atof(vParamBatteryPower[1].c_str())/atof(vParamBatteryPower[0].c_str()); fBatteryPower = atof(vParamBatteryPower[1].c_str())/atof(vParamBatteryPower[0].c_str());
} }
} }
zlog_info(zct,"2arrRes[j][43] = %s",arrRes[j][43].c_str());
memset(whereCon,0x00,sizeof(whereCon)); memset(whereCon,0x00,sizeof(whereCon));
sprintf(whereCon,"shortAddr = '%s' ",arrRes[j][30].c_str()); sprintf(whereCon,"shortAddr = '%s' ",arrRes[j][30].c_str());
vec_t vecResult = sqlite_db_ctrl::instance().GetDataSingleLine("t_shutdown_info","*",whereCon); vec_t vecResult = sqlite_db_ctrl::instance().GetDataSingleLine("t_shutdown_info","*",whereCon);

View File

@ -705,6 +705,9 @@ std::string JsonData::JsonCmd_Cgi_60(Param_60 &param){
jsonVal[JSON_FIELD_CMD] = "60"; jsonVal[JSON_FIELD_CMD] = "60";
jsonVal["success"] = true; jsonVal["success"] = true;
jsonVal["message"] = ""; jsonVal["message"] = "";
char wherecon[100] = {0};
char insertSql[200] = {0};
char updateSql[100] = {0};
if(param.mMode == 0){ if(param.mMode == 0){
char file_path[64]={0}; char file_path[64]={0};
char cmd[128]={0}; char cmd[128]={0};
@ -790,9 +793,7 @@ std::string JsonData::JsonCmd_Cgi_60(Param_60 &param){
char localtimestamp[32] = {0}; char localtimestamp[32] = {0};
GetTimeNet(localtimestamp, 1); GetTimeNet(localtimestamp, 1);
std::vector<UpgradeParameter> param_list; std::vector<UpgradeParameter> param_list;
char wherecon[100] = {0};
char insertSql[200] = {0};
char updateSql[100] = {0};
for (size_t i = 0; i < param.dataNodeNo.size(); i++) for (size_t i = 0; i < param.dataNodeNo.size(); i++)
{ {
UpgradeParameter upgrade_parameter; UpgradeParameter upgrade_parameter;
@ -810,7 +811,7 @@ std::string JsonData::JsonCmd_Cgi_60(Param_60 &param){
} }
sprintf(insertSql, " '%s','%s','','','','','%d.%d','%s',1,'%s'",vecResult[3].c_str(),localtimestamp,sf_ver_m,sf_ver_s,vecResult[1].c_str(),param.fileName.c_str()); sprintf(insertSql, " '%s','%s','','','','','%d.%d','%s',1,'%s'",vecResult[3].c_str(),localtimestamp,sf_ver_m,sf_ver_s,vecResult[1].c_str(),param.fileName.c_str());
sqlite_db_ctrl::instance().InsertData(" firmware_upgrade ", insertSql); sqlite_db_ctrl::instance().InsertData(" firmware_upgrade ", insertSql);
//0 默认状态1 升级中2 升级成功,3 升级失败 //0 默认状态1 升级中2 升级成功,3 升级失败 4,停止升级
memset(wherecon,0,sizeof(wherecon)); memset(wherecon,0,sizeof(wherecon));
memset(updateSql,0,sizeof(updateSql)); memset(updateSql,0,sizeof(updateSql));
sprintf(wherecon," zigbeeShortAddr = '%s'",vecResult[3].c_str()); sprintf(wherecon," zigbeeShortAddr = '%s'",vecResult[3].c_str());
@ -836,10 +837,28 @@ std::string JsonData::JsonCmd_Cgi_60(Param_60 &param){
} }
free(buffer); free(buffer);
}else if(param.mMode == 1){ }else if(param.mMode == 1){
std::vector<uint16_t> short_addr_list;
for (size_t i = 0; i < param.dataNodeNo.size(); i++) for (size_t i = 0; i < param.dataNodeNo.size(); i++)
{ {
UpgradeParameter upgrade_parameter;
memset(wherecon,0,sizeof(wherecon));
memset(insertSql,0,sizeof(insertSql));
sprintf(wherecon," dataNodeNo = '%s' ",param.dataNodeNo[i].c_str());
vec_t vecResult = sqlite_db_ctrl::instance().GetDataSingleLine(T_SENSOR_INFO(TNAME), " hardVersion,softVersion,ProductNo,zigbeeShortAddr ", wherecon);
uint16_t short_addr;
char *end_ptr = NULL;
short_addr = strtol(vecResult[3].c_str(), &end_ptr, 16);
short_addr_list.push_back(short_addr);
memset(wherecon,0,sizeof(wherecon));
memset(updateSql,0,sizeof(updateSql));
sprintf(wherecon," zigbeeShortAddr = '%s'",vecResult[3].c_str());
sprintf(updateSql, " upgradeStatus = %d ", 4);
sqlite_db_ctrl::instance().UpdateTableData(T_SENSOR_INFO(TNAME), updateSql,wherecon);
} }
scheduler::instance().CancelUpgradeSensor(short_addr_list);
} }
return show_value_.write(jsonVal); return show_value_.write(jsonVal);

View File

@ -98,12 +98,45 @@ void PlatformInit::Init() {
zlog_error(zbt, "PlatFormInit exception happend."); zlog_error(zbt, "PlatFormInit exception happend.");
std::string errorinfo = "系统初始化异常"; std::string errorinfo = "系统初始化异常";
} }
char whereCon[128] = {0};
char insertSql[128] = {0};
int rows = 0;
std::string MeasurementID = "0";
std::string ShortAdd = "0";
array_t arrResult = sqlite_db_ctrl::instance().GetDataMultiLineTransaction(T_SENSOR_INFO(TNAME), " MeasurementID,zigbeeShortAddr ", NULL); array_t arrResult = sqlite_db_ctrl::instance().GetDataMultiLineTransaction(T_SENSOR_INFO(TNAME), " MeasurementID,zigbeeShortAddr ", NULL);
for (size_t i = 0; i < arrResult.size(); i++) { if (arrResult.size() > 1)
compressWaveChannel tempchannel; {
WaveChannel tempwavechannel; for (size_t i = 0; i < arrResult.size(); i++) {
g_mapCompress.insert(std::make_pair(arrResult[i][1], tempchannel)); compressWaveChannel tempchannel;
g_mapWaveChannel.insert(std::make_pair(arrResult[i][0], tempwavechannel)); WaveChannel tempwavechannel;
g_mapCompress.insert(std::make_pair(arrResult[i][1], tempchannel));
g_mapWaveChannel.insert(std::make_pair(arrResult[i][0], tempwavechannel));
MeasurementID = arrResult[i][0];
ShortAdd = arrResult[i][1];
sprintf(whereCon, "MeasurementID = '%s' ", arrResult[i][0].c_str());
rows = sqlite_db_ctrl::instance().GetTableRows("t_shutdown_info",whereCon);
zlog_info(zbt, "MeasurementID = %s,ShortAdd = %s,rows = %d", MeasurementID.c_str(), ShortAdd.c_str(), rows);
if(rows < 1){
memset(insertSql,0,sizeof(insertSql));
sprintf(insertSql, " '%s','%s','0','0','0','0'",
MeasurementID.c_str(), ShortAdd.c_str());
sqlite_db_ctrl::instance().InsertData("t_shutdown_info", insertSql);
}
rows = sqlite_db_ctrl::instance().GetTableRows("t_debug_info",whereCon);
if(rows < 1){
memset(insertSql,0,sizeof(insertSql));
sprintf(insertSql, " '%s','%s','','','','','','0',''",
MeasurementID.c_str(), ShortAdd.c_str());
sqlite_db_ctrl::instance().InsertData("t_debug_info", insertSql);
}
rows = sqlite_db_ctrl::instance().GetTableRows("t_wave_triger_info",whereCon);
if(rows < 1){
memset(insertSql,0,sizeof(insertSql));
sprintf(insertSql, " '%s','%s','0','0','0','0','0'",
MeasurementID.c_str(), ShortAdd.c_str());
sqlite_db_ctrl::instance().InsertData("t_wave_triger_info", insertSql);
}
}
} }
} }

View File

@ -92,10 +92,10 @@ int SensorScheduler::StartSchedule(uint16_t short_addr, int &next_duration, bool
long nxt_ts = current_wave_start_ts_ + nth_eigen_value_slice_ * eigen_value_send_interval_ + 60 + (i-nth_wave_slice)*60; long nxt_ts = current_wave_start_ts_ + nth_eigen_value_slice_ * eigen_value_send_interval_ + 60 + (i-nth_wave_slice)*60;
next_duration = nxt_ts - current_ts_; next_duration = nxt_ts - current_ts_;
if (next_duration < 10) { if (next_duration < 10) {
zlog_debug(zbt, "[%d:%x] [Nxt] debug exception duration:%d, adjust to 25", id, short_addr); zlog_debug(zbt, "[%d:%x] [Nxt] debug exception duration:%d, adjust to 25", id, short_addr,next_duration);
next_duration = 25; next_duration = 25;
} else if (next_duration > eigen_value_send_interval_) { } else if (next_duration > eigen_value_send_interval_) {
zlog_debug(zbt, "[%d:%x] [Nxt] debug exception duration:%d, adjust to 120", id, short_addr); zlog_debug(zbt, "[%d:%x] [Nxt] debug exception duration:%d, adjust to 120", id, short_addr,next_duration);
next_duration = 120; next_duration = 120;
} }
z = true; z = true;
@ -460,11 +460,11 @@ int SensorScheduler::GetNextDuration(uint16_t short_addr, bool &z, int &next_tas
long next_ts = CalcNextTimestamp(id, short_addr, z, next_task_id); long next_ts = CalcNextTimestamp(id, short_addr, z, next_task_id);
int duration = next_ts - current_ts; int duration = next_ts - current_ts;
if (duration < 10) { if (duration < 10) {
zlog_debug(zbt, "[%d:%x] [Nxt] exception duration:%d, adjust to 25", id, short_addr); zlog_debug(zbt, "[%d:%x] [Nxt] exception duration:%d, adjust to 25", id, short_addr,duration);
duration = 25; duration = 25;
return duration; return duration;
} else if (duration > eigen_value_send_interval_) { } else if (duration > eigen_value_send_interval_) {
zlog_debug(zbt, "[%d:%x] [Nxt] exception duration:%d, adjust to 120", id, short_addr); zlog_debug(zbt, "[%d:%x] [Nxt] exception duration:%d, adjust to 120", id, short_addr,duration);
duration = 120; duration = 120;
return duration; return duration;
} }
@ -499,11 +499,11 @@ int SensorScheduler::GetDebugUpgradeNextDuration(uint16_t short_addr) {
int duration = available_ts - current_ts; int duration = available_ts - current_ts;
if (duration < 10) { if (duration < 10) {
zlog_debug(zbt, "[%d:%x] [Nxt] exception duration:%d, adjust to 25", id, short_addr); zlog_debug(zbt, "[%d:%x] [Nxt] exception duration:%d, adjust to 25", id, short_addr,duration);
duration = 25; duration = 25;
return duration; return duration;
} else if (duration > eigen_value_send_interval_) { } else if (duration > eigen_value_send_interval_) {
zlog_debug(zbt, "[%d:%x] [Nxt] exception duration:%d, adjust to 120", id, short_addr); zlog_debug(zbt, "[%d:%x] [Nxt] exception duration:%d, adjust to 120", id, short_addr,duration);
duration = 120; duration = 120;
return duration; return duration;
} }
@ -1375,7 +1375,7 @@ void SensorScheduler::GenerateUpgradeSchedule() {
long nth_eigen_value_slice = seconds_in_current_wave_slice / eigen_value_send_interval_; long nth_eigen_value_slice = seconds_in_current_wave_slice / eigen_value_send_interval_;
long seconds_in_current_eigen_slice = seconds_in_current_wave_slice % eigen_value_send_interval_; long seconds_in_current_eigen_slice = seconds_in_current_wave_slice % eigen_value_send_interval_;
int previous_wave_slice = wave_slice_num_per_eigen_interval_ * (nth_eigen_value_slice + 1); int previous_wave_slice = wave_slice_num_per_eigen_interval_ * (nth_eigen_value_slice + 1);
zlog_debug(zbt, "seconds_in_current_wave_slice:%d, nth_eigen_value_slice:%d, seconds_in_current_eigen_slice:%d, previous_wave_slice: %d", zlog_debug(zbt, "seconds_in_current_wave_slice:%ld, nth_eigen_value_slice:%ld, seconds_in_current_eigen_slice:%ld, previous_wave_slice: %d",
seconds_in_current_wave_slice, nth_eigen_value_slice, seconds_in_current_eigen_slice, previous_wave_slice); seconds_in_current_wave_slice, nth_eigen_value_slice, seconds_in_current_eigen_slice, previous_wave_slice);
// if (previous_wave_slice < 0) { // if (previous_wave_slice < 0) {
// zlog_error(zbt, "previous_wave_slice: %d", previous_wave_slice); // zlog_error(zbt, "previous_wave_slice: %d", previous_wave_slice);

View File

@ -527,7 +527,7 @@ int Uart::DealWaveCompress(const char *pData,uint16_t ushortAdd){
tempchannel.CountZ = BUILD_UINT32(pData[21], pData[20],pData[19],pData[18]); tempchannel.CountZ = BUILD_UINT32(pData[21], pData[20],pData[19],pData[18]);
sprintf(sensor_rssi, "%02d", pData[22] & 0xFF); sprintf(sensor_rssi, "%02d", pData[22] & 0xFF);
}else{ }else{
int ret = 0;//WaveSendCondition(shortAdd); int ret = WaveSendCondition(shortAdd);
if(ret == 1){ if(ret == 1){
zlog_warn(zct, "WaveSendCondition not meet condition ,shortAddr = %s",shortAdd); zlog_warn(zct, "WaveSendCondition not meet condition ,shortAddr = %s",shortAdd);
scheduler::instance().WaveSuccess(ushortAdd,true); scheduler::instance().WaveSuccess(ushortAdd,true);
@ -580,15 +580,6 @@ int Uart::DealWaveCompress(const char *pData,uint16_t ushortAdd){
sprintf(whereCon, "dataNodeNo='%s' and timeStamp = '%s'", (char*)vecDataNodeNo[0].c_str(),timestamp_last.c_str()); sprintf(whereCon, "dataNodeNo='%s' and timeStamp = '%s'", (char*)vecDataNodeNo[0].c_str(),timestamp_last.c_str());
sqlite_db_ctrl::instance().UpdateTableData(tableName, updateSql, whereCon); sqlite_db_ctrl::instance().UpdateTableData(tableName, updateSql, whereCon);
std::vector<std::string> vParamRSSI;
boost::split(vParamRSSI, vecDataNodeNo[1], boost::is_any_of(","), boost::token_compress_on);
memset(updateSql,0,sizeof(updateSql));
memset(whereCon,0,sizeof(whereCon));
if (vParamRSSI.size() > 0) {
sprintf(updateSql, "RSSI = '%s,%02d' ", vParamRSSI[0].c_str(), pData[22] & 0xFF);
sprintf(whereCon, "dataNodeNo='%s'", (char *)vecDataNodeNo[0].c_str());
sqlite_db_ctrl::instance().UpdateTableData(T_SENSOR_INFO(TNAME), updateSql, whereCon);
}
} }
zlog_info(zct, "count X = %d,Y = %d,Z = %d,vol X = %d,vol Y = %d,vol Z = %d ", tempchannel.CountX, tempchannel.CountY, tempchannel.CountZ,tempchannel.CountVolX,tempchannel.CountVolY,tempchannel.CountVolZ); zlog_info(zct, "count X = %d,Y = %d,Z = %d,vol X = %d,vol Y = %d,vol Z = %d ", tempchannel.CountX, tempchannel.CountY, tempchannel.CountZ,tempchannel.CountVolX,tempchannel.CountVolY,tempchannel.CountVolZ);
zlog_info(zct, "compress X = %d,Y = %d,Z = %d ", tempchannel.compressChannelX, tempchannel.compressChannelY, tempchannel.compressChannelZ); zlog_info(zct, "compress X = %d,Y = %d,Z = %d ", tempchannel.compressChannelX, tempchannel.compressChannelY, tempchannel.compressChannelZ);
@ -669,7 +660,14 @@ int Uart::DealFeatureValue(const char *pData,uint16_t ushortAdd){
{ {
return -1; return -1;
} }
DealAskTask(ushortAdd); // char logInfo[100] = {0x00};
// std::vector<uint8_t>& data_vec = map_send_data[ushortAdd];
// const uint8_t* send_data = data_vec.data();
// WriteToUart((const char*)send_data, 100);
// mssleep(50000);
// WriteToUart((const char*)send_data, 100);
// mssleep(50000);
// WriteToUart((const char*)send_data, 100);
}else { }else {
DealAskTask(ushortAdd); DealAskTask(ushortAdd);
DealDataNodeFeature(pData, 0); DealDataNodeFeature(pData, 0);

View File

@ -277,23 +277,23 @@ int Uart::DealDataNodeFeature(const char *pData, int flag) {
memset(whereCon, 0x00, sizeof(whereCon)); memset(whereCon, 0x00, sizeof(whereCon));
//时间戳判断,是否重包 //时间戳判断,是否重包
sprintf(whereCon, "timeStamp = '%s'", localtimestamp); // sprintf(whereCon, "timeStamp = '%s'", localtimestamp);
int count = sqlite_db_ctrl::instance().GetTableRows(szTableNameStatic, whereCon); //避免重复数据 // int count = sqlite_db_ctrl::instance().GetTableRows(szTableNameStatic, whereCon); //避免重复数据
sprintf(szTableNameData, "t_data_%s", strMeasurementID.c_str()); // sprintf(szTableNameData, "t_data_%s", strMeasurementID.c_str());
int count2 = sqlite_db_ctrl::instance().GetTableRows(szTableNameData, whereCon); // int count2 = sqlite_db_ctrl::instance().GetTableRows(szTableNameData, whereCon);
if (count > 0 || count2 > 0) { // if (count > 0 || count2 > 0) {
char logInfo[100] = {0x00}; // char logInfo[100] = {0x00};
sprintf(logInfo, "ShortAddr = %s,localtimestamp = %s,staticData = %d, data = %d", strShortAddr.c_str(), localtimestamp, count, count2); // sprintf(logInfo, "ShortAddr = %s,localtimestamp = %s,staticData = %d, data = %d", strShortAddr.c_str(), localtimestamp, count, count2);
zlog_info(zct, logInfo); // zlog_info(zct, logInfo);
std::vector<uint8_t>& data_vec = map_send_data[u_short_addr]; // std::vector<uint8_t>& data_vec = map_send_data[u_short_addr];
const uint8_t* send_data = data_vec.data(); // const uint8_t* send_data = data_vec.data();
WriteToUart((const char*)send_data, 100); // WriteToUart((const char*)send_data, 100);
mssleep(50000); // mssleep(50000);
WriteToUart((const char*)send_data, 100); // WriteToUart((const char*)send_data, 100);
mssleep(50000); // mssleep(50000);
WriteToUart((const char*)send_data, 100); // WriteToUart((const char*)send_data, 100);
} // }
memset(whereCon, 0x00, sizeof(whereCon)); memset(whereCon, 0x00, sizeof(whereCon));
sprintf(szTableNameData, "t_data_%s", strMeasurementID.c_str()); sprintf(szTableNameData, "t_data_%s", strMeasurementID.c_str());
///////////////////////////////////////////////////////////// for V2.0.3 upgrade to V3.0 ///////////////////////////////////////////////////////////// for V2.0.3 upgrade to V3.0