/********************************************************
*                                                                                                            
* 文 件 名： PSDDataManage.h   
* 版权说明： 北京交控科技有限公司 
* 创建时间： 2012-03-20
* 作    者： 联锁组
* 功能描述： 屏蔽门数据管理头文件  
* 函数包括：
* 使用注意：
* 修改记录：   
*
********************************************************/ 

#ifndef _PSD_DATA_MANAGE_H_
#define _PSD_DATA_MANAGE_H_


#include "PSDDefine.h"
#include "PSDConfigDataManage.h"
#include "../ERROR/ErrorDataManage.h"
#include "../ERROR/ErrorDefine.h"
#include "CommonTypes.h"
#include "../System/CiSystemDefine.h"
#include "../Relay/RelayConfigDataManage.h"

#ifdef __cplusplus
extern "C" {
#endif

/*屏蔽门数据结构体*/
typedef struct S_PsdDataStruct
{
    UINT16 PsdId;                 			/*屏蔽门ID (初始化字段)*/
	UINT16 psdEditGroupInfo;		/*屏蔽门编组信息(动态字段)*/
	UINT8 MutualLockRemoveState;  			/*互锁解除状态 (动态字段)*/
	UINT8 PsdState;               			/*屏蔽门状态 (动态字段)*/
	UINT8 DoorButtonState;                  /*再关门按钮状态(动态字段)*/
	UINT8 doorOpenButtonState;              /*站台开门按钮状态(动态字段)*/
	UINT8 doorDepartButtonState;            /*站台发车按钮状态(动态字段)*/
	UINT8 PsdButtonPangluState;             /*站台屏蔽门按钮旁路状态*/
	UINT8 PsdDriveState;          			/*屏蔽门驱动状态 (动态字段)*/

#if 0
	UINT8 PsdStateTransferFlag;   			/*屏蔽门状态转移标志（动态字段)*/
	UINT8 BuildedOutStationRouteSum;  										              /*办理出来的出站进路数目（动态字段）*/
	UINT16 BuildedOutStationRouteIdBuf[RALATED_OUT_STATION_ROUTE_SUM_MAX];                /*办理出来的出站进路ID数组（动态字段)*/
	UINT8 PsdOpenBeforeOutStationRouteIsBuildedFlagBuf[RALATED_OUT_STATION_ROUTE_SUM_MAX];/*办理出来的出站进路信号关闭是否在屏蔽门打开之前的标志数组 是:对应标志位 0xAA 否0x55*/
#endif

	UINT16 SrcVobcId;/*操作该屏蔽门的当前VOBC ID*/
	UINT8 PsdCmd;/*操作屏蔽门的命令*/
	/*UINT16 ClosedRouteId;*//*因VOBC打开PSD而关闭信号的进路*/
	/*UINT8 LastDriState;*//*历史驱动状态*/
	UINT32 CmdSetCycle;/*命令设置周期*/
	UINT32 CmdSetCyclePsc;/*命令设置周期*/
	UINT8 PsdRemoraState;  /*屏蔽门障碍物状态*/
	UINT8 JXTCMutualLockState; /*间隙探测互锁解除状态*/
	UINT32 StartDetectionCycNum; /*开启探测周期*/
	UINT8 StartDetectionState;   /*启动探测状态*/
	UINT8 StopDetectionState;    /*停止探测状态*/
	UINT8 VOBCDoorState;         /*VOBC车门状态*/
	UINT32 PCBPressCycNum; /*PCB按下起始周期*/
	UINT32 POBPressCycNum; /*POB按下起始周期*/
	UINT32 PSBPressCycNum; /*PSB按下起始周期*/
	UINT8  PscPlConfirmFlag; /*设置ATS确认旁路标志*/
	/*UINT16 ToBeOpenedRouteId;*//*需要被重开的进路*/
	UINT8 JXTCStartState;  /*脉冲接口间隙探测启动所处状态步骤*/
	UINT32 JXTCStartCycNum; /*脉冲接口间隙探测启动驱动开始周期*/
	UINT8 JXTCStopState;  /*脉冲接口间隙探测停止所处状态步骤*/
	UINT32 JXTCStopCycNum; /*脉冲接口间隙探测停止驱动开始周期*/
	UINT8 JXTCStartFlag; /*脉冲驱动启动标志*/
	UINT8 JXTCStopFlag;  /*脉冲驱动停止标志*/
	UINT8 PsdPreDriveState;          			/*屏蔽门上周期驱动状态 (动态字段)*/
	UINT32 psdDriveOpenStartNum;  /*PSD驱动开始周期*/
	UINT32 psdDriveCloseStartNum;  /*PSD驱动开始周期*/
	UINT8 clearPassengerFlag;		/*ATS是否发送清客标志*/
	UINT8 steadyLightFlag;         /*清客按钮指示灯稳灯标志*/
	UINT32 dwCleFarePCBPressCycNum;					 /*清客确认箱关门按钮按下起始周期*//*by cgh 20230526*/
	UINT8 chCleFarePCBButtonState;                  /*清客确认箱关门按钮状态(动态字段)*//*by cgh 20230526*/
	UINT8 chCleFarePCBButKeepState;                  /*清客确认箱关门按钮记忆状态(动态字段)*//*by cgh 20230529*/
	UINT8 chCleFarePDBFlaLigFlag;					/*清客确认箱PDB按钮指示灯闪灯标志*//*by cgh 20230529*/
	UINT8 chVideoQkDriveState;                      /*视频清客驱动状态 by cgh 20231214*/
	UINT16 wVideoQkRelateVobcId;                    /*视频清客对应列车ID by cgh 20231214*/
	UINT32 psdFaultQStataOne;   /*单扇门故障隔离信息前四个字节*/
	UINT32 psdFaultQStataTwo;   /*单扇门故障隔离信息后四个字节*/
	UINT32 psdDoorIStateOne;	/*单扇门被隔离信息前四字节*/
	UINT32 psdDoorIStateTwo;	/*单扇门被隔离信息后四字节*/
	UINT32 psdDoorsStateOne;    /*每扇屏蔽门的开关状态前四个字节*/
	UINT32 psdDoorsStateTwo;    /*每扇屏蔽门的开关状态后四个字节*/
	UINT8 psdOpenErrState;		/*开门故障状态*/
	UINT8 psdCloseErrState;		/*关门故障状态*/
	UINT8 cPsdExceptOpenState;  /*屏蔽门异常打开状态：0x55-异常打开，0xAA-未异常打开*/
	UINT32 dwPsdRelayDownCycNum; /*PSD门关继电器落下起始周期*/
} PsdDataStruct;

extern PsdDataStruct PsdDataStru[PSD_SUM_MAX];   /*定义屏蔽门数据结构体*/

/*
* 功能描述： 设置PSD的VOBC操作命令
* 参数说明： const UINT16 doorId,屏蔽门ID  
*			 const UINT16 vobcId,操作屏蔽门的VOBC ID
			 const UINT8 operCmd,来自VOBC的开关门命令
* 返回值  ： 无
*			   
*/
void SetPsdVobcCmd(const UINT16 doorId, const UINT16 vobcId,const UINT8 operCmd);
/*
* 功能描述： 获得PSD的VOBC控制命令
* 参数说明： const UINT16 doorId,屏蔽门ID  
* 返回值  ： PSD的VOBC控制命令
*/
UINT8 GetPsdVobcCmd(const UINT16 doorId);
/*
* 功能描述： 获得当前控制该PSD的VOBC的ID
* 参数说明： const UINT16 doorId,屏蔽门ID  
* 返回值  ： 控制该PSD的VOBC的ID;如果没有控制该PSD的VOBC,返回0
*/
UINT16 GetPsdVobcId(const UINT16 doorId);
/*
* 功能描述： 设置PSD的上一次的驱动状态
* 参数说明： const UINT16 doorId,屏蔽门ID
			 const UINT8 driSta,该PSD的驱动状态
* 返回值  ： 0: 设置失败
*			 1: 设置成功 
*/
#if 0
UINT8 SetPsdLastDriState(const UINT16 doorId,const UINT8 driSta);
/*
* 功能描述： 获得该PSD的上一次的驱动状态
* 参数说明： const UINT16 doorId,屏蔽门ID  
* 返回值  ： 该PSD的上一次的驱动状态
*/
UINT8 GetPsdLastDriState(const UINT16 doorId);

/*
* 功能描述： 设置因该PSD打开而导致始端信号关闭的进路ID
* 参数说明： const UINT16 doorId,屏蔽门ID  
*			 const UINT16 routeId,因该PSD打开而导致始端信号关闭的进路ID
* 返回值  ： 0: 设置失败
*			 1: 设置成功 
*/
UINT8 SetPsdClosedRouteId(const UINT16 doorId,const UINT16 routeId);
/*
* 功能描述： 获取因该PSD打开而导致始端信号关闭的进路ID
* 参数说明： const UINT16 doorId,屏蔽门ID  
* 返回值  ： 因该PSD打开而导致始端信号关闭的进路ID 
*/
UINT16 GetPsdClosedRouteId(const UINT16 doorId);
#endif

/*
* 功能描述： 获得该PSD的控制命令的设置周期
* 参数说明： const UINT16 doorId,屏蔽门ID
* 返回值  ： 该PSD的控制命令的设置周期
*/
UINT32 GetPsdCmdSetCycle(const UINT16 doorId);
/*
* 功能描述： 置对应PSD状态为默认态
* 参数说明： const UINT16 psdId,PSD ID
* 返回值  ： 无
*			   
*/
void ResetPsdData(const UINT16 psdId);

/*
* 功能描述： 获取指定ID屏蔽门数据
* 参数说明： 
* 返回值  ： PsdDataStruct *
*/
PsdDataStruct *GetPsdData(void);

/*
* 功能描述： 获取指定ID屏蔽门互锁解除状态
* 参数说明： const UINT16 doorId, 屏蔽门ID    
* 返回值  ： 0: 获取数据失败
*			>0: 互锁解除状态      
*/
UINT8 GetPsdMutualLockRemoveState(const UINT16 doorId);

/*
* 功能描述： 设置指定ID屏蔽门互锁解除状态
* 参数说明： const UINT16 doorId, 屏蔽门ID  
*			 const UINT8 mutualLockState, 互锁解除状态
* 返回值  ： 0: 设置失败
*			 1: 设置成功      
*/
UINT8 SetPsdMutualLockRemoveState(const UINT16 doorId, const UINT8 mutualLockState);

/*
* 功能描述： 获取指定ID屏蔽门状态
* 参数说明： const UINT16 doorId, 屏蔽门ID    
* 返回值  ： 0: 获取数据失败
*			>0: 屏蔽门状态      
*/
UINT8 GetPsdState(const UINT16 doorId);

/*
* 功能描述： 设置指定ID屏蔽门状态
* 参数说明： const UINT16 doorId, 屏蔽门ID
*			 const UINT8 doorState, 屏蔽门状态
* 返回值  ： 0: 设置失败
*			 1: 设置成功      
*/
UINT8 SetPsdState(const UINT16 doorId, const UINT8 doorState);

/*
* 功能描述： 获取指定ID屏蔽门按钮状态
* 参数说明： const UINT16 doorId, 屏蔽门ID    
* 返回值  ： 0: 获取数据失败
*			>0: 屏蔽门按钮状态      
*/
UINT8 GetPsdButtonState(const UINT16 doorId);

/*
* 功能描述： 设置指定ID屏蔽门按钮状态
* 参数说明： const UINT16 doorId, 屏蔽门ID
*			 const UINT8 buttonState, 屏蔽门按钮状态
* 返回值  ： 0: 设置失败
*			 1: 设置成功      
*/
UINT8 SetPsdButtonState(const UINT16 doorId, const UINT8 buttonState);


/*
* 功能描述： 获取指定ID屏蔽门驱动状态
* 参数说明： const UINT16 doorId, 屏蔽门ID    
* 返回值  ： 0: 获取数据失败
*			>0: 屏蔽门驱动状态      
*/
UINT8 GetPsdDriveState(const UINT16 doorId);

/*
* 功能描述： 设置指定ID屏蔽门驱动状态
* 参数说明： const UINT16 doorId, 屏蔽门ID
*			 const UINT8 doorDriveState, 屏蔽门驱动状态
* 返回值  ： 无
*			       
*/
void SetPsdDriveState(const UINT16 doorId, const UINT8 doorDriveState);
#if 0
/*
* 功能描述： 获取指定ID屏蔽门状态转移标志
* 参数说明： const UINT16 doorId, 屏蔽门ID    
* 返回值  ： 0: 获取数据失败
*			>0: 屏蔽门状态转移标志     
*/
UINT8 GetPsdStateTransferFlag(const UINT16 doorId);

/*
* 功能描述： 设置指定ID屏蔽门状态转移标志
* 参数说明： const UINT16 doorId, 屏蔽门ID
*			 const UINT8 PsdStateTransferFlag, 状态转移标志
* 返回值  ： 0: 设置失败
*			 1: 设置成功      
*/
UINT8 SetPsdStateTransferFlag(const UINT16 doorId, const UINT8 PsdStateTransferFlag);


/*
* 功能描述： 获取指定ID屏蔽门对应的办理成功的进路数目  
* 参数说明： const UINT16 doorId, 屏蔽门ID    
* 返回值  ： 0: 获取数据失败
*			>0: 屏蔽门开放导致信号关闭的进路数目   
*/
UINT8 GetBuildedOutStationRouteSum(const UINT16 doorId);

/*
* 功能描述： 设置指定ID屏蔽门对应的办理成功的进路数目
* 参数说明： const UINT16 doorId, 屏蔽门ID
*			 const UINT8 routeSum, 对应的办理成功的进路数目
* 返回值  ： 0: 设置失败
*			 1: 设置成功      
*/
UINT8 SetBuildedOutStationRouteSum(const UINT16 doorId,const UINT8 routeSum);

/*
* 功能描述： 获取指定ID屏蔽门对应的办理成功的进路Id数组
* 参数说明： const UINT16 doorId, 屏蔽门ID    
* 返回值  ： NULL: 获取数据失败
*			!NULL: 对应的办理成功的进路Id数组
*/
UINT16 * GetBuildedOutStationRouteIdBuf(const UINT16 doorId);

/*
* 功能描述： 获取出站进路信号关闭是否在指定ID屏蔽门打开之前的标志数组
* 参数说明： const UINT16 doorId, 屏蔽门ID    
* 返回值  ： NULL: 获取数据失败
*			!NULL: 出站进路信号关闭是否在指定ID屏蔽门打开之前的标志数组
*/
UINT8 * GetPsdOpenBeforeOutStationRouteIsBuildedFlagBuf(const UINT16 doorId);

/*
* 功能描述： 设置因VOBC关PSD而需要被重开的进路
* 参数说明： const UINT16 doorId,屏蔽门ID
*			 const UINT16 routeId,进路ID
* 返回值  ： 0: 设置失败
*			 1: 设置成功
*/
UINT8 SetPsdToBeOpenedRoute(const UINT16 doorId, const UINT16 routeId);

/*
* 功能描述： 获取因VOBC关PSD而需要被重开的进路
* 参数说明： const UINT16 doorId,屏蔽门ID
* 返回值  ： 0:  没有因VOBC关PSD而需要被重开的进路或是查找失败
*			 >0: 因VOBC关PSD而需要被重开的进路
*/
UINT16 GetPsdToBeOpenedRoute(const UINT16 doorId);
#endif
/*
* 功能描述： 获取PSD的障碍物状态
* 参数说明： const UINT16 doorId,屏蔽门ID
			 
* 返回值  ： 0: 获取失败
*			 >0: 获取成功 
*/
UINT8 GetPsdRemoraState(const UINT16 doorId);

/*
* 功能描述： 设置PSD的障碍物状态
* 参数说明： const UINT16 doorId,屏蔽门ID
			 const UINT8 driSta,该PSD的障碍物状态
* 返回值  ： 0: 设置失败
*			 1: 设置成功 
*/
UINT8 SetPsdRemoraState(const UINT16 doorId, const UINT8 remoraState);
/*
* 功能描述： 获取PSD的间隙探测互锁解除状态
* 参数说明： const UINT16 doorId,屏蔽门ID
			 
* 返回值  ： 0: 获取失败
*			 >0: 获取成功 
*/
UINT8 GetJXTCMutualLockState(const UINT16 doorId);
/*
* 功能描述： 设置PSD的障碍物状态
* 参数说明： const UINT16 doorId,屏蔽门ID
			 const UINT8 mutualLockState,该间隙探测互锁解除状态
* 返回值  ： 0: 设置失败
*			 1: 设置成功 
*/
UINT8 SetJXTCMutualLockState(const UINT16 doorId, const UINT8 mutualLockState);
/*
* 功能描述：设置指定PSD启动探测周期号
* 参数说明： const UINT16 doorId, 屏蔽门ID
*            const UINT32 startCycNum, 起始周期号
* 返回值  ： 无
*            
*/
void SetStartDetectionCycNum(const UINT16 doorId, const UINT32 startCycNum);
/*
* 功能描述： 获取指定ID进路信号开放起始周期号
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 选排起始周期号
*/
UINT32 GetStartDetectionCycNum(const UINT16 doorId);
/*
* 功能描述：设置开始启动探测状态
* 参数说明： const UINT16 doorId, 屏蔽门ID
*            const UINT32 detectionState, 启动状态
* 返回值  ： 无
*            
*/
void SetStartDetectionState(const UINT16 doorId, const UINT32 detectionState);
/*
* 功能描述： 获取开始启动探测状态
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 选排起始周期号
*/
UINT8 GetStartDetectionState(const UINT16 doorId);

/*
* 功能描述：设置停止探测状态
* 参数说明： const UINT16 doorId, 屏蔽门ID
*            const UINT32 detectionState, 停止探测状态
* 返回值  ： 无
*            
*/
void SetStopDetectionState(const UINT16 doorId, const UINT32 detectionState);

/*
* 功能描述： 获取停止探测状态
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 选排起始周期号
*/
UINT8 GetStopDetectionState(const UINT16 doorId);

/*
* 功能描述： 获取指定ID屏蔽门开门按钮状态
* 参数说明： const UINT16 doorId, 屏蔽门ID    
* 返回值  ： 0: 获取数据失败
*			>0: 屏蔽门开门按钮状态      
*/
UINT8 GetPsdOpenButtonState(const UINT16 doorId);

/*
* 功能描述： 设置指定ID屏蔽门开门按钮状态
* 参数说明： const UINT16 doorId, 屏蔽门ID
*			 const UINT8 buttonState, 屏蔽门开门按钮状态
* 返回值  ： 0: 设置失败
*			 1: 设置成功      
*/
UINT8 SetPsdOpenButtonState(const UINT16 doorId, const UINT8 buttonState);

/*
* 功能描述： 获取指定ID屏蔽门发车按钮状态
* 参数说明： const UINT16 doorId, 屏蔽门ID    
* 返回值  ： 0: 获取数据失败
*			>0: 屏蔽门发车按钮状态      
*/
UINT8 GetPsdDepartButtonState(const UINT16 doorId);

/*
* 功能描述： 设置指定ID屏蔽门发车按钮状态
* 参数说明： const UINT16 doorId, 屏蔽门ID
*			 const UINT8 buttonState, 屏蔽门发车按钮状态
* 返回值  ： 0: 设置失败
*			 1: 设置成功      
*/
UINT8 SetPsdDepartButtonState(const UINT16 doorId, const UINT8 buttonState);

/*
* 功能描述：设置指定ID屏蔽门PCB按下起始周期号
* 参数说明： const UINT16 doorId, 屏蔽门ID
*            const UINT32 startCycNum, 起始周期号
* 返回值  ： 0: 设置数据失败
*           >0: 设置数据成功
*/
UINT8 SetPCBPressCycNum(const UINT16 doorId, const UINT32 startCycNum);
/*
* 功能描述： 获取指定ID屏蔽门PCB按下起始周期号
* 参数说明： const UINT16 doorId，屏蔽门ID
* 返回值  ： 0: 获取数据失败
*           >0: 起始周期号
*/
UINT32 GetPCBPressCycNum(const UINT16 doorId);

/*
* 功能描述：设置指定ID屏蔽门POB按下起始周期号
* 参数说明： const UINT16 doorId, 屏蔽门ID
*            const UINT32 startCycNum, 起始周期号
* 返回值  ： 0: 设置数据失败
*           >0: 设置数据成功
*/
UINT8 SetPOBPressCycNum(const UINT16 doorId, const UINT32 startCycNum);
/*
* 功能描述： 获取指定ID屏蔽门POB按下起始周期号
* 参数说明： const UINT16 doorId，屏蔽门ID
* 返回值  ： 0: 获取数据失败
*           >0: 起始周期号
*/
UINT32 GetPOBPressCycNum(const UINT16 doorId);

/*
* 功能描述：设置指定ID屏蔽门PSB按下起始周期号
* 参数说明： const UINT16 doorId, 屏蔽门ID
*            const UINT32 startCycNum, 起始周期号
* 返回值  ： 0: 设置数据失败
*           >0: 设置数据成功
*/
UINT8 SetPSBPressCycNum(const UINT16 doorId, const UINT32 startCycNum);
/*
* 功能描述： 获取指定ID屏蔽门PSB按下起始周期号
* 参数说明： const UINT16 doorId，屏蔽门ID
* 返回值  ： 0: 获取数据失败
*           >0: 起始周期号
*/
UINT32 GetPSBPressCycNum(const UINT16 doorId);
/*
* 功能描述： 设置指定ID屏蔽门按钮旁路状态
* 参数说明： const UINT16 doorId, 屏蔽门ID
*            UINT8 setFlag  需设置的按钮旁路状态
* 返回值  ： PSD_BUTTON_PANGLU_STATE_VALID    0x55  有效
*            PSD_BUTTON_PANGLU_STATE_INVALID  0xaa  无效
*/
UINT8 SetPsdButtonPangluState(const UINT16 doorId, const UINT8 setFlag);
/*
* 功能描述： 获取指定ID屏蔽门按钮旁路状态
* 参数说明： const UINT16 doorId, 屏蔽门ID   
* 返回值  ：0: 获取数据失败
*			>0: 站台安全门按钮旁路状态
*/
UINT8 GetPsdButtonPangluState(const UINT16 doorId);

/*
* 功能描述： 获取指定ID屏蔽门间隙探测互锁解除继电器ID
* 参数说明： const UINT16 doorId, 屏蔽门ID    
* 返回值  ： 0: 获取数据失败
*			>0: 间隙探测互锁解除继电器ID      
*/
UINT16 GetPsdEditGroupInfoFromPsdData(const UINT16 doorId);

/*
* 功能描述：设置VOBC2CI车门状态信息
* 参数说明： const UINT16 doorId, 屏蔽门ID
*            const UINT32 doorState, 车门状态
* 返回值  ： 无
*           
*/
void SetVOBCDoorState(const UINT16 doorId, const UINT32 doorState);

/*
* 功能描述： 获取VOBC2CI车门状态信息
* 参数说明： const UINT16 doorId, 屏蔽门ID
* 返回值  ： UINT8,车门状态信息
*			0: 获取车门状态信息失败
*			>0: 获取车门状态信息成功      
*/
UINT8 GetVOBCDoorState(const UINT16 doorId);

/*
* 功能描述： 获取指定ID屏蔽门Psc周期
* 参数说明： const UINT16 doorId, 屏蔽门ID    
* 返回值  ： 0: 获取数据失败
*			>0: 屏蔽门命令设置周期 
*/
UINT32 GetPsdCmdCyclePsc(const UINT16 doorId);

/*
* 功能描述： 设置指定ID屏蔽门状态
* 参数说明： const UINT16 doorId, 屏蔽门ID
*			 const UINT8 doorState, 屏蔽门命令设置周期
* 返回值  ： 0: 设置失败
*			 1: 设置成功      
*/
UINT8 SetPsdCmdCyclePsc(const UINT16 doorId, const UINT32 doorCycle);

/*
* 功能描述： 设置指定ID屏蔽门旁路标志
* 参数说明： const UINT16 doorId, 屏蔽门ID
*            const UINT8 setFlag, 屏蔽门旁路设置状态
* 返回值  ：无
*			       
*/

void SetPsdConfirmFlag(const UINT16 doorId,const UINT8 setFlag);

/*
* 功能描述： 获取指定ID屏蔽门旁路标志
* 参数说明： const UINT16 doorId, 屏蔽门ID
*            
* 返回值  ： 0: 获取失败
*			 >0: 获取成功      
*/
UINT8 GetPsdPlFlag(const UINT16 doorId);

/*
* 功能描述： PSC同时与另一联锁通信时，PSC旁路命令处理
* 参数说明： UINT8 psdId psd ID
*            UINT16 pscId psc设备ID 
*            UINT8 setFlag,设置标志
* 返回值  ：无
*/
void SetNearCiPscPlFlag(const UINT16 psdId,const UINT16 pscId,const UINT8 setFlag);

/*
* 功能描述： 设置间隙探测启动继电器吸起周期
* 参数说明： UINT16 psdId 屏蔽门ID
*            UINT32 cycNum 设置周期
* 返回值  ： 无
*			    
*/
void SetJXTCStartUpCycNum(UINT16 psdId, UINT32 cycNum);

/*
* 功能描述： 获取间隙探测启动继电器吸起周期
* 参数说明： UINT16 psdId 屏蔽门ID
*            
* 返回值  ：0：返回错误
*           大于0：开始周期
*			    
*/
UINT32 GetJXTCStartUpCycNum(UINT16 psdId);

/*
* 功能描述： 设置启动间隙探测跳转状态
* 参数说明： UINT16 psdId 屏蔽门ID
*            
* 返回值  ：无
*			    
*/
void SetJXTCStartState(UINT16 psdId, UINT8 jxtcState);

/*
* 功能描述： 获取启动间隙探测所处状态步骤
* 参数说明： UINT16 psdId 屏蔽门ID
*            
* 返回值  ：0：返回错误
*           大于0：间隙探测所处步骤
*			    
*/
UINT8 GetJXTCStartState(UINT16 psdId);

/*
* 功能描述： 设置间隙探测停止继电器吸起周期
* 参数说明： UINT16 psdId 屏蔽门ID
*            UINT32 cycNum 设置周期
* 返回值  ： 无
*			    
*/
void SetJXTCStopUpCycNum(UINT16 psdId, UINT32 cycNum);

/*
* 功能描述： 获取间隙探测停止继电器吸起周期
* 参数说明： UINT16 psdId 屏蔽门ID
*            
* 返回值  ：0：返回错误
*           大于0：开始周期
*			    
*/
UINT32 GetJXTCStopUpCycNum(UINT16 psdId);

/*
* 功能描述： 设置停止间隙探测跳转状态
* 参数说明： UINT16 psdId 屏蔽门ID
*            
* 返回值  ：无
*			    
*/
void SetJXTCStopState(UINT16 psdId, UINT8 jxtcState);

/*
* 功能描述： 获取停止间隙探测所处状态步骤
* 参数说明： UINT16 psdId 屏蔽门ID
*            
* 返回值  ：0：返回错误
*           大于0：间隙探测所处步骤
*			    
*/
UINT8 GetJXTCStopState(UINT16 psdId);

/*
* 功能描述： 设置间隙探测驱动启动标志
* 参数说明： UINT16 psdId 屏蔽门ID
*            UINT8 jxtcDriveFlag 间隙探测驱动启动标志
* 返回值  ：无
*			    
*/
void SetJXTCDriveStartFlag(UINT16 psdId, UINT8 jxtcDriveFlag);

/*
* 功能描述： 获取间隙探测驱动启动标志
* 参数说明： UINT16 psdId 屏蔽门ID
*            
* 返回值  ：0：返回错误
*           大于0：间隙探测驱动启动标志
*			    
*/
UINT8 GetJXTCDriveStartFlag(UINT16 psdId);

/*
* 功能描述： 设置间隙探测驱动停止标志
* 参数说明： UINT16 psdId 屏蔽门ID
*            UINT8 jxtcDriveFlag 间隙探测驱动停止标志
* 返回值  ：无
*			    
*/
void SetJXTCDriveStopFlag(UINT16 psdId, UINT8 jxtcDriveFlag);

/*
* 功能描述： 获取间隙探测驱动停止标志
* 参数说明： UINT16 psdId 屏蔽门ID
*            
* 返回值  ：0：返回错误
*           大于0：间隙探测驱动停止标志
*			    
*/
UINT8 GetJXTCDriveStopFlag(UINT16 psdId);

/*
* 功能描述： 获取指定ID屏蔽门上周期驱动状态
* 参数说明： const UINT16 doorId, 屏蔽门ID    
* 返回值  ： 0: 获取数据失败
*			>0: 屏蔽门驱动状态      
*/
UINT8 GetPsdPreDriveState(const UINT16 doorId);

/*
* 功能描述： 设置指定ID屏蔽门上周期驱动状态
* 参数说明： const UINT16 doorId, 屏蔽门ID
*			 const UINT8 doorDriveState, 屏蔽门驱动状态
* 返回值  ： void     
*/
void SetPsdPreDriveState(const UINT16 doorId, const UINT8 doorDriveState);

/*
* 功能描述： 设置屏蔽门驱动开门开始周期
* 参数说明： UINT16 psdId 屏蔽门ID
*            UINT32 cycNum 设置周期
* 返回值  ： 无
* cgh-合并CID-2349-4：
*
*/
void SetPsdDriveOpenStartCycNum(UINT16 psdId, UINT32 cycNum);

/*
* 功能描述： 获取psd驱动开门开始周期
* 参数说明： UINT16 psdId 屏蔽门ID
*
* 返回值  ：0：返回错误
*           大于0：开始周期
*cgh-合并CID-2349-4：
*/
UINT32 GetPsdDriveOpenStartCycNum(UINT16 psdId);

/*
* 功能描述： 设置屏蔽门驱动关闭开始周期
* 参数说明： UINT16 psdId 屏蔽门ID
*            UINT32 cycNum 设置周期
* 返回值  ： 无
* cgh-合并CID-2349-4：
*
*/
void SetPsdDriveCloseStartCycNum(UINT16 psdId, UINT32 cycNum);

/*
* 功能描述： 获取psd驱动关闭开始周期
* 参数说明： UINT16 psdId 屏蔽门ID
*
* 返回值  ：0：返回错误
*           大于0：开始周期
* cgh-合并CID-2349-4：
*
*/
UINT32 GetPsdDriveCloseStartCycNum(UINT16 psdId);

/*
* 功能描述： 获取清客标志
* 参数说明： const UINT16 doorId, 屏蔽门ID
* 返回值  ： 0: 获取数据失败
*			>0: 屏蔽门状态
* cgh-合并CID-2349-4：
*/
UINT8 GetClearPassenagerFlag(const UINT16 doorId);

/*
* 功能描述： 设置清客标志
* 参数说明： UINT16 psdId 屏蔽门ID
*            UINT8 clearPassenagerFlag 清客标志
* 返回值  ： 无
* cgh-合并CID-2349-4：
*
*/
void SetClearPassenagerFlag(const UINT16 psdId, UINT8 clearPassenagerFlag);

/*
* 功能描述： 获取清客按钮是否已驱过稳灯标志
* 参数说明： const UINT16 doorId, 屏蔽门ID
* 返回值  ： 0: 获取数据失败
*			>0: 屏蔽门状态
* cgh-合并CID-2349-4：
*/
UINT8 GetSteadyLightFlag(const UINT16 doorId);

/*
* 功能描述： 设置清客按钮已驱过稳灯标志
* 参数说明： UINT16 psdId 屏蔽门ID
*            UINT8 clearPassenagerFlag 清客标志
* 返回值  ： 无
* cgh-合并CID-2349-4：
*
*/
void SetSteadyLightFlag(const UINT16 psdId, UINT8 steadyLightFlag);

/*
* 功能描述：设置指定ID屏蔽门清客确认箱PCB按下起始周期号
* 参数说明： const UINT16 doorId, 屏蔽门ID
*            const UINT32 startCycNum, 起始周期号
* 返回值  ： 0: 设置数据失败
*           >0: 设置数据成功
* 增加：by cgh 20230526
*/
UINT8 SetCleFarePCBPressCycNum(const UINT16 doorId, const UINT32 startCycNum);
/*
* 功能描述： 获取指定ID屏蔽门清客确认箱PCB按下起始周期号
* 参数说明： const UINT16 doorId，屏蔽门ID
* 返回值  ： 0: 获取数据失败
*           >0: 起始周期号
*增加： by cgh 20230526
*/
UINT32 GetCleFarePCBPressCycNum(const UINT16 doorId);
/*
* 功能描述： 获取指定ID屏蔽门清客确认箱PCB按钮状态
* 参数说明： const UINT16 doorId, 屏蔽门ID
* 返回值  ： 0: 获取数据失败
*			>0: 屏蔽门按钮状态
* * 增加：by cgh 20230526
*/
UINT8 GetCleFarePCBButtonState(const UINT16 doorId);

/*
* 功能描述： 设置指定ID屏蔽门清客确认箱PCB按钮状态
* 参数说明： const UINT16 doorId, 屏蔽门ID
*			 const UINT8 buttonState, 屏蔽门按钮状态
* 返回值  ： 0: 设置失败
*			 1: 设置成功
* * 增加：by cgh 20230526
*/
UINT8 SetCleFarePCBButtonState(const UINT16 doorId, const UINT8 buttonState);

/*
* 功能描述： 获取指定ID屏蔽门清客确认箱PCB按钮记忆状态
* 参数说明： const UINT16 doorId, 屏蔽门ID
* 返回值  ： 0: 获取数据失败
*			>0: 屏蔽门按钮记忆状态
* * 增加：by cgh 20230526
*/
UINT8 GetCleFarePCBButKeepState(const UINT16 doorId);
/*
* 功能描述： 设置指定ID屏蔽门清客确认箱PCB按钮记忆状态
* 参数说明： const UINT16 doorId, 屏蔽门ID
*			 const UINT8 buttonState, 屏蔽门按钮记忆状态
* 返回值  ： 0: 设置失败
*			 1: 设置成功
* * 增加：by cgh 20230526
*/
UINT8 SetCleFarePCBButKeepState(const UINT16 doorId, const UINT8 buttonState);

/*
* 功能描述： 设置指定ID屏蔽门清客确认箱PDB按钮指示灯闪灯标志
* 参数说明： const UINT16 doorId, 屏蔽门ID
*			 const UINT8 buttonState, 清客确认箱PDB按钮指示灯闪灯标志
* 返回值  ： 0: 设置失败
*			 1: 设置成功
* * 增加：by cgh 20230529
*/
UINT8 SetCleFarePDBFlaLigFlag(const UINT16 doorId, const UINT8 buttonState);

/*
* 功能描述： 获取指定ID屏蔽门清客确认箱PDB按钮指示灯闪灯标志
* 参数说明： const UINT16 doorId, 屏蔽门ID
* 返回值  ： 0: 获取数据失败
*			>0: 清客确认箱PDB按钮指示灯闪灯标志
* * 增加：by cgh 20230529
*/
UINT8 GetCleFarePDBFlaLigFlag(const UINT16 doorId);

/*
* 功能描述： 设置本联锁所有屏蔽门清客确认箱PCB按钮记忆状态
* 参数说明： const UINT16 wOcId  OC ID
			const UINT8 buttonState, 屏蔽门按钮记忆状态
* 返回值  ： 无
* * 增加：by cgh 20230605
*/
void SetAllCleFarePCBButKeepSta(const UINT16 wOcId, const UINT8 buttonState);

/*
* 功能描述： 设置指定ID屏蔽门视频清客驱动状态
* 参数说明： const UINT16 wPsdId, 屏蔽门ID
*			 const UINT8 chSetState, 屏蔽门视频清客驱动状态
* 返回值  ： 无
* 增加：by cgh 20231214
*/
void SetPsdVideoQkDriveState(const UINT16 wPsdId, const UINT8 chSetState);

/*
* 功能描述： 获取指定ID屏蔽门视频清客驱动状态
* 参数说明： const UINT16 wPsdId, 屏蔽门ID
* 返回值  ： 0: 获取数据失败
*			>0: 屏蔽门视频清客驱动状态
* * 增加：by cgh 20231214
*/
UINT8 GePsdVideoQkDriveState(const UINT16 wPsdId);

/*
* 功能描述： 设置指定ID屏蔽门视频清客关联VOBC ID
* 参数说明： const UINT16 wPsdId, 屏蔽门ID
*			 const UINT16 wVobcId, 屏蔽门视频清客关联VOBC ID
* 返回值  ：无
* 增加：by cgh 20231214
*/
void SetPsdVideoQkRelateVobcId(const UINT16 wPsdId, const UINT16 wVobcId);

/*
* 功能描述： 获取指定ID屏蔽门视频清客关联VOBC ID
* 参数说明： const UINT16 wPsdId, 屏蔽门ID
* 返回值  ： 0: 获取数据失败
*			>0: 屏蔽门视频清客驱动状态
* * 增加：by cgh 20231214
*/
UINT16 GePsdVideoQkRelateVobcId(const UINT16 wPsdId);

/*
* 功能描述：设置指定ID屏蔽门异常打开状态
* 参数说明：const UINT16 wPsdId 屏蔽门ID
*			const UINT8 cExceptOpenState 屏蔽门异常打开状态
* 返 回 值：无
* Created By LQ 2025.05.22
*/
void SetPsdExceptOpenState(const UINT16 wPsdId, const UINT8 cExceptOpenState);

/*
* 功能描述：获取指定ID屏蔽门异常打开状态
* 参数说明：const UINT16 wPsdId 屏蔽门ID
* 返 回 值：0x55 异常打开
*           0xAA 未异常打开
* Created By LQ 2025.05.22
*/
UINT8 GePsdExceptOpenState(const UINT16 wPsdId);

/*
* 功能描述： 设置指定ID屏蔽门故障隔离信息
* 参数说明： const UINT16 doorId, 屏蔽门ID
*			 const UINT32 faultQStateOne, 故障隔离信息高四字节
* *			 const UINT32 faultQStateTwo, 故障隔离信息低四字节
* 返回值  ： 无
*/
void SetPsdFaultQState(const UINT16 doorId, const UINT32 faultQStateOne, const UINT32 faultQStateTwo);

/*
* 功能描述： 获取指定ID屏蔽门故障隔离信息
* 参数说明： const UINT16 doorId, 屏蔽门ID
*			 UINT8 psdFlag,前四个字节还是后四个字节(0u为高四个字节，1u为低四个字节)
* 返回值  ： 0: 获取数据失败
*			>0: 屏蔽门故障隔离信息
*/
UINT32 GetPsdFaultQState(const UINT16 doorId, UINT8 psdFlag);

/*
* 功能描述： 设置指定ID屏蔽门被隔离信息
* 参数说明： const UINT16 doorId, 屏蔽门ID
*			 const UINT32 doorsIStateOne, 被隔离信息高四字节
* *			 const UINT32 doorsIStateTwo, 被隔离信息低四字节
* 返回值  ： 无
*/
void SetPsdDoorIState(const UINT16 doorId, const UINT32 doorsIStateOne, const UINT32 doorsIStateTwo);

/*
* 功能描述： 获取指定ID屏蔽门被隔离信息
* 参数说明： const UINT16 doorId, 屏蔽门ID
*			 UINT8 psdFlag,前四个字节还是后四个字节(0u为高四个字节，1u为低四个字节)
* 返回值  ： 0: 获取数据失败
*			>0: 屏蔽门被隔离信息
*/
UINT32 GetPsdDoorIState(const UINT16 doorId, UINT8 psdFlag);

/*
* 功能描述： 设置指定ID屏蔽门，单扇门开关状态
* 参数说明： const UINT16 doorId, 屏蔽门ID
*			 const UINT32 doorStateOne, 单扇门开关状态高四字节
* *			 const UINT32 doorStateTwo, 单扇门开关状态低四字节
* 返回值  ： 无
*/
void SetPsdDoorState(const UINT16 doorId, const UINT32 doorStateOne, const UINT32 doorStateTwo);

/*
* 功能描述： 获取指定ID屏蔽门,单扇门开关状态
* 参数说明： const UINT16 doorId, 屏蔽门ID
*			 UINT8 psdFlag,前四个字节还是后四个字节(0u为高四个字节，1u为低四个字节)
* 返回值  ： 0: 获取数据失败
*			>0: 屏蔽门单扇门开关状态
*/
UINT32 GetPsdDoorState(const UINT16 doorId, UINT8 psdFlag);


/*
* 功能描述： 设置指定ID开门故障状态
* 参数说明： const UINT16 doorId, 屏蔽门ID
*			 const UINT8 openErrState,开门故障状态
* 返回值  ： 无
*/
void SetOpenErrState(const UINT16 doorId, const UINT8 openErrState);

/*
* 功能描述： 设置指定ID关门故障状态
* 参数说明： const UINT16 doorId, 屏蔽门ID
*			 const UINT8 closeErrState,关门故障状态
* 返回值  ： 无
*/
void SetCloseErrState(const UINT16 doorId, const UINT8 closeErrState);

/*
* 功能描述： 获取指定ID开门故障状态
* 参数说明： const UINT16 doorId, 屏蔽门ID
* 返回值  ： UINT8 开门故障状态
*/
UINT8 GetOpenErrState(const UINT16 doorId);

/*
* 功能描述： 获取指定ID关门故障状态
* 参数说明： const UINT16 doorId, 屏蔽门ID
* 返回值  ： UINT8 关门故障状态
*/
UINT8 GetCloseErrState(const UINT16 doorId);

/*
* 功能描述：获取指定ID屏蔽门门关继电器落下起始周期号
* 参数说明：const UINT16 doorId  屏蔽门ID
* 返 回 值：门开继电器落下起始周期号
* Created By LQ 2025.06.26
*/
UINT32 GetPsdRelayDownCycNum(const UINT16 doorId);

/*
* 功能描述：设置指定ID屏蔽门门关继电器落下起始周期号
* 参数说明：const UINT16 doorId  屏蔽门ID
*           const UINT32 startCycNum  起始周期号
* 返 回 值：无
* Created By LQ 2025.06.26
*/
void SetPsdRelayDownCycNum(const UINT16 doorId, const UINT32 startCycNum);

#ifdef __cplusplus
}
#endif

#endif
