/********************************************************
*
* 文 件 名： ReverseCutConfigDataManage.h
* 版权说明： 北京交控科技有限公司
* 创建时间： 2022-06-15
* 作    者： 联锁组
* 功能描述： 倒切装置配置数据管理头文件
* 修改记录：
*
********************************************************/

#ifndef _REVERSE_CUT_CONFIG_DATA_MANAGE_H_
#define _REVERSE_CUT_CONFIG_DATA_MANAGE_H_

#include "ReverseCutDefine.h"
#include "CommonTypes.h"
#include "../System/CiSystemDefine.h"
#include "../System/SystemParameterManage.h"


#ifdef __cplusplus
extern "C" {
#endif


	/*倒切配置数据结构体*/
	typedef struct S_ReverseCutConfigDataStruct
	{
		UINT16 wId;							/*手动编号，与继电器ID一致*/
		UINT8 chBelongCiId;					/*所属TIOC ID*/
		UINT16 wReverseRelayId;				/*倒切继电器ID (配置数据)*/
	}ReverseCutCfgDataStru;

	/*******************************全局变量声明*******************************/
	extern ReverseCutCfgDataStru gstReverseCutCfgData[REVERSE_CUT_SUM_MAX];       /*定义倒切装置数据配置结构体*/
	extern UINT16 gReverseCutCfgIdBuf[REVERSE_CUT_SUM_MAX];				   /*定义倒切装置数据配置ID 缓存*/
	extern INT16 gReverseCutCfgSum;					   /*定义倒切装置数据配置总数 */

	/*
	* 功能描述： 获取倒切装置当前总数
	* 参数说明： void
	* 返回值  ： 0: 获取数据失败
	*			>0: 倒切装置当前总数
	*/
	UINT16 GetReverseCutCurSum(void);

	/*
	* 功能描述： 获取指定ID倒切索引号
	* 参数说明： const UINT16 wReverseCutId, 倒切ID
	* 返回值  ： LOGIC_SECTION_SUM_MAX: 获取数据失败
	*			<LOGIC_SECTION_SUM_MAX: 查找成功
	*/
	UINT16 GetReverseCutCfgBufIndex(const UINT16 wReverseCutId);

	/*
	* 功能描述： 获取指定数组下标对应的倒切ID
	* 参数说明： const UINT16 wBufIndex, 数组下标
	* 返回值  ： 0: 获取数据失败
	*			>0: 倒切ID
	*/
	UINT16 GetReverseCutId(const UINT16 wBufIndex);

	/*
	* 功能描述： 获取指定ID倒切继电器ID
	* 参数说明： const UINT16 wReverseCutId, 倒切ID
	* 返回值  ： 0: 获取数据失败
	*			>0: 倒切ID
	*/
	UINT16 GetReverseCutRelayId(const UINT16 wReverseCutId);

	/*
	* 功能描述： 获取指定ID倒切设备所属联锁ID
	* 参数说明： const UINT16 wReverseCutId, 倒切ID
	* 返回值  ： 0: 获取数据失败
	*			>0: 所属TIOC ID
	*/
	UINT8 GetReverseCutBelongCiId(const UINT16 wReverseCutId);

	/*
	* 功能描述：	整理读入的倒切设备配置数据
	* 参数说明：	无
	* 返回值  ：	CI_SUCCESS,整理成功
	*				CI_ERROR,整理失败
	*/
	UINT8 ReverseCutConfigDataManage(void);
#ifdef __cplusplus
}
#endif
#endif
