Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:0
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Embedded Linux
Перекидывание данных между сераил портами
still
Добавлено 30.03.2011 21:40 Редактировалось 30.03.2011 21:42
0
Сообщение: 1
still
0

Пункты: 631
Регистрация: 12.11.2010
Задача такая:
2 ком порта.
1-й принимает/отвечает на команды и быполняет определенные операции на железке.
2-ой принимает команды обрабатывает и при определенных условиях должен на 1-й ком дать инфу.

с 1-ой проге не получилось 2 кома нормально слушать, так как если вешать 2 sigaction(SIGIO,&saio,NULL); то срабатыбают от балды то 1-н то 2-ой.

saio.sa_handler = signal_handler_IO;
//saio.sa_mask = 0; saio.sa_flags = 0;
saio.sa_restorer = NULL;
sigaction(SIGIO,&saio,NULL);

saio1.sa_handler = signal_handler_IO1;
//saio.sa_mask = 0;
saio1.sa_flags = 0;
saio1.sa_restorer = NULL;
sigaction(SIGIO,&saio1,NULL);

поры открываю как O_RDWR | O_NOCTTY | O_NONBLOCK

ктонить с таким сталкивался?

p.s.Софт пишется на C для imx233
Спуститься к концу Подняться к началу
Персональная информация
rw9uao
Добавлено 31.03.2011 06:20 Сообщение: 2
rw9uao
Ранг
5

Группа: Клиенты
Пункты: 6973
Регистрация: 26.03.2009
я обычно запускаю два потока и семафорами разруливаю.
Спуститься к концу Подняться к началу
Персональная информация
still
Добавлено 31.03.2011 13:50 Сообщение: 3
still
0

Пункты: 631
Регистрация: 12.11.2010
извиняюся за наглость, а мона сэмплик?
как идею придумал через сокет 2-м прогам между собой перекидыватся сообщениями :D
Спуститься к концу Подняться к началу
Персональная информация
Strijar
Добавлено 31.03.2011 16:56 Сообщение: 4
Strijar
Ранг
5

Группа: Клиенты
Пункты: 1618
Регистрация: 21.04.2009
Пол: Мужчина
Именно для этих задач используют select или poll
Спуститься к концу Подняться к началу
Персональная информация
still
Добавлено 31.03.2011 22:54 Сообщение: 5
still
0

Пункты: 631
Регистрация: 12.11.2010
теорию почитал про селект/пул, но ни 1-го примера с ком портом, да и целиком листинга нет, всё кусками.
кидайтесь в меня линками если имеются в фаворитах :)
Спуститься к концу Подняться к началу
Персональная информация
MTh
Добавлено 01.04.2011 04:12 Сообщение: 6
MTh
0

Пункты: 921
Регистрация: 19.09.2010
Если я парвильно помнию, то при открытии порта вы связываете указатель и файл в /dev... а потом уже через них кидаете в какой надо порт что нужно... Таким образом не пашет?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 01.04.2011 06:12 Сообщение: 7
sasamy
4.70

Пункты: 76914
Регистрация: 14.08.2009
Цитата

теорию почитал про селект/пул, но ни 1-го примера с ком портом, да и целиком листинга нет, всё кусками.
кидайтесь в меня линками если имеются в фаворитах :)


http://www.linuxquestions.org/questions/linux-networking-3/making-a-serial-snooper-with-a-linux-box-831431/#post4094877
Спуститься к концу Подняться к началу
Персональная информация
Strijar
Добавлено 01.04.2011 08:48 Сообщение: 8
Strijar
Ранг
5

Группа: Клиенты
Пункты: 1618
Регистрация: 21.04.2009
Пол: Мужчина
Цитата
теорию почитал про селект/пул, но ни 1-го примера с ком портом


на будущее - select (как и poll, read, write итд) - работают через открытый файловый дескриптор, который может быть обычным файлом, сетевым сокетом итд итп. Это-ж Unix ;)
Спуститься к концу Подняться к началу
Персональная информация
still
Добавлено 03.04.2011 00:33 Сообщение: 9
still
0

Пункты: 631
Регистрация: 12.11.2010
sasamy как всегда супер! по линку очень доступный семпл, переделал под свои трабования, работает как часики
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux