赞
踩
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <fcntl.h>
#include <termios.h>
#include <errno.h>
#include <pthread.h>
#include <string.h>
#include<stdbool.h>
#include <termios.h>
int main(){
int fd;
struct termios options;
/* open the port */ fd = open("/dev/ttyUSB3", O_RDWR | O_NOCTTY | O_NDELAY); if (fd == -1) { /* Could not open the port */ fprintf(stderr, "open_port: Unable to open /dev/ttyS1 - %s\n",strerror(errno)); }else{ printf("/dev/ttyUSB3 port opened\n"); } fcntl(fd, F_SETFL, 0); /* get the current options */ tcgetattr(fd, &options); /* set raw input, 1 second timeout */ options.c_cflag |= (CLOCAL | CREAD); options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); options.c_oflag &= ~OPOST; options.c_cc[VMIN] = 0; options.c_cc[VTIME] = 10; /* set the options */ tcsetattr(fd, TCSANOW, &options); char buffer[400]; /* Input buffer */ char *bufptr; /* Current char in buffer */ int nbytes; /* Number of bytes read */ int tries; /* Number of tries so far */ for (tries = 0; tries < 1; tries ++) { /* send an AT command*/ //if (write(fd, "AT+CMGL=\"ALL\"\r", strlen("AT+CMGL=\"ALL\"\r")) < 3) if (write(fd, "AT+CIMI\r", strlen("AT+CIMI\r")) < 3) { printf("command sent failed!\n"); continue; } /* read characters into our string buffer*/ bufptr = buffer; nbytes = read(fd, bufptr, buffer + sizeof(buffer) - bufptr - 1); printf("%s\n",bufptr); char *p; p = strstr(buffer, "tin"); printf("%s",p); p = strstr(buffer, "server"); if(p == NULL) { printf("not from server\n"); } *bufptr = '\0'; } return 0;
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。