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

📄 gsm.h

📁 这个文件里实现的是GSM接收和发送短信的一些功能辅助函数
💻 H
字号:
/*     文 件 名:gsm.h    作    者:丁宏伟    创建时间:2008年10月    修改时间:2008年11月26日    */#ifndef _GSM_H#define _GSM_Htypedef struct {      char *cmgf_cmd;      char cmgs_cmd[12];      char *len_tpdu;      char *addr_smsc;      char *obj_tpdu;      char *phone;      char *use_tpdu;      char len_msg[2];            //max = 256      char *unicode_msg;      char send_cmd;      char *MSG;      int len2_tpdu;      int len_smsc;}GSM;struct parse{    char phone[15];    char msg[1024];    char date[20];    char head[20];    char len[4];    char stat;    char utf8_msg[2048];}msg_all;/*这个函数的作用是把一个16进制的字符串转换成INT型的整数;  */int xatoi(char *p,int n){        int t;        int i,j=1,k;        int sum=0,v=1;               if(!strncmp(p,"0x",2) || !strncmp(p,"0X",2)){//判断格式是否以0X开头;            i=2;//忽略前导0x;            while(p[i] == '0') i++;//忽略前导0;             k=n-i;//获得从第一个不为0的字符个数;            while(p[i]!='\0'){		  if(p[i]>='0'&& p[i] <= '9'){//判断p[i]是否为0-9之间的字符;		      t=p[i]-'0';//将字符转换成ASSIC码值;		  }    		  if(p[i]>='A' && p[i] <= 'F'){		      t=p[i]-'A'+10;		  }    		  if(p[i]>='a'&& p[i] <= 'f'){		      t=p[i]-'a'+10;		  }             //       else printf("False Character !\n");		  for(v=1,j=1;j<k;j++) {//K代表位数;			  v*=16;//V是16进制数的位权;		  }		  sum+=(t*v);//计算出每一位的值;		  k--;i++;//K--表示从高位到低位;            }            return sum;/*                if(!strncmp(p,"0",1){        }        else strcpy(s,p);        return atoi(s);*/	}}/* 此函数的作为是把一个INT型数转换成16进制的字符串格式; T是一个小于255的INT型数;*/void itoa(int t,char *a,int n){	int l,h;	if(t>=256 && t<0){	 perror("int value >255 !");	}	l=t%16;//获得T的低4位	h=t/16;//获得T的高4位	if(h>=10){		a[0]=h%10+'A';//高位大于10 即A-F;	}else a[0]=h+'0';	if(l>=10){		a[1]=l%10+'A';	}else a[1]=l+'0';	a[2]='\0';}/*tochar 这个函数是把接收到的GSM查询信息分成两个字符串段;to_head与to_msg;*/int  tochar(char *buf,char *to_head,char *to_msg,int *n){	/*  ---------------------------        -----------------------------*/	static int i=0;	int j=0;	n[1]+=1;	/*  ---------------------------        -----------------------------*/			if(i==0){		while(buf[i]!='\n') i++;		i++;	}//	getchar();	/*  ---------------------------        -----------------------------*/	memset(to_head,0,sizeof(to_head));	while(buf[i]!='\n')		to_head[j++]=buf[i++];	to_head[j]='\0';//	printf("### to_head ###:%s\n",to_head);	/*  ---------------------------        -----------------------------*/	if(!strncmp(to_head,"OK",2))	{	printf("短信解码成功!\n"); n[1]-=1;	return i;	 }	/*  ---------------------------        -----------------------------*/	i++;	n[0]=j;	j=0;//	getchar();	/*  ---------------------------        -----------------------------*/	memset(to_msg,0,sizeof(to_msg));	while(buf[i]!='\n')		to_msg[j++]=buf[i++];	to_msg[j]='\0';//	printf("###to_msg###: %s\n",to_msg);	/*  ---------------------------        -----------------------------*/		if(!strncmp(to_msg,"OK",2))	{	printf("短信解码成功!\n");		--(n[1]); 	return i;	 }	i++;	/*  ---------------------------        -----------------------------*/			return i;}#endif

⌨️ 快捷键说明

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