/******************************************************************************
** 文件名:  as.h  ( 计轴排序处理 )
** 描 述:   计轴排序处理模块
*******************************************************************************/
#ifndef INC_AXIS_SORT_INC
#define INC_AXIS_SORT_INC

#include "AxisSort_define.h"
#include "dquVobcCommonStru.h"
#include "TrainDefine.h"
#include "TrainDataManage.h"
#include "dsuemapdefine.h"

#define AXIS_SORT_LOG_BUF_SIZE ((UINT16)6000)  /*打印排序数据的最大字节数*/

typedef struct TrainSequance
{
	UINT16 u16TrainID;               /*列车ID(不带类型14)*/
	UINT8  u8TrainType;              /*列车类型*/
	UINT16 u16ELID;                  /*包络ID*/  /*排序模块内部用*/
}TRAIN_SEQUANCE_s;                  

/*车序列信息 */
typedef struct
{
	UINT8 u8NodeValidTag;   /* 节点有效标志 FLAG_SET-节点正在被使用 DEFAULT_ZERO-节点未被使用 */
	UINT16 u16SortTrainID;  /* 列车ID */
	UINT8 u8SortTrainDir;   /* 列车方向 */
	LOD_STRU SafeHead;       /* 安全包络前端 */
	LOD_STRU SafeTail;       /* 安全包络后端 */
}CT_SORT_INFO_s;


/*********区段序列信息**************/
typedef struct
{
    UINT16  u16ID;                               /* 区段ID */
    UINT8 u8SortFail;                            /* 排序异常标志 */
    UINT8 u8TrainNum;                            /* 列车序列数量 */
    TRAIN_SEQUANCE_s  TrainList[SIZE_MAX_TRAINOFAC];/* 列车序列 TrainList[0]是电子地图方向起点端列车 */
}AS_SORT_INFO_s;  /*计轴区段动态数据结构申明*/

/*列车包络信息****/

typedef struct 
{
	UINT16 ELNum;                                                       /*包络个数*/
	UINT16 TrainEnveLopeID[ENVELOPE_SUM_MAX];                           /*所有包络ID信息*/
}s_TRAIN_ENVELOPE_ID;

extern  AS_SORT_INFO_s g_pSortLinkInfo[AS_LINK_MAX + 1U]; /*link排序*/
#endif /* INC_AXIS_SORT_INC */