/********************************************************
*                                                                                                            
* 文 件 名： ConfigDataReadManage.h   
* 版权说明： 北京交控科技有限公司 
* 创建时间： 
* 作    者： 
* 功能描述：   
* 修改记录：   
*
********************************************************/ 

#ifndef _INTERLOCK_DATA_CONFIGDATAREADMANAGE_H_
#define _INTERLOCK_DATA_CONFIGDATAREADMANAGE_H_


#include "../AutoRoute/AutoRouteConfigDataManage.h"
#include "../AutoReturn/AutoReturnConfigDataManage.h"
#include "../AutoRoute/AutoRouteConfigDataManage.h"
#include "../ESB/ESBConfigDataManage.h"
#include "../psd/PSDConfigDataManage.h"
#include "../PSD/PSDDataManage.h"
#include "../Relay/RelayConfigDataManage.h"
#include "../Route/RouteConfigDataManage.h"
#include "../ReverseRoute/ReverseRouteConfigDataManage.h"
#include "../Section/AxisSectionConfigDataManage.h"
#include "../Section/LogicSectionConfigDataManage.h"
#include "../Section/PhysicalSectionConfigDataManage.h"
#include "../Overlap/OverlapConfigDataManage.h"
#include "../Signal/SignalConfigDataManage.h"
#include "../WashMachine/WashMachineConfigDataManage.h"
#include "../Switch/SwitchConfigDataManage.h"
#include "../System/SystemParameterManage.h"
#include "../System/CiSystemDefine.h"
#include "../Mask/MaskDefine.h"
#include "../Mask/MaskConfigDataManage.h"
#include "../Transmit/TransmitStateDataManage.h"
#include "../NonRoute/NonRouteConfigDataManage.h"
#include "../Route/LongRouteConfigDataManage.h"
#include "../Indicator/IndicatorConfigDataManage.h"
#include "../QueryFiles/dquCIInterFace.h"
#include "../DataManage/DeviceDataManage.h"
#include "../System/SystemConfigDefine.h"
#include "../Garagedoor/GaragedoorConfigDataManage.h"
#include "../spks/SpksConfigDataManage.h"
#include "../FloodGate/FloodGateConfigDataManage.h"
#include "../AllAutoReturn/AllAutoReturnConfigDataManage.h"
#include "../InvadeSection/InvadeSectionConfigDataManage.h"
#include "../InvadeSection/InvadeSectionDataManage.h"
#include "../DataManage/DeviceConfigDataManage.h"
#include "../PSC/PSCConfigDataManage.h"
#include "../Section/LinkConfigDataManage.h"
#include "../NonAutoReturn/NonAutoReturnConfigDataManage.h"
#include "../QueryFiles/dquCIReadCommonChar.h"
#include "../Indicator/IndicatorConfigDataManage.h"
#include "../CutoffPoint/CutoffPointConfigDataManage.h"
#include "../DiffLineDev/DiffLineDevConfigDataManage.h"
#include "../ParsePack/ParsePackCommon.h"
#include "../ParsePack/ParsePackVobcData.h"
#include "../ParsePack/ParsePackCiData.h"
#include "../Route/LongRouteConfigDataManage.h"
#include "../SGBJ/SGBJConfigDataManage.h"
#include "../VirtualDevice/VirtualDevDataManage.h"

extern INT16 trackCheckRes;
extern INT16 g_ret;

/*
 功能描述：	配置数据结构体统一初始化函数
 参数说明：	无
 返回值  ：	0u,初始化失败；1u初始化成功
 *cgh-合并CID-2539-6：
*/
UINT8 InitAllStaticDataStr(void);

/*
* 功能描述：	读入联锁配置文件
* 参数说明：	无
* 返回值  ：	0,读入成功
*				1,配置数据赋值失败
*               2,查询函数初始化失败
*               3,配置数据整理失败
*               4,联锁ID错误
*/
UINT8 ReadConfigureData(void);


/*
* 功能描述：	整理读入的设备配置数据
* 参数说明：	无
* 返回值  ：	0,整理成功
*				>0,整理失败
*/
UINT8 DeviceDataManage(void);
/*
* 功能描述： 获取指定自动进路ID和其他抵触自动进路数组
* 参数说明： UINT16 autoRouteRouteId指定自动进路ID   
* 返回值  ： CI_ERROR失败 CI_SUCCESS成功   
*/
UINT8 SetautoRouteOpposedRoute(UINT16 autoRouteRouteId,UINT8 routeType);

/*
* 功能描述： 判定指定ID的两条自动进路是否抵触
* 参数说明： UINT16 autoRouteRouteId指定自动进路ID   
			 UINT16 otherAutoRouteId另一自动进路ID
* 返回值  ： CI_ERROR: 不抵触
*			 CI_SUCCESS: 抵触      
*/
UINT8 AutoRouteIsOpposed(UINT16 autoRouteId,UINT8 routeType,UINT16 otherAutoRouteId,UINT8 otherRouteType);
/*
* 功能描述：	整理读入的相邻联锁ESB配置数据
* 参数说明：	logSecSum 逻辑区段数量
*				logSecIdBuff 相邻联锁发送给本联锁的逻辑区段ID配置数据
* 返回值  ：	
*/
UINT8 AddExtendAxisSecIdDataManage(AxisSectionConfigDataStruct* AxisSectionConfigStru, UINT16 physecSum,const UINT16 *physecIdBuff);

/*********************************************
*函数功能：读取信号机驱采类型颜色配置
*参数说明：void
*返回值：信号机驱采类型数量
*********************************************/
INT8 ReadSignalDrvTypeOpenColorCfg(void);

/*********************************************
*函数功能：照查继电器联锁条件检查结构体数组
*参数说明：无          
*返回值：-1，失败；0，成功
*********************************************/
INT8 ReadZhaochaCheckConfigData(void);

/*
*函数功能：判断本联锁的ZC数目
*参数说明：ciId联锁ID，  
*返回值：通信关系数
*/
UINT8 CheckCiHaveZcSumErr(const UINT8 ciId);

/*********************************************
*函数功能：初始化OC 联络线接口继电器配置表数据
*参数说明：void
*返回值：1，成功；0，失败
*********************************************/
UINT8 OcConnectConfigDataStructInit(void);

/*
* 功能描述： 将联络线接口继电器配置表数据初始化到对应设备
* 参数说明： SignalConfigDataStruct* pSignalCfgData 信号机结构体
*            PhysicalSectionConfigDataStruct* pPhyCfgData 物理区段结构体
*            SwitchConfigDataStruct* pSwitchCfgData 道岔结构体
*            OcConnetDataCfgStruct* pConnectCfgData 联络线数据结构体
*			 RelayConfigDataStruct* pRelayCfgData	继电器结构体
* 返回值  ： 0，成功；-1，失败
* NOTE：集成bug YF0083-224
*/
INT8 OcConnectConfigDataToDevStruct(SignalConfigDataStruct* pSignalCfgData, PhysicalSectionConfigDataStruct* pPhyCfgData, SwitchConfigDataStruct* pSwitchCfgData, OcConnetDataCfgStruct* pConnectCfgData, RelayConfigDataStruct* pRelayCfgData);

/*********************************************
*函数功能：获取静态数据
*参数说明：UINT32* pConfigDataAdderBuf 静态数据存放地址,UINT16 pConfigDataLenBuf 静态数据长度存放地址,UINT16 wBufMaxLen数组容量
*返回值：静态数据数量
*********************************************/
UINT16 GetTiocDeviceConfigData(UINT32* pConfigDataAddrBuf, UINT16* pConfigDataLenBuf, UINT16 wBufMaxLen);

/*********************************************
*函数功能：读取指定CI与指定设备通信关系配置数据
*参数说明：const UINT8 chCiId 联锁ID
*	       const UINT8 chSystemType 设备类型
*	       UINT8 szDeviceIdBuf[TRANSMIT_OBJECT_DEVICE_SUM_MAX] 输出的设备ID
*返回值：通信关系数
* by cgh 20250605
*********************************************/
UINT8 ReadCiTransmitSpecifyDevData(const UINT8 chCiId, const UINT8 chSystemType, UINT8 szDeviceIdBuf[TRANSMIT_OBJECT_DEVICE_SUM_MAX]);
#endif




