Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SIM900DS - double SIM reports
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
yooj
Попробуем навести порядок в SIM900DS
IMHO, если у модуля есть доступ к двум карточкам одновременно и обе карточки зарегились в сети, то абсолютно непонятно, на кой черт нам переключать карточку для определения уровня сигнала по CSQ?
Предлагаю сообразить что-то типа такого

AT+CSQ?
+CSQ: 28,0
+CSQDS: 17,0

AT+CREG?
+CREG: 1,0
+CREGDS: 1,0

Какие ещё команды Вам хотелось-бы видеть в таком формате без переключения дефолтной симки?
Alechek
Идея хорошая, но надо четко понимать, что ответы есть асинхронные и синхронные. Иначе будет путаница. По крайней мере - несовместимость с текущим ПО под -DS модемы.
+CSQ: синхронный ответ. обрабатывается по общим правилам GSM 07.07
+CSQN: асинхронный ответ. дополнен расширением от SIMCOM.

SIMCOM все сделал правильно. кроме 3-х вещей:
а) переключатель SIM зачем-то запоминается
б) переключатель SIM действует на все каналы мультиплексора
в) синхронный ответ +CPIN тоже дополнен "DS". Но это исключительно из-за того, что этим же форматом он отвечает "+CPIN: NOT READY". Ответы типа +CREG можно отличить, синхронные они или нет, по количеству параметров в ответе.

если сделать приставки с синхроным ответам - то совместимость с текущим ПО полетит к чертям, так как будет противоречить GSM 07.07
ЛЮБЫЕ ОТСТУПЛЕНИЯ ОТ СТАНДАРТА ПРЕСТУПНЫ!
yooj
ну нет так нет - баба с воза кобыле легче
если такого мнение будут придерживаться и другие участники форума - симкомовцы ничё трогать не будут
CADiLO
>>>если сделать приставки с синхроным ответам - то совместимость с текущим ПО полетит к чертям, так как будет противоречить GSM 07.07
ЛЮБЫЕ ОТСТУПЛЕНИЯ ОТ СТАНДАРТА ПРЕСТУПНЫ!

А вот тут товарищи в корне не правы. Смотрим последнюю строчку в описании команды в стандарте 07.07
И если там стоит Implementation - Optional, то ее синтаксис и прочее на усмотрение производителя.
Нельзя трогать только команды со статусом Implementation - Mandatory.

И еще:

07.07
The present document specifies a profile of AT commands and recommends that this profile be used for controlling.....

Подчеркиваю - РЕКОМЕДУЕТ, но не ОБЯЗЫВАЕТ соблюдать формат АТ команд.
И есть куча изделий где не просто отступления от 07.07 имеются, а вообще свой синтаксис.
Alechek
Естественно, международные стандарты никогда не будут обязательными. Да и вообще никто никого не принуждает... Не хочешь - не надо, ты - за бортом.
Рынок все расставит на свои места.

ЗЫ
Перевод с английского на русский фразы "Implementation - Optional" будет "Реализация - Опциональная (необязательная; факультативная)".
Как это переводится с английского на русский через китайский, я не знаю, но результат - в команде "+CMSS" от СИМКОМА

ЗЗЫ
Или товарищи неправы, что совместимость с текущим ПО полетит к чертям?
CADiLO
Если бы все было совместимо то нафига каждый производитель давал бы свой даташит по АТ командам????
Давали бы список дополнительных команд - остальное смотрите в стандарте.
Только как начинаешь внимательно смотреть, то отличия есть у всех.

Смотрим стандарт - команда CLCC - должно быть ДЕСЯТЬ типов ответов

<mode> (bearer/teleservice):
0 voice
1 data
2 fax
3 voice followed by data, voice mode
4 alternating voice/data, voice mode
5 alternating voice/fax, voice mode
6 voice followed by data, data mode
7 alternating voice/data, data mode
8 alternating voice/fax, fax mode
9 unknown

Смотрим у Telit если так уж Симком не нравится

<mode> - call type
0 - voice
1 - data
2 - fax
9 - unknown

Смотрим Wavecom

<mode>
0 Voice
1 Data
2 Fax

ГДЕ ОСТАЛЬНЫЕ??? ПОЧЕМУ НЕ ПО СТАНДАРТУ???

Ну и где ваша совместимость, почему не анализируют остальные ответы????

Так что не морочьте голову, нет полной совместимости - читаем даташит на конкретную железку и делаем как написал производитель.

Alechek
Эдуард, при всем уважении к Вам, не будем путать варианты ответОВ и варианты ответА.
Варианты, как и сама команда - по усмотрению разработчика. Если отсутствует поддержка режима <voice followed by data, voice mode>, кто будет отвечать этой опцией?
Для того и существует мануал к модему, чтобы знать ЧТО конкретно реализовано.
Телит и Wavecom вряд ли додумаются сделать вместо
0 voice
1 data
2 fax
ответы типа
0 fax
1 voice
2 data
или
0DS voice
1DS data
2DS fax

А, применительно к SIMCOMу, мануал существует для того, чтобы смотреть не только ЧТО, но и КАК реализовано.
CADiLO
Есть два варианта.

1. Упереться в "стандарт", из-за этого сделать криво но совместимо с непонятно кем, ибо на момент написания требований никто и не думал что будут двухсимочные модули или понадобятся дополнительные возможности. Ну и потерять время, реализовать все равно криво и остаться позади конкурентов которые пойдут по пути 2

2. Решить вопрос с Симкомом о удобстве работы с модулем, например ответами которые и стандарт в основной части не нарушат и удобными будут. Использовать имеющиеся или настоять на нужных фишках и выйти на рынок с более полным функционалом чем у конкурентов.

Пример - несколько компаний, объеденили пожелания к SIM900R и за 4 месяца получили прошивку с функциями, которых нет в других модулях или есть вразброс - по одной у кого-то. Теперь их приборы идут даже в Словакию и Польшу, а тамошние производители сидя на штатных европрошивках ничего противопоставить по функционалу не могут. Да - ОЕМ прошивка, другим не дают, несколько не стандартная - зато удобная.

И при этом тоже пришлось искать компромисс - вот самое простое с чем столкнулись

AT+VTS="0,1,2,3,4,5,6,7,8,9"
OK // стандартный ответ, согласно стандарту выдается сразу как отдана команда, а не когда закончена генерация.
+VTS:END // дополнительное нестандартное сообщение говорящее что генерация окончена
// и не нужно гадать выдался сигнал или нет ибо "стандарт" это не регламентирует, а нужно точно знать

and

AT+CLDTMF=1,"0,1,2,3,4,5,6,7,8,9",500,1
OK
+CLDTMF:END

Тут вообще отдельная история - команда фактически переделана с нуля, зато возможностей у нее стало дофига....

А дополнительная команда AT+CDTMFURC=1,1 говорит о том включать вторую строчку URC для обоих команд или нет.

Нарушили стандарт - да. Но стало намного удобнее и понятнее.
А кто не хочет, отключает URC и извращается с таймаутами гадая отгенерилось или нет.

И такого в новой прошивке достаточно....

Не хотите развития SIM900DS - не вопрос - берите штатную евроверсию без расширений - там все по стандарту.
А за время пока вы с ней будете мучаться мы реализуем с Симкомом пожелания по модулю и очередная ОЕМ прошивка пойдет только участвовавшим.


Alechek
sm.gif
Так, повторюсь еще раз: расширения можно делать любые, но, крайне желательно, в рамках стандарта.
А стандартом делать расширения не запрещено. Хотите новые команды (AT+CLDTMF) - пожалуйста. Хотите новые URC (+VTS:END) - пожалуйста!

Поверьте, я с DS прошивкой мучаюсь не более, чем с обычными. Все лаконично получается, за исключением вышеперечисленных 3-х пунктов.

И уперся я только в ограничения +CDSDS, состояние которой СИМКОМ (выдохнул, мат пропустил) пишет в память каждый раз! Только, походу, кроме меня никого это не волнует.
Все готовы изобретать костыли в виде новых ответов, новых запросов и прочих ненужных вещей.

по мне так куда проще сделать типа

SELECT(_SIM1)
REFRESH_STATE(_SIM1)
SELECT(_SIM2)
REFRESH_STATE(_SIM2)
if (_SIM1.NetworkStatus == nwREGISTERED)
{
SELECT(_SIM1)
SEND_DATA()
}
else
if (_SIM2.NetworkStatus == nwREGISTERED)
{
SELECT(_SIM2)
SEND_DATA()
}

чем создавать дополнительные запросы и интерпретировать дополнительные ответы.
Aurochs
Да тут уже хрен с ними, со стандартами. Симком и стандарты давным-давно и, похоже, навсегда, разошлись как в море корабли.
Но прописывать во флеш каждое переключение SIM по умолчанию!
Как ни старался, просто не могу понять: зачем?
Делалось в пьяном бреду?
Или вредителями по заказу конкурентов? sm.gif
ssokol
Цитата(Aurochs @ Nov 7 2013, 04:06) *
Но прописывать во флеш каждое переключение SIM по умолчанию!

Это фигня. В 5216 они во флеш прописывают все гейны по аудио входам-выходам, эхоканцлеру и вроде вообще всё!!! И моя затея сделать программно АРУ с плавным регулированием громкостью сошла на нет, пришлось аппаратно. Иначе флешь проелась бы за неделю! Причем говорят - кол-во перезаписей неограничено. Создается впечатление , что там вообще СРАМа нет, все переменные - во флэшэ.
yooj
Цитата(Alechek @ Nov 6 2013, 15:31) *
sm.gif
Так, повторюсь еще раз: расширения можно делать любые, но, крайне желательно, в рамках стандарта.
А стандартом делать расширения не запрещено. Хотите новые команды (AT+CLDTMF) - пожалуйста. Хотите новые URC (+VTS:END) - пожалуйста!

Поверьте, я с DS прошивкой мучаюсь не более, чем с обычными. Все лаконично получается, за исключением вышеперечисленных 3-х пунктов.

И уперся я только в ограничения +CDSDS, состояние которой СИМКОМ (выдохнул, мат пропустил) пишет в память каждый раз! Только, походу, кроме меня никого это не волнует.
Все готовы изобретать костыли в виде новых ответов, новых запросов и прочих ненужных вещей.

по мне так куда проще сделать типа

SELECT(_SIM1)
REFRESH_STATE(_SIM1)
SELECT(_SIM2)
REFRESH_STATE(_SIM2)
if (_SIM1.NetworkStatus == nwREGISTERED)
{
SELECT(_SIM1)
SEND_DATA()
}
else
if (_SIM2.NetworkStatus == nwREGISTERED)
{
SELECT(_SIM2)
SEND_DATA()
}

чем создавать дополнительные запросы и интерпретировать дополнительные ответы.


кстати да, вполне разумно
попробую пихнуть симком в этом направлении
ssokol
Цитата(yooj @ Nov 8 2013, 15:03) *
кстати да, вполне разумно
попробую пихнуть симком в этом направлении

можно попробовать аналогично и по 5216 пнуть , в свое время у МТ-Систем не получилось, может надо сообщя biggrin.gif biggrin.gif
я предлагал АТххх&W - пишем во флеш, иначе не пишем.
CADiLO
Как вариант сделать

AT+CDSDS - переключение с запоминанием

AT*CDSDS или AT#CDSDS - переключение для следующей команды или сессии без запоминания
Aner
Поясните у кого какие времена задержек получаются с переключением на другого оператора для GPRS, SMS, Голоса?
yooj
Цитата(Aner @ Nov 8 2013, 16:29) *
Поясните у кого какие времена задержек получаются с переключением на другого оператора для GPRS, SMS, Голоса?


тут речь идет о DS, т.е. две карты в сети одновременно, Вы именно этот модуль имели в виду?
Aner
QUOTE (yooj @ Nov 8 2013, 17:55) *
тут речь идет о DS, т.е. две карты в сети одновременно, Вы именно этот модуль имели в виду?

Именно о DS, два приемных стека, один на передачу.
ssokol
Цитата(CADiLO @ Nov 8 2013, 17:07) *
Как вариант сделать

AT+CDSDS - переключение с запоминанием

AT*CDSDS или AT#CDSDS - переключение для следующей команды или сессии без запоминания

Эдуард, перестаньте пытаться лезть в окно, для этого есть стандартное средство - двери, в смысле - &W
CADiLO
Никто совместимость в этом случае ломать не станет, проще ввести команду которая будет переключать без записи чем менять то что уже сложилось.
ssokol
Цитата(CADiLO @ Nov 10 2013, 15:12) *
Никто совместимость в этом случае ломать не станет, проще ввести команду которая будет переключать без записи чем менять то что уже сложилось.

а , представьте, чтоб не ломать совместимость , например, автопроизводители при необходимости добавить в коробку еще одну передачу , добавляли бы еще одну "кочергу" для этой передачи... И как только не додумались - для каждой передачи своя "кочерга" wacko.gif
Aner
QUOTE (ssokol @ Nov 10 2013, 19:59) *
а , представьте, чтоб не ломать совместимость , например, автопроизводители при необходимости добавить в коробку еще одну передачу , добавляли бы еще одну "кочергу" для этой передачи... И как только не додумались - для каждой передачи своя "кочерга" wacko.gif

Для этого ... на автомате ездить нужно, а не на ручной коробке с кочергой.
Alechek
Цитата(CADiLO @ Nov 10 2013, 17:12) *
Никто совместимость в этом случае ломать не станет, проще ввести команду которая будет переключать без записи чем менять то что уже сложилось.

Применительно к этой команде - мне очень интересно, у кого же сложилось это самое то. Ну хоть один реальный пример, где используется автосохранение?
Или это "удобства" сделаны исключительно из-за того, что модем сам может перезагрузиться, а у пользователя не всегда получится это отследить? 01.gif
ssokol
Цитата(Aner @ Nov 10 2013, 23:53) *
Для этого ... на автомате ездить нужно, а не на ручной коробке с кочергой.

Ну, для совместимости, китайцы, к трем педалям для кочерги добавили бы еще две - для автомата, да еще бы сделали автосохранение нажатия педалей. biggrin.gif

Цитата(Alechek @ Nov 11 2013, 10:14) *
Или это "удобства" сделаны исключительно из-за того, что модем сам может перезагрузиться, а у пользователя не всегда получится это отследить? 01.gif

Кстати , хорошее замечание, явно не замечал такое за симкомом, но надо еще понаблюдать.
Velund
QUOTE (ssokol @ Nov 11 2013, 21:23) *
Кстати , хорошее замечание, явно не замечал такое за симкомом, но надо еще понаблюдать.


На SIM300 замечал время от времени. Нечасто, и не со всеми разновидностями симок.
Alechek
Да будут перезагрузки на всех, если питание плохое.
Лучшие способы защиты от этого - установленный PIN на симке и использование мультиплексора.
Alex_TAV
Я только начинаю присматриватся к SIM900-DS и такой вопрос. Если у меня был ранее проект где две SIM карты переключались 4066D, а сейчас перехожу на SIM900-DS , то мне проще в программе просто менять активную SIM карту командой AT+CDSDS и тогда все остальные команды останутся как раньше? Ну и плюсом что не нужно будет как раньше выключать модуль для смены SIM карты.
Alechek
Alex_TAV, практически, да. Поменять только алгоритм переключения карт и учесть, что по второй симке на +СPIN? ответ будет +CPINDS:
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.