📄 西门子无线手机模块通信at命令.c
字号:
{
c=Recv_Data();
if(Recv_bit==0)return(0);
}
Address_H=0x00;
Address_L=0x00;
Month=Recv[0]&0x0f;
Month=((Recv[0]&0xf0)>>4)*10+Month;
Day=Recv[1]&0x0f;
Day=((Recv[1]&0xf0)>>4)*10+Day;
/****/
Day=Day-1;
DB=Day;
if(Day==0)
{
Month=Month-1;
if(Month==0)Month=12;
switch(Month)
{
case 1:
Day=31;
break;
case 2:
Day=29;
break;
case 3:
Day=31;
break;
case 4:
Day=30;
break;
case 5:
Day=31;
break;
case 6:
Day=30;
break;
case 7:
Day=31;
break;
case 8:
Day=31;
break;
case 9:
Day=30;
break;
case 10:
Day=31;
break;
case 11:
Day=30;
break;
case 12:
Day=31;
break;
}
}
switch(Timeout_Set)
{
case 0xc1:
for(i=1;i<Day;i++)
{
CY=0;
Address_L=Address_L+0x70;
if(CY==1)Address_H++;
}
if((Month&0x01)==0x01)
{
CY=0;
Address_L=Address_L+0x90;
if(CY==1)Address_H++;
Address_H=Address_H+0x0d;
}
Clear_R_S();
if(DingShiShangChuan_OneDay(Address_H,Address_L)==0)return(0);
/****/
R_S_Data[110]=(R_S_Data[110]&0x0f)|(((Day/10)*16)&0xf0);
R_S_Data[112]=(R_S_Data[112]&0x0f)|(((Day-((Day/10)*10))*16)&0xf0);
R_S_Data[108]=(R_S_Data[108]&0x0f)|((Month*16)&0xf0);
/****/
if(Send_Message()==0)return(0);
break;
case 0xc2:
if(DB==0)
{
Clear_R_S();
if((Month&0x01)==0x01)
{
Address_H=0x1f;
Address_L=0x90;
}
else
{
Address_H=0x1f;
Address_L=0x80;
}
if(DingShiShangChuan_OneMonth(Address_H,Address_L)==0)return(0);
R_S_Data[108]=(R_S_Data[108]&0x0f)|((Month*16)&0xf0);
if(Send_Message()==0)return(0);
/**************************/
}
break;
default:
break;
}
return(1);
}
/*短信控制命令****/
bit TC35_ini()
{
uchar c;
Send_Char('A'); /* 初始化PDU格式 */
Send_Char('T');
Send_Char('+');
Send_Char('C');
Send_Char('M');
Send_Char('G');
Send_Char('F');
Send_Char('=');
Send_Char('0');
Send_Char(0x0d);
while(1)
{
c=Recv_Data();
if(Recv_bit==0)return(0);
if(c=='O')
{
c=Recv_Data();
if(Recv_bit==0)return(0);
if(c=='K')break;
}
}
return(1);
}
bit Set_Mode()//设置短信息模式
{
uchar c;
Send_Char('A');
Send_Char('T');
Send_Char('E');
Send_Char('0');
Send_Char(0x0d);
while(1)
{
c=Recv_Data();
if(Recv_bit==0)return(0);
if(c=='O')
{
c=Recv_Data();
if(Recv_bit==0)return(0);
if(c=='K')break;
}
}
Delay_1000ms();
Send_Char('A');
Send_Char('T');
Send_Char('+');
Send_Char('C');
Send_Char('N');
Send_Char('M');
Send_Char('I');
Send_Char('=');
Send_Char('1');
Send_Char(',');
Send_Char('1');
Send_Char(',');
Send_Char('0');
Send_Char(',');
Send_Char('0');
Send_Char(',');
Send_Char('1');
Send_Char(0x0d);
while(1)
{
c=Recv_Data();
if(Recv_bit==0)return(0);
if(c=='O')
{
c=Recv_Data();
if(Recv_bit==0)return(0);
if(c=='K')break;
}
}
return(1);
}
bit Recv_GSM_Data()//接收短信息
{
uchar c;
while(1)
{c=Recv_Data();
if(Recv_bit==0)return(0);
if(c=='C')
{c=Recv_Data();
if(Recv_bit==0)return(0);
if(c=='M')
{c=Recv_Data();
if(Recv_bit==0)return(0);
if(c=='T')
{c=Recv_Data();
if(Recv_bit==0)return(0);
if(c=='I')break;
}
}
}
}
c=Recv_Data(); //返回‘:’0x3a
if(Recv_bit==0)return(0);
c=Recv_Data(); //返回‘ ’0x20
if(Recv_bit==0)return(0);
c=Recv_Data(); //返回‘"’ 0x22
if(Recv_bit==0)return(0);
c=Recv_Data(); //返回‘S’ 0x53
if(Recv_bit==0)return(0);
c=Recv_Data(); //返回‘M’ 0x4D
if(Recv_bit==0)return(0);
c=Recv_Data(); //返回‘"’ 0x22
if(Recv_bit==0)return(0);
c=Recv_Data(); //返回‘,’ 0x2C
if(Recv_bit==0)return(0);
c=Recv_Data(); //返回‘3’ 0x33
if(Recv_bit==0)return(0);
Message_No=c;
c=Recv_Data(); //返回‘3’ 0x33
if(Recv_bit==0)return(0);
if(c!=0x0d)
{
Message_NoB=c;
No_bit=1;
}
return(1);
}
bit Get_Message_Capability() //获取短信息容量
{
uchar c;
Send_Char('A');
Send_Char('T');
Send_Char('+');
Send_Char('C');
Send_Char('P');
Send_Char('M');
Send_Char('S');
Send_Char('?');
Send_Char(0x0d);
while(1)
{c=Recv_Data();
if(Recv_bit==0)return(0);
if(c=='C')
{c=Recv_Data();
if(Recv_bit==0)return(0);
if(c=='P')
{c=Recv_Data();
if(Recv_bit==0)return(0);
if(c=='M')
{c=Recv_Data();
if(Recv_bit==0)return(0);
if(c=='S')break;
}
}
}
}
c=Recv_Data(); //返回‘:’0x3a
if(Recv_bit==0)return(0);
c=Recv_Data(); //返回' ',0x20
if(Recv_bit==0)return(0);
c=Recv_Data(); //返回'"',0x22
if(Recv_bit==0)return(0);
c=Recv_Data(); //返回'S',0X53
if(Recv_bit==0)return(0);
c=Recv_Data(); //返回'M',0X4D
if(Recv_bit==0)return(0);
c=Recv_Data(); //返回'"',0X22
if(Recv_bit==0)return(0);
c=Recv_Data(); //返回',',0X2C
if(Recv_bit==0)return(0);
c=Recv_Data(); //返回'1',0X31 当前已有短信数量
if(Recv_bit==0)return(0);
c=Recv_Data(); //返回',',0X2C
if(Recv_bit==0)return(0);
if(c!=0x2c)
{
c=Recv_Data(); //返回',',0X2C
if(Recv_bit==0)return(0);
}
c=Recv_Data(); //返回'1',0X31
if(Recv_bit==0)return(0);
Message_No=c;
c=Recv_Data(); //返回'5',0X35
if(Recv_bit==0)return(0);
Message_NoB=c;
Message_Capability=toint(Message_No)*10+toint(Message_NoB);
return(1);
}
bit Read_GSM_Text()//读短信息
{
uchar c;
uint i,j,t,f,k=0,n=0;
uchar Data_Wide[2],Message_Mode;
Send_Char('A');
Send_Char('T');
Send_Char('+');
Send_Char('C');
Send_Char('M');
Send_Char('G');
Send_Char('R');
Send_Char('=');
Send_Char(Message_No);
if(No_bit==1)Send_Char(Message_NoB);
Send_Char(0x0d);
while(1)/*------------*/
{c=Recv_Data();
if(Recv_bit==0)return(0);
if(c=='+')
{c=Recv_Data();
if(Recv_bit==0)return(0);
if(c=='C')
{c=Recv_Data();
if(Recv_bit==0)return(0);
if(c=='M')
{c=Recv_Data();
if(Recv_bit==0)return(0);
if(c=='G')
{c=Recv_Data();
if(Recv_bit==0)return(0);
if(c=='R')break;
}
}
}
}
}
/*------------*/
c=Recv_Data(); //返回‘:’ 0x3a
if(Recv_bit==0)return(0);
c=Recv_Data(); //返回‘ ’ 0x20
if(Recv_bit==0)return(0);
c=Recv_Data(); //返回‘1’ 0x31 短信记录号
if(Recv_bit==0)return(0);
if(c==0x30) //短信息为空则延时后返回
{
for(i=0;i<11;i++)
{
c=Recv_Data();
if(Recv_bit==0)return(0);
}
Delay_100ms();
Message_NoB=0x99;
return(2);
}
c=Recv_Data(); //返回‘,’ 0x2C
if(Recv_bit==0)return(0);
if(c!=0x2c)
{
c=Recv_Data(); //返回‘,’ 0x2C
if(Recv_bit==0)return(0);
}
c=Recv_Data(); //返回‘,’ 0x2C
if(Recv_bit==0)return(0);
c=Recv_Data(); //返回‘2’ 0x32
if(Recv_bit==0)return(0);
c=Recv_Data(); //返回‘2’ 0x32
if(Recv_bit==0)return(0);
c=Recv_Data();
if(Recv_bit==0)return(0);
if(c==0x0d)
{
f=27;
}
else
{
f=28;
}
for(i=0;i<f;i++)
{
c=Recv_Data();
if(Recv_bit==0)return(0);
}
/*--------------*/
for(i=0;i<12;i++)
{
c=Recv_Data();
if(Recv_bit==0)return(0);
}
/*--------------*/
for(i=0;i<3;i++)
{
c=Recv_Data();
if(Recv_bit==0)return(0);
}
/*--------------*/
c=Recv_Data();
if(Recv_bit==0)return(0);
Message_Mode=c;
for(i=0;i<12;i++)
{
c=Recv_Data();
if(Recv_bit==0)return(0);
}
/*--------------*/
for(i=0;i<2;i++)
{
c=Recv_Data();
if(Recv_bit==0)return(0);
}
/*--------------*/
for(i=0;i<2;i++)
{
c=Recv_Data();
if(Recv_bit==0)return(0);
Data_Wide[i]=c;
}
/*--------------*/
i=16*(Data_Wide[0]-0x30);
if(Data_Wide[1]>0x40)
i=i+Data_Wide[1]-0x40+9;
else
i=i+Data_Wide[1]-0x30;
if(i>114) i=114; //最多处理57汉字或114字符数字
/*----------------*/
if(Message_Mode=='8')//中文传输模式
{
for(j=0;j<i/2;j++)
{
c=Recv_Data();
if(Recv_bit==0)return(0);
if(c>0x40)
t=16*(c-0x40+9);
else
t=16*(c-0x30);
c=Recv_Data();
if(Recv_bit==0)return(0);
if(c>0x40)
t=t+c-0x40+9;
else
t=t+c-0x30;
R_S_Data[k++]=t;
c=Recv_Data();
if(Recv_bit==0)return(0);
if(c>0x40)
t=16*(c-0x40+9);
else
t=16*(c-0x30);
c=Recv_Data();
if(Recv_bit==0)return(0);
if(c>0x40)
t=t+c-0x40+9;
else
t=t+c-0x30;
R_S_Data[k++]=t;
}
}
else//英文传输模式
{
;
}
return(1);
}
bit Delect_GSM_Message()//删除短信息
{
uchar c;
Send_Char('A');
Send_Char('T');
Send_Char('+');
Send_Char('C');
Send_Char('M');
Send_Char('G');
Send_Char('D');
Send_Char('=');
Send_Char(Message_No);
if(No_bit==1)Send_Char(Message_NoB);
Send_Char(0x0d);
while(1)
{
c=Recv_Data();
if(Recv_bit==0)return(0);
if(c=='O')
{
c=Recv_Data();
if(Recv_bit==0)return(0);
if(c=='K')break;
}
}
return(1);
}
bit Delect_GSM_MessageB()//删除短信息
{
uchar c;
Send_Char('A');
Send_Char('T');
Send_Char('+');
Send_Char('C');
Send_Char('M');
Send_Char('G');
Send_Char('D');
Send_Char('=');
Send_Char(Message_No);
Send_Char(Message_NoB);
Send_Char(0x0d);
while(1)
{
c=Recv_Data();
if(Recv_bit==0)return(0);
if(c=='O')
{
c=Recv_Data();
if(Recv_bit==0)return(0);
if(c=='K')break;
}
}
return(1);
}
/**************************/
bit Send_Message()//发送短信息
{
uint n;
uchar c;
L2=1;
A0=0;
A1=1;
A2=0;
A3=1;
Send_Char('A');
Send_Char('T');
Send_Char('+');
Send_Char('C');
Send_Char('M');
Send_Char('G');
Send_Char('S');
Send_Char('=');
Send_Char(0x31);
Send_Char(0x32);
Send_Char(0x38);
Send_Char(0x0d);
c=Recv_Data();
if(Recv_bit==0)return(0);
c=Recv_Data();
if(Recv_bit==0)return(0);
while(1)
{
c=Recv_Data();
if(Recv_bit==0)return(0);
if(c=='>')
c=Recv_Data();
if(Recv_bit==0)return(0);
if(c==' ')break;
}
Send_Char('0');
Send_Char('8');
Send_Char('9');
Send_Char('1');
Send_Char('6');
Send_Char('8');
Send_Char('3');
Send_Char('1');
c=Short_Center_Code[0];
c=(c&0x0f)+0x30;
Send_Char(c);
c=Short_Center_Code[0];
c=((c&0xf0)>>4)+0x30;
Send_Char(c);
c=Short_Center_Code[1];
c=(c&0x0f)+0x30;
Send_Char(c);
c=Short_Center_Code[1];
c=((c&0xf0)>>4)+0x30;
Send_Char(c);
c=Short_Center_Code[2];
c=(c&0x0f)+0x30;
Send_Char(c);
c=Short_Center_Code[2];
c=((c&0xf0)>>4)+0x30;
Send_Char(c);
c=Short_Center_Code[3];
c=(c&0x0f)+0x30;
Send_Char(c);
c=Short_Center_Code[3];
c=((c&0xf0)>>4)+0x30;
Send_Char(c);
c=Short_Center_Code[4];
c=(c&0x0f)+0x30;
Send_Char('f');
c=Short_Center_Code[4];
c=((c&0xf0)>>4)+0x30;
Send_Char(c);
Send_Char('1');
Send_Char('1');
Send_Char('F');
Send_Char('F');
Send_Char('0');
Send_Char('B');
Send_Char('8');
Send_Char('1');
Send_Char('3');
Send_Char('1');
c=Contral_Center_Code[0];
c=(c&0x0f)+0x30;
Send_Char(c);
c=Contral_Center_Code[0];
c=((c&0xf0)>>4)+0x30;
Send_Char(c);
c=Contral_Center_Code[1];
c=(c&0x0f)+0x30;
Send_Char(c);
c=Contral_Center_Code[1];
c=((c&0xf0)>>4)+0x30;
Send_Char(c);
c=Contral_Center_Code[2];
c=(c&0x0f)+0x30;
Send_Char(c);
c=Contral_Center_Code[2];
c=((c&0xf0)>>4)+0x30;
Send_Char(c);
c=Contral_Center_Code[3];
c=(c&0x0f)+0x30;
Send_Char(c);
c=Contral_Center_Code[3];
c=((c&0xf0)>>4)+0x30;
Send_Char(c);
c=Contral_Center_Code[4];
c=(c&0x0f)+0x30;
Send_Char('f');
c=Contral_Center_Code[4];
c=((c&0xf0)>>4)+0x30;
Send_Char(c);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -