[LUGOS-PROG] serijski port in gsm

Pero pero13667 at yahoo.com
Tue Jan 29 11:54:53 CET 2002


Jaz sem imel S35, ki mislim da  je delal na 9600. Verjetno tudi tvoj m35 
dela na 9600 in ne na 19200!


lp,
Pero

gdb wrote:

> Spesnil sem en programcek, ki naj bi preverjal, ce dobim "OK" odgovor od
> modema. Na drugi strani ni navaden modem, ampak je GSM aparat Siemens
> M35i.
> 
> Problem je v tem, da vedno dobin nazaj "smeti". Prebral sem ze na tone
> manualov in FAQ-ov, pa mi zadeva nikakor na zaspila.
> 
> Prilagam source, ce bi mi kdo lahko pomagal.
> 
> #include <stdio.h>
> #include <string.h>
> #include <unistd.h>
> #include <fcntl.h>
> #include <termios.h>
> 
> #define OPEN_ERR 1
> #define WRITE_ERR 2
> #define READ_ERR 3
> 
> int main(int argc, char *argv[])
> {
>   char          devfile[30];
>   struct        termios options_new, options_save;
>   int           fd;
>   int           v_ret, i;
>   char          *send_str[50];
>   char          ch[2];
> 
>   if (argc != 2)
>   {
>     printf("usage : test_at device !!!\n");
>     return 99;
>   }
> 
>   sprintf(devfile,"%s%s","/dev/ttyS",argv[1]);
>   if ((fd = open(devfile, O_RDWR | O_NOCTTY)) < 0) /* | O_NONBLOCK); */
>   {
>    close(fd);
>    return OPEN_ERR;
>   }
> 
>   tcgetattr(fd, &options_save);
> /*  bzero(&options_new, sizeof(options_new)); */
> 
>   options_new.c_cflag |= B19200;
>   options_new.c_cflag |= CS8;
>   options_new.c_cflag |= CLOCAL | CREAD | HUPCL | CRTSCTS;
> 
>   options_new.c_lflag = 0;
> 
>   cfsetispeed (&options_new, B19200);
>   cfsetospeed (&options_new, B19200);
> 
>   options_new.c_cc[VTIME] = 10;
>   options_new.c_cc[VMIN] = 0;
> 
>   tcflush(fd, TCIFLUSH);
> 
>   tcsetattr(fd, TCSANOW, &options_new);
> 
>   *send_str = "AT\r";
>   if (write(fd, &send_str, strlen(*send_str)) < strlen(*send_str))
>   {
>     tcsetattr(fd, TCSANOW, &options_save);
>     close(fd);
>     return WRITE_ERR;
>   }
> 
>   i=0;
>   while (read(fd, &ch, 1) > 0)
>   {
>    i += 1;
>    printf("%s", ch);
>   }
>   tcsetattr(fd, TCSANOW, &options_save);
>   close(fd);
> 
>   if (i <= 0)
>     return READ_ERR;
>   else
>     return 0;
> }
> 
> 
> cu
> 
> 






More information about the lugos-prog mailing list