/******************************************************************************
** 文件名:  RRMDefine.h
** 描 述:   远程RM模块简称rrm
*******************************************************************************/
#ifndef RRM_DEFINE_H_
#define RRM_DEFINE_H_
#include "EnvelopeDefine.h"
#include "SectionDefine.h"

#define RRM_CHECK_VALID 0x55u          /* 需要继续检查 */
#define RRM_CHECK_UNVALID 0xaau        /* 不需要继续检查 */


#define MAX_OBS_IN_RRM_PATH 50U   /** RRM路径中包含的障碍物信息 */
#define MAX_AC_IN_RRM_PATH 40U    /** RRM路径中包含的计轴数量 */
#define MAX_LINK_IN_RRM_PATH (MAX_AC_IN_RRM_PATH * AXIS_INCLUDE_LINK_SUM_MAX)    /** RRM路径中包含的link数量 */
#define MAX_SEC_IN_RRM_PATh (AXIS_INCLUDE_LOG_SUM_MAX * MAX_AC_IN_RRM_PATH)     /** RRM路径中包含的逻辑区段数量 */

#define TYPE_OF_PATH_A  0x01u  /** 包络占压的区段 */
#define TYPE_OF_PATH_B  0x02u  /** 包络头前方/分界点到下一站台之间的区段 */
#define TYPE_OF_PATH_C  0x03u  /** 下一站台前方计轴区段*/

#define SEC_LOCK_OK  0x55u   /** 区段锁闭*/
#define SEC_LOCK_ERROR  0xaau   /** 区段未锁闭*/

#define DIR_CHANGE 0x55u   /** 存在方向变化点 */
#define DIR_UNCHANGE 0xaa  /** 不存在方向变化点 */


/** 路径中包含的计轴区段序列*/
typedef struct  
{
	UINT16 acCnt;
	UINT8 pathType[MAX_AC_IN_RRM_PATH];
	UINT8 runDir[MAX_AC_IN_RRM_PATH];
	UINT16 ACID[MAX_AC_IN_RRM_PATH];
}RRMPathOfACSeqStruct;

/** 路径中包含的Link序列*/
typedef struct  
{
	UINT16 linkCnt;
	UINT8 pathType[MAX_LINK_IN_RRM_PATH];
	UINT8 runDir[MAX_LINK_IN_RRM_PATH];
	UINT16 LinkID[MAX_LINK_IN_RRM_PATH];
}RRMPathOfLinkSeqStruct;

/** 路径中包含的逻辑区段序列*/
typedef struct  
{
	UINT16 secCnt;
	UINT8 pathType[MAX_SEC_IN_RRM_PATh];
	UINT8 runDir[MAX_SEC_IN_RRM_PATh];
	UINT16 SecID[MAX_SEC_IN_RRM_PATh];
}RRMPathOfSecSeqStruct;


/** 接口结构体 */
typedef struct 
{
	UINT8 trainCnt;                          /** 列车数量 */
	UINT16 TrainID[TRAIN_SUM_MAX_IN_OC];     /** 列车ID*/
	UINT16 TailSecID[TRAIN_SUM_MAX_IN_OC];   /** 列车车尾占用的逻辑区段ID*/
}ATSTrainInfoStru;


#endif




