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

📄 types.h

📁 C语言编写的监控中心终端程序。基于GPRS上传收发数据功能
💻 H
字号:
#ifndef __TYPES_H
#define __TYPES_H

#ifdef __BORLANDC__

#define	__attribute__(x)
#define	__alignof__(x)		sizeof(x)

typedef char			INT8;
typedef int			INT16;
typedef long			INT32;
typedef struct {
    INT32		a;
    INT32		b;
}   INT64;

// this INT64 shouldn't be used, invalid under BC

typedef unsigned char		UINT8;
typedef unsigned int		UINT16;
typedef unsigned long		UINT32;
typedef struct {
    UINT32		a;
    UINT32		b;
}   UINT64;

// this UINT64 shouldn't be used, invalid under BC

typedef unsigned char		BYTE;
typedef unsigned short		SHORT;
typedef unsigned long		WORD;

#else	// for EMU and SIM

typedef unsigned char		BYTE;
typedef unsigned short		WORD;
typedef unsigned int		LONG;

typedef unsigned long long	UINT64;
typedef unsigned int		UINT32;
typedef unsigned short		UINT16;
typedef unsigned char		UINT8;

typedef long long		INT64;
typedef int			INT32;
typedef short			INT16;
typedef signed char		INT8;

#endif // end of EMU and SIM

/* bcd */
#define	getBCD(p)		(((((UINT8 *)(p))[0])>>4)*10 + ((((UINT8 *)(p))[0])&0x0f))

/* unaligned accessing */
#define	getUINT16_bi(p)		((UINT16) (((UINT8 *)(p))[1] | ((UINT16)((UINT8 *)(p))[0]<<8)))
#define	getUINT16_li(p)		((UINT16) (((UINT8 *)(p))[0] | ((UINT16)((UINT8 *)(p))[1]<<8)))

#define	getUINT24_bi(p)		((UINT32) (((UINT8 *)(p))[2] | ((UINT32)((UINT8 *)(p))[1]<<8) | ((UINT32)((UINT8 *)(p))[0]<<16)))

#define	getUINT32_bi(p)		((UINT32) (((UINT8 *)(p))[3] | ((UINT32)((UINT8 *)(p))[2]<<8) | ((UINT32)((UINT8 *)(p))[1]<<16) | ((UINT32)((UINT8 *)(p))[0]<<24)))
#define	getUINT32_li(p)		((UINT32) (((UINT8 *)(p))[0] | ((UINT32)((UINT8 *)(p))[1]<<8) | ((UINT32)((UINT8 *)(p))[2]<<16) | ((UINT32)((UINT8 *)(p))[3]<<24)))

#define	getUINT64_bi(p)		((((UINT64) getUINT32_bi(p)) << 32) | ((UINT64) getUINT32_bi(p+4)))

#undef	BIG_ENDIAN

/* endian-less taste */
#ifdef BIG_ENDIAN
#define	getUINT16(p)		getUINT16_bi((BYTE *)p)
#define	getUINT32(p)		getUINT32_bi((BYTE *)p)
#else
#define	getUINT16(p)		getUINT16_li((BYTE *)p)
#define	getUINT32(p)		getUINT32_li((BYTE *)p)
#endif

#define	getBiUINT32(p)		getUINT32_li((BYTE *)p)
#define	getBiUINT16(p)		getUINT16_li((BYTE *)p)

#ifndef TRUE
#define	TRUE			1
#endif

#ifndef FALSE
#define	FALSE			0
#endif

#define	IS_B7_ONE(p)		(((p) & 0x80) == 0x80)
#define	IS_B7_ZERO(p)		(((p) & 0x80) == 0x00)

#define	GET_LOW_NIBBLE(p)	((p) & 0x0F)

#ifndef NULL
#define	NULL			((void *)0)
#endif

typedef struct {
    UINT16		osd_header[2];		/* virtual addr of osd header	*/
    BYTE		osd_format;		/* pixel-per-byte		*/
    BYTE		osd_w;			/* in byte			*/
    BYTE		osd_h;			/* in pixel			*/
}   t_osd_region;

typedef struct {
    t_osd_region	*ptrRegion;
    BYTE		FontColor;
    BYTE		BackColor;
    BYTE		RegionOn;
}   OSD_INDEX;

typedef struct {
    BYTE		Level;
    UINT16		Offset;
    UINT16		Length;
}   QUENE;

typedef struct {
    BYTE		x;
    BYTE		y;
}   TSCR_POINT;

typedef struct {
    UINT16		x;
    UINT16		y;
}   OSD_POINT;

typedef struct {
    UINT16		x;
    UINT16		y;
    UINT16		w;
    UINT16		h;
}   MAP_ZONE;

typedef struct {
    UINT16		x;
    UINT16		y;
    UINT16		w;
    UINT16		h;
    UINT32		FontColor;
    UINT32		BackColor;
}   MAP_MENU;

typedef struct {
    OSD_POINT		lt;
    OSD_POINT		rd;
}   MAP_WINDOW;

typedef struct {
    UINT16		x, y;
    UINT16		w, h;
    UINT32		BackColor;
    UINT32		FontColor;
    BYTE		FontSize;
    BYTE		Align;
    BYTE	       *Text;
}   MENU_BASE;

typedef struct {
    BYTE		Set[6];
    BYTE		Num;
}   DIGIT_PAD;

typedef struct {
    UINT32		x1, y1;
    UINT32		x2, y2;
    UINT32		x3, y3;
}   THREE_POINT;

typedef struct {
    INT32		Int32Lo;
    INT32		Int32Hi;
}   GPS_INT64;

typedef struct {
    GPS_INT64		a11;
    GPS_INT64		a12;
    GPS_INT64		a21;
    GPS_INT64		a22;
    GPS_INT64		dx;
    GPS_INT64		dy;
}   NEXY_COEFF;

typedef struct {
    UINT32		gx, gy;		// latitude and longitude
    INT16		x, y;		// x and y coordinate
}   NEXY_POINT;

typedef struct {
    BYTE		hh;
    BYTE		mm;
    BYTE		ss;
}   GPS_TIME;

typedef struct {
    BYTE		yy;
    BYTE		mm;
    BYTE		dd;
}   GPS_DATE;

typedef struct {
    BYTE		Let;		// Letter
    UINT16		Num;		// number
}   ROAD_ID;

typedef struct {
    BYTE		Name[20];
    UINT32		N;
    UINT32		E;
    UINT16		Level;
    ROAD_ID		n[2];
}   SignCommon;

typedef struct {
    UINT32		N;
    UINT32		E;
    ROAD_ID		n[2];
}   SignOil;

typedef struct {
    BYTE		Name[20];
    UINT32		N;
    UINT32		E;
    ROAD_ID		n[2];
    UINT32		AdvAddr;
    UINT16		Level;
}   SignCompany;

typedef struct {
    BYTE		RoadName[12];
    BYTE		SignName[8];
}   SignRoad;

typedef struct {
    BYTE		abcd[8];
    BYTE		ItemName[12];
}   REGION_ITEM_123;

typedef struct {
    BYTE		abcd[8];
    BYTE		ItemName[12];
    BYTE		SignName[8];
}   REGION_ITEM_4;

typedef struct {
    BYTE 		Flag;
    BYTE		Info;
    UINT32		N;
    UINT32		E;
}   COMMON_POINT;	

typedef struct {
    UINT32		N;
    UINT32		E;
    ROAD_ID		n[4];
    BYTE		Level[4];
    BYTE		Flag;
    BYTE		Explain;
}   CROSS_POINT;

typedef struct {
    CROSS_POINT		Cross;
    UINT32		Dist;
    UINT32		Dist2Prev;
    UINT32		RealDist;
    BYTE		Adjust;
}   BR_POINT;

typedef struct {
    UINT32		Dist;
    UINT32		CoeffDist;
}   GPS_DIST;

typedef struct {
    UINT32		N;
    UINT32		E;
}   GPS_POINT;

typedef struct {
    GPS_POINT		Point;
    UINT16		Speed;
    UINT16		Angle;
    GPS_TIME		Time;
    BYTE		Name[21];
}   GPS_MESSAGE;

#define	GPS_MESSAGE_SIZE	sizeof(GPS_MESSAGE)

#include "gpstype.h"

typedef struct {
    UINT32		TotalHello;
    UINT32		FirstHello;
    UINT32		EndofHello;
    UINT32		TotalConst;
    UINT32		FirstConst;
    UINT32		EndofConst;
    UINT32		TotalBusST;
    UINT32		FirstBusST;
    UINT32		EndofBusST;
    UINT32		TotalIndex;
    UINT32		FirstIndex;
    UINT32		EndofIndex;
    UINT32		TotalVoice;
    UINT32		FirstVoice;
    UINT32		EndofVoice;
}   MP3_MAIN;

#endif	__TYPES_H

⌨️ 快捷键说明

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