LINUX.ORG.RU

Инициализация GSM модема для приема SMS сообщений


0

0

Интро:

- есть некоторая плата на ARM-e, с линуксом собранным на основе идеологии сборки openembedded

Вариант платы #1 - на плате распаяны два модема GSM/CDMA оба AnyData (выбор, вкл, выкл нужного модема через gpio)

Вариант платы #1 - на плате распаян GSM модем Wavecom

Общение в обоих случаях идет через последовательный порт /dev/ttySAC0

Есть некая утилитка do_at_cmd, которая выводит на экран принятый аргумент-команду, пишет команду в последовательный порт и ждет оттуда ответ который выводит в следующем виде «got '%s'».

Треубется — принимать на плату SMS-сообщения, с последующей их обработкой на стороне ещё одого приложения.

Лог для варианта 1 (во втором варианте все нормально):

root@pegasus:~# do_at_cmd "ATZ"

ATZ

got `ATZ___OK__'


root@pegasus:~# do_at_cmd "ATQ0"

ATQ0

got `ATQ0___OK__'


root@pegasus:~# do_at_cmd "AT+CMEE=1"

AT+CMEE=1

got `AT+CMEE=1___OK__'

root@pegasus:~# do_at_cmd "AT+CREG=1"

AT+CREG=1

got `AT+CREG=1___OK__'


root@pegasus:~# do_at_cmd "AT+COPS?"

AT+COPS?

got `AT+COPS?___+COPS: 0,0,"MegaFon RUS",2____OK__'

root@pegasus:~# do_at_cmd "AT+CSMS?"

AT+CSMS?

got `AT+CSMS?___+CSMS: 0,1,1,1____OK__'

root@pegasus:~# do_at_cmd "AT+CMGF=0"

AT+CMGF=0

got `AT+CMGF=0___OK__'


root@pegasus:~# do_at_cmd "AT+CNMI=2,2,2,1,0" 

AT+CNMI=2,2,2,1,0

got `AT+CNMI=2,2,2,1,0___+CMS ERROR: 303__'

root@pegasus:~# do_at_cmd "AT+CNMI=2,1,0,0,0"

AT+CNMI=2,1,0,0,0

got `AT+CNMI=2,1,0,0,0_'

в ответ на команду AT+CNMI приходит неполная строка, и после этого модем вообще не отвечает на команды. Например, в ответ на «AT» - молчание. СМС-до него также не доходят (подозреваю что модем подвисает).

такое же поведение наблюдается при отсылке ему команды «AT+IFC=2,2»

может кто уже сталкивался с подобной проблемой?



Последнее исправление: ironmaden (всего исправлений: 6)

Некоторое время назад пытался найти общий язык с модемами от Wavecom. Впечатления странные. Если в модеме что-то работает, то работает хорошо. Если же что-то не работает — то его не заведешь никакими ухищрениями.

Наводящие вопросы:

  • Версия прошивки. Подходят ли подаваемые тобой команды для используемой в модеме прошивки?
  • Стек для приема СМС может быть неактивным. Активирован ли он? Звучит странно, но у меня был неактивен TCP-стек, и активировать можно было только за деньги у продавца модемов. А поскольку уже никто не помнил, где эти модемы брали, то и завести стек не удалось.
  • Запусти терминал, подавай команды руками и смотри, что говорит модем. Под виндами можно использовать Serial Port Monitor, под линуксом minicom.
decadent
()
Ответ на: комментарий от ironmaden

нет у меня модема на десктопе. с платой общаюсь через её ком-порт.

Это неприятно. Можно поискать снифер ком-порта и посмотреть ответы платы. Снифер для линукса мне неизвестен.

decadent
()
Ответ на: комментарий от decadent

да тут вариантов уже не много получается. -- прошивку надо б уточнить и поглядеть на неё спецификацию (надо поискать); -- попробую впихнуть туда minicom и посмотреть, что получится;

спасибо.

ironmaden
() автор топика
Ответ на: комментарий от ironmaden

если кому интересно — собственно лог с миникома подключенного уже непосредственно к модему на плате (изначальный конект через ssh, там дальше в minicom)

ati

Manufacturer: QUALCOMM INCORPORATED

Model: 19

Revision: U66WHH02  1  [Aug 10 2009 24:00:00]

IMEI: 354862010998768

+GCAP: +CGSM,+DS,+ES


OK

at+cops?

+COPS: 0,0,"MegaFon RUS",2

OK

at+wind?

ERROR

at+wrim?

ERROR

at+cmee?

+CMEE: 2

OK

at+cmee=1

OK

at+wind?

ERROR

at+creg=1

OK

at+csms?

+CSMS: 0,1,1,1

OK

at+cmgf?

+CMGF: 0

OK

at+cmgf=1

OK

at+cnmi?

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

OK

at+cnmi=2,2,2,1,0

+CMS ERROR: 303

at+cnmi?

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

OK

at+cnmi=2,1,0,0,0

и дальше тишина....

ищу спецификацию на ревизию (хотя она вроде не особо старая).

ironmaden
() автор топика
Ответ на: комментарий от ironmaden

А мануал-то имеется на модем? Там по этому поводу что-то сказано?

У меня был какой-то документ по старой прошивке Wavecom — там, кажется, работа с смс была менее замороченной.

Еще рекомендую сходить на electronix.ru --там есть спецы по Wavecom.

decadent
()
Ответ на: комментарий от decadent

Изначально возникло требование поддержки обоих модемов и Wavecom, и AnyData (для двух вариантов железки). И похоже что настройки у них отличаются для приема смс.

с Wavecom-ом все работает...

а вот с AnyData, который Qualcomm не хочет доки есть (там правда больше по схематике + ман по командам), вкуриваю.

ironmaden
() автор топика
Ответ на: комментарий от anonymous

так-с.. таки разобрался. опытным путем было выяснено, что через последовательный (serial) порт устройство работать нормально не желает (упоминаний об этом в доках его найдено не было). устройство работает через USB-порт, /dev/ttyUSB0 в моем случае... остается не ясным почему так было реализовано.

всем спасибо.

ironmaden
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.