From c585a96fe23bcde4ba02cd01f2564d30f067f8c8 Mon Sep 17 00:00:00 2001 From: zhangsheng Date: Fri, 27 Mar 2026 14:36:09 +0800 Subject: [PATCH] sync dg102 codes --- jsonparse/web_cmd_parse3.cpp | 5 +++-- uart/uart.cpp | 14 ++++++++++++-- uart/uart_feature_parse.cpp | 12 ++++++++++-- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/jsonparse/web_cmd_parse3.cpp b/jsonparse/web_cmd_parse3.cpp index f45331e..4d5adc6 100644 --- a/jsonparse/web_cmd_parse3.cpp +++ b/jsonparse/web_cmd_parse3.cpp @@ -1485,11 +1485,12 @@ std::string JsonData::JsonCmd_Cgi_67(Param_67 ¶m){ char whereCon[512] = {0}; char updateSql[256] = {0}; sprintf(whereCon, " MeasurementID = '%s' ", param.measurementID[i].c_str()); - sprintf(updateSql, " status = '%d' ", 1);// 0 未调试,1 调试中,2 调试完成,3 停止调试 + sprintf(updateSql, " status = '%d' ", 1);// 0 未调试,1 调试中,2 调试完成,3 停止调试,4 调试失败 sqlite_db_ctrl::instance().UpdateTableData("t_debug_info", updateSql, whereCon); uint16_t short_addr; char *end_ptr = NULL; vec_t vecResult = sqlite_db_ctrl::instance().GetDataSingleLine(T_SENSOR_INFO(TNAME), " zigbeeShortAddr ", whereCon); + sqlite_db_ctrl::instance().UpdateTableData("t_debug_info", "gatewayRSSI = '0',datanodeRSSI= '0',comprehensiveRSSI = '0',minnumVoltage = '0'", whereCon); short_addr = strtol(vecResult[0].c_str(), &end_ptr, 16); short_addr_list.push_back(short_addr); } @@ -1499,7 +1500,7 @@ std::string JsonData::JsonCmd_Cgi_67(Param_67 ¶m){ char whereCon[512] = {0}; char updateSql[256] = {0}; sprintf(whereCon, " status = '1' "); - sprintf(updateSql, " status = '%d' ", 3);// 0 未调试,1 调试中,2 调试完成,3 停止调试 + sprintf(updateSql, " status = '%d' ", 3);// 0 未调试,1 调试中,2 调试完成,3 停止调试,4 调试失败 sqlite_db_ctrl::instance().UpdateTableData("t_debug_info", updateSql, whereCon); scheduler::instance().CloseDebugMode(); } diff --git a/uart/uart.cpp b/uart/uart.cpp index 8a6f7fb..0fdcd7e 100644 --- a/uart/uart.cpp +++ b/uart/uart.cpp @@ -1383,7 +1383,12 @@ int Uart::FindRecvPackage(int bytesRead, char *mUartRecvBuf, char *head) { zlog_error(zct, "WaveError error ShortAddr :%s", strShortAddr.c_str()); sprintf(insertSql, "'%s','%s','%s',%d,'%d','%s','' ", strChannelID.c_str(),strShortAddr.c_str(),localtimestamp,bytesRead,0,error_msg.c_str()); sqlite_db_ctrl::instance().InsertData(" receive_wave_status ", insertSql); - + if (schedule_status == kScheduleStatusDebug){ + char updateSql[100] = {0x00}; + sprintf(updateSql, " status = '4' "); + sprintf(whereCon, "MeasurementID='%s'",strMeasurementID.c_str()); + sqlite_db_ctrl::instance().UpdateTableData("t_debug_info", updateSql, whereCon); + } JsonData jd; jd.JsonCmd_32(strMeasurementID,1,1,strChannelID,error_msg); @@ -1425,7 +1430,12 @@ int Uart::FindRecvPackage(int bytesRead, char *mUartRecvBuf, char *head) { zlog_error(zct, "WaveError error ShortAddr :%s", strShortAddr.c_str()); sprintf(insertSql, "'%s','%s','%s',%d,'%d','%s','' ", strChannelID.c_str(),strShortAddr.c_str(),localtimestamp,bytesRead,0,error_msg.c_str()); sqlite_db_ctrl::instance().InsertData(" receive_wave_status ", insertSql); - + if (schedule_status == kScheduleStatusDebug){ + char updateSql[100] = {0x00}; + sprintf(updateSql, " status = '4' "); + sprintf(whereCon, "MeasurementID='%s'",strMeasurementID.c_str()); + sqlite_db_ctrl::instance().UpdateTableData("t_debug_info", updateSql, whereCon); + } JsonData jd; jd.JsonCmd_32(strMeasurementID,1,1,strChannelID,error_msg); continue; diff --git a/uart/uart_feature_parse.cpp b/uart/uart_feature_parse.cpp index 4932211..24e1bb7 100644 --- a/uart/uart_feature_parse.cpp +++ b/uart/uart_feature_parse.cpp @@ -63,7 +63,7 @@ void Uart::RecordBattery(std::string &strLongAddr, DataRecvStatic &dataStatic, s if (res_static.size() > 0){ int zigbeeSignal = atoi(res_static[6].c_str()); int zigbeeSignalNode = atoi(res_static[11].c_str()); - float standardRate = 5.0f; //5kB/s + float standardRate = 1.8f; //1.8kB/s float actualRate = 0.0f; if (dataStatic.nodeSendTime > 0){ actualRate = (wave_dataLen / 1024.0f) / (dataStatic.nodeSendTime / 1000.0f); //单位:KB/s @@ -95,6 +95,13 @@ void Uart::RecordBattery(std::string &strLongAddr, DataRecvStatic &dataStatic, s sprintf(tableName, "t_debug_info"); sprintf(updateSql, " comprehensiveRSSI = '%f',minnumVoltage = '%d',status = '2',timeStamp = '%s' ", comprehensiveRSSI,dataStatic.instantaneousBatteryVoltage,localtimestamp); sqlite_db_ctrl::instance().UpdateTableData(tableName, updateSql, whereCon); + memset(whereCon,0x00,sizeof(whereCon)); + sprintf(whereCon,"status = '1'"); + int count = sqlite_db_ctrl::instance().GetTableRows(tableName, whereCon); + if (count == 0) + { + scheduler::instance().CloseDebugMode(); + } } } } @@ -250,7 +257,6 @@ int Uart::DealDataNodeFeature(const char *pData, int flag) { dataStatic.nodeSendTime = lowbit * n; dataStatic.nodeWorkTime = dataStatic.nodeWorkTime - dataStatic.nodeSendTime; zlog_info(zct, "nodeWorkTime = %f,nodeSendTime = %f", dataStatic.nodeWorkTime, dataStatic.nodeSendTime); - RecordBattery(strMeasurementID, dataStatic, nowTimetamp); if (compareVersions(softVersion, "2.4")) { @@ -285,6 +291,8 @@ int Uart::DealDataNodeFeature(const char *pData, int flag) { memcpy(szTableNameStatic, szTableName, sizeof(szTableNameStatic)); memset(whereCon, 0x00, sizeof(whereCon)); + RecordBattery(strMeasurementID, dataStatic, nowTimetamp); + //时间戳判断,是否重包 // sprintf(whereCon, "timeStamp = '%s'", localtimestamp); // int count = sqlite_db_ctrl::instance().GetTableRows(szTableNameStatic, whereCon); //避免重复数据