/****************************************************************************/ /* Copyright (c) 2007,许继集团有限公司 */ /* All rights reserved. */ /* */ /* 模块描述: */ /** 写服务模块对外接口声明及数据结构定义。 * @file ac_write.h * @author yh huiy@xjgc.com */ /* */ /* 日期 作者 注释 */ /* 2007/07/16 YH 创建文件 */ /****************************************************************************/ #ifndef IEC61850_WRITE_INCLUDED #define IEC61850_WRITE_INCLUDED #include "ac_reqm.h" #include "ac_srvm.h" #include "ai_objid.h" #include "ai_sem.h" #include "ai_obj.h" #include "ai_objrw.h" #include "ai_objval.h" #ifdef __cplusplus extern "C" { #endif /** 写服务请求所需信息结构定义*/ typedef struct { AI_OBJ_VAL *obj_vals; /**< 命名变量的值信息结构指针*/ ST_INT num_obj; /**< 命名变量总数*/ U_AC_REQ_DONE u_write_done; /**< 用户回调函数指针*/ }AC_WRITE_REQ_INFO; /** * 写服务请求构造、并加入待发送请求队列,此接口通过指定通道下发请求 * @param srv_id 服务ID * @param ac_reqInfo 请求信息 * @param time_out 请求超时时间 * @param chnl 通道号,请求通过此通道下发请求 * @param ac_reqCtrl_out 请求结构(输出) * @retval SD_FAILURE 失败 * @retval SD_SUCCESS 成功 */ ST_RET ac_write_obj_value_chnl(ST_INT srv_id, AC_WRITE_REQ_INFO* ac_reqInfo, ST_INT time_out, AC_CHANNEL chnl, AC_REQ_CTRL **ac_reqCtrl_out); /** * 读服务请求构造、并加入待发送请求队列,通过主通道下发请求 * @param srvId 服务ID * @param ac_reqInfo 请求信息 * @param time_out 请求超时时间 * @param ac_reqCtrl_out 请求结构(输出) * @retval SD_FAILURE 失败 * @retval SD_SUCCESS 发送 */ ST_RET ac_write_obj_value(ST_INT srv_id, AC_WRITE_REQ_INFO* ac_reqInfo, ST_INT time_out, AC_REQ_CTRL **ac_reqCtrl_out); /** * 释放AC_WRITE_REQ_CTRL结构成员所占资源 * obj_vals、results成员资源 * @param reqCtrl 请求结构指针 * @return ST_VOID */ ST_VOID ac_cleanup_writeReqCtrl(AC_WRITE_REQ_CTRL *reqCtrl); /** * 发送一个写服务请求 * @param acReqCtrl 请求结构指针 * @return SD_FAILURE 发送失败; SD_SUCCESS 发送成功 */ ST_RET ac_send_write_req(AC_REQ_CTRL *acReqCtrl); /** * 释放MVL_WRITE_REQ_INFO结构占用的全部内存 * @param writeInfo 结构内存头指针 * @param obj_num 变量总数 * @param ac_reqCtrl 请求结构指针 * @return ST_VOID */ ST_VOID ac_destroy_mvlWriteReqInfo(MVL_WRITE_REQ_INFO *writeInfo, ST_INT obj_num, AC_REQ_CTRL *ac_reqCtrl); #ifdef __cplusplus } #endif #endif /** ACSI_READ_INCLUDE */