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

📄 mes_svr.h

📁 一个操作系统源代码 用于嵌入式设备 在Vc++环境下仿真 成功移植到多款处理器上
💻 H
字号:
#ifndef _MES_H
#define _MES_H

//读串口时的判断
#define BE_READ				1
#define NOT_BE_READ			0
#define NOTUSED				0
#define BEUSED				1
#define REST				1		//读的电文不全
#define NOREST				0		//读的电文恰好全了
#define BUF_LEN				200		//读串口时buffer的大小

#define CMC_START_ADDRESS		0x9c0000	//在flash中所有的起始地址
#define FLASH_LENGTH			0x10000		//64K大小

//#define PI_VALUE				3.1415926

#define CMC_FILE		1

#ifdef DEBUG
#define WriteRecord( Src, Des, length )	do {\
	memcpy( Des, Src, length );\
} while(0)
#else
//#define INIT(name1, name2, length)	drv_flash_write( (unsigned char *)(name1), (unsigned int )(name2), length )
extern void FlashEraseBlock(unsigned int Address);
typedef void (*	FBP)(unsigned int Address);
extern FBP FlashLockBlockP;
extern FBP FlashUnlockBlockP;
typedef unsigned int (* FWBP)(unsigned int,unsigned int,unsigned int);
extern FWBP FlashWriteBlockP;

#define WriteRecord(Src, Des, length)\
do{\
	(*FlashUnlockBlockP)((unsigned int )(Des));\
	(*FlashWriteBlockP)( (unsigned int )(Des), (unsigned int)(Src), (unsigned long)(length) );\
	(*FlashLockBlockP)( (unsigned int )(Des) );\
}while(0)

#define ERASEAREA(area)		\
do{\
		(*FlashUnlockBlockP)(area);\
		FlashEraseBlock((unsigned int)(area));\
		(*FlashLockBlockP)( area );\
}while(0)

#endif

//存储格式
typedef struct{
	BYTE	file_type;
	char	file_name[31];
	DWORD	file_address;
	DWORD	file_length;
} ROOT_DIR;

//提取20号电文
typedef struct {
	BYTE		hour;
	BYTE		minute;
//	DOUBLE_S	second;
	double		second;
	BYTE		day;
	BYTE		month;
	WORD		year;
//	DOUBLE_S	latitude;
//	DOUBLE_S	longitude;
	double		latitude;
	double		longitude;
	WORD		hdop;
	WORD		vdop;
	BYTE		star_num;
} MESSAGE_20;

//读取电文时的标志体
typedef struct {
	BYTE	type;
	BYTE	length;
} FLAG;

//保存电文
typedef struct {
	FLAG	flag;
	BYTE	data[150];
} CMC_MESSAGE;


extern DWORD		Current_Address;
extern MESSAGE_20	mes20;
extern ROOT_DIR		rootdir[];
extern BYTE			DirPos;
extern BYTE	cmcarea[];//用来预存CMC文件
extern BYTE	*cur_cmcarea;
extern BYTE	area[];//定义全局数组来预存相关的文件
extern BYTE	*cur_area;//定义一个全局变量来指向全局数组
extern DWORD	FileCurrentAddress;//定义一个全局变量用来控制每次保存文件的起始地址


#endif/* MES_H */

⌨️ 快捷键说明

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