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.

101 lines
2.9 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> */
/** д<><D0B4><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD><D3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽṹ<DDBD><E1B9B9><EFBFBD>
* @file ac_write.h
* @author yh huiy@xjgc.com */
/* */
/* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ע<><D7A2> */
/* 2007/07/16 YH <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD> */
/****************************************************************************/
#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
/** д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><E1B9B9><EFBFBD><EFBFBD>*/
typedef struct
{
AI_OBJ_VAL *obj_vals; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>Ϣ<EFBFBD>ṹָ<E1B9B9><D6B8>*/
ST_INT num_obj; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
U_AC_REQ_DONE u_write_done; /**< <20>û<EFBFBD><C3BB>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>*/
}AC_WRITE_REQ_INFO;
/**
* д<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 srv_id <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
* @param ac_reqInfo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
* @param time_out <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<EFBFBD><EFBFBD>
* @param chnl ͨ<EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param ac_reqCtrl_out <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval SD_FAILURE ʧ<EFBFBD><EFBFBD>
* @retval SD_SUCCESS <EFBFBD>ɹ<EFBFBD>
*/
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);
/**
* <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 srvId <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
* @param ac_reqInfo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
* @param time_out <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<EFBFBD><EFBFBD>
* @param ac_reqCtrl_out <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval SD_FAILURE ʧ<EFBFBD><EFBFBD>
* @retval SD_SUCCESS <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
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);
/**
* <EFBFBD>ͷ<EFBFBD>AC_WRITE_REQ_CTRL<EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD>Դ
* obj_vals<EFBFBD><EFBFBD>results<EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD>Դ
* @param reqCtrl <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
* @return ST_VOID
*/
ST_VOID ac_cleanup_writeReqCtrl(AC_WRITE_REQ_CTRL *reqCtrl);
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param acReqCtrl <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
* @return SD_FAILURE <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD> SD_SUCCESS <EFBFBD><EFBFBD><EFBFBD>ͳɹ<EFBFBD>
*/
ST_RET ac_send_write_req(AC_REQ_CTRL *acReqCtrl);
/**
* <EFBFBD>ͷ<EFBFBD>MVL_WRITE_REQ_INFO<EFBFBD>ռ<EFBFBD>õ<EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
* @param writeInfo <EFBFBD><EFBFBD>ڴ<EFBFBD>ͷָ<EFBFBD><EFBFBD>
* @param obj_num <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param ac_reqCtrl <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
* @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 */