Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1081997
  • 博文数量: 135
  • 博客积分: 10182
  • 博客等级: 上将
  • 技术积分: 1565
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-07 16:05
文章分类

全部博文(135)

文章存档

2011年(5)

2010年(20)

2009年(3)

2008年(16)

2007年(91)

分类: LINUX

2007-07-24 22:26:32

通过gprs发短信的程序,重点在设置串口属性,比如硬件流控,等等。strcat(gsmMessage, "\x1a"); 这一句结束短信内容。串口设置的有关语句如下:
 newtio.c_cflag  |=  CLOCAL | CREAD | CRTSCTS;
 newtio.c_iflag = IGNPAR;
 newtio.c_oflag = 0;
 newtio.c_lflag = 0;  ////non ICANON
 
 newtio.c_cc[VINTR]    = 0;     /* Ctrl-c */
 newtio.c_cc[VQUIT]    = 0;     /* Ctrl-\ */
 newtio.c_cc[VERASE]   = 0;     /* del */
 newtio.c_cc[VKILL]    = 0;     /* @ */
 newtio.c_cc[VEOF]     = 4;     /* Ctrl-d */
 newtio.c_cc[VTIME]    = 5;     /* inter-character timer, timeout VTIME*0.1 */
 newtio.c_cc[VMIN]     = 0;     /* blocking read until VMIN character arrives */
 newtio.c_cc[VSWTC]    = 0;     /* '\0' */
 newtio.c_cc[VSTART]   = 0;     /* Ctrl-q */
 newtio.c_cc[VSTOP]    = 0;     /* Ctrl-s */
 newtio.c_cc[VSUSP]    = 0;     /* Ctrl-z */
 newtio.c_cc[VEOL]     = 0;     /* '\0' */
 newtio.c_cc[VREPRINT] = 0;     /* Ctrl-r */
 newtio.c_cc[VDISCARD] = 0;     /* Ctrl-u */
 newtio.c_cc[VWERASE]  = 0;     /* Ctrl-w */
 newtio.c_cc[VLNEXT]   = 0;     /* Ctrl-v */
 newtio.c_cc[VEOL2]    = 0;     /* '\0' */
 
 
int main(void)
{
 int fd;
 int nread,nwrite,i;
 char buff[32];
 char reply[128];
 char gsmMessage[20] = "Hello!";
 
 if((fd=open_port(fd,2))<0){
  perror("open_port error");
  return -1;
 }
 if((i=set_opt(fd,115200,8,'N',1))<0){
  perror("set_opt error");
  return -1;
 }
 printf("fd=%d\n",fd);
 memset(buff,0,sizeof(buff));
 buff[0] = 'A';
 buff[1] = 'T';
 buff[2] = '\r';
 nwrite = write(fd,buff,3);
 printf("nwrite=%d,%s\n",nwrite,buff);
 memset(reply,0,sizeof(reply));
 nread = read(fd,reply,sizeof(reply));
 printf("nread=%d,%s\n",nread,reply);
 memset(buff,0,sizeof(buff));
 strcpy(buff,"AT+CMGF=1");
 strcat(buff,"\r");
 nwrite = write(fd,buff,10);
 printf("nwrite=%d,%s\n",nwrite,buff);
 memset(reply,0,sizeof(reply));
 nread = read(fd,reply,sizeof(reply));
 printf("nread=%d,%s\n",nread,reply);
 memset(buff,0,sizeof(buff));
 strcpy(buff,"AT+CMGS=");
 strcat(buff,"136");
 strcat(buff,"\r");
 nwrite = write(fd,buff,strlen(buff));
 printf("nwrite=%d,%s\n",nwrite,buff);
 memset(reply,0,sizeof(reply));
 nread = read(fd,reply,sizeof(reply));
 printf("nread=%d,%s\n",nread,reply);
 strcat(gsmMessage, "\x1a");    
 nwrite = write(fd,gsmMessage,7);
 printf("nwrite=%d,%s\n",nwrite,gsmMessage);
 memset(reply,0,sizeof(reply));
 nread = read(fd,reply,sizeof(reply));
 printf("nread=%d,%s\n",nread,reply);
 close(fd);
 return 0;
}
阅读(3469) | 评论(3) | 转发(1) |
给主人留下些什么吧!~~