📄 gsm.h
字号:
#include <string.h>
/*************************************************
变量定义
*************************************************/
int nTX1_Len = 0;
char UART1_TX_BUF[200];
char ControlCenter_pone[]="13571955693";
char CarMaster_pone[]="15929941268"; // 追踪者手机号码
/*************************************************
函数(模块)名称:设置AT命令GPRS模式
功能:
本函数(模块)调用的函数(模块)清单:
输入参数:无
输出参数: 无
函数返回值说明:
使用的资源
其它说明:
*************************************************/
int sim300_at(char pBuf[])
{
int i;
char gprs_at[3]="AT\r";
for (i=0;i<3;i++)
pBuf[i]=gprs_at[i];
return 3;
}
/*************************************************
函数(模块)名称:设置AT命令显示模式
功能:
本函数(模块)调用的函数(模块)清单:
输入参数:无
输出参数: 无
函数返回值说明:
使用的资源
其它说明:
*************************************************/
int sim300_init(char pBuf[])
{
int i;
char tc35_initBuf[5] = "ATE0\r";
for (i=0;i<5;i++)
pBuf[i]=tc35_initBuf[i];
return 5;
}
/*************************************************
函数(模块)名称:设置TEXT模式
功能:
本函数(模块)调用的函数(模块)清单:
输入参数:无
输出参数: 无
函数返回值说明:
使用的资源
其它说明:
*************************************************/
int setCmgf(char pBuf[])
{
int i;
char setCmgf_Buf[10] = "AT+CMGF=1\r";
for (i=0;i<10;i++)
pBuf[i]=setCmgf_Buf[i];
return 10;
}
/*************************************************
函数(模块)名称:设置PUD模式
功能:
本函数(模块)调用的函数(模块)清单:
输入参数:无
输出参数: 无
函数返回值说明:
使用的资源
其它说明:
*************************************************/
int setCmgf_pdu(char pBuf[])
{
int i;
char setCmgf_pdu_Buf[10] = "AT+CMGF=0\r";
for (i=0;i<10;i++)
pBuf[i]=setCmgf_pdu_Buf[i];
return 10;
}
/*************************************************
函数(模块)名称:短信回显函数
功能:
本函数(模块)调用的函数(模块)清单:
输入参数:无
输出参数: 无
函数返回值说明:
使用的资源
其它说明:
*************************************************/
int SetCnmi(char pBuf[])
{
int i;
char SetCnmi_Buf[12] = "AT+CNMI=2,2\r"; //不存卡直接读
for (i=0;i<12;i++)
pBuf[i]=SetCnmi_Buf[i];
return 12;
}
int setCmgs(char pBuf[])
{
int i;
char setCmgs_Buf[25] = "AT+CMGS= +86"; //中心号码
strcat(setCmgs_Buf,ControlCenter_pone);
setCmgs_Buf[8]=0x22;
setCmgs_Buf[23]=0x22;
for (i=0;i<25;i++)
pBuf[i]=setCmgs_Buf[i];
pBuf[24]=13;
return 25;
}
/*************************************************
函数(模块)名称: 数据整合
功能:
本函数(模块)调用的函数(模块)清单:
输入参数:无
输出参数: 无
函数返回值说明:
使用的资源
其它说明:
*************************************************/
int Set_inquire(char pBuf[])
{
char Checkout;
int i;
pBuf[0] = '$';
pBuf[1] = 'H';
pBuf[2] = 'X';
pBuf[3] = 'M';
pBuf[4] = 'B';
pBuf[5] = 'W';
pBuf[6] = 'I';
pBuf[7] = ',';
pBuf[8] = sign_ifeffect;
pBuf[9] = ',';
pBuf[10] = 'L';
pBuf[11] = 'A';
pBuf[12] = 'T';
pBuf[13] = ':';
pBuf[14] = user_location.lat[0];
pBuf[15] = user_location.lat[1];
pBuf[16] = user_location.lat[2];
pBuf[17] = user_location.lat[3];
pBuf[18] = user_location.lat[4];
pBuf[19] = user_location.lat[5];
pBuf[20] = user_location.lat[6];
pBuf[21] = user_location.lat[7];
pBuf[22] = user_location.lat[8];
pBuf[23] = 'L';
pBuf[24] = 'O';
pBuf[25] = 'N';
pBuf[26] = ':';
pBuf[27] = user_location.longi[0];
pBuf[28] = user_location.longi[1];
pBuf[29] = user_location.longi[2];
pBuf[30] = user_location.longi[3];
pBuf[31] = user_location.longi[4];
pBuf[32] = user_location.longi[5];
pBuf[33] = user_location.longi[6];
pBuf[34] = user_location.longi[7];
pBuf[35] = user_location.longi[8];
pBuf[36] = user_location.longi[9];
pBuf[37] = 'T';
pBuf[38] = 'I';
pBuf[39] = 'M';
pBuf[40] = ':';
pBuf[41] = UTC_time[0];
pBuf[42] = UTC_time[1];
pBuf[43] = UTC_time[2];
pBuf[44] = UTC_time[3];
pBuf[45] = UTC_time[4];
pBuf[46] = UTC_time[5];
pBuf[47] = 'S';
pBuf[48] = 'P';
pBuf[49] = 'E';
pBuf[50] = ':';
pBuf[51] = user_speed[0];
pBuf[52] = user_speed[1];
pBuf[53] = user_speed[2];
pBuf[54] = user_speed[3];
pBuf[55] = user_speed[4];
pBuf[56] = user_speed[5];
pBuf[57] = 'D';
pBuf[58] = 'I';
pBuf[59] = 'R';
pBuf[60] = ':';
pBuf[61] = user_direction[0];
pBuf[62] = user_direction[1];
pBuf[63] = user_direction[2];
pBuf[64] = user_direction[3];
pBuf[65] = user_direction[4];
pBuf[66] = user_direction[5];
pBuf[67] = '*';
Checkout = pBuf[0];
for (i=1;i<68;i++) {Checkout^=pBuf[i];}
pBuf[68] = Checkout/16;
if (pBuf[68]>9)
{
pBuf[68] = pBuf[68]+55;
}
else
pBuf[68] = pBuf[68]+0x30;
pBuf[69] = Checkout%16;
if (pBuf[69]>9)
{
pBuf[69] = pBuf[69]+55;
}
else
pBuf[69] = pBuf[69]+0x30;
pBuf[70] =26;
return 71;
}
/*************************************************
函数(模块)名称:PUD汉字显示模块
功能:
本函数(模块)调用的函数(模块)清单:
输入参数:无
输出参数: 无
函数返回值说明:
使用的资源
其它说明:
*************************************************/
void Sms_pdu_send(char pPhone[],char Cotent_index)
{
char pdu_Head[] = "0891683108200905F011000D91"; // 问题:中心号码的设置
char pdu_Mid[] = "000800";
char Data_len_hex[3];
char Len_cmgs[3];
char Ctr_z[2];
char OpenHint[]="8FFD8E2A5DF25F0059CB";
char Timetext[]="5B9A65F65DF25F00542F"; // 定时已开启
char longi[]="7ECF5EA6003A"; // 经度
char lati[]="7EAC5EA6003A"; // 纬度
char speed[]="901F5EA6003A"; // 速度
char time[]="65F695F4003A"; // 时间
char direction[]="65B95411003A"; // 方向
char Navi_close[]="4E2D5FC376D163A75DF2517395ED"; // "中心监控已关闭"
char Navi_open[]="4E2D5FC376D163A75DF262535F00"; // "中心监控已打开"
char longi_pdu[41];
char lati_pdu[37];
char time_pdu[25];
char speed_pdu[25];
char direction_pdu[25];
char pPhone_tran[15];
char phoneTemp[15];
int Len;
int i,j;
Ctr_z[0]=26;
Ctr_z[1]='\0';
pPhone_tran[0]='8';
pPhone_tran[1]='6';
for(i=0;i<11;i++){pPhone_tran[i+2]=pPhone[i];}
pPhone_tran[13]= 'F';
j = 0;
for(i = 0;i < 7;i++)
{
phoneTemp[j++] = pPhone_tran[2 * i + 1];
phoneTemp[j++] = pPhone_tran[2 * i];
}
phoneTemp[14]= '\0';
switch(Cotent_index)
{
case 1:
Len_cmgs[0]='1';
Len_cmgs[1]='1';
Len_cmgs[2]='9';
UART1_TX_BUF[0]='a';
UART1_TX_BUF[1]='t';
UART1_TX_BUF[2]='+';
UART1_TX_BUF[3]='c';
UART1_TX_BUF[4]='m';
UART1_TX_BUF[5]='g';
UART1_TX_BUF[6]='s';
UART1_TX_BUF[7]='=';
UART1_TX_BUF[8]=Len_cmgs[0];
UART1_TX_BUF[9]=Len_cmgs[1];
UART1_TX_BUF[10]=Len_cmgs[2];
UART1_TX_BUF[11]=13;
nTX1_Len = 12;
IE2 |= UTXIE1;
IFG2 &= ~UTXIFG1;
LPM0;
Delay_ms(100);
Data_len_hex[0]='6';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -