roboforum.ru

Технический форум по робототехнике.

GSM-модем: пересылка ранее принятых сообщений

GSM-модем: пересылка ранее принятых сообщений

Порфирий » 05 июн 2010, 17:35

На удалённом объекте установлен gsm-модем (MC35i) с целью примитивного управления и слежения за его состоянием. Очевидно, что при отрицательном балансе на лицевом счету, модем перестаёт отвечать на любые запросы. Возникла задача добавить контроль за балансом. Использовать USSD-запросы - не по фэн-шую, на мой взгляд. Причина: у разных операторов они отличаются, парсить принятый ответ для разных операторов на встраиваемой 8-битке - целое искусство. Решили попробовать дублировать все принимаемые смс-ки на определённый номер. Фокус в том, что оператор, как правило, уведомляет, когда баланс становится ниже определённого порога. В итоге появляется запас в несколько дней для того, чтобы пополнить баланс на сим-карте.

Вообще говоря, отправка sms-ок происходит при помощи AT+CMSS=<номер-смс>. В комбинации с AT+CMGW всё прекрасно отсылается, НО, при попытке отправить ранее принятую (т.е. просто переслать) смс-ку из inbox'а AT+CMSS всегда возвращает ERROR.

Уважаемые форумчане, возможно, кто-то из вас уже решал подобную задачу, подскажите, пожалуйста, кто виноват и что делать :-)

Re: GSM-модем: пересылка ранее принятых сообщений

EdGull » 05 июн 2010, 19:40

а отправляешь в PDU, всё как положено?

Re: GSM-модем: пересылка ранее принятых сообщений

yak-40 » 05 июн 2010, 22:04

Порфирий писал(а):На удалённом объекте установлен gsm-модем (MC35i) с целью примитивного управления и слежения за его состоянием.

В таких случаях надо применять тарифы с неограниченым кредитом.

Re: GSM-модем: пересылка ранее принятых сообщений

galex1981 » 05 июн 2010, 23:28

Посмотри, правильно ли ты набираешь AT команды. Лови список тут: download/file.php?id=13730

Re: GSM-модем: пересылка ранее принятых сообщений

Порфирий » 06 июн 2010, 13:57

У принятых ранее sms-ок PDU-status равен REC READ. GSM-модем (MC35i) отказывается отправлять sms-ки с таким статусом. Поэтому решено извлекать текст смс-ки из принятого сообщения и склеивать с ранее сформированным шаблоном (его разумнее держать в памяти программ) для отправляемых pdu-смсок. В PDU-режиме используется 16-битная кодировка UCS-2, и, как следствие, объём свободного ОЗУ уменьшается не по дням, а по часам.

Re: GSM-модем: пересылка ранее принятых сообщений

Порфирий » 08 июн 2010, 18:49

В продолжение темы: код настолько разбух, что перестал влезать в кристалл. В данный момент использую просроченную (>60 дней) версию Microchip C18 3.35 Student Edition. Поскольку оптимизация выключена, невозможно продолжать работу. Скажите, пожалуйста, как правильно переустановить Student Edition, дабы сбросить 60-дневный срок, либо посоветуйте (кроме гугля), где раздобыть лекарство для оного.

p.s.: согласен, майкрочип ужасен

Re: GSM-модем: пересылка ранее принятых сообщений

Порфирий » 16 июн 2010, 15:37

Задача, к счастью, решена в полном объёме. Код удалось затолкать в кристалл только на взломанной версии C18. :pardon:


Rambler\'s Top100 Mail.ru counter