|
|
/****************************************************************************/
|
|
|
/* Copyright (c) 2007,许继集团有限公司 */
|
|
|
/* All rights reserved. */
|
|
|
/* */
|
|
|
/* 模块描述: */
|
|
|
/** 客户端目录服务模块,提供目录服务相关操作接口
|
|
|
* @file ac_dir.h */
|
|
|
/* */
|
|
|
/* 日期 作者 注释 */
|
|
|
/* 2007/08/14 ZYZ 创建文件 */
|
|
|
/****************************************************************************/
|
|
|
|
|
|
#ifndef IEC61850_AC_DIR_H
|
|
|
#define IEC61850_AC_DIR_H
|
|
|
|
|
|
#include "ac_reqm.h"
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
extern "C" {
|
|
|
#endif
|
|
|
|
|
|
/*#define MAX_TDL_LEN 20240 // 影射层使用的最大TDL长度 */
|
|
|
|
|
|
/** ld目录服务请求所需信息结构定义*/
|
|
|
typedef struct
|
|
|
{
|
|
|
ST_CHAR *ld_name; /**< ld名称*/
|
|
|
AI_OBJ_TYPE type; /**< 请求成员类型ln or ds*/
|
|
|
U_AC_REQ_DONE u_getldd_done; /**< 用户回调函数指针*/
|
|
|
}AC_GETLDD_REQ_INFO;
|
|
|
|
|
|
/** 获取对象属性服务请求所需信息结构定义*/
|
|
|
typedef struct
|
|
|
{
|
|
|
AI_OBJ_REF obj_ref; /**< 对象参引*/
|
|
|
U_AC_REQ_DONE u_getobjdef_done; /**< 用户回调函数指针*/
|
|
|
}AC_GETOBJDEF_REQ_INFO;
|
|
|
|
|
|
/** ds目录服务请求所需信息结构定义*/
|
|
|
typedef struct
|
|
|
{
|
|
|
AI_OBJ_REF ds_ref; /**< 数据集参引*/
|
|
|
U_AC_REQ_DONE u_getdsd_done; /**< 用户回调函数指针*/
|
|
|
} AC_GETDSD_REQ_INFO;
|
|
|
/**
|
|
|
* 读ied目录服务接口.
|
|
|
* 该函数会创建请求结构,并把请求加入统一请求链表中,等待统一请求管理
|
|
|
* @param srv_id 服务器ID
|
|
|
* @param u_req_done 用户回调函数指针
|
|
|
* @param timeout 请求超时时间,单位为秒
|
|
|
* @param req 传出的请求结构指针地址,应用层要申请存放请求结构指针的内存
|
|
|
* @retval SD_SUCCESS 服务加入请求链表成功
|
|
|
* @retval SD_FAILURE 服务加入请求链表失败
|
|
|
*/
|
|
|
ST_RET ac_get_ied_dir(ST_INT srv_id, U_AC_REQ_DONE u_req_done, ST_INT timeout, AC_REQ_CTRL **req);
|
|
|
|
|
|
/**
|
|
|
* 发送读ied目录服务接口,此时请求已从链表中取出,该接口被统一请求管理函数调用处理
|
|
|
* @param ac_req_ctrl 请求结构
|
|
|
* @retval SD_SUCCESS 发送成功
|
|
|
* @retval SD_FAILURE 发送失败
|
|
|
*/
|
|
|
ST_RET ac_send_getIedDir_req(AC_REQ_CTRL *ac_req_ctrl);
|
|
|
|
|
|
/**
|
|
|
* 释放giedd_req_ctrl,该接口被统一请求管理中函数调用处理
|
|
|
* @param gvmdd_req_ctrl 目录服务结构
|
|
|
* @retval 无
|
|
|
*/
|
|
|
ST_VOID ac_cleanup_gieddReqCtrl(AC_GIEDD_REQ_CTRL *giedd_req_ctrl);
|
|
|
|
|
|
/**
|
|
|
* 读ld目录服务接口,请求加入请求链表中
|
|
|
* @param srv_id 服务器ID
|
|
|
* @param getldd_req_info ld目录服务请求所需信息结构定义
|
|
|
* @param time_out 请求超时时间,单位为秒
|
|
|
* @param req 传出的请求结构指针地址,应用层要申请存放请求结构指针的内存
|
|
|
* @retval SD_SUCCESS 服务加入请求链表成功
|
|
|
* @retval SD_FAILURE 服务加入请求链表失败
|
|
|
*/
|
|
|
ST_RET ac_get_ld_dir(ST_INT srv_id, AC_GETLDD_REQ_INFO *getldd_req_info, ST_INT time_out, AC_REQ_CTRL **req);
|
|
|
|
|
|
/**
|
|
|
* 发送读ld目录服务接口,请求已从链表中取出,该接口被统一请求管理函数调用处理
|
|
|
* @param ac_req_ctrl 请求结构
|
|
|
* @retval SD_SUCCESS 发送成功
|
|
|
* @retval SD_FAILURE 发送失败
|
|
|
*/
|
|
|
ST_RET ac_send_getLdDir_req(AC_REQ_CTRL *ac_req_ctrl);
|
|
|
|
|
|
/**
|
|
|
* 释放gdomd_req_ctrl,该接口被统一请求管理中函数调用处理
|
|
|
* @param gdomd_req_ctrl 目录服务结构
|
|
|
* @retval 无
|
|
|
*/
|
|
|
ST_VOID ac_cleanup_glddReqCtrl(AC_GLDD_REQ_CTRL *gldd_req_ctrl);
|
|
|
|
|
|
/**
|
|
|
* 读obj定义服务接口,请求加入请求链表中
|
|
|
* @param srv_id 服务器ID
|
|
|
* @param getobjdef_req_info 获取对象属性服务请求所需信息结构定义
|
|
|
* @param time_out 请求超时时间,单位为秒
|
|
|
* @param req 传出的请求结构指针地址,应用层要申请存放请求结构指针的内存
|
|
|
* @retval SD_SUCCESS 服务加入请求链表成功
|
|
|
* @retval SD_FAILURE 服务加入请求链表失败
|
|
|
*/
|
|
|
ST_RET ac_get_obj_definition(ST_INT srv_id, AC_GETOBJDEF_REQ_INFO *getobjdef_req_info, ST_INT time_out, AC_REQ_CTRL **req);
|
|
|
|
|
|
/**
|
|
|
* 发送读obj定义服务接口,请求已从链表中取出,该接口被统一请求管理函数调用处理
|
|
|
* @param ac_req_ctrl 请求结构
|
|
|
* @retval SD_SUCCESS 发送成功
|
|
|
* @retval SD_FAILURE 发送失败
|
|
|
*/
|
|
|
ST_RET ac_send_getObjDef_req(AC_REQ_CTRL *ac_req_ctrl);
|
|
|
|
|
|
/**
|
|
|
* 释放gobjdef_req_ctrl,该接口被统一请求管理中函数调用处理
|
|
|
* @param gobjdef_req_ctrl 目录服务结构
|
|
|
* @retval 无
|
|
|
*/
|
|
|
ST_VOID ac_cleanup_gobjdefReqCtrl(AC_GOBJDEF_REQ_CTRL *gobjdef_req_ctrl);
|
|
|
|
|
|
/**
|
|
|
* 读ds目录服务接口,请求加入请求链表中
|
|
|
* @param srv_id 服务器ID
|
|
|
* @param getdsd_req_info ds目录服务请求所需信息结构定义
|
|
|
* @param time_out 请求超时时间,单位为秒
|
|
|
* @param req 传出的请求结构指针地址,应用层要申请存放请求结构指针的内存
|
|
|
* @retval SD_SUCCESS 服务加入请求链表成功
|
|
|
* @retval SD_FAILURE 服务加入请求链表失败
|
|
|
*/
|
|
|
ST_RET ac_get_ds_dir(ST_INT srv_id, AC_GETDSD_REQ_INFO *getdsd_req_info, ST_INT time_out, AC_REQ_CTRL **req);
|
|
|
|
|
|
/**
|
|
|
* 发送读ds目录服务接口,请求已从链表中取出,该接口被统一请求管理函数调用处理
|
|
|
* @param ac_req_ctrl 请求结构
|
|
|
* @retval SD_SUCCESS 发送成功
|
|
|
* @retval SD_FAILURE 发送失败
|
|
|
*/
|
|
|
ST_RET ac_send_getDsDir_req(AC_REQ_CTRL *ac_req_ctrl);
|
|
|
|
|
|
/**
|
|
|
* 释放gdsd_req_ctrl,该接口被统一请求管理函数调用处理
|
|
|
* @param gnvld_req_ctrl 目录服务结构
|
|
|
* @retval 无
|
|
|
*/
|
|
|
ST_VOID ac_cleanup_gdsdReqCtrl(AC_GDSD_REQ_CTRL *gdsd_req_ctrl);
|
|
|
|
|
|
/**
|
|
|
* acsi类型到mms类型转换
|
|
|
* @param obj_type 要转换的acsi类型
|
|
|
* @retval ST_INT16 mms类型
|
|
|
*/
|
|
|
ST_INT16 ai_obj_type_to_mms_class(AI_OBJ_TYPE obj_type);
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
}
|
|
|
#endif
|
|
|
#endif /** IEC61850_AC_DIR_H */
|