Hi,
I am trying to write AT commands to a serial port to which a Huawei GSM modem is connected and read the result back. E.g read all SMS messages on the sim card.
Below is my code. When it gets to the read part of the code it remains at that point forever, unless I terminate the program.
#include <stdio.h>
#include <string.h>
#include <fcntl.h>
#include <termios.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>
int main(){
FILE *fd;
struct termios options;
fd = open("/dev/ttyUSB0",O_RDWR | O_NOCTTY);
if(fd){
printf("port opening successful %d .file description is\n",fd);
}else{
perror("Open port failded");
}
int rr,r,w;
char buf[255];
printf("Writing\r\n");
w = write(fd,"AT\n",16);
printf("unsleeping\r\n");
usleep(100000);
printf("Reading\r\n");
r=read(fd,buf,6);
printf("Read\r\n");
if(r>0){
printf("Data: %s \r\n",buf);
}
close(fd);
printf("Hello world \n");
return 0;
}</time.h></unistd.h></stdlib.h></termios.h></fcntl.h></string.h></stdio.h>
I would like to know if I am doing anything wrong, and if so what is the best way to go about it.