📄 explain.c
字号:
/*
文 件 名:Explain.c
作 者:丁宏伟
创建时间:2008年10月
修改时间:2008年11月26日
*/
#include <stdio.h>
#include <string.h>
#include "gsm.h"
/*
解析返回的字符串AT+CMGL命令,buf信息头,n信息长度。
*/
int resolve_cmgl(char *buf,int n){
if(n<4) return -1;
while(buf[i]!=' ') i++;
if(buf[i]==' '){
i++;
while(buf[i]!=',')
msg_all.head[j++]=buf[i++];
}
msg_all.head[j]='\0';
while(buf[i]==',') i++;
j=0;
if(buf[i] != ',' && buf[i] != '\n'){
msg_all.stat=buf[i++];
}
while(buf[i]==',') i++;
while(buf[i] != ',' && buf[i] != '\n')
msg_all.len[j++]=buf[i++];
msg_all.len[j]='\0';
return 0;
}
/*
解析接收的字符串;struct parse *p 解析后目标,msg原码信息,n原码长度。
*/
void resoleve_msg(struct parse *p,char *msg,int n){
int i=0,j=0,k;
char stat[3]={0};
char len[5]={0};
int msg_len;
int phone_len;
strcpy(len,"0X");
stat[0]=msg[18];
stat[1]=msg[19];
if(!strcmp(stat,"04\0")) printf("<<REC READ>>\n");
if(!strcmp(stat,"24\0")) printf("<<REC UNREAD>>\n");
len[2]=msg[20];
len[3]=msg[21];
phone_len=xatoi(len,strlen(len))+1;// not F
for(i=24;i<24+phone_len;i++){
p->phone[j++]=msg[i+1];
p->phone[j++]=msg[i];
i++;
}
p->phone[j-1]='\0';
printf("手机号码:%s\n",p->phone);
i+=4;
j=0;
k=i;
for(;i<k+14;i++){
p->date[j++]=msg[i+1];
p->date[j++]=msg[i];
if(i==(k+4))
p->date[j++]=':';
else
if(i!=(k+10))
p->date[j++]='-';
i++;
}
p->date[j-3]='\0';//duojia le yi ci多加了一位;
printf("日期:%s\n",p->date);
len[3]=msg[i++];
len[4]=msg[i++];
msg_len=xatoi(len,4);
if(msg_len>140) printf("短信长度过长!\n");
j=0;
while(msg[i] != '\n'){
p->msg[j++]=msg[i++];
}
p->msg[j]='\0';
printf("短信内容源码:%s\n",p->msg);
UnicodeToUtf8(p->msg,strlen(p->msg));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -