|
|
|
|
/****************************************************************************/
|
|
|
|
|
/* Copyright (c) 2007,<2C><><EFBFBD>̼<EFBFBD><CCBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˾ */
|
|
|
|
|
/* All rights reserved. */
|
|
|
|
|
/* */
|
|
|
|
|
/* ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
/** <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>ģ<EFBFBD><C4A3>ʵ<EFBFBD><CAB5>MMS<4D><53><EFBFBD>ݡ<EFBFBD>----<2D><>primval<61><6C><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD>ӿں<D3BF><DABA><EFBFBD>
|
|
|
|
|
* @file ai_objval.h */
|
|
|
|
|
/* */
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ע<><D7A2> */
|
|
|
|
|
/* 2007/07/16 YH <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD> */
|
|
|
|
|
/****************************************************************************/
|
|
|
|
|
#ifndef IEC61850_AI_OBJVAL_INCLUDED
|
|
|
|
|
#define IEC61850_AI_OBJVAL_INCLUDED
|
|
|
|
|
|
|
|
|
|
#include "ai_obj.h"
|
|
|
|
|
#include "sx_log.h"
|
|
|
|
|
#include "mvl_log.h"
|
|
|
|
|
#include "ai_objid.h"
|
|
|
|
|
#include "ai_objrw.h"
|
|
|
|
|
#include "mmsobj.h"
|
|
|
|
|
#include "ai_log.h"
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
extern "C" {
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
*/
|
|
|
|
|
typedef struct ai_prim_info
|
|
|
|
|
{
|
|
|
|
|
ST_INT prim_total_num;
|
|
|
|
|
ST_INT prim_num;
|
|
|
|
|
ST_INT prim_offset;
|
|
|
|
|
}AI_PRIM_INFO;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <EFBFBD>ͷŶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>洢<EFBFBD>ڴ<EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|
|
|
|
* @param objVals <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹָ<EFBFBD><EFBFBD>
|
|
|
|
|
* @return ST_VOID
|
|
|
|
|
*/
|
|
|
|
|
ST_VOID ai_cleanup_objVals(AI_OBJ_VAL *objVal);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>rt<EFBFBD>õ<EFBFBD>AI_VAL_TYPE<EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*/
|
|
|
|
|
ST_RET ai_get_type_info_by_primRt(RUNTIME_TYPE *rt, AI_VAL_TYPE *type_out, ST_INT *len_out);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <EFBFBD>ɻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DA<EFBFBD><EFBFBD>AI_PRIM_VAL<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MMS<EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Data
|
|
|
|
|
* @param valist <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD>ռ<EFBFBD>
|
|
|
|
|
* @param num_var <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
|
|
|
|
* @param data MMS<EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַָ<EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @param type_id MMS<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
|
|
|
|
|
* @retval SD_SUCCESS <EFBFBD>ɹ<EFBFBD>
|
|
|
|
|
* @retval SD_FAILURE ʧ<EFBFBD><EFBFBD>
|
|
|
|
|
*/
|
|
|
|
|
ST_RET ai_primVals_to_compVal(AI_PRIM_VAL *valist, ST_INT num_var, ST_VOID *data, ST_INT type_id);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* MMS<EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Data<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DA<EFBFBD><EFBFBD>AI_PRIM_VAL<EFBFBD><EFBFBD><EFBFBD>顣
|
|
|
|
|
* *valist<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>ai_cleanup_objVals<EFBFBD>ӿں<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @param data MMS<EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַָ<EFBFBD><EFBFBD>
|
|
|
|
|
* @param type_id MMS<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
|
|
|
|
|
* @param valist <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 num_out <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @retval SD_SUCCESS <EFBFBD>ɹ<EFBFBD>
|
|
|
|
|
* @retval SD_FAILURE ʧ<EFBFBD><EFBFBD>
|
|
|
|
|
*/
|
|
|
|
|
ST_RET ai_compVal_to_primVals(ST_VOID *data, ST_INT type_id, AI_PRIM_VAL **valist, ST_INT *num_out);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<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 ied ied<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @param obj_id <EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
|
|
|
|
|
* @param attr_name <EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @param data_size <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 *data <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߷<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
|
|
|
|
*/
|
|
|
|
|
ST_RET ai_get_obj_attr_val(AI_IED_CTRL *ied, AI_OBJ_ID obj_id,
|
|
|
|
|
ST_CHAR *attr_name, ST_INT data_size, ST_VOID *data);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <EFBFBD><EFBFBD>¡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>AI_OBJ_VAL<EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>յõ<EFBFBD><EFBFBD><EFBFBD>dest<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ai_cleanup_obj_val
|
|
|
|
|
* <EFBFBD>ͷ<EFBFBD>dest<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ÿ<EFBFBD><EFBFBD>obj_val<EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>destָ<EFBFBD><EFBFBD>
|
|
|
|
|
* @param dest Ŀ<EFBFBD><EFBFBD>obj_vals<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @param src Դobj_vals<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @param num <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*/
|
|
|
|
|
ST_VOID ai_clone_obj_vals(AI_OBJ_VAL **dest, AI_OBJ_VAL *src, ST_INT num);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*/
|
|
|
|
|
ST_INT ai_get_Data_Len(AI_VAL_TYPE type);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#endif /** !IEC61850_AI_OBJVAL_INCLUDED */
|