/******************************************************************************
** 文件名:  WLScreen\WLScreenDataManage.h
** 描 述:   全线免筛功能据管理区
*******************************************************************************/
#ifndef WLS_SCREEN_DATA_MANAGE_H_
#define WLS_SCREEN_DATA_MANAGE_H_

#include "WholeLineScreenDefine.h"

/**
 * @brief 设置发送免筛序列号
 * @param[in] UINT32 seq 免筛序列号
 * @param[out] 无
 * @return 无
 * @note 无
 */
void wls_SetSendSeq(UINT32 seq);

/**
 * @brief 获取发送免筛序列号
 * @param[in] 无
 * @param[out] 无
 * @return UINT32 发送免筛序列号
 * @note 
 */
UINT32 wls_GetSendSeq(void);

/**
 * @brief 设置接收免筛序列号
 * @param[in] UINT32 seq 免筛序列号
 * @param[out] 无
 * @return 无
 * @note 无
 */
void wls_SetRecvSeq(UINT32 seq);

/**
 * @brief 获取接收免筛序列号
 * @param[in] 无
 * @param[out] 无
 * @return UINT32 接收免筛序列号
 * @note 
 */
UINT32 wls_GetRecvSeq(void);

/**
 * @brief 设置全线免筛可执行标志
 * @param[in] UINT8 全线免筛可执行标志
 * @param[out] 无
 * @return 无
 * @note 
 */
void wls_SetWLScreenProcessFlag(UINT8 flag);

/**
 * @brief 获取全线免筛可执行标志
 * @param[in] 无
 * @param[out] 无
 * @return UINT8 全线免筛可执行标志
 * @note 
 */
UINT8 wls_GetWLScreenProcessFlag(void);


/**
 * @brief 设置TMC全线免筛标志
 * @param[in] UINT8 TMC全线免筛标志
 * @param[out] 无
 * @return CI_SUCCESS 成功；CI_ERROR 失败
 * @note 
 */
UINT8 wls_SetWLScreenVaildFlag(UINT8 flag);

/**
 * @brief 获取TMC全线免筛标志
 * @param[in] 无
 * @param[out] 无
 * @return UINT8 TMC全线免筛标志
 * @note 
 */
UINT8 wls_GetWLScreenVaildFlag(void);

/**
 * @brief 设置是否存在隐藏车标志
 * @param[in] UINT8 是否存在隐藏车标志
 * @param[out] 无
 * @return CI_SUCCESS 成功；CI_ERROR 失败
 * @note 
 */
UINT8 wls_SetUTFlag(UINT8 flag);

/**
 * @brief 获取是否存在隐藏车标志
 * @param[in] 无
 * @param[out] 无
 * @return UINT8 是否存在隐藏车标志
 * @note 
 */
UINT8 wls_GetUTFlag(void);

/**
 * @brief 设置入口检测标志
 * @param[in] UINT8 入口检测标志 
 * @param[out] 无
 * @return CI_SUCCESS 成功；CI_ERROR 失败
 * @note 
 */
UINT8 wls_SetEnterCheckFlag(UINT8 flag);

/**
 * @brief 获取入口检测标志
 * @param[in] 无
 * @param[out] 无
 * @return UINT8 入口检测标志
 * @note 
 */
UINT8 wls_GetEnterCheckFlag(void);

/**
* @brief 设置UT计轴信息同步
* @param[in] UINT32 dwRedunTime 冗余计时, UINT8 chUTACCnt UT计轴数目, const UINT16 *arrayUTACId 计轴Id
* @param[out] 无
* @return CI_SUCCESS 成功；CI_ERROR 失败
* @note;
*/
UINT8 wls_SetUTACInfo(UINT32 dwRedunTime, UINT8 chUTACCnt, const UINT16 *arrayUTACId);
/**
 * @brief 设置上周期列车状态信息
 * @param[in] UINT16 trainID 列车ID
 * @param[in] const WLTrainStatusInfoStruct *pInfo 列车状态信息
 * @param[out] 无
 * @return  CI_SUCCESS 成功；CI_ERROR 失败
 * @note 无
 */
UINT8 wls_SetLastTrainStatusInfo(UINT16 trainID, const WLTrainStatusInfoStruct *pInfo);

/**
 * @brief 获取上周期列车状态信息
 * @param[in] UINT16 trainID 列车ID
 * @param[out] 无
 * @return const WLTrainStatusInfoStruct* 列车状态信息指针
 * @note 
 */
const WLTrainStatusInfoStruct* wls_GetLastTrainStatusInfo(UINT16 trainID);

/**
 * @brief 设置当前周期列车状态信息
 * @param[in] UINT16 trainID 列车ID
 * @param[in] const WLTrainStatusInfoStruct *pInfo 列车状态信息
 * @param[out] 无
 * @return  CI_SUCCESS 成功；CI_ERROR 失败
 * @note 无
 */
UINT8 wls_SetCurTrainStatusInfo(UINT16 trainID, const WLTrainStatusInfoStruct *pInfo);

/**
 * @brief 获取当前周期列车状态信息
 * @param[in] UINT16 trainID 列车ID
 * @param[out] 无
 * @return const WLTrainStatusInfoStruct* 列车状态信息指针
 * @note 
 */
const WLTrainStatusInfoStruct* wls_GetCurTrainStatusInfo(UINT16 trainID);


/**
 * @brief 设置全线免筛信息
 * @param[in] const WLSreenInfoStruct* pInfo 全线免筛信息
 * @param[out] 无
 * @return CI_SUCCESS 设置成功；CI_ERROR 设置失败
 * @note 无
 */
UINT8 wls_SetWholeLineScreeInfo(IN const WLSreenInfoStruct* pInfo);


/**
 * @brief 获取全线免筛信息
 * @param[in] 无
 * @param[out] 无
 * @return 全线免筛静态信息结构体指针
 * @note 无
 */
const WLSreenInfoStruct* wls_GetWholeLineScreeInfo(void);


/**
 * @brief 设置UT计轴数量
 * @param[in] UINT8 cnt UT计轴数量
 * @param[out] 无
 * @return CI_SUCCESS 设置成功；CI_ERROR 设置失败
 * @note 无
 */
UINT8 wls_SetUTACCnt(UINT8 cnt);


/**
 * @brief 获取UT计轴数量
 * @param[in] 
 * @param[out]
 * @return 0~MAX_UT_AC_CNT-1 合法值；MAX_UT_AC_CNT 非法值
 * @note 无
 */
UINT8 wls_GetUTACCnt(void);


/**
 * @brief 设置UT计轴ID存储
 * @param[in] UINT8 index 缓存下标
 * @param[in] UINT16 acID 计轴ID
 * @param[out] 无
 * @return CI_SUCCESS 设置成功；CI_ERROR 设置失败
 * @note 无
 */
UINT8 wls_SetUTACId(UINT8 index,UINT16 acID);


/**
 * @brief 获取下标对应的UT计轴
 * @param[in] UINT8 index 缓存下标
 * @param[out] 无
 * @return 计轴ID
 * @note 无
 */
UINT16 wls_GetUTACId(UINT8 index);

/**
 * @brief 累加冗余计时
 * @param[in] UINT32 maxValue 冗余计时最大值
 * @param[out] 无
 * @return 无
 * @note 无
 */
void wls_AddRedunTime(UINT32 maxValue);

/**
 * @brief 设置冗余计时
 * @param[in] UINT32 mValue 冗余计时值
 * @param[in] UINT32 maxValue 冗余计时最大值
 * @param[out] 无
 * @return 无
 * @note 无
 */
void wls_SetRedunTime(UINT32 mValue,UINT32 maxValue);

#endif












