The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"сново о наболевшем (com-порт и модем)"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"сново о наболевшем (com-порт и модем)"
Сообщение от ovilon emailИскать по авторуВ закладки on 26-Окт-04, 14:36  (MSK)
как правильно читать данные с ком-порта
- открываю порт:
fd = open(dev, O_RDWR | O_NOCTTY | O_NONBLOCK);

-ставлю флаги:
tcgetattr(fd, &options);
options.c_iflag &= ~(IGNBRK | IGNCR | INLCR | ICRNL | IUCLC | IXANY | IXON | IXOFF | INPCK | ISTRIP);
options.c_iflag |= BRKINT | IGNPAR;
options.c_oflag &= ~OPOST;
options.c_lflag = ~(ICANON | ISIG | ECHO | ECHONL | ECHOE | ECHOK);
options.c_cflag |= CS8 | CREAD | HUPCL | CRTSCTS;
options.c_cc[VMIN]  = 0;
options.c_cc[VTIME] = 10;
cfsetospeed(&options, B38400);
cfsetispeed(&options, B38400);
tcsetattr(fd, TCSANOW, &options);

- чтение и запись:
int GetBlock (char *block, int len) {
int i;
i = read (fd, block, len);
return i;
}

void PutBlock (char *block) {
int len;
len = strlen (block);
write (fd, block, len);
}

- теперь если пытаюсь записать комманду "AT\r", то из порта считываю "AT\rOK", за тем если например запишу в порт "ATDT11111", то из порта уже считывается что то похожеена это:
AT
OK
ATDP11111
CONECT

==================================
хотелось бы читать только ответ или хотябы ответ с полседней командой. Может можно как нибудь сбрасывать буфер модема или как то еще побороть это?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "сново о наболевшем (com-порт и модем)"
Сообщение от hatta Искать по авторуВ закладки(ok) on 26-Окт-04, 16:51  (MSK)
Так ведь это, у мамеда свое собственное эхо имеется, которое отключается командой ATE0


  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "сново о наболевшем (com-порт и модем)"
Сообщение от ovilon emailИскать по авторуВ закладки on 27-Окт-04, 10:36  (MSK)
>Так ведь это, у мамеда свое собственное эхо имеется, которое отключается командой
>ATE0


ладно эхо то я отключу, но тогда c момеде при посылке например AT\r я считаю OK. после этого если пошлю ATDP11111 то из модема считаю
OK
CONECT
а я бы хотел как нибуть считывать только то что еще не прочел

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру