#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;
}