/****************************************************************************/
/* Copyright (c) 2007,许继集团有限公司                                      */
/* All rights reserved.                                                     */
/*                                                                          */
/*  模块描述：                                                              */
/** 本地对象空间目录服务模块
 *  @file  ai_dir.h                                                       */
/*                                                                          */
/* 日期         作者         注释                                            */
/* 2007/09/07   DJF          根据对象定义重构修改接口定义                   */
/* 2007/08/08   guoqiang     创建文件                                        */
/****************************************************************************/

#ifndef IEC61850_AI_DIR_H
#define IEC61850_AI_DIR_H

#include "ai_def.h"
#include "mvl_defs.h"
#include "ai_objid.h"

#ifdef __cplusplus
extern "C" {
#endif

/**
 * 命名变量目录服务，读取本地对象目录，支持61850所有对象类型.
 * 通过Var对象ID得到下层Var对象的ID数组以及个数
 * @param	ied			装置对象空间结构指针
 * @param	id			对象ID
 * @param	is_ds		是否要取数据集节点
 * @param	ids			下层子对象的ID数组指针
 * @param	id_num		下层子对象的ID数组长度
 * @return  SD_SUCCESS or SD_FAILURE
 */
ST_RET ai_get_obj_dir(AI_IED_CTRL *ied, AI_OBJ_ID id, ST_BOOLEAN is_ds, AI_OBJ_ID **ids, ST_INT *id_num);

//获取fco对象下一级的子对象的个数
ST_INT ai_get_fco_child_num(AI_IED_CTRL *ied, AI_OBJ_ID fco_id);

/**
 * 通过对象的id_ctrl得到对象的ID
 * @param	id_ctrl		OBJ_ID_CTRL结构指针
 * @return id
 */
AI_OBJ_ID  ai_obj_id_ctrl_to_id(AI_OBJ_IDCTRL *id_ctrl);

#ifdef __cplusplus
}
#endif


#endif /* ACSI_DEFINED_INCLUDE */
