You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

260 lines
8.1 KiB
C

1 year ago
/****************************************************************************/
/* Copyright (c) 2007,<2C><><EFBFBD>̼<EFBFBD><CCBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޹<EFBFBD>˾ */
/* All rights reserved. */
/* */
/* ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/** <20><><EFBFBD><EFBFBD>id<69><64><EFBFBD><EFBFBD>
* @file ai_objid.h */
/* */
/* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ע<><D7A2> */
/* 2007/07/18 TYJ <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD> */
/****************************************************************************/
#ifndef IEC61850_AI_OBJID_INCLUDE
#define IEC61850_AI_OBJID_INCLUDE
#include "sysincs.h"
#include "glbtypes.h"
#include "mvl_defs.h"
#include "ai_def.h"
#include "ai_obj.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
*<EFBFBD><EFBFBD>ȡied<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ld ln ds fco
*@param ied ied<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*@return <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD>
*/
ST_INT ai_get_ied_obj_num(AI_IED_CTRL *ied);
/**
* <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ld<EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD>
* @param ied <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD>, ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD>0
* @author guoqiangm@xjgc.com
*/
ST_INT ai_get_ld_num(AI_IED_CTRL *ied);
/**
* <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ln<EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD>
* @param ied <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD>, ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD>0
* @author guoqiangm@xjgc.com
*/
ST_INT ai_get_ln_num(AI_IED_CTRL *ied);
/**
* <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ds<EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD>
* @param ied <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD>, ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD>0
* @author guoqiangm@xjgc.com
*/
ST_INT ai_get_ds_num(AI_IED_CTRL *ied);
/**
* ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
* @param ied <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD>Ľָ<EFBFBD><EFBFBD>
* @param obj_ref <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD><EFBFBD>id, ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD>-1
*/
AI_OBJ_ID ai_obj_ref_to_id(AI_IED_CTRL *ied, ST_CHAR *obj_ref);
/**
* ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>id<EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD>.
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD>ʽ<EFBFBD>
* E1Q1SB1C1<EFBFBD><EFBFBD>E1Q1SB1C1/LLN0$ST$Mod<EFBFBD><EFBFBD>E1Q1SB1C1/LLN0$myDsName<EFBFBD><EFBFBD>@myDsName
* @param ied <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD>Ľָ<EFBFBD><EFBFBD>
* @param obj_id <EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
* @param obj_ref <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SD_SUCCESS, ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD>SD_FAILURE
*/
ST_RET ai_obj_id_to_ref(AI_IED_CTRL *ied, AI_OBJ_ID obj_id, ST_CHAR *obj_ref);
/**
* ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>id<EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ
* @param vmd <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD>Ľָ<EFBFBD><EFBFBD>
* @param obj_id <EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
* @param obj_name <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>obj_name<EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD>ɽӿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SD_SUCCESS, ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD>SD_FAILURE
*/
ST_RET ai_obj_id_to_objName(AI_IED_CTRL *ied, AI_OBJ_ID obj_id, OBJECT_NAME *obj_name);
/**
* ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ
* @param vmd <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD>Ľָ<EFBFBD><EFBFBD>
* @param obj_ref <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD>
* @param obj_name <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>obj_name<EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD>ɽӿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SD_SUCCESS, ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD>SD_FAILURE
*/
ST_RET ai_obj_ref_to_objName(ST_CHAR *obj_ref, OBJECT_NAME *obj_name);
/**
* ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD>.
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD>ʽ<EFBFBD>
* E1Q1SB1C1<EFBFBD><EFBFBD>E1Q1SB1C1/LLN0$ST$Mod<EFBFBD><EFBFBD>E1Q1SB1C1/LLN0$myDsName<EFBFBD><EFBFBD>@myDsName
* @param obj_name <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ
* @param obj_ref <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SD_SUCCESS, ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD>SD_FAILURE
*/
ST_RET ai_objName_to_ref(OBJECT_NAME *obj_name, ST_CHAR *obj_ref);
/**
* <EFBFBD>ͷŶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽobj name<EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>.
* <EFBFBD>ͷ<EFBFBD>obj name<EFBFBD>е<EFBFBD>time_id<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴdomain_idָ<EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>dom<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>name<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param obj_name <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ
* @return ST_VOID
*/
ST_VOID ai_cleanup_objName(OBJECT_NAME *obj_name);
/**
* ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>id<EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param ied <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD>
* @param obj_id <EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>, ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD>NULL
*/
AI_OBJ_IDCTRL *ai_get_obj_id_ctrl(AI_IED_CTRL *ied, AI_OBJ_ID obj_id);
/**
* ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>id<EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD>ied ld ln ds<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵Ķ<EFBFBD><EFBFBD><EFBFBD>
* @param ied <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD>
* @param id <EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>, ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD>NULL
*/
AI_COMMON_OBJ *ai_obj_id_to_cobj(AI_IED_CTRL *ied, AI_OBJ_ID id);
/**
* ͨ<EFBFBD><EFBFBD>obj_id<EFBFBD><EFBFBD>ȡ<EFBFBD>ö<EFBFBD><EFBFBD><EFBFBD><EFBFBD>µĻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵Ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD>
* @param ied <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>
* @param obj_id <EFBFBD><EFBFBD><EFBFBD><EFBFBD>id<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊld<EFBFBD><EFBFBD>LN<EFBFBD><EFBFBD>FCO<EFBFBD><EFBFBD>id
* @return ST_INT <EFBFBD><EFBFBD><EFBFBD>ػ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
*/
ST_INT ai_get_prim_val_num(AI_IED_CTRL *ied, AI_OBJ_ID obj_id);
/**
* ͨ<EFBFBD><EFBFBD>obj_id<EFBFBD><EFBFBD>ȡ<EFBFBD>ö<EFBFBD><EFBFBD><EFBFBD><EFBFBD>µĻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>id<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param ied <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>
* @param obj_id <EFBFBD><EFBFBD><EFBFBD><EFBFBD>id,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊld<EFBFBD><EFBFBD>LN<EFBFBD><EFBFBD>D0<EFBFBD><EFBFBD>DA<EFBFBD><EFBFBD>id
* @param prim_obj_num <EFBFBD><EFBFBD><EFBFBD><EFBFBD>صĻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
* @return AI_OBJ_ID <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>id<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
AI_OBJ_ID *ai_get_prim_sub_ids(AI_IED_CTRL *ied, AI_OBJ_ID obj_id, ST_INT *prim_obj_num);
/**
* <EFBFBD><EFBFBD>ȡruntime type<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD>Ա<EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD>
* @param rt runtime type<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͽ
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>rt<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD>0
*/
ST_INT ai_get_rt_num(RUNTIME_TYPE *rt);
/**
* ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>id<EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
* @param ied <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD>Ľָ<EFBFBD><EFBFBD>
* @param obj_id <EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
* @param name <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƵĿռ<EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SD_SUCCESS, ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD>SD_FAILURE
* @author guoqiangm@xjgc.com
*/
ST_RET ai_obj_id_to_name(AI_IED_CTRL *ied, AI_OBJ_ID obj_id, ST_CHAR *name);
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ied<EFBFBD><EFBFBD>idctrl<EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD>.
* <EFBFBD><EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>id<EFBFBD>ţ<EFBFBD><EFBFBD>Ͷ<EFBFBD>Ӧ<EFBFBD><EFBFBD>idctrl<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ied<EFBFBD><EFBFBD>id_ctrl<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>
* <EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>idΪ<EFBFBD>±<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>id ctrl<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>idctrl<EFBFBD>
*/
ST_RET ai_create_ied_idctrl(AI_IED_CTRL *ied);
/**
* <EFBFBD><EFBFBD>61850<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҷ<EFBFBD><EFBFBD><EFBFBD>.
* @param obj_tbl <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD>ɻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param obj_num <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еĶ<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD>
* @param obj_name Ҫ<EFBFBD><EFBFBD><EFBFBD>ҵĶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>ҵ<EFBFBD><EFBFBD>Ķ<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>NULL
*/
AI_COMMON_OBJ *ai_cobj_find(AI_COMMON_OBJ **obj_tbl, ST_INT obj_num, ST_CHAR *obj_name);
/**
* <EFBFBD><EFBFBD><EFBFBD>Ҷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><EFBFBD><EFBFBD>Ӷ<EFBFBD><EFBFBD>󣬷<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
* @param ied ied<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param obj_id <EFBFBD>ڴ˶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><EFBFBD>ң<EFBFBD>֧<EFBFBD><EFBFBD>ied ld ln fco
* @param child_name <EFBFBD>Ӷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>id<EFBFBD><EFBFBD>-1
*/
AI_OBJ_ID ai_find_obj_child(AI_IED_CTRL *ied, AI_OBJ_ID obj_id, ST_CHAR *child_name);
/**
* <EFBFBD>ͷ<EFBFBD>AI_PRIM_VAL<EFBFBD><EFBFBD><EFBFBD>ԱDATA<EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>
* @param obj_val <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ڴ<EFBFBD>ָ<EFBFBD><EFBFBD>
* @return ST_VOID
*/
ST_VOID ac_cleanup_objVals_data(AI_OBJ_VAL *obj_val);
/**
* <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>Obj_id<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD>idctrl,Ȼ<EFBFBD>󷵻<EFBFBD>idctrl<EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>ʧ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>OBJECT_TYPE_UNKNOWN
*/
AI_OBJ_TYPE ai_get_obj_type(AI_IED_CTRL *ied, AI_OBJ_ID obj_id);
/**
* <EFBFBD><EFBFBD>ȡln<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>lntype<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>AI_LNTYPE_UNKNOWN
*/
AI_FCO_SUBTYPE ai_get_fco_subtype(AI_IED_CTRL *ied, AI_OBJ_ID fco_id);
/**
* <EFBFBD><EFBFBD><EFBFBD>Ҷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>󣬷<EFBFBD><EFBFBD>ظ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
* @param ied ied<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param obj_id <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
* @return <EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>id<EFBFBD><EFBFBD>-1
*/
AI_OBJ_ID ai_find_obj_parent(AI_IED_CTRL *ied, AI_OBJ_ID obj_id);
//<2F><><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><D5BC>б<EFBFBD><D0B1><EFBFBD>desc
ST_RET ai_create_iedDesc(AI_IED_CTRL *ied, SCL_INFO *scl_info);
/**
* ͨ<EFBFBD><EFBFBD>obj_id<EFBFBD><EFBFBD><EFBFBD><EFBFBD>obj<EFBFBD><EFBFBD>desc, ֧<EFBFBD><EFBFBD>ld<EFBFBD><EFBFBD>ln<EFBFBD><EFBFBD>do<EFBFBD><EFBFBD><EFBFBD>󣬵<EFBFBD>ȡld<EFBFBD><EFBFBD>ln<EFBFBD><EFBFBD>descʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>do_nameӦΪNULL<EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD>ȡdo<EFBFBD><EFBFBD>descʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ln<EFBFBD><EFBFBD>obj_id<EFBFBD><EFBFBD>do_name<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƕ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>do<EFBFBD><EFBFBD><EFBFBD><EFBFBD>do_nameΪ<EFBFBD><EFBFBD>do<EFBFBD><EFBFBD><EFBFBD><EFBFBD>do<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>do1$sdo1
* @param ied ied<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param obj_id <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
* @return desc<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
*/
const ST_CHAR* ai_get_obj_desc(AI_IED_CTRL *ied, ST_INT obj_id, ST_CHAR *do_name);
AI_OBJ_ID ac_get_next_rcbInst_id(AI_IED_CTRL *ied, AI_OBJ_ID rcb_id);
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>da<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD>do<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param ied ied<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param obj_id da<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>id<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD>da<EFBFBD><EFBFBD><EFBFBD>򷵻<EFBFBD>-1
* @return <EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>do<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>id<EFBFBD><EFBFBD>-1
*/
AI_OBJ_ID ai_find_da_parentDo(AI_IED_CTRL *ied, AI_OBJ_ID da_id);
/**
* ͨ<EFBFBD><EFBFBD>obj_id<EFBFBD><EFBFBD><EFBFBD><EFBFBD>obj<EFBFBD><EFBFBD>dU
* <EFBFBD><EFBFBD>ȡdo<EFBFBD><EFBFBD>descʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ln<EFBFBD><EFBFBD>obj_id<EFBFBD><EFBFBD>do_name<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƕ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>do<EFBFBD><EFBFBD><EFBFBD><EFBFBD>do_nameΪ<EFBFBD><EFBFBD>do<EFBFBD><EFBFBD><EFBFBD><EFBFBD>do<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>do1$sdo1
* @param ied ied<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param ln_id lnid
* @param do_name do<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return dudu<EFBFBD><EFBFBD>ֵ
*/
const ST_CHAR* ai_get_obj_du_val(AI_IED_CTRL *ied, ST_INT ln_id, ST_CHAR *do_name);
#ifdef __cplusplus
}
#endif
#endif /** IEC61850_AI_OBJID_INCLUDE */