数据追踪原始报告块
This commit is contained in:
@@ -198,6 +198,7 @@ static QMap<int, QMap<int, QList<long long>>> real_data_report_map; //多个监
|
||||
static QMap<QString, json_block_data*> json_data_map;//CZY 2023-08-17 ww 2023年3月13日17:23:17扩展Map,用于保存各条线路的数据
|
||||
static QMap<QString, json_block_data*> json_flicker_data_map;//CZY 2023-09-11 展Map,用于保存各条线路的闪变数据
|
||||
static QMap<QString, json_block_data*> json_pst_data_map;//CZY 2023-09-11 展Map,用于保存各条线路的闪变数据
|
||||
static QMap<QString, json_block_data*> json_trace_data_map;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////lnk20260310文件控制
|
||||
pthread_mutex_t g_file_req_mutex = PTHREAD_MUTEX_INITIALIZER;
|
||||
@@ -1539,7 +1540,7 @@ int parse_log(const std::string& json_str) {
|
||||
}
|
||||
else if((level == "measurepoint") && (grade == "TRACE") && (!id.empty() && !is_blank(id))){ //数据追踪
|
||||
//打开监测点数据追踪开关
|
||||
process_trace_command(id,3); //3表示追踪次数
|
||||
process_trace_command(id,1); //每个报告各追踪1次
|
||||
}
|
||||
else{
|
||||
std::cout << "type doesnt match" <<std::endl;
|
||||
@@ -3633,16 +3634,128 @@ int json_block_create_data(char monid_char[], char* mms_str, double v, int flick
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static QString json_trace_block_key(char monid_char[], int flicker_flag, int rpt_no)
|
||||
{
|
||||
QString key;
|
||||
key.append(monid_char ? monid_char : "");
|
||||
key.append("|");
|
||||
key.append(QString::number(flicker_flag));
|
||||
key.append("|");
|
||||
key.append(QString::number(rpt_no));
|
||||
return key;
|
||||
}
|
||||
|
||||
static json_block_data* get_json_trace_block_data(char monid_char[], int flicker_flag, int rpt_no)
|
||||
{
|
||||
QString key = json_trace_block_key(monid_char, flicker_flag, rpt_no);
|
||||
if (!json_trace_data_map.contains(key))
|
||||
return NULL;
|
||||
return json_trace_data_map.value(key);
|
||||
}
|
||||
|
||||
static void init_json_trace_block_data(char monid_char[], char voltage_level[], int flicker_flag, int rpt_no)
|
||||
{
|
||||
QString key = json_trace_block_key(monid_char, flicker_flag, rpt_no);
|
||||
json_block_data* pdata = NULL;
|
||||
if (!json_trace_data_map.contains(key)) {
|
||||
pdata = new json_block_data();
|
||||
json_trace_data_map.insert(key, pdata);
|
||||
}
|
||||
|
||||
pdata = json_trace_data_map.value(key);
|
||||
pdata->monitorId = -1;
|
||||
pdata->func_type = g_node_id;
|
||||
pdata->flag = 0;
|
||||
pdata->time = 0;
|
||||
pdata->voltage_level = get_voltage_level(voltage_level);
|
||||
pdata->mp_id = monid_char ? QString::fromLocal8Bit(monid_char) : QString("not define");
|
||||
pdata->dev_type.clear();
|
||||
pdata->mms_str_map.clear();
|
||||
pdata->data_have_statistic = 0;
|
||||
}
|
||||
|
||||
int json_trace_block_create_start(char voltage_level[], char monid_char[], int flicker_flag, char temcode[], int line_id, char v_wiring_type[], char rpt_id[], int rpt_no)
|
||||
{
|
||||
(void)v_wiring_type;
|
||||
(void)rpt_id;
|
||||
if (!trace_json_is_enabled(monid_char, rpt_no))
|
||||
return 0;
|
||||
|
||||
try_start_kafka_thread();
|
||||
init_json_trace_block_data(monid_char, voltage_level, flicker_flag, rpt_no);
|
||||
|
||||
json_block_data* pdata = get_json_trace_block_data(monid_char, flicker_flag, rpt_no);
|
||||
if (pdata != NULL) {
|
||||
pdata->dev_type.append(temcode ? temcode : "");
|
||||
pdata->monitorId = line_id;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int json_trace_block_create_time(char monid_char[], long long Time, int flicker_flag, char rpt_id[], int rpt_no)
|
||||
{
|
||||
(void)rpt_id;
|
||||
json_block_data* pdata = get_json_trace_block_data(monid_char, flicker_flag, rpt_no);
|
||||
if (pdata == NULL)
|
||||
return 0;
|
||||
|
||||
pdata->time = Time;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int json_trace_block_create_flag(char monid_char[], int flag, int flicker_flag, char rpt_id[], int rpt_no)
|
||||
{
|
||||
(void)rpt_id;
|
||||
json_block_data* pdata = get_json_trace_block_data(monid_char, flicker_flag, rpt_no);
|
||||
if (pdata == NULL)
|
||||
return 0;
|
||||
|
||||
pdata->flag = flag;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int json_trace_block_create_data(char monid_char[], char* mms_str, double v, int flicker_flag, char rpt_id[], int rpt_no)
|
||||
{
|
||||
(void)rpt_id;
|
||||
json_block_data* pdata = get_json_trace_block_data(monid_char, flicker_flag, rpt_no);
|
||||
if (pdata == NULL)
|
||||
return 0;
|
||||
|
||||
pdata->mms_str_map.insert(QString::fromAscii(mms_str), v);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int json_trace_block_create_end(char v_wiring_type[], char monid_char[], int flicker_flag, char rpt_id[], int rpt_no)
|
||||
{
|
||||
QString key = json_trace_block_key(monid_char, flicker_flag, rpt_no);
|
||||
if (!json_trace_data_map.contains(key))
|
||||
return 1;
|
||||
|
||||
json_block_data* pdata = json_trace_data_map.value(key);
|
||||
if (pdata == NULL) {
|
||||
json_trace_data_map.remove(key);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int ret = 1;
|
||||
if (pdata->mms_str_map.count() > 0)
|
||||
ret = trace_json_block_data(v_wiring_type, pdata, rpt_id, rpt_no);
|
||||
|
||||
delete pdata;
|
||||
json_trace_data_map.remove(key);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
//lnk2024-8-16添加接线参数
|
||||
int json_block_create_end(char v_wiring_type[], char monid_char[], int flicker_flag, const char *source_name)//WW 2023年3月13日16:38:41 多ICD修改
|
||||
int json_block_create_end(char v_wiring_type[], char monid_char[], int flicker_flag)//WW 2023年3月13日16:38:41 多ICD修改
|
||||
{
|
||||
const char *end_source = (source_name && source_name[0]) ? source_name : "unknown";
|
||||
json_block_data* pdata;
|
||||
if (flicker_flag == 1) {
|
||||
if (!json_flicker_data_map.contains(monid_char))//未查到数据
|
||||
{
|
||||
printf("---------- json_block_create_end: source=%s mp_id= %s json_flicker_data_map can't find MonitorId----------\n", end_source, monid_char);
|
||||
printf("---------- json_block_create_end: mp_id= %s json_flicker_data_map can't find MonitorId----------\n", monid_char);
|
||||
return 1;
|
||||
}
|
||||
pdata = json_flicker_data_map.value(monid_char);
|
||||
@@ -3651,7 +3764,7 @@ int json_block_create_end(char v_wiring_type[], char monid_char[], int flicker_f
|
||||
{
|
||||
if (!json_data_map.contains(monid_char))//未查到数据
|
||||
{
|
||||
printf("---------- json_block_create_end: source=%s mp_id= %s json_data_map can't find MonitorId----------\n", end_source, monid_char);
|
||||
printf("---------- json_block_create_end: mp_id= %s json_data_map can't find MonitorId----------\n", monid_char);
|
||||
return 1;
|
||||
}
|
||||
pdata = json_data_map.value(monid_char);
|
||||
@@ -3660,7 +3773,7 @@ int json_block_create_end(char v_wiring_type[], char monid_char[], int flicker_f
|
||||
{
|
||||
if (!json_pst_data_map.contains(monid_char))//未查到数据
|
||||
{
|
||||
printf("---------- json_block_create_end: source=%s mp_id= %s json_pst_data_map can't find MonitorId----------\n", end_source, monid_char);
|
||||
printf("---------- json_block_create_end: mp_id= %s json_pst_data_map can't find MonitorId----------\n", monid_char);
|
||||
return 1;
|
||||
}
|
||||
pdata = json_pst_data_map.value(monid_char);
|
||||
@@ -3694,11 +3807,11 @@ int json_block_create_end(char v_wiring_type[], char monid_char[], int flicker_f
|
||||
json_pst_data_map.remove(monid_char);
|
||||
|
||||
}
|
||||
printf("---------- json_block_create_end: source=%s mp_id= %s pdata->mms_str_map.count() == 0 ----------\n", end_source, monid_char);
|
||||
printf("---------- json_block_create_end: mp_id= %s pdata->mms_str_map.count() == 0 ----------\n", monid_char);
|
||||
return 1;
|
||||
}
|
||||
//lnk2024-8-16添加接线参数
|
||||
int ret = transfer_json_block_data(v_wiring_type, pdata, end_source);
|
||||
int ret = transfer_json_block_data(v_wiring_type, pdata);
|
||||
|
||||
if (pdata != NULL)
|
||||
delete pdata;
|
||||
@@ -3715,7 +3828,7 @@ int json_block_create_end(char v_wiring_type[], char monid_char[], int flicker_f
|
||||
json_pst_data_map.remove(monid_char);
|
||||
|
||||
}
|
||||
printf("---------- json_block_create_end: source=%s MonitorId= %s ----------\n", end_source, monid_char);
|
||||
printf("---------- json_block_create_end: MonitorId= %s ----------\n", monid_char);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user