LINUX.ORG.RU

Сообщения ironmaden

 

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

Интро:

- есть некоторая плата на 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
()

RSS подписка на новые темы