add log in ggio
This commit is contained in:
@@ -33,6 +33,9 @@ extern std::string WEB_EVENT;
|
||||
extern std::string WEB_FILEDOWNLOAD;
|
||||
extern std::string G_CONNECT_TOPIC;
|
||||
|
||||
//lnk20250115添加台账锁
|
||||
extern pthread_mutex_t mtx;
|
||||
|
||||
bool DEBUGOPEN = 0;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -56,7 +59,10 @@ public:
|
||||
int nDataType; //告警SOE事件类型
|
||||
QString type; //参数等级type类型:0-DataType 1-监测点 2-剔除标记 3-发生时刻,毫秒 4-数据链表 5-相位 6-值索引 9-实时SOE事件
|
||||
QString triggerFlag; //告警SOE事件触发指标名称
|
||||
int nIndex; //数据在每条线路LineInfo值数组中的位置
|
||||
int nIndex; //数据在每条线路LineInfo值数组中的位置
|
||||
|
||||
QString desc; //soe事件描述
|
||||
|
||||
QString DO; //数据对象名
|
||||
QString DA; //数据属性名
|
||||
QString strFullName; //数据对象名 $ 数据属性名
|
||||
@@ -869,6 +875,7 @@ bool ParseXMLConfig2(int xml_flag, XmlConfig *cfg, list<CTopic*> *ctopiclist,QSt
|
||||
{
|
||||
CEventData* ed = new CEventData(); //SOE事件类指针
|
||||
ed->triggerFlag = node.toElement().attribute("name"); //SOE名称
|
||||
ed->desc = node.toElement().attribute("desc"); //SOE描述
|
||||
ed->DO = node.toElement().attribute("DO"); //数据对象名
|
||||
ed->DA = node.toElement().attribute("DA"); //数据属性名
|
||||
ed->type = node.toElement().attribute("type"); //参数等级type类型:0-DataType 1-监测点 2-剔除标记 3-发生时刻,毫秒 4-数据链表 5-相位 6-值索引 9-实时SOE事件
|
||||
@@ -2650,8 +2657,35 @@ int transfer_json_block_data(char v_wiring_type[], json_block_data *data) //json
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void format_time_ms(long long ms, char* buf, size_t buf_len)
|
||||
{
|
||||
time_t sec = ms / 1000;
|
||||
int milli = ms % 1000;
|
||||
|
||||
struct tm tm_time;
|
||||
localtime_r(&sec, &tm_time); // 线程安全
|
||||
|
||||
snprintf(buf, buf_len,
|
||||
"%04d-%02d-%02d %02d:%02d:%02d.%03d",
|
||||
tm_time.tm_year + 1900,
|
||||
tm_time.tm_mon + 1,
|
||||
tm_time.tm_mday,
|
||||
tm_time.tm_hour,
|
||||
tm_time.tm_min,
|
||||
tm_time.tm_sec,
|
||||
milli);
|
||||
}
|
||||
|
||||
void processGGIO_start_data_end(char* mp_id,char* fullname,double v,long long time,char* devtype,int monitor_id)
|
||||
{
|
||||
|
||||
//监测点日志的key,lnk20250526
|
||||
char full_key_m_c[256]; // 分配足够空间
|
||||
char full_key_m_d[256]; // 分配足够空间
|
||||
snprintf(full_key_m_c, sizeof(full_key_m_c), "monitor.%s.COM", mp_id);
|
||||
snprintf(full_key_m_d, sizeof(full_key_m_d), "monitor.%s.DATA", mp_id);
|
||||
//监测点日志的key,lnk20250526
|
||||
|
||||
XmlConfig c_xmlcfg;
|
||||
if (xmlinfo_list.contains(devtype)) {
|
||||
c_xmlcfg = xmlinfo_list[devtype]->xmlcfg;
|
||||
@@ -2683,6 +2717,28 @@ void processGGIO_start_data_end(char* mp_id,char* fullname,double v,long long ti
|
||||
if (pEventData->strFullName.indexOf(Full_name) != -1)
|
||||
{
|
||||
KafkaData.strText.append(QString("\"%1\"").arg(pEventData->triggerFlag));
|
||||
|
||||
//使用日志接口记录日志
|
||||
char time_str[64];
|
||||
format_time_ms(time, time_str, sizeof(time_str));
|
||||
|
||||
QByteArray descBa = pEventData->desc.toLocal8Bit();
|
||||
|
||||
pthread_mutex_lock(&mtx); std::cout << "ggio hold lock !!!!!!!!!!!" << std::endl;
|
||||
const char* mp_name_raw = find_mp_name_from_mp_id(mp_id);
|
||||
pthread_mutex_unlock(&mtx); std::cout << "ggio unlock lock !!!!!!!!!!!" << std::endl;
|
||||
|
||||
char mp_name[128];
|
||||
if (mp_name_raw && mp_name_raw[0] != '\0') {
|
||||
snprintf(mp_name, sizeof(mp_name), "%s", mp_name_raw);
|
||||
} else {
|
||||
snprintf(mp_name, sizeof(mp_name), "unknown");
|
||||
}
|
||||
|
||||
DIY_WARNLOG_CODE(full_key_m_d, LOG_CODE_REPORT,
|
||||
"监测点:%s(%s),在%s发生事件:%s,事件值:%.2f",
|
||||
mp_name, mp_id, time_str, descBa.constData(), v);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -2695,6 +2751,7 @@ void processGGIO_start_data_end(char* mp_id,char* fullname,double v,long long ti
|
||||
kafka_data_list_mutex.lock(); //加锁
|
||||
kafka_data_list.append(KafkaData); //添加 kafka发送链表
|
||||
kafka_data_list_mutex.unlock(); //解锁
|
||||
|
||||
}
|
||||
|
||||
//zw修改 2023-8-31 新增或更新list队列 写入xml数据库信息 模型编码 终端型号 终端厂家 oss存储路径 时间
|
||||
|
||||
@@ -1759,6 +1759,19 @@ int find_mp_index_from_mp_id(std::string line)
|
||||
|
||||
}
|
||||
|
||||
char* find_mp_name_from_mp_id(const char* mp_id)
|
||||
{
|
||||
LD_info_t* LD_info = NULL;
|
||||
LD_info = find_LD_info_only_from_mp_id((char*)mp_id);
|
||||
if(LD_info == NULL){
|
||||
return 0;
|
||||
}
|
||||
else{
|
||||
return LD_info->name;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
int myMessageCallbackrtdata(CPushConsumer* consumer, CMessageExt* msg)
|
||||
{
|
||||
if(INITFLAG != 1)return 1;//防止崩溃
|
||||
|
||||
Reference in New Issue
Block a user