📄 gsmdef.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 + -