<修改> 1、调整数据中心接口,参数修改后可以在上位机读取到;2、在上位机修改定值区后,设置参数值放到回调外面,回调中有IedServer_lockDataModel,估计会影响
This commit is contained in:
parent
3806a32af9
commit
6c9b8e90b1
|
|
@ -217,9 +217,9 @@ LOCAL void *mms_s_run_task(void *parameter)
|
||||||
IedModel *iedModel = (IedModel *)parameter;
|
IedModel *iedModel = (IedModel *)parameter;
|
||||||
while(g_running)
|
while(g_running)
|
||||||
{
|
{
|
||||||
IedServer_lockDataModel(gp_iedServer);
|
// IedServer_lockDataModel(gp_iedServer);
|
||||||
|
|
||||||
IedServer_unlockDataModel(gp_iedServer);
|
// IedServer_unlockDataModel(gp_iedServer);
|
||||||
|
|
||||||
|
|
||||||
Thread_sleep(100);
|
Thread_sleep(100);
|
||||||
|
|
|
||||||
|
|
@ -1273,6 +1273,16 @@ int dc_signal_ao_set_val_without_check(const std::string &saddr, uint8_t data_ty
|
||||||
|
|
||||||
dc_set_signal_val(p_signal->vec_p_data[0], data_type, p_data);
|
dc_set_signal_val(p_signal->vec_p_data[0], data_type, p_data);
|
||||||
dc_set_param_cfg_change(true);
|
dc_set_param_cfg_change(true);
|
||||||
|
|
||||||
|
for(auto &entry : p_signal->change_cb_list)
|
||||||
|
{
|
||||||
|
if(entry.second)
|
||||||
|
{
|
||||||
|
if (entry.first == module_id) continue;
|
||||||
|
entry.second(saddr, SIGNAL_CTRL_STEP::DIRECT, data_type, 0, p_data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -1497,6 +1507,16 @@ int dc_signal_param_set_val_without_check(const std::string &saddr, uint8_t data
|
||||||
}
|
}
|
||||||
dc_set_signal_val(p_signal->vec_p_data[setting_zone], data_type, p_data);
|
dc_set_signal_val(p_signal->vec_p_data[setting_zone], data_type, p_data);
|
||||||
dc_set_param_cfg_change(true);
|
dc_set_param_cfg_change(true);
|
||||||
|
|
||||||
|
for(auto &entry : p_signal->change_cb_list)
|
||||||
|
{
|
||||||
|
if(entry.second != nullptr)
|
||||||
|
{
|
||||||
|
if (entry.first == module_id) continue;
|
||||||
|
entry.second(saddr, SIGNAL_CTRL_STEP::DIRECT, data_type, setting_zone, p_data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,24 @@ LOCAL std::vector<stru_mms_s_setting> g_vec_setting = {};
|
||||||
LOCAL std::vector<stru_mms_s_param> g_vec_param = {};
|
LOCAL std::vector<stru_mms_s_param> g_vec_param = {};
|
||||||
LOCAL mms_s_value_update_cb g_mms_s_value_update_cb = NULL;
|
LOCAL mms_s_value_update_cb g_mms_s_value_update_cb = NULL;
|
||||||
|
|
||||||
|
LOCAL std::string g_sg_zone_saddr = "";
|
||||||
|
LOCAL std::string g_sg_zone_act_sg = "";
|
||||||
|
|
||||||
|
LOCAL void check_sg_zone_change()
|
||||||
|
{
|
||||||
|
if(g_sg_zone_saddr.empty() || g_sg_zone_act_sg.empty())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(g_mms_s_value_update_cb != NULL)
|
||||||
|
{
|
||||||
|
g_mms_s_value_update_cb(g_sg_zone_saddr.c_str(), g_sg_zone_act_sg.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
g_sg_zone_saddr = "";
|
||||||
|
g_sg_zone_act_sg = "";
|
||||||
|
}
|
||||||
|
|
||||||
LOCAL void iec61850s_sg_change_callback(const char *zone_saddr, int new_act_sg)
|
LOCAL void iec61850s_sg_change_callback(const char *zone_saddr, int new_act_sg)
|
||||||
{
|
{
|
||||||
|
|
@ -62,12 +80,9 @@ LOCAL void iec61850s_sg_change_callback(const char *zone_saddr, int new_act_sg)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// /* 同步更新 MMS 服务端模型,使 IEDScout 等客户端能读到最新值 */
|
/* 同步更新 MMS 服务端模型,使 IEDScout 等客户端能读到最新值 */
|
||||||
// std::string val_str = dc_get_signal_val(p_val, setting.base.type);
|
g_sg_zone_saddr = zone_saddr;
|
||||||
// if(g_mms_s_value_update_cb != NULL)
|
g_sg_zone_act_sg = dc_get_signal_val((void *)&new_act_sg, setting.base.type);
|
||||||
// {
|
|
||||||
// g_mms_s_value_update_cb(zone_saddr, val_str.c_str());
|
|
||||||
// }
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -552,6 +567,7 @@ void *app_iec61850s(void *arg)
|
||||||
|
|
||||||
if(event & EV_TIMER3)
|
if(event & EV_TIMER3)
|
||||||
{
|
{
|
||||||
|
check_sg_zone_change();
|
||||||
p_app->run_cnt++;
|
p_app->run_cnt++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue