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

📄 gsmdef.h

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

/************************************************************************
 *	GSM Const Define						*
 ************************************************************************/
#define	CR			'\x0D'
#define	LF			'\x0A'
#define	NUL			'\x00'

#define	IDLE			0x00
#define	ERROR			0x01
#define	CONNECT			0x02
#define	NOCARRIER		0x03
#define	RING			0x04
#define	CMGS			0x05
#define	CMTI			0x06
#define	CLIP			0x07
#define	ECAV			0x08
#define	CENTER			0x80
#define	TIMEOUT			0xFE
#define	OK			0xFF

/************************************************************************
 *	Timer Define							*
 ************************************************************************/
#define	TIMER_xS(x)		((x) * 10 )
#define	TIMER_mS(x)		((x) / 100)

/************************************************************************
 *	Const Define							*
 ************************************************************************/
enum {
    STATE_IDLE			= 0x00,
    STATE_TIMEOUT		= 0xFC,
    STATE_ERROR			= 0xFE,
    STATE_OK			= 0xFF,
};

enum {
    RADIO_IDLE			= 0x00,
    RADIO_RING,
    RADIO_HEAR,
    RADIO_OK,
};

enum {
    GSM_SLEEP_PROC		= 0x00,
    GSM_SLEEP_DONE,
    GSM_POWER_PROC,
    GSM_POWER_DONE,
    GSM_RESET_PROC,
    GSM_STATE_IDLE,
    GSM_HELLO_GPRS,
    GSM_ENTER_GPRS,
    GSM_LEAVE_GPRS,
    GSM_RENET_GPRS,
    GSM_CLOSE_GPRS,
    GSM_CLEAR_GPRS,
    GSM_STATE_GPRS,
    GSM_ERROR_GPRS,
    GSM_PHONE_PROC,
    GSM_SMSIN_READ,
    GSM_SMSTO_SEND,
    GSM_CHECK_PROC,
#ifdef DEBUG_WITH_PC
    GSM_DEBUG_READ,
    GSM_DEBUG_SEND,
#endif
};

enum {
    GSM_ENTER			= 0,
    GSM_LEAVE,
    GSM_RENET,
    GSM_CLOSE,
};

enum {
    GSM_PHONE_HANG		= 0,
    GSM_PHONE_RING,
    GSM_PHONE_HEAR,
    GSM_PHONE_DIAL,
};

/************************************************************************
 *	GSM - Type Define						*
 ************************************************************************/
enum {
    MOBILE_MASTER		= 0,
    MOBILE_HOSTER,
    MOBILE_GUARD0,
    MOBILE_GUARD1,
    MOBILE_GUARD2,
    MOBILE_GUARD3,
    MOBILE_SENDER,
    MOBILE_TRACER,
    MOBILE_WAITER,
    MOBILE_COUNT,
};

enum {
    SMS_HELP			= 0,
    SMS_MOBILE,
    SMS_PASSWORD,
    SMS_VERSION,
    SMS_GRD_INIT,
    SMS_GRD_HAVE,
    SMS_GRD_LOCK,
    SMS_GRD_UNLOCK,
    SMS_GRD_ALARM,
    SMS_GRD_WARN_TOUCH,
    SMS_GRD_WARN_DOOR,
    SMS_GRD_WARN_ACC,
    SMS_GRD_WARN_ALARM,
    SMS_GRD_WARN_HELP,
    SMS_GRD_LOCK_OK,
    SMS_GRD_ALARM_OK,
    SMS_GRD_UNLOCK_OK,
    SMS_GRD_LOCK_FAIL,
    SMS_GRD_ALARM_FAIL,
    SMS_GRD_UNLOCK_FAIL,
    SMS_GRD_LOCK_ERROR,
    SMS_GRD_ALARM_ERROR,
    SMS_GRD_UNLOCK_ERROR,
    SMS_MONITOR_ON,
    SMS_MONITOR_OFF,
    SMS_GUARD0_ON,
    SMS_GUARD1_ON,
    SMS_GUARD2_ON,
    SMS_GUARD3_ON,
    SMS_GUARD0_OFF,
    SMS_GUARD1_OFF,
    SMS_GUARD2_OFF,
    SMS_GUARD3_OFF,
    SMS_POWER_LOW,
    SMS_ERROR_DATA,
    SMS_ERROR_CODE,
    SMS_ERROR_LINE,
    SMS_TYPE_COUNT,
};

/************************************************************************
 *	GSM - String Define						*
 ************************************************************************/
enum {
	AT,
	ATA,
	ATH,
	ATO,
	ATpCSQ,
	ATpCMGFe0,
	ATpCMGFe1,
	ATpCMGR,
	ATpCMGS,
	ATpCMGD,
	ATpCNMI,
	ATpCPMS,
	ATpCPAS,
	ATpCGDCONT,
	ATpCGDCONTq,
	ATpCLIPe1,
	ATmECAMe1,
	ATmE2EAMS,
	ATmE2IPA0,
	ATmE2IPA1,
	ATmE2IPO,
	ATmE2IPC,
	CTRL_Z,
};

/************************************************************************
 *	GSM - String Define						*
 ************************************************************************/
static const BYTE	cStrGSMAT[]		=   "AT\x0D";
static const BYTE	cStrGSMATA[]		=   "ATA\x0D";
static const BYTE	cStrGSMATH[]		=   "ATH\x0D";
static const BYTE	cStrGSMATO[]		=   "ATO\x0D";
static const BYTE	cStrGSMATpCSQ[]		=   "AT+CSQ\x0D";
static const BYTE	cStrGSMATpCMGFe0[]	=   "AT+CMGF=0\x0D";
static const BYTE	cStrGSMATpCMGFe1[]	=   "AT+CMGF=1\x0D";
static const BYTE	cStrGSMATpCMGR[]	=   "AT+CMGR=";
static const BYTE	cStrGSMATpCMGS[]	=   "AT+CMGS=";
static const BYTE	cStrGSMATpCMGD[]	=   "AT+CMGD=";
static const BYTE	cStrGSMATpCNMI[]	=   "AT+CNMI=3,1\x0D";
static const BYTE	cStrGSMATpCPMS[]	=   "AT+CPMS=\"SM\",\"SM\",\"SM\"\x0D";
static const BYTE	cStrGSMATpCPAS[]	=   "AT+CPAS\x0D";
static const BYTE	cStrGSMATpCGDCONT[]	=   "AT+CGDCONT=";
static const BYTE	cStrGSMATpCGDCONTq[]	=   "AT+CGDCONT?\x0D";
static const BYTE	cStrGSMATpCLIPe1[]	=   "AT+CLIP=1\x0D";
static const BYTE	cStrGSMATmECAMe1[]	=   "AT*ECAM=1\x0D";
static const BYTE	cStrGSMATmE2EAMS[]	=   "AT*E2EAMS=0,1,5,0,2,2,2,8,9,2,2,0,0,0,3,0,0,0,1,1,1\x0D";
static const BYTE	cStrGSMATmE2IPA0[]	=   "AT*E2IPA=0,";
static const BYTE	cStrGSMATmE2IPA1[]	=   "AT*E2IPA=1,";
static const BYTE	cStrGSMATmE2IPO[]	=   "AT*E2IPO=";
static const BYTE	cStrGSMATmE2IPC[]	=   "AT*E2IPC\x0D";

#define	LenGSMAT		(sizeof(cStrGSMAT		) - 1)
#define	LenGSMATA		(sizeof(cStrGSMATA		) - 1)
#define	LenGSMATH		(sizeof(cStrGSMATH		) - 1)
#define	LenGSMATO		(sizeof(cStrGSMATO		) - 1)
#define	LenGSMATpCSQ		(sizeof(cStrGSMATpCSQ		) - 1)
#define	LenGSMATpCMGFe0		(sizeof(cStrGSMATpCMGFe0	) - 1)
#define	LenGSMATpCMGFe1		(sizeof(cStrGSMATpCMGFe1	) - 1)
#define	LenGSMATpCMGS		(sizeof(cStrGSMATpCMGS		) - 1)
#define	LenGSMATpCMGR		(sizeof(cStrGSMATpCMGR		) - 1)
#define	LenGSMATpCMGD		(sizeof(cStrGSMATpCMGD	 	) - 1)
#define	LenGSMATpCNMI		(sizeof(cStrGSMATpCNMI		) - 1)
#define	LenGSMATpCPMS		(sizeof(cStrGSMATpCPMS		) - 1)
#define	LenGSMATpCPAS		(sizeof(cStrGSMATpCPAS		) - 1)
#define	LenGSMATpCGDCONT	(sizeof(cStrGSMATpCGDCONT	) - 1)
#define	LenGSMATpCGDCONTq	(sizeof(cStrGSMATpCGDCONTq	) - 1)
#define	LenGSMATpCLIPe1		(sizeof(cStrGSMATpCLIPe1  	) - 1)
#define	LenGSMATmECAMe1		(sizeof(cStrGSMATmECAMe1  	) - 1)
#define	LenGSMATmE2EAMS		(sizeof(cStrGSMATmE2EAMS  	) - 1)
#define	LenGSMATmE2IPA0		(sizeof(cStrGSMATmE2IPA0  	) - 1)
#define	LenGSMATmE2IPA1		(sizeof(cStrGSMATmE2IPA1  	) - 1)
#define	LenGSMATmE2IPO		(sizeof(cStrGSMATmE2IPO  	) - 1)
#define	LenGSMATmE2IPC		(sizeof(cStrGSMATmE2IPC  	) - 1)

/************************************************************************
 *	GSM  Return String Define					*
 ************************************************************************/
static const BYTE	cStrGSMOK[]		=   "\x0D\x0A""OK\x0D\x0A";
static const BYTE	cStrGSMERROR[]		=   "\x0D\x0A""ERROR\x0D\x0A";
static const BYTE	cStrGSMCONNECT[]	=   "\x0D\x0A""CONNECT\x0D\x0A";		// GSM -> : 出错
static const BYTE	cStrGSMRING[]		=   "\x0D\x0A""RING\x0D\x0A";
static const BYTE	cStrGSMNOCARRIER[]	=   "\x0D\x0A""NO CARRIER\x0D\x0A";
static const BYTE	cStrGSMCMTI[]		=   "\x0D\x0A""+CMTI: \"SM\",";
static const BYTE	cStrGSMCLIP[]		=   "\x0D\x0A""+CLIP: ";
static const BYTE	cStrGSMECAV[]		=   "\x0D\x0A""*ECAV: ";
static const BYTE	cStrGSMCMEERROR[]	=   "\x0D\x0A""+CME ERROR: ";
static const BYTE	cStrGSMCMSERROR[]	=   "\x0D\x0A""+CMS ERROR: ";

#define	LenGSMOK		(sizeof(cStrGSMOK		) - 1)
#define	LenGSMERROR		(sizeof(cStrGSMERROR		) - 1)
#define	LenGSMCONNECT		(sizeof(cStrGSMCONNECT		) - 1)
#define	LenGSMRING		(sizeof(cStrGSMRING		) - 1)
#define	LenGSMNOCARRIER		(sizeof(cStrGSMNOCARRIER	) - 1)
#define	LenGSMCMTI		(sizeof(cStrGSMCMTI		) - 1)
#define	LenGSMCLIP		(sizeof(cStrGSMCLIP		) - 1)
#define	LenGSMECAV		(sizeof(cStrGSMECAV		) - 1)
#define	LenGSMCMEERROR		(sizeof(cStrGSMCMEERROR		) - 1)
#define	LenGSMCMSERROR		(sizeof(cStrGSMCMSERROR		) - 1)

/************************************************************************
 *	SMS Unicode String Define					*
 ************************************************************************/
#define	MaxSMSMobileTXT		(11)
#define	MaxSMSMobilePDU		(14)
#define	MaxSMSInfoName		( 6)
#define	MaxSMSInfoTime		( 8)
#define	MaxSMSInfoLang		( 9)
#define	MaxSMSInfoLat		( 9)
#define	MaxSMSInfoSpeed		( 3)
#define	MaxSMSInfoAngle		( 3)
#define	MaxSMSInfoPosi		(64)
#define	MaxSMSInfoRun		(12)

/************************************************************************
 *	SMS Const String Define						*
 ************************************************************************/
const	BYTE		cStrSMSCenterHead[]	=   "00";		// "0891";
const	BYTE		cStrSMSMobileHead[]	=   "11000D91";
const	BYTE		cStrSMSMobileTail[]	=   "0008A7";		// "000800";
const	BYTE		cStrSMSNewLine[]	=   "000D";		// 换行字符
const	BYTE		cStrSMSSplitOr[]	=   "007C";		// 换行字符
const	BYTE		cStrSMSInfoTail[]	=   "\x1A";

#define	LenSMSCenterHead	(sizeof(cStrSMSCenterHead)	- 1)
#define	LenSMSMobileHead	(sizeof(cStrSMSMobileHead)	- 1)
#define	LenSMSMobileTail	(sizeof(cStrSMSMobileTail)	- 1)
#define	LenSMSNewLine		(sizeof(cStrSMSNewLine)		- 1)
#define	LenSMSInfoTail		(sizeof(cStrSMSInfoTail)	- 1)

/************************************************************************
 *	SMS Unicode String Define					*
 ************************************************************************/
const	BYTE	       cStrSMSSpeedStop[]	=   "5DF27ECF7184706B";				// 已经熄火
const	BYTE	       cStrSMSInfoGuard[][17]	= { "65E0963276D75668",				// 无防盗器
						    "6709963276D75668",				// 有防盗器
						    "8BBE5B9A963276D7",				// 设定防盗
						    "89E39664963276D7",				// 解除防盗
						    "5DF27ECF65AD6CB9",				// 已经断油
						    "53D75230649E51FB",				// 受到撞击
						    "8F6695E888AB5F00",				// 车门被开
						    "975E6CD5542F52A8",				// 非法启动
						    "6C7D8F6688AB62A2",				// 汽车被抢
						    "7D2760256C426551",	};			// 紧急求救

#define	LenSMSSpeedStop		(sizeof(cStrSMSSpeedStop)	- 1)
#define	LenSMSInfoGuard		(sizeof(cStrSMSInfoGuard[0])	- 1)

/************************************************************************
 *	User String Define						*
 ************************************************************************/
static	BYTE		StrSMSHeaderTXT[MaxSMSMobileTXT + 1];
static	BYTE		StrSMSHeaderPDU[MaxSMSMobilePDU + 1];
static	BYTE		StrSMSInfoName [MaxSMSInfoName  + 1];
static	BYTE		StrSMSInfoTime [MaxSMSInfoTime  + 1];
static	BYTE		StrSMSInfoLang [MaxSMSInfoLang  + 1];
static	BYTE		StrSMSInfoLat  [MaxSMSInfoLat   + 1];
static	BYTE		StrSMSInfoSpeed[MaxSMSInfoSpeed + 1];
static	BYTE		StrSMSInfoAngle[MaxSMSInfoAngle + 1];
static	BYTE		StrSMSInfoPosi [MaxSMSInfoPosi  + 1];
static	BYTE		StrSMSInfoRun  [MaxSMSInfoRun	+ 1];

static	BYTE		LenSMSInfoHead;

#define	LenSMSInfoName		(strlen(StrSMSInfoName) * 4)
#define	LenSMSInfoTime		(strlen(StrSMSInfoTime) * 4)
#define	LenSMSInfoLang		(strlen(StrSMSInfoLang) * 4)
#define	LenSMSInfoLat		(strlen(StrSMSInfoLat ) * 4)
#define	LenSMSInfoPosi		(strlen(StrSMSInfoPosi)	   )
#define	LenSMSInfoRun		(strlen(StrSMSInfoRun)	   )

/************************************************************************
 *	GSM Phone String Define						*
 ************************************************************************/
#define	LenGSMDailerTXT		(20)

static	BYTE		StrGSMDailerTXT[LenGSMDailerTXT + 1];

#endif	__GSM_DEF_H

⌨️ 快捷键说明

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