1、调整mms配置文件中属性name为saddr,保持一致,对应解析使用的属性变量名同步改为saddr
This commit is contained in:
ypc 2026-05-19 20:32:14 +08:00
parent 04e16ef7bc
commit ba85f52ae3
5 changed files with 44 additions and 44 deletions

View File

@ -112,7 +112,7 @@ typedef struct
{
int app_fd; // 61850客户端句柄
char ied[MMS_M_STR_LEN]; // ied名称
char name[MMS_M_STR_LEN]; // 信号名
char saddr[MMS_M_STR_LEN]; // 信号短地址
int value_type; // 数据类型
// void *p_val; // 设置值
char val[128];

View File

@ -33,7 +33,7 @@ typedef struct
uint8_t type;
uint8_t fc;
uint8_t ctrl_model;
std::string name;
std::string saddr;
std::string desc;
std::string ldev;
std::string lnode;

View File

@ -267,7 +267,7 @@ static int mms_m_send_ao_write(stru_mms_m_obj &obj, stru_mms_m_event &event)
for(it = obj.p_cfg->point.ao.begin(); it!= obj.p_cfg->point.ao.end(); it++)
{
if(it->name.compare(event.name) == 0)
if(it->saddr.compare(event.saddr) == 0)
{
p_item = &(*it);
break;
@ -275,7 +275,7 @@ static int mms_m_send_ao_write(stru_mms_m_obj &obj, stru_mms_m_event &event)
}
if(NULL == p_item)
{
LOG_E("%s: %s not found in cfg\n", obj.cfg_path.c_str(), event.name);
LOG_E("%s: %s not found in cfg\n", obj.cfg_path.c_str(), event.saddr);
return -1;
}
size_t pos = p_item->reference.find("/");
@ -365,11 +365,11 @@ static void mms_m_send_read_ao(stru_mms_m_obj &obj, stru_mms_m_event &event)
for(it = obj.p_cfg->point.ao.begin(); it!= obj.p_cfg->point.ao.end(); it++)
{
if(strlen(event.name) != 0 && it->name.compare(event.name) == 0)
if(strlen(event.saddr) != 0 && it->saddr.compare(event.saddr) == 0)
{
p_item = &(*it);
}
else if(strlen(event.name) == 0)
else if(strlen(event.saddr) == 0)
{
p_item = &(*it);
}
@ -380,8 +380,8 @@ static void mms_m_send_read_ao(stru_mms_m_obj &obj, stru_mms_m_event &event)
if(NULL == (p_value = IedConnection_readObject(obj.run.con, &err, p_item->reference.c_str(), (FunctionalConstraint)p_item->fc)))
{
LOG_E("%s: name %s, ref %s read err:%s(%d)\n",
obj.cfg_path.c_str(), p_item->name.c_str(), p_item->reference.c_str(), mms_m_err_str(err), err);
LOG_E("%s: saddr %s, ref %s read err:%s(%d)\n",
obj.cfg_path.c_str(), p_item->saddr.c_str(), p_item->reference.c_str(), mms_m_err_str(err), err);
continue;
}
@ -404,7 +404,7 @@ static void mms_m_send_read_ao(stru_mms_m_obj &obj, stru_mms_m_event &event)
out_val.type = p_item->type;
out_val.quality = 0;
snprintf(out_val.name, sizeof(out_val.name) - 1, "%s", it->name.c_str());
snprintf(out_val.name, sizeof(out_val.name) - 1, "%s", it->saddr.c_str());
snprintf(out_val.desc, sizeof(out_val.desc) - 1, "%s", it->desc.c_str());
snprintf(out_val.reference, sizeof(out_val.reference) - 1, "%s", it->reference.c_str());
out_val.reason = MMS_M_REASON_READ_PARAM; // call param
@ -461,13 +461,13 @@ static int mms_m_send_co_select(stru_mms_m_obj &obj, stru_point_item &item)
if(NULL == item.control)
{
LOG_E("%s: %s control is not init\r\n", obj.cfg_path.c_str(), item.name.c_str());
LOG_E("%s: %s control is not init\r\n", obj.cfg_path.c_str(), item.saddr.c_str());
return ret;
}
if(CONTROL_MODEL_DIRECT_NORMAL == item.ctrl_model || CONTROL_MODEL_DIRECT_ENHANCED == item.ctrl_model)
{
LOG_E("%s: %s control model is %s(%d)\r\n", obj.cfg_path.c_str(), item.name.c_str(), mms_m_ctrl_model_str((ControlModel)item.ctrl_model), item.ctrl_model);
LOG_E("%s: %s control model is %s(%d)\r\n", obj.cfg_path.c_str(), item.saddr.c_str(), mms_m_ctrl_model_str((ControlModel)item.ctrl_model), item.ctrl_model);
return ret;
}
@ -491,13 +491,13 @@ static int mms_m_send_co_select(stru_mms_m_obj &obj, stru_point_item &item)
}
else
{
LOG_E("%s: %s control model is %s(%d)\r\n", obj.cfg_path.c_str(), item.name.c_str(), mms_m_ctrl_model_str((ControlModel)item.ctrl_model), item.ctrl_model);
LOG_E("%s: %s control model is %s(%d)\r\n", obj.cfg_path.c_str(), item.saddr.c_str(), mms_m_ctrl_model_str((ControlModel)item.ctrl_model), item.ctrl_model);
}
if(0 == ret)
{
LOG_I("%s: co name %s, desc %s, ref %s selected successfully, ctrl_model %s(%d)\n",
obj.cfg_path.c_str(), item.name.c_str(), item.desc.c_str(), item.reference.c_str(), mms_m_ctrl_model_str((ControlModel)item.ctrl_model), item.ctrl_model);
LOG_I("%s: co saddr %s, desc %s, ref %s selected successfully, ctrl_model %s(%d)\n",
obj.cfg_path.c_str(), item.saddr.c_str(), item.desc.c_str(), item.reference.c_str(), mms_m_ctrl_model_str((ControlModel)item.ctrl_model), item.ctrl_model);
}
else
{
@ -515,7 +515,7 @@ static int mms_m_send_co_direct(stru_mms_m_obj &obj, stru_point_item &item)
if(NULL == item.control)
{
LOG_E("%s: %s control is not init\r\n", obj.cfg_path.c_str(), item.name.c_str());
LOG_E("%s: %s control is not init\r\n", obj.cfg_path.c_str(), item.saddr.c_str());
return ret;
}
@ -526,7 +526,7 @@ static int mms_m_send_co_direct(stru_mms_m_obj &obj, stru_point_item &item)
if (ControlObjectClient_operate(item.control, item.set_value, 0 /* operate now */))
{
LOG_I("%s: co name %s, desc %s, ref %s operated successfully\n", obj.cfg_path.c_str(), item.name.c_str(), item.desc.c_str(), item.reference.c_str());
LOG_I("%s: co saddr %s, desc %s, ref %s operated successfully\n", obj.cfg_path.c_str(), item.saddr.c_str(), item.desc.c_str(), item.reference.c_str());
ret = 0;
}
else
@ -549,7 +549,7 @@ static int mms_m_send_co_direct(stru_mms_m_obj &obj, stru_point_item &item)
Thread_sleep(1000);
break;
default:
LOG_E("%s: %s control model is %s(%d)\r\n", obj.cfg_path.c_str(), item.name.c_str(), mms_m_ctrl_model_str((ControlModel)item.ctrl_model), item.ctrl_model);
LOG_E("%s: %s control model is %s(%d)\r\n", obj.cfg_path.c_str(), item.saddr.c_str(), mms_m_ctrl_model_str((ControlModel)item.ctrl_model), item.ctrl_model);
ret = -1;
break;
}
@ -575,14 +575,14 @@ static int mms_m_send_co(stru_mms_m_obj &obj, stru_mms_m_event &event)
for(it = obj.p_cfg->point.co.begin(); it!= obj.p_cfg->point.co.end(); it++)
{
if(it->name.compare(event.name) == 0)
if(it->saddr.compare(event.saddr) == 0)
{
break;
}
}
if(it == obj.p_cfg->point.co.end())
{
LOG_E("%s:co name(%s) is not exist", obj.cfg_path.c_str(), event.name);
LOG_E("%s:co saddr(%s) is not exist", obj.cfg_path.c_str(), event.saddr);
return -1;
}
@ -703,7 +703,7 @@ static void mms_m_send_call_all(stru_mms_m_obj &obj)
out_val.type = it->type;
out_val.quality = 0;
snprintf(out_val.name, sizeof(out_val.name) - 1, "%s", it->name.c_str());
snprintf(out_val.name, sizeof(out_val.name) - 1, "%s", it->saddr.c_str());
snprintf(out_val.desc, sizeof(out_val.desc) - 1, "%s", it->desc.c_str());
snprintf(out_val.reference, sizeof(out_val.reference) - 1, "%s", it->reference.c_str());
out_val.reason = MMS_M_REASON_ALL_CALL; // call all
@ -947,7 +947,7 @@ static void mms_m_report_callback(void* parameter, ClientReport report)
{
for(it = it_mb->p_do_vec->begin(); it!= it_mb->p_do_vec->end(); it++)
{
snprintf(out_value.name, MMS_M_STR_LEN - 1, "%s", (*it)->name.c_str());
snprintf(out_value.name, MMS_M_STR_LEN - 1, "%s", (*it)->saddr.c_str());
snprintf(out_value.desc, MMS_M_STR_LEN - 1, "%s", (*it)->desc.c_str());
snprintf(out_value.reference, MMS_M_REF_LEN - 1, "%s", (*it)->reference.c_str());
@ -1588,8 +1588,8 @@ static void mms_m_show_ied(stru_mms_m_obj &obj)
for(std::vector<stru_point_item *>::iterator it4 = it3->p_do_vec.begin(); it4!= it3->p_do_vec.end(); it4++)
{
stru_point_item *p_item = *it4;
printf(" signal name: %s, type: %d, fc: %d, ctrl_model: %d, desc: %s, reference: %s\n",
p_item->name.c_str(), p_item->type, p_item->fc, p_item->ctrl_model, p_item->desc.c_str(), p_item->reference.c_str());
printf(" signal saddr: %s, type: %d, fc: %d, ctrl_model: %d, desc: %s, reference: %s\n",
p_item->saddr.c_str(), p_item->type, p_item->fc, p_item->ctrl_model, p_item->desc.c_str(), p_item->reference.c_str());
}
}
}
@ -1832,7 +1832,7 @@ int mms_m_out_get_signal_info(int app_fd, stru_mms_m_config *p_config)
stru_point_item &point = obj.p_cfg->point.st[i];
stru_mms_m_gen_signal &sig = p_config->p_st_sig[i];
strncpy(sig.saddr, point.name.c_str(), sizeof(sig.saddr));
strncpy(sig.saddr, point.saddr.c_str(), sizeof(sig.saddr));
strncpy(sig.desc, point.desc.c_str(), sizeof(sig.desc));
sig.data_type = point.type;
sig.vec_p_data.push_back(point.value.vec_p_val[0]);
@ -1853,7 +1853,7 @@ int mms_m_out_get_signal_info(int app_fd, stru_mms_m_config *p_config)
stru_point_item &point = obj.p_cfg->point.mx[i];
stru_mms_m_gen_signal &sig = p_config->p_mx_sig[i];
strncpy(sig.saddr, point.name.c_str(), sizeof(sig.saddr));
strncpy(sig.saddr, point.saddr.c_str(), sizeof(sig.saddr));
strncpy(sig.desc, point.desc.c_str(), sizeof(sig.desc));
sig.data_type = point.type;
sig.vec_p_data.push_back(point.value.vec_p_val[0]);
@ -1873,7 +1873,7 @@ int mms_m_out_get_signal_info(int app_fd, stru_mms_m_config *p_config)
stru_point_item &point = obj.p_cfg->point.co[i];
stru_mms_m_ctrl_signal &co_sig = p_config->p_co_sig[i];
strncpy(co_sig.sig.saddr, point.name.c_str(), sizeof(co_sig.sig.saddr));
strncpy(co_sig.sig.saddr, point.saddr.c_str(), sizeof(co_sig.sig.saddr));
strncpy(co_sig.sig.desc, point.desc.c_str(), sizeof(co_sig.sig.desc));
co_sig.sig.data_type = point.type;
co_sig.sig.vec_p_data.push_back(point.value.vec_p_val[0]);
@ -1894,7 +1894,7 @@ int mms_m_out_get_signal_info(int app_fd, stru_mms_m_config *p_config)
stru_point_item &point = obj.p_cfg->point.ao[i];
stru_mms_m_param_signal &ao_sig = p_config->p_ao_sig[i];
strncpy(ao_sig.sig.saddr, point.name.c_str(), sizeof(ao_sig.sig.saddr));
strncpy(ao_sig.sig.saddr, point.saddr.c_str(), sizeof(ao_sig.sig.saddr));
strncpy(ao_sig.sig.desc, point.desc.c_str(), sizeof(ao_sig.sig.desc));
ao_sig.sig.data_type = point.type;
ao_sig.sig.vec_p_data.push_back(point.value.vec_p_val[0]);
@ -1921,7 +1921,7 @@ int mms_m_out_get_signal_info(int app_fd, stru_mms_m_config *p_config)
stru_point_item &point = obj.p_cfg->point.param[i];
stru_mms_m_param_signal &param_sig = p_config->p_param_sig[i];
strncpy(param_sig.sig.saddr, point.name.c_str(), sizeof(param_sig.sig.saddr));
strncpy(param_sig.sig.saddr, point.saddr.c_str(), sizeof(param_sig.sig.saddr));
strncpy(param_sig.sig.desc, point.desc.c_str(), sizeof(param_sig.sig.desc));
param_sig.sig.data_type = point.type;
@ -2038,7 +2038,7 @@ int mms_m_out_read_param(int app_fd, const char *param_name)
memset(&event, 0, sizeof(stru_mms_m_event));
event.ctrl_type = _MMS_M_EVENT_AO_READ;
strncpy(event.name, param_name, sizeof(param_name));
strncpy(event.saddr, param_name, sizeof(param_name));
mms_m_push_event(obj, event);
return 0;

View File

@ -16,7 +16,7 @@ static const char *ELE_SubItem = "SubItem";
static const char *KEY_NO = "no";
static const char *KEY_NAME = "name";
static const char *KEY_SADDR = "saddr";
static const char *KEY_DESC = "desc";
static const char *KEY_HOST_IP = "host_ip";
static const char *KEY_HOST_PORT = "host_port";
@ -75,13 +75,13 @@ void parse_cfg_item(tinyxml2::XMLElement *item, std::vector<stru_point_item> &it
stru_point_item item_info;
item_info.no = atoi(str);
if(NULL != (str = item->Attribute(KEY_NAME)))
if(NULL != (str = item->Attribute(KEY_SADDR)))
{
item_info.name = str;
item_info.saddr = str;
}
else
{
LOG_E("no attribute %s in item", KEY_NAME);
LOG_E("no attribute %s in item", KEY_SADDR);
return;
}
@ -410,29 +410,29 @@ void parse_show_cfg(stru_cfg *p_cfg)
std::vector<stru_point_item>::iterator it;
for(it = p_cfg->point.st.begin(); it!= p_cfg->point.st.end(); ++it)
{
printf(" no %d, type %d, fc %d, name %s, desc %s, ldev %s, lnode %s, doname %s, reference %s\n",
it->no, it->type, it->fc, it->name.c_str(), it->desc.c_str(), it->ldev.c_str(), it->lnode.c_str(), it->doname.c_str(), it->reference.c_str());
printf(" no %d, type %d, fc %d, saddr %s, desc %s, ldev %s, lnode %s, doname %s, reference %s\n",
it->no, it->type, it->fc, it->saddr.c_str(), it->desc.c_str(), it->ldev.c_str(), it->lnode.c_str(), it->doname.c_str(), it->reference.c_str());
}
printf("Mx-num %ld:\n", p_cfg->point.mx.size());
for(it = p_cfg->point.mx.begin(); it!= p_cfg->point.mx.end(); ++it)
{
printf(" no %d, type %d, fc %d, name %s, desc %s, ldev %s, lnode %s, doname %s, reference %s\n",
it->no, it->type, it->fc, it->name.c_str(), it->desc.c_str(), it->ldev.c_str(), it->lnode.c_str(), it->doname.c_str(), it->reference.c_str());
printf(" no %d, type %d, fc %d, saddr %s, desc %s, ldev %s, lnode %s, doname %s, reference %s\n",
it->no, it->type, it->fc, it->saddr.c_str(), it->desc.c_str(), it->ldev.c_str(), it->lnode.c_str(), it->doname.c_str(), it->reference.c_str());
}
printf("Co-num %ld:\n", p_cfg->point.co.size());
for(it = p_cfg->point.co.begin(); it!= p_cfg->point.co.end(); ++it)
{
printf(" no %d, type %d, fc %d, ctrl_model %d, name %s, desc %s, ldev %s, lnode %s, doname %s, reference %s\n",
it->no, it->type, it->fc, it->ctrl_model, it->name.c_str(), it->desc.c_str(), it->ldev.c_str(), it->lnode.c_str(), it->doname.c_str(), it->reference.c_str());
printf(" no %d, type %d, fc %d, ctrl_model %d, saddr %s, desc %s, ldev %s, lnode %s, doname %s, reference %s\n",
it->no, it->type, it->fc, it->ctrl_model, it->saddr.c_str(), it->desc.c_str(), it->ldev.c_str(), it->lnode.c_str(), it->doname.c_str(), it->reference.c_str());
}
printf("Ao-num %ld:\n", p_cfg->point.ao.size());
for(it = p_cfg->point.ao.begin(); it != p_cfg->point.ao.end(); ++it)
{
printf(" no %d, type %d, fc %d, name %s, desc %s, ldev %s, lnode %s, doname %s, reference %s\n",
it->no, it->type, it->fc, it->name.c_str(), it->desc.c_str(), it->ldev.c_str(), it->lnode.c_str(), it->doname.c_str(), it->reference.c_str());
printf(" no %d, type %d, fc %d, saddr %s, desc %s, ldev %s, lnode %s, doname %s, reference %s\n",
it->no, it->type, it->fc, it->saddr.c_str(), it->desc.c_str(), it->ldev.c_str(), it->lnode.c_str(), it->doname.c_str(), it->reference.c_str());
}
}

View File

@ -54,7 +54,7 @@ LOCAL void mms_send_control(int fd, const char *saddr, int val, int type)
p_event->app_fd = fd;
memset(p_event->ied, 0, MMS_M_STR_LEN);
snprintf(p_event->name, MMS_M_STR_LEN, "%s", saddr);
snprintf(p_event->saddr, MMS_M_STR_LEN, "%s", saddr);
p_event->ctrl_type = type;
// p_event->val.b = val == 0 ? false : true;
uint8_t val_b = (val == 0 ? 0 : 1);
@ -79,8 +79,8 @@ LOCAL void mms_event_back(void *arg, int ret)
return;
}
printf("fd %d, ied %s, name %s, ctrl_type %d, ret %d\n",
p_event->app_fd, p_event->ied, p_event->name, p_event->ctrl_type, ret);
printf("fd %d, ied %s, saddr %s, ctrl_type %d, ret %d\n",
p_event->app_fd, p_event->ied, p_event->saddr, p_event->ctrl_type, ret);
}
LOCAL void mms_data_back(stru_mms_m_out_value *p)