/****************************************************************************/ /* 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 /** * 通过对象ID,VMD指针获取对象的值信息数组。 * 本函数内申请了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); /** * 通过对象ID,VMD指针写对象的值信息 * @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); /** * 通过对象ID,VMD指针获取对象的值的存储区头指针,数据大小。 * *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); /** * 通过对象ID,VMD指针写对象的值 * @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 */