/********************************************************
*                                                                                                            
* 文 件 名： IndicatorDataManage.h   
* 版权说明： 北京交控科技有限公司 
* 创建时间： 2012-11-26
* 作    者： 联锁组
* 功能描述： 指示器数据管理头文件     
*
********************************************************/ 

#ifndef _INDICATOR_DATA_MANAGE_H_
#define _INDICATOR_DATA_MANAGE_H_


#include "IndicatorDefine.h"
#include "IndicatorConfigDataManage.h"
#include "CommonTypes.h"




#ifdef __cplusplus
extern "C" {
#endif

/*指示器数据结构体*/
typedef struct S_IndicatorDataStruct
{
    UINT16 IndicatorId; /*指示器ID (初始化字段)*/
	UINT8 IndicatorState; /*指示器状态 (动态字段)*/
} IndicatorDataStruct;
/*OC站指示器数据结构体*/
typedef struct S_OCStationIndicDataStru
{
	UINT8 ocid;
	UINT8 IndicatorId; /*指示器ID (初始化字段)*/
	UINT8 IndicatorState; /*指示器状态 (动态字段)*/
} OCStationIndicDataStru;


extern IndicatorDataStruct IndicatorDataStru[INDICATOR_SUM_MAX];   /*定义指示器数据结构体*/
extern OCStationIndicDataStru g_OCStationIndicDataStru[INDICATOR_SUM_MAX]; /*OC站指示器数据*/



/*
* 功能描述： 获取指定ID指示器状态
* 参数说明： const UINT16 indicatorId, 指示器ID    
* 返回值  ： 0: 获取数据失败
*			>0:      
*/
UINT8 GetIndicatorState(const UINT16 indicatorId);

/*
* 功能描述： 设置指定ID指示器状态
* 参数说明： const UINT16 indicatorId, 指示器ID  
*			 const UINT8 indicatorState, 指示器状态
* 返回值  ： 无
*			        
*/
void SetIndicatorState(const UINT16 indicatorId, const UINT8 indicatorState);

/*
* 功能描述： 根据OCID，指示灯ID获取指示灯状态
* 参数说明： UINT8 ocid  OCID
*            UINT8 indicId  指示灯ID
* 返回值  ： 0u: 获取数据失败
*			>0u: 指示灯ID
* cgh-合并ECI11.0:
*/
UINT8 GetOCStationIndicState(UINT8 ocid, UINT8 indicId);
/*
* 功能描述： 根据OCID，指示灯ID设置指示灯状态
* 参数说明： UINT8 ocid  OCID
*            UINT8 indicId  指示灯ID
*             UINT8 state  状态
* 返回值  ： 0u: 获取数据失败
*			>0u: 指示灯ID
* cgh-合并ECI11.0:
*/
void SetOCStationIndicState(UINT8 ocid, UINT8 indicId, UINT8 state);
/*
* 功能描述： 获取OC站设备指示灯灯结构体
* 参数说明： 无
*
* 返回值  ： OC站设备指示灯灯结构体
* cgh-合并ECI11.0:
*/
OCStationIndicDataStru* GetOCStationIndicDataStru(void);





#ifdef __cplusplus
}
#endif

#endif
