[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