kan35 7 26 февраля, 2013 Опубликовано 26 февраля, 2013 · Жалоба Прошу помощи кто воевал с CMUX: Странности: 1. Даю команды AT+CMUX? +CMUX: -1,0,5,127,10,3,30,10,2 OK AT+CMUX=0,0,5,31,10,3,30,10,2 OK модем переходит в режим, я его там инициализирую на 2 виртуальных порта, и прверяю на одном из портов AT+CMUX? +CMUX: 0,0,5,127,10,3,30,10,2 Почему во первых mode сначала -1, а затем 0? Типа выключено/включено? И самое главное - почему значение размера пакета остается по умолчанию - 127, я же ясно пишу 31!? 2. Когда пакеты короткие, то все нормально, но когда передается GPRS, где один PPP пакет состоит из нескольких пакетов CMUX - у меня данных накидывает даже более 127 байт. При чем количество объявляет 127, а пофакту вижу, что прилетело на несколько штук больше (3-4), при чем лишних каких нибудь данных в пакете не наблюдается (побайтно проверил - все четко), как будто он действительно нарезает не по 127, а скажем по 130 байтов. Что за...? Информация о модеме: ATI Quectel_Ltd Quectel_M72 Revision: M72R01A05N32 OK В целом более менее работает - на одном порту поднимаю PPP, другой оставляю на АТ командах, и оно работает за исключением пунктов выше. Но мне это критично. Что не так я делаю? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kan35 7 26 февраля, 2013 Опубликовано 26 февраля, 2013 · Жалоба Второй вопрос вроде снимается, похоже на ошибки по драйверу порта - захлебывается на высокой скорости. Снизил до 19200 и стало стабильно: в прерывании разбирать CMUX не совсем оптимально (STM32 16МГц, FREERTOS), в то же время без CMUX на 115200 отлично работает. Доведу до ума - выложу здесь исходник драйвера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SiriuS 0 28 февраля, 2013 Опубликовано 28 февраля, 2013 · Жалоба И самое главное - почему значение размера пакета остается по умолчанию - 127, я же ясно пишу 31!? А с какой целью уменьшаете размер пакета? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kan35 7 28 февраля, 2013 Опубликовано 28 февраля, 2013 · Жалоба дело в том, что у Sierra и SIMCOM по умолчанию размер пакета 31 байт. У Quectel - 127. И думаю, для переносимости кода на другие платформы следует уметь регулировать настройки. 31 в принципе нормальный размер :-))) - буфер не большой, а при 127 не на много производительнее будет, зато памяти съест больше в 4 раза. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kan35 7 1 марта, 2013 Опубликовано 1 марта, 2013 · Жалоба Проблемный момент: Например случилось, что я кидаю в канал GPRS данные, а ответа нет, типа висит в неизвестном состоянии. Или просто хочу переоткрыть сессию. В обычном режиме отпарвлял +++ и модем переходил в AT режим. Тут же отправляю +++ через CMUX - бесполезно. Хотя просто +++ - работает (видимо при этом CMUX закрыается автоматом), но закроются и остальные каналы мультиплексора - а там своя жизнь и возможно никаких проблем и нет. Закрытие одного лишь проблемного канала через средства CMUX решит проблему? И закроется ли соединение GPRS когда я закрою этот канал? Или есть другие варианты? Сам же отвечу. Не помогает переоткрытие витртуального порта. Как порт в GPRS режиме находился, так и продолжает. Пробовал кидать ATH по другому каналу - тоже нулевая реакция. Что делать.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SiriuS 0 1 марта, 2013 Опубликовано 1 марта, 2013 · Жалоба Что делать....Вы личные сообщения читали? Дайте свою аську, скайп или мыло. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kan35 7 1 марта, 2013 Опубликовано 1 марта, 2013 · Жалоба Вы личные сообщения читали? Дайте свою аську, скайп или мыло. У меня уведомления видимо в спам ссыпались (если они были). Зашел в личку - много интересного за годы накопилось:-))))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eirte 0 10 апреля, 2014 Опубликовано 10 апреля, 2014 · Жалоба Уважаемые знатоки, при использовании команды CMUX модем отвечает всего две секунды, после затыкается и далее не реагирует ни на AT команды ни на мультплексорные. Хотя в первые две секунды полностью отвечает и на те и на другие. использую модем Sierra Wireless WS6318. В чем может быть проблема? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mempfis_ 0 11 апреля, 2014 Опубликовано 11 апреля, 2014 · Жалоба Проблемный момент: Например случилось, что я кидаю в канал GPRS данные, а ответа нет, типа висит в неизвестном состоянии. Или просто хочу переоткрыть сессию. В обычном режиме отпарвлял +++ и модем переходил в AT режим. Тут же отправляю +++ через CMUX - бесполезно. Хотя просто +++ - работает (видимо при этом CMUX закрыается автоматом), но закроются и остальные каналы мультиплексора - а там своя жизнь и возможно никаких проблем и нет. Закрытие одного лишь проблемного канала через средства CMUX решит проблему? И закроется ли соединение GPRS когда я закрою этот канал? Или есть другие варианты? Сам же отвечу. Не помогает переоткрытие витртуального порта. Как порт в GPRS режиме находился, так и продолжает. Пробовал кидать ATH по другому каналу - тоже нулевая реакция. Что делать.... А зачем Вам в режиме CMUX отправлять +++? У Вас как минимум 3 виртуальных канала. Если Вы по одному открыли соединение с сервером, то проконтролировать статус соединения вероятно можно по другому. Например в Telit при открытии соккета по одному каналу, можно отправлять команду AT#SS (Soket Status) по другому каналу и прекрасно мониторить текущее состояние соединения. Я использую такой подход помимо отлавливания стандартных ERROR/NO CARRIER, которые могут прийти по каналу, по которому открыто соединение. По поводу +++ и работы с виртуальными каналами When in Multiplexed mode, the escape sequence ‘+++’ will not be detected by the module. It is responsibility of the application to use the break octet of the MSC (Modem Status Command) instead. Break octet of the MSC produce the same effect as ‘+++’ escape sequence. MSC прекрасно работает заменяя при этом контроль линий управления потоком, которые в режиме CMUX не доступны. В одном из недавних проектов MSC были успешно использовано для RTS/CTS управления потоком при передаче больших блоков данных. Ещё Вы писали по поводу ограничения размера пакетов в 31 байт. В самом описании CMUX сказано что пакеты могут содержать до 127 байт - и это действительно так. Я без каких-либо сбоев отправлял как одиночные байты, так и посылки по 127 байт. Но в проектах использую в основной пакеты по 64 байта. И по поводу скорости работы процессора - 12 МГц вполне достаточно для обработки пакетов CMUX на скорости 115200. С этим справлялась 16тимегагерцовая ATMega, а CORTEX-M3/M0 и подавно. Возможно у Вас просто недостаточный размер буффера UART (если конечно используете FIFO) или Вы просто теряете одиночные байты из-за чего у Вас получаются битые пакеты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eirte 0 22 апреля, 2014 Опубликовано 22 апреля, 2014 · Жалоба Как еще можно разорвать режим передачи данных для GPRS соединения, без команды WIPCLOSE и использования +++ в мультиплексорном режиме? Проблема заключается в том чтобы на другую сторону не передался +++ и желательно не закрывалась сесия GPRS модем WS6318 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться