Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: CMUX: Не получается читать из виртуального устройства через fopen
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
insektazz
Есть какая-то непонятная проблема. Суть такова.
Есть SIM900R подключенный к ttyS0, использую CMUX (https://github.com/insekt/cmux/blob/master/cmux.c), чтобы создать 2 виртуальных tty - один для передачи данных pppd, второй для работы с модемом, управления через АТ команды. Вот со вторым tty есть проблема. Сначала все отлаживал в ручную (echo и cat) - все ок. Сейчас попробовал засунуть все в php скрипт (на основе https://github.com/Xowap/PHP-Serial) и обнаружил, что не работает. Скрипт открывает виртуальный tty, но никаких данных оттуда не получает. И еще заметил такую странность. После того как выключаю скрипт, через echo/cat тоже перестает работать, помогает только перезапуск CMUX.
Если скрипт запускаю напрямую на ttyS0, то все нормально.

В чем может быть проблема?
Pavel☺
Цитата(insektazz @ May 7 2014, 14:27) *
Есть какая-то непонятная проблема. Суть такова.
Есть SIM900R подключенный к ttyS0, использую CMUX (https://github.com/insekt/cmux/blob/master/cmux.c), чтобы создать 2 виртуальных tty - один для передачи данных pppd, второй для работы с модемом, управления через АТ команды. Вот со вторым tty есть проблема. Сначала все отлаживал в ручную (echo и cat) - все ок. Сейчас попробовал засунуть все в php скрипт (на основе https://github.com/Xowap/PHP-Serial) и обнаружил, что не работает. Скрипт открывает виртуальный tty, но никаких данных оттуда не получает. И еще заметил такую странность. После того как выключаю скрипт, через echo/cat тоже перестает работать, помогает только перезапуск CMUX.
Если скрипт запускаю напрямую на ttyS0, то все нормально.

В чем может быть проблема?


Насколько мне известно, CMUX в модулях SIMCom работает отлично.
Проблема скорее всего в https://github.com/insekt/cmux/blob/master/cmux.c
Ручная отладка, как Вы понимаете, вносит временные задержки, поэтому могу Вам посоветовать понавтыкать везде pleep(20);. Затем убедиться, что всё заработало.. затем понять, где и какой sleep нужен )))
(как-бы намекнул на то, что модуль отвечает с задержкой и проблема возникает на этапе запуска CMUX)

При необходимости могу помочь снять диагностические логи для отправки в SIMCom для анализа.
insektazz
Цитата(Pavel☺ @ May 19 2014, 11:08) *
Насколько мне известно, CMUX в модулях SIMCom работает отлично.
Проблема скорее всего в https://github.com/insekt/cmux/blob/master/cmux.c
Ручная отладка, как Вы понимаете, вносит временные задержки, поэтому могу Вам посоветовать понавтыкать везде pleep(20);. Затем убедиться, что всё заработало.. затем понять, где и какой sleep нужен )))
(как-бы намекнул на то, что модуль отвечает с задержкой и проблема возникает на этапе запуска CMUX)

При необходимости могу помочь снять диагностические логи для отправки в SIMCom для анализа.


Времени на дебажение нет пока. Временно решил вопрос написанием скрипта на python, через который передаю и получаю информацию по служебному каналу. В скрипт передаю параметром команду(ы), которые надо выполнить. Пока все ок. Буде время - разберусь с php.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.