Bläddra i källkod

重新识别加入稳态值输出。

git-svn-id: https://202.107.226.68:8443/svn/Services/ResistanceMonitor@79 a05970a1-87b9-9d4f-9ee5-fa77e2ec115b
shenchunzhong 1 år sedan
förälder
incheckning
8e4c252f36
3 ändrade filer med 34 tillägg och 26 borttagningar
  1. 28 21
      4.Data/HttpPrcess.cpp
  2. 5 5
      4.Data/MGWSServer.cpp
  3. 1 0
      4.Data/MGWSServer.h

+ 28 - 21
4.Data/HttpPrcess.cpp

@@ -4706,20 +4706,24 @@ int DealResistMove(const httplib::Request& req, const string token, char** json,
             ASSERT(ii != mapSecondStatInfo2.end());
 			last_value = ii->second.end_val;
 			auto dif = abs(last_value - first_value);
+			auto strLog = fmt::format("{}  first:{}  last:{} dif:{}",
+				CTime(it->time / 1000).Format("%Y-%m-%d %H:%M:%S"), first_value, last_value, dif);
 			if (dif > 1000)
 			{
-				auto strLog = fmt::format("{}  first:{}  last:{} dif:{}", 
-					CTime(it->time/1000).Format("%Y-%m-%d %H:%M:%S"), first_value, last_value, dif);
-				SPDLOG_INFO(strLog);
-				FRICTION_RESIST info;
-				info.peak_time = it->time;
-				info.peak_val = it->val;
-				info.show_time = it->time; //暂时赋值峰值
-				info.show_val = last_value;
-				info.tmStart = it->tmStart;
-				info.tmEnd = it->tmEnd;
-				info.t = strLog;
-				lstFriction.emplace_back(info);
+				if (it->tmEnd - it->tmStart >= 4)
+				{
+					SPDLOG_INFO(strLog);
+					FRICTION_RESIST info;
+					info.peak_time = it->time;
+					info.peak_val = it->val;
+					info.show_time = it->time; //暂时赋值峰值
+					info.show_val = last_value;
+					info.tmStart = it->tmStart;
+					info.tmEnd = it->tmEnd;
+					info.t = strLog;
+					info.bUpOrDown = it->bUpOrDown;
+					lstFriction.emplace_back(info);
+				}
 				it = maxResist.erase(it);
 			}
 			else
@@ -4858,8 +4862,11 @@ int DealResistMove(const httplib::Request& req, const string token, char** json,
 			yyjson_mut_obj_add_strcpy(doc, obj, "time", fmt::format("{}.{:0>3}", CTime(show_time/1000).Format("%Y-%m-%d %H:%M:%S"), show_time % 1000).c_str());
 			yyjson_mut_obj_add_int(doc, obj, "val", show_val);
 			yyjson_mut_obj_add_strcpy(doc, obj, "label", ANSItoUTF8(fmt::format("稳态值:{}", show_val)).c_str());
+			yyjson_mut_obj_add_str(doc, obj, "color", "#802A2A");
+			if (it.bUpOrDown == eUpOrDownInfo::UOD_DOWN)
+				yyjson_mut_obj_add_str(doc, obj, "position", "bottom");
 		}
-
+		
 		for (auto& it : maxResist)
 		{
 			auto obj = yyjson_mut_obj(doc);
@@ -4882,9 +4889,9 @@ int DealResistMove(const httplib::Request& req, const string token, char** json,
 					{
 						if (pInfo->out_name.find("定扳反") != -1)
 						{
-							if (pConvertLimit->dw_alarm_low_limit > show_val)
+							if (pConvertLimit->dw_alarm_low_limit < show_val)
 								yyjson_mut_obj_add_str(doc, obj, "color", "Red");
-							else if (pConvertLimit->dw_warn_low_limit > show_val)
+							else if (pConvertLimit->dw_warn_low_limit < show_val)
 								yyjson_mut_obj_add_str(doc, obj, "color", "Orange");
 						}
 						else
@@ -4920,9 +4927,9 @@ int DealResistMove(const httplib::Request& req, const string token, char** json,
 					{
 						if (pInfo->out_name.find("反扳定") != -1)
 						{
-							if (pConvertLimit->dw_alarm_low_limit > show_val)
+							if (pConvertLimit->dw_alarm_low_limit < show_val)
 								yyjson_mut_obj_add_str(doc, obj, "color", "Red");
-							else if (pConvertLimit->dw_warn_low_limit > show_val)
+							else if (pConvertLimit->dw_warn_low_limit < show_val)
 								yyjson_mut_obj_add_str(doc, obj, "color", "Orange");
 						}
 						else
@@ -4961,9 +4968,9 @@ int DealResistMove(const httplib::Request& req, const string token, char** json,
 					{
 						if (pInfo->out_name.find("定扳反") != -1)
 						{
-							if (pConvertLimit->dw_alarm_low_limit > show_val)
+							if (pConvertLimit->dw_alarm_low_limit < show_val)
 								yyjson_mut_obj_add_str(doc, obj, "color", "Red");
-							else if (pConvertLimit->dw_warn_low_limit > show_val)
+							else if (pConvertLimit->dw_warn_low_limit < show_val)
 								yyjson_mut_obj_add_str(doc, obj, "color", "Orange");
 						}
 						else
@@ -4999,9 +5006,9 @@ int DealResistMove(const httplib::Request& req, const string token, char** json,
 					{
 						if (pInfo->out_name.find("反扳定") != -1)
 						{
-							if (pConvertLimit->dw_alarm_low_limit > show_val)
+							if (pConvertLimit->dw_alarm_low_limit < show_val)
 								yyjson_mut_obj_add_str(doc, obj, "color", "Red");
-							else if (pConvertLimit->dw_warn_low_limit > show_val)
+							else if (pConvertLimit->dw_warn_low_limit < show_val)
 								yyjson_mut_obj_add_str(doc, obj, "color", "Orange");
 						}
 						else

+ 5 - 5
4.Data/MGWSServer.cpp

@@ -1125,10 +1125,10 @@ void mg_per_session_data::GetMaxResistNew(std::map<time_t, tagSecondStatInfo>& m
 			else
 			{
 				if (bMax)
-					CSimpleLog::Info(fmt::format("[转换阻力求值][{}:{}]不符合3秒~9秒 大于450N 波动开始:{} 结束:{} 波动时长:{} 转换阻力值大小:{} 时间:{} 最大值:{} 不符合特征", mo, mp,
+					SPDLOG_INFO("[转换阻力求值][{}:{}]不符合3秒~9秒 大于450N 波动开始:{} 结束:{} 波动时长:{} 转换阻力值大小:{} 时间:{} 最大值:{} 不符合特征", mo, mp,
 						CTime(info.tmStart).Format("%Y-%m-%d %H:%M:%S"), CTime(info.tmEnd).Format("%Y-%m-%d %H:%M:%S"), fluctuation_t, info.fluctuation_val,
 						CTime(move_max_t / 1000).Format("%Y-%m-%d %H:%M:%S.") + to_string(move_max_t % 1000).c_str(), move_max_val
-					).c_str());
+					);
 				else
 					SPDLOG_INFO("[转换阻力求值][{}:{}]不符合3秒~9秒 大于450N 波动开始:{} 结束:{} 波动时长:{} 转换阻力值大小:{} 时间:{} 最小值:{} 不符合特征", mo, mp,
 						CTime(info.tmStart).Format("%Y-%m-%d %H:%M:%S"), CTime(info.tmEnd).Format("%Y-%m-%d %H:%M:%S"), fluctuation_t, info.fluctuation_val,
@@ -1479,7 +1479,7 @@ void mg_per_session_data::GetPass(std::map<time_t, tagSecondStatInfo>& pStatInfo
 				lstResist->emplace_back(resist);
 			}
 
-			SPDLOG_INFO("[过车判断]{}.{} 开始时间 {} 结束时间 {} 经过时间 {}秒 向上波动 {} 向下波动 {} maxdif 是否过车:{}",
+			SPDLOG_INFO("[过车判断]{}.{} 开始时间 {} 结束时间 {} 经过时间 {}秒 向上波动 {} 向下波动 {} maxdif:{} 是否过车:{}",
 				mo, mp, sStart, sEnd, dif, iUpNum, iDwNum, iMaxDif, bPass ? "是" : "否");
 
 			break;
@@ -1581,7 +1581,7 @@ void mg_per_session_data::GetPassNewUnit(std::map<time_t, tagSecondStatInfo>* pS
 	BOOL bPass = FALSE;
 	if ((dif >= 4 && dif < 7 && iUpNum >= 22 && iDwNum >= 22)
 		|| (dif == 7 && iUpNum >= 30 && iDwNum >= 30)
-		|| (dif >= 8 && iUpNum >= 40 && iDwNum >= 40))
+		|| (dif >= 8 && iUpNum >= 45 && iDwNum >= 45))
 	{
 		bPass = TRUE;
 		PASS_RESIST resist;
@@ -1592,6 +1592,6 @@ void mg_per_session_data::GetPassNewUnit(std::map<time_t, tagSecondStatInfo>* pS
 		lstResist->emplace_back(resist);
 	}
 
-	SPDLOG_INFO("[过车判断]{}.{} 开始时间 {} 结束时间 {} 经过时间 {}秒 向上波动 {} 向下波动 {} maxdif 是否过车:{}",
+	SPDLOG_INFO("[过车判断]{}.{} 开始时间 {} 结束时间 {} 经过时间 {}秒 向上波动 {} 向下波动 {} maxdif:{} 是否过车:{}",
 		mo, mp, sStart, sEnd, dif, iUpNum, iDwNum, iMaxDif, bPass ? "是" : "否");
 }

+ 1 - 0
4.Data/MGWSServer.h

@@ -52,6 +52,7 @@ typedef struct tagFrictionResist
 	time_t show_time = 0; //稳态时间
 	int peak_val = 0; //峰值
 	time_t peak_time = 0; //峰值时间
+	eUpOrDownInfo bUpOrDown = eUpOrDownInfo::UOD_UNKNOWN;  //1. up 缩进  2. down  伸出
 
 	time_t tmStart = 0;  //开始波动的时间  单位秒
 	time_t tmEnd = 0;    //结束波动时间  单位秒