Перейти к содержанию
    

SIM900R и AT+CNMI

Имеем модем SIM900R.

 

at+gsv

SIMCOM_Ltd

SIMCOM_SIM900R

Revision:1137B04SIM900R32_ST

 

Не могу понять, как работает второй параметр (mt) в команде AT+CNMI.

 

1. Устанавливаю параметр mt в 0

at+cnmi?

+CNMI: 2,0,0,0,0

 

OK

 

2. Посылаю модему SMS

 

3. От модема приходит URC (в PDU режиме)

 

+CMT: "",30

07919730071111F10414D04937BD2C7797E9D3E61400002170115150336107F4F29C2E83C500

 

и сообщение сохраняется в памяти.

 

Но в стандарте и в описании команд модема написано, что при mr = 0

No SMS-DELIVER indications are routed to the TE

 

Почему модем выдает URC, которого вроде не должно быть совсем?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что конкретно нужно получить ?

 

Модем выдает URC - которое не сохранится согласно вашим установкам

И сохраняет СООБЩЕНИЕ к которому CNMI имеет отношение только в плане отчета о доставке.

 

Подробное описание работы CNMI с картинкой есть в GSM 07.05.

 

У Сinterion есть неплохой перевод формата команды.

 

AT+CNMI Настройка формирования отчетов о событиях SMS

 

Команда AT+CNMI управляет настройками SMS, относящимися к представлению кодов URC. По этой команде выбирается процедура индикации приема нового короткого сообщения для TE, если это устройство TE активно (например, сигнал DTR находится в состоянии ON).

Если TE неактивно (например, сигнал DTR находится в состоянии OFF), прием сообщения должен быть выполнен согласно спецификации 3GPP TS 23.038. Если сигнал DTR отсутствует или его состояние игнорируется (команда AT&D0 V.250), то достоверная передача сообщения обеспечивается использованием процедуры подтверждения AT+CNMA.

Применение для сохранения полученных сообщений правил <mt>=2 и <mt>=3 возможно только при условии, что с помощью команды AT+CSMS=1 активирована совместимость с фазой 2+. Параметр <ds>=1 доступен только в фазе 2+.

 

 

Описание параметров

 

<mode>

 

0

URC-коды, касающиеся SMS, всегда буферизуются в ME. При заполнении буфера наиболее старые из них удаляются и заменяются вновь принятыми.

1

URC, относящиеся к SMS, передаются непосредственно в TE. Однако, если это невозможно из-за занятости канала ME-TE, например, во время передачи данных, то эти URC-коды игнорируются.

2

URC, относящиеся к SMS, передаются непосредственно в TE. Однако, если это невозможно из-за занятости канала ME-TE, то эти URC-коды буферизуются и впоследствии передаются в TE.

3

URC, относящиеся к SMS, передаются непосредственно в TE. Однако, если это невозможно из-за занятости канала ME-TE, то эти URC-коды буферизуются и впоследствии передаются в TE.

Кроме того, если канал ME-TE занят, то информация о находящихся в буфере URC-кодах передается в TE путем отправки кода BREAK или активации линии RING в соответствии со значением параметров команды AT^SCFG: <uri>, <udri> и <urat>.

 

<mt>

 

Правила хранения принятых коротких сообщений определяются соответствующим методом кодирования данных (см. 3GPP TS 23.038 [30]), установкой предпочтительной памяти (AT+CPMS) и этим значением.

Примечание: если интерфейс AT-команд работает только в качестве устройства отображения, ME должно обеспечивать хранение сообщений класса 0 и сообщений, относящихся к группе индикации ждущих сообщений (discard message).

0

Сообщения-индикаторы SMS-DELIVER не пересылаются в TE.

1

Если SMS-DELIVER хранится в ME, сообщение-индикатор ячейки памяти пересылается в TE с помощью незапрашиваемого кода результата.

2

Сообщения SMS-DELIVER, за исключением сообщений класса 2 и сообщений, относящихся к группе индикации ждущих сообщений (store message), пересылаются непосредственно в TE с помощью незапрашиваемого кода результата.

3

Сообщения SMS-DELIVER класса 3 пересылаются непосредственно в TE с помощью незапрашиваемых кодов результата, определенных значением <mt>=2. Индикация сообщений с другими схемами кодирования данных осуществляется в соответствии с <mt>=1.

 

<bm>

 

Правила хранения принятых сообщений CBM зависят от соответствующего метода кодирования данных (см. 3GPP TS 23.038 [30]), установки выбранных типов СВМ (AT+CSCB) и этого значения:

0

Индикаторы сообщений CBM не пересылаются в TE.

2

Новые CBM направляются непосредственно в TE с помощью URC-кодов.

3

Сообщения CBM класса 3 пересылаются непосредственно в TE с помощью незапрашиваемых кодов результата, определенных параметром <bm>=2.

 

<ds>

 

0

Сообщения SMS-STATUS-REPORT не пересылаются в TE.

1

Сообщения SMS-STATUS-REPORT пересылаются в TE с помощью URC.

2

Если SMS-STATUS-REPORT направляется в ME, сообщение-индикатор ячейки памяти пересылается в TE с помощью незапрашиваемого кода результата.

 

<bfr>

 

1

Буфер ME для URC-кодов, относящихся к SMS, очищается, когда параметр <mode> меняет значение с 0 на 1, 2 или 3.

 

<index>(num)

Целочисленный тип; значения в диапазоне номеров ячеек, поддерживаемых соответствующей памятью.

 

 

Примечания

• Параметры <mt>=2,3 и <ds>=1 доступны только в GSM фазы 2+ (см. AT+CSMS=1). При использовании этих параметров фазы 2+, на входящие короткие сообщения (SM) или отчеты о состоянии должно выдаваться подтверждение (AT+CNMA=0).

 

• Специальные требования для мультиплексного режима

В мультиплексном режиме (AT+CMUX=0) параметр фазы 2+ может использоваться только в одном канале. Параметр для <mt> и <ds> в других каналах должен быть установлен в нулевое значение. Если на сообщение SM или отчет о состоянии не поступило подтверждение, для всех параметров AT+CNMI во всех каналах устанавливается нулевое значение.

 

• Если ME работает с разными экземплярами (мультиплексными каналами 1, 2, 3 или ASC0/ASC1), необходимо устанавливать одинаковые значения параметров для маршрутизации и индикации SMS-сообщений. Например, если сообщения должны быть напрямую направлены в один экземпляр TE (заданный с помощью AT+CNMI, AT^SSDA), то невозможно активизировать представление URC с помощью AT+CMER или AT+CNMI для другого экземпляра. Любая попытка активизировать настройки, противоречащие существующим настройкам в другом интерфейсе, приведет к ошибке "+CME ERROR", или, соответственно, "+CMS ERROR".

 

• Обработка коротких сообщений класса 0

Если дисплей в главном прикладном устройстве отсутствует, ME обрабатывает короткие сообщения класса 0 так, как если бы класс сообщения отсутствовал, т. е. ME игнорирует биты 0 и 1 в <dcs>, и при этом действуют обычные правила, применяемые в случае превышения емкости памяти. Рассмотренный подход совместим со стандартом 3GPP TS 23.038 [30].

 

• Если на короткое сообщение (SM) или отчет о состоянии не поступило подтверждение, для всех параметров AT+CNMI во всех каналах устанавливается нулевое значение.

 

 

Дополнение:

 

Thus, it is not recommended to use direct message routing (<mt>=2 or 3, <bm>=2 or 3, or <ds>=1) with <mode> value 0 or 2.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что конкретно нужно получить ?

 

Модем выдает URC - которое не сохранится согласно вашим установкам

И сохраняет СООБЩЕНИЕ к которому CNMI имеет отношение только в плане отчета о доставке.

 

Почему модем выдает URC -

+CMT: "",30

07919730071111F10414D04937BD2C7797E9D3E61400002170115150336107F4F29C2E83C500

 

Индикатор (URC) не должен же пересылаться в ТЕ, или я что не понимаю?

 

<mt>

0 - Сообщения-индикаторы SMS-DELIVER не пересылаются в TE.

 

А что значит,

Модем выдает URC - которое не сохранится согласно вашим установкам

Где он должен сохраниться?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как обычно в переводе неточность - досмотрел что не всю фразу перевели. :)

 

В стандарте - No SMS-DELIVER indications are routed to the TE

 

Не выдавать на индикацию, отправить в ТЕ - (терминал эквипмент) - в нашем случае выдать в последовательный порт.

Вот вы URC в порту и видите, экрана то у модуля нет. Стандарт ведь и для мобилок писан. А значит <mt> 0 не выведет на экран, но выдаст в порт.

 

Это как CLIP и CLIR - тоже расчитаны на работу с индикатором, а CLCC с портом (TE)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как обычно в переводе неточность - досмотрел что не всю фразу перевели. :)

 

В стандарте - No SMS-DELIVER indications are routed to the TE

 

Не выдавать на индикацию, отправить в ТЕ - (терминал эквипмент) - в нашем случае выдать в последовательный порт.

 

Оригинальный перевод :) Под indications здесь имеется ввиду URC, а ни как не дисплей телефона.

И раздел стандарта, в котором описана команда +CNMI называется

"New Message Indications to TE +CNMI", при чем здесь дисплей?

 

Смотрим GSM 07.05 - Figure 3: Message receiving procedures (стр. 50)

На котором видно, что при mt=0, на ТЕ на должны выводиться indications.

 

При mt=0, SMS должно "тихо" сохраниться в SM Strorages и все, без всяких +CMT:

 

 

Изменено пользователем antis

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Утром возьму модуль со склада и проверю.

 

И все же посмотрите подробное описание в приложеном файле - может мы недопоняли что.....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Утром возьму модуль со склада и проверю.

 

И все же посмотрите подробное описание в приложеном файле - может мы недопоняли что.....

 

Так я, на этот стандарт и ссылаюсь

"Смотрим GSM 07.05 - Figure 3: Message receiving procedures (стр. 50)"

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На 50й уже CNMA

 

CNMI на 44-45 странице.

 

Кстати нашел в одном источнике, правда по другому модему.

 

AT+CNMI=2,0,0,0,0<enter> - при получении сообщения в окне терминала будет выводиться код, который сообщит в какой ячейке памяти было сохранено сообщение (код области памяти и номер ячейки).

 

Очень похоже на ваш случай - память по умолчанию (пустые кавычки) и 30 ячейка.

 

Я бы попробовал 1,0,0,0,0

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На 50й уже CNMA

 

CNMI на 44-45 странице.

 

На 50 странице есть раздел "3.4.5 Informative Examples" (описание CNMA уже закончилось :))

и в нем рисунок Figure 3: Message receiving procedures

Если его посмотреть, то очень хорошо видно при каких настройках, что получается

 

Кстати нашел в одном источнике, правда по другому модему.

 

AT+CNMI=2,0,0,0,0<enter> - при получении сообщения в окне терминала будет выводиться код, который сообщит в какой ячейке памяти было сохранено сообщение (код области памяти и номер ячейки).

 

Очень похоже на ваш случай - память по умолчанию (пустые кавычки) и 30 ячейка.

 

Я бы попробовал 1,0,0,0,0

 

30 - это не номер ячейки, а размер PDU входящей SMS

SIM карта всего на 10 SMS.

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По теме - написал запрос китайцам, по факту ответа сообщу.

Чесно признаю что сам запутался, но уже интересно стало, надо разобраться.

 

 

Ну а карты разные бывают.

SAMSUNG S5230 - сообщения - состояние памяти - SMS

SIM - 3/40

Phone - 0/500

 

Как видим на карте может быть 40 SMS.

Карточка MTC Украина, с 256кб памяти.

 

Старая была на 20 SMS, после утери и восстановления дали вот такую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И что ответили китайцы?

Изменено пользователем antis

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

До сентября не отвечу - готовится новая прошивка, а по ней инфу пока не дают.

Сказали что если эта ошибка подтвердится то исправят.

Лето - народ в разъездах...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уж осень скоро, а нет уже зима настала

И прошивка новая вышла

А ответа все нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...