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.

91 lines
2.9 KiB
C

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/****************************************************************************/
/* Copyright (c) 2007,许继集团有限公司 */
/* All rights reserved. */
/* */
/* 模块描述: */
/** 对象空间对象值的操作接口
* @file ai_objrw.h */
/* */
/* 日期 作者 注释 */
/* 2007/07/16 YH 创建文件 */
/****************************************************************************/
#ifndef IEC61850_AI_OBJRW_INCLUDED
#define IEC61850_AI_OBJRW_INCLUDED
#include "glbtypes.h"
#include "scl.h"
#include "mvl_defs.h"
#include "mms_mp.h"
#include "ai_def.h"
#include "ai_obj.h"
#include "sx_log.h"
#include "mvl_log.h"
#include "ai_objid.h"
#include "ai_objval.h"
#include "ai_log.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* 通过对象IDVMD指针获取对象的值信息数组。
* 本函数内申请了objVal_out成员prim_vals及prim_ids指针的内存必须由使用者释放一般调用
* @param obj_id 对象的ID
* @param vmd 对象空间结构
* @param obj_val 对象值信息结构,输出
* @retval SD_FAILURE 失败
* @retval SD_SUCCESS 成功
*/
ST_RET ai_read_obj_primVals(AI_OBJ_ID obj_id, AI_IED_CTRL *ied, AI_OBJ_VAL *objVal_out);
/**
* 获取对象在对象空间中的值的指针
* @param obj_id 对象的ID
* @param vmd 对象空间结构
* @param dataSize_out 对象值大小,输出
* @return 对象指针
*/
ST_VOID *ai_get_obj_data_ptr(AI_OBJ_ID obj_id, AI_IED_CTRL *ied, ST_INT *dataSize_out);
/**
* 通过对象IDVMD指针写对象的值信息
* @param obj_id 对象的ID
* @param vmd 对象空间结构
* @param obj_val 对象值信息结构
* @retval SD_FAILURE 失败
* @retval SD_SUCCESS 成功
*/
ST_RET ai_write_obj_primVals(AI_OBJ_ID obj_id, AI_IED_CTRL *ied, AI_OBJ_VAL *obj_val);
/**
* 通过对象IDVMD指针获取对象的值的存储区头指针数据大小。
* *data_out内存由本函数接口申请使用者必须释放此内存。
* @param obj_id 对象的ID
* @param vmd 对象空间结构
* @param data 对象值存储区头指针,输出
* @param data_size 对象值大小,输出
* @retval SD_FAILURE 失败
* @retval SD_SUCCESS 成功
*/
ST_RET ai_read_obj_compVal(AI_OBJ_ID obj_id, AI_IED_CTRL *ied, ST_VOID **data_out, ST_INT *dataSize_out);
/**
* 通过对象IDVMD指针写对象的值
* @param obj_id 对象的ID
* @param vmd 对象空间结构
* @param data 对象值存储区头指针
* @param data_size 对象值大小
* @param val_chg 变化标志
* @retval SD_FAILURE 失败
* @retval SD_SUCCESS 成功
*/
ST_RET ai_write_obj_compVal(AI_OBJ_ID obj_id, AI_IED_CTRL *ied, ST_VOID *data, ST_INT data_size, ST_BOOLEAN *val_chg);
#ifdef __cplusplus
}
#endif
#endif /** !IEC61850_AI_MSOBJ_INCLUDED */