⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 constant.h

📁 用于城市轨道交通开发的CBTR 的开发
💻 H
字号:
/**********************************************************/
/*	定义计算速度-距离曲线用到的常量			  */
/**********************************************************/

/******************************************************/
/*	主机上电自检     			      */
/******************************************************/
#define  SYSTEM_OK              0x00



/******************************************************/
/*	分配四个CAN端口      			      */
/******************************************************/
#define	TRACK_PORT	0x00
#define	RECORD_PORT	0x00
#define	INTERFACE_PORT	0x02
#define	SPEED_PORT	0x03

/*********************************************************/
/*         主机发出的实时输出执行命令			 */
/*	1001代表执行了该命令,0011没有			 */	
/*********************************************************/
#define	STATUS_YES_HB	0x90
#define	STATUS_NO_HB	0x30
#define	STATUS_YES_LB	0x09
#define	STATUS_NO_LB	0x03


/********************************************************/
/*			设备ID号			*/
/********************************************************/
//#define CAN_ID_MASTER     0x30		//主机互查
#define CAN_ID_TRACK      0x60		//轨道电路
#define CAN_ID_RECORD     0xc0		//记录
//#define CAN_ID_INTERFACE  0xe0		//人机
#define CAN_ID_SPEED	  0x50		//测速测距


/********************************************************************************/
/*	主机发出的CAN类型定义,为8个数据字节的第一个字节,包括源定义和类型定义	*/
/*	由OutCtlDeal()任务在调用Set_Can_Package()时作为参数使用			*/
/********************************************************************************/

#define	M_CAN_TYPE_010		0x28
#define	M_CAN_TYPE_100		0x30
#define	M_CAN_TYPE_101		0x34
#define	M_CAN_TYPE_110		0x38
#define	M_CAN_TYPE_011		0x2c
#define	M_CAN_TYPE_001		0x24
#define	M_CAN_TYPE_111		0x3c
#define	M_CAN_TYPE_000		0x20
#define M_CAN_TYPE_WHEEL        0xF0

/********************************************************/
/*	轨道电路发出的数据报类型,仅仅为类型定义	*/
/********************************************************/
#define	T_CAN_TYPE_010		0x02
#define	T_CAN_TYPE_001		0x01
#define	T_CAN_TYPE_100		0x04


/********************************************************/
/*	人机接口发出的数据报类型,仅仅为类型定义	*/
/********************************************************/
#define	I_CAN_TYPE_010		0x02
#define	I_CAN_TYPE_001		0x01
#define	I_CAN_TYPE_100		0x04
#define	I_CAN_TYPE_011		0x03

/********************************************************/
/*	记录模块发出的数据报类型,仅仅为类型定义	*/
/********************************************************/
#define	R_CAN_TYPE_010		0x02
#define	R_CAN_TYPE_100		0x04

/********************************************************/
/* 	SysQueue -- 系统消息队列  			*/
/********************************************************/
#define MSG_SPEED	0x30		//速度更新
#define	MSG_STORAGE	0x20		//转储
#define	MSG_IO_CHANGE	0x40		//IO口变化
#define	MSG_RECORD_ANALYSE	0x50		//记录分析
#define  MSG_BLOCK_DATA 0x60		//for test

//----------------------------------------------------//
//所有的消息队列传递的值不能出现00,因为会被当成空指针//
/********************************************************/
/*     OutCtlQueue -- 输出控制消息队列    		*/
/********************************************************/
#define	MSG_OUTCTL_MASK		0xF0		//屏蔽码
#define MSG_PAGE_DATA			0xA0

/********************************************************/
/*     ErrQueue -- 错误消息队列    			*/
/********************************************************/

#define	MSG_CAN0_ERR		0x10
#define	MSG_CAN0_BUSOFF_ERR	0x10
#define	MSG_CAN0_WARN_ERR	0x11
#define	MSG_CAN0_STUFF_ERR	0x12
#define	MSG_CAN0_FORM_ERR	0x13
#define	MSG_CAN0_ACK_ERR	0x14
#define	MSG_CAN0_BIT1_ERR	0x15
#define	MSG_CAN0_BIT0_ERR	0x16
#define	MSG_CAN0_CRC_ERR	0x17

#define	MSG_CAN1_ERR		0x20
#define	MSG_CAN1_BUSOFF_ERR	0x20
#define	MSG_CAN1_WARN_ERR	0x21
#define	MSG_CAN1_STUFF_ERR	0x22
#define	MSG_CAN1_FORM_ERR	0x23
#define	MSG_CAN1_ACK_ERR	0x24
#define	MSG_CAN1_BIT1_ERR	0x25
#define	MSG_CAN1_BIT0_ERR	0x26
#define	MSG_CAN1_CRC_ERR	0x27

#define	MSG_CAN2_ERR		0x30
#define	MSG_CAN2_BUSOFF_ERR	0x30
#define	MSG_CAN2_WARN_ERR	0x31
#define	MSG_CAN2_STUFF_ERR	0x32
#define	MSG_CAN2_FORM_ERR	0x33
#define	MSG_CAN2_ACK_ERR	0x34
#define	MSG_CAN2_BIT1_ERR	0x35
#define	MSG_CAN2_BIT0_ERR	0x36
#define	MSG_CAN2_CRC_ERR	0x37

#define	MSG_CAN3_ERR		0x40
#define	MSG_CAN3_BUSOFF_ERR	0x40
#define	MSG_CAN3_WARN_ERR	0x41
#define	MSG_CAN3_STUFF_ERR	0x42
#define	MSG_CAN3_FORM_ERR	0x43
#define	MSG_CAN3_ACK_ERR	0x44
#define	MSG_CAN3_BIT1_ERR	0x45
#define	MSG_CAN3_BIT0_ERR	0x46
#define	MSG_CAN3_CRC_ERR	0x47

#define	MSG_IO_ERR		0x60


/******************************************************/
/* 		扩展IO口的地址 				*/
/*****************************************************/
//#define	IO_BADDR	0x10000	
#define	IO_IN1		0x10001
#define	IO_IN2		0x10002
#define	IO_IN3		0x10003
#define IO_IN4		0x10004
#define IO_OUT1_READ	0x10010
#define	IO_OUT1		0x10010


#define	MASK_IO_IN_EN	0x3f		//enable IO input
#define	MASK_IO_IN_DIS	0xc0		//disable IO input

#define	MASK_CFSELE0_ON		0xFE 	//light on	
#define MASK_CFSELE1_ON		0xFD 	//left door enable
#define MASK_CRCRST_ON		0xEF 	//reverse direction


#define MASK_CFSELE0_OFF		0x01
#define MASK_CFSELE1_OFF		0x02
#define MASK_CRCRST_OFF		0x10

#define ENDBLOCK	2048
#define STARTBLOCK	283



//CF卡命令定义

#define MAX_DRIVES                  0x03           //可以同时加载的逻辑驱动器数目


#define EMPTY_DRIVE                 0xff
#define NOT_FIND_DISK               0x00    /* 逻辑盘不存在     */
#define DISK_FULL                   0x02    /* 逻辑盘满         */

#define IDE_CMD_WRITE		0x30
#define IDE_CMD_READ		0x20
#define IDE_CMD_IDENTIFY	0xec
#define MAX_OPEN_FILES		0x05
#define NOT_OPEN_FILE			0x55
#define	RETURN_OK					0x01


//FDT的DIR_Name[0]表项
#define DEL_FDT					((char)(0xe5))
#define ESC_FDT					0x05					//??????可能不是
#define EMPTY_FDT				0x00
#define NOT_FIND_FDT                0x07    /* 没有发现文件(目录)*/
#define NOT_FAT_DISK                0x08    /* 非FAT文件系统    */
#define FDT_OVER                    0x09    /* FDT索引超出范围  */
#define FDT_EXISTS                  0x0a    /* 文件(目录)已经存在*/


//FDT表项的文件属性
#define ATTR_VOLUME_ID	0x08
#define	ATTR_LONG_NAME	ATTR_READ_ONLY|ATTR_HIDDEN|ATTR_SYSTEMATTR_VOLUME_ID
#define	ATTR_SYSTEM			0x04
#define ATTR_READ_ONLY	0x01
#define	ATTR_HIDDEN			0x02
#define	ATTR_DIRECTORY	0x10
#define	ATTR_ARCHIVE		0x20

#define EMPTY_CLUS      0
#define	EMPTY_CLUS_1		1
#define BAD_CLUS                    0x0ffffff7
#define EOF_CLUS_1                  0x0ffffff8
#define EOF_CLUS_END                0x0fffffff

#define MAX_DISK_CACHES             100 
#define DISK_CACHE_SIZE             512 

/* Cache状态 */
#define CACHE_READED                0x02
#define CACHE_WRITED                0x01

/* 文件指针状态 */
#define FILE_FLAGS_READ             0x01          // 可读
#define FILE_FLAGS_WRITE            0x02         // 可写

/* 文件指针调整方式 */
#define SEEK_SET_R    0               // 从文件开始处移动文件指针
#define SEEK_CUR_R    1               // 从文件当前位置移动文件指针
#define SEEK_END_R    2               // 从文件尾移动文件指针

#define DISK_FULL                   0x02    /* 逻辑盘满         */
#define SECTOR_NOT_IN_CACHE         0x03    /* 扇区没有被cache  */
#define NOT_EMPTY_CACHE             0x04    /* 没有空闲cache    */
#define SECTOR_READ_ERR             0x05    /* 读扇区错误       */
#define ROOT_FDT_FULL               0x0b    /* 根目录满         */
#define DIR_EMPTY                   0x0C    /* 目录空           */
#define DIR_NOT_EMPTY               0x0d    /* 目录不空         */
#define PATH_NOT_FIND               0x0e    /* 路径未找到       */
#define FAT_ERR                     0x0f    /* FAT表错误       */
#define FILE_NAME_ERR               0x10    /* 文件(目录)名错误 */
#define FILE_EOF                    0x11    /* 文件结束        */
#define FILE_LOCK                   0x12    /* 文件被锁定       */
#define NOT_FIND_FILE               0x13    /* 没有发现指定文件 */
#define NOT_FIND_DIR                0x14    /* 没有发现指定目录 */
#define NOT_RUN                     0xfd    /* 命令未执行       */
#define BAD_COMMAND                 0xfe    /* 错误命令       */
#define PARAMETER_ERR               0xff    /* 非法参数        */
#define CLUSTER_NOT_IN_DISK         0x06    /* 逻辑盘中没有此簇  */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -