Как стать автором
Обновить

Комментарии 10

Еще б про железку пару слов услышать хотелось бы
У на с товарищем в блоге есть краткий обзор. Я уж не стал переопубликовывать.
Платка с GL868-DUAL на борту jt5.ru/avr32/genesis-gsm/
Тока там AVR32
Использовали бы вместо Telit-а GSM модуль попроще — неплохо бы скостили цену. Да и работать он будет от силы в четверть нагрузки как просто GSM модем. Нерационально как-то, мне кажется.
GL868-DUAL стоит гораздо дешевле GL865-DUAL.

Отличие между моделями только в сертификатах, GL868 будет работать только с операторами стран СНГ (+ некоторые другие страны, кроме Европы), а GL865 — будет работать везде, т.е. с любыми операторами.
Чем обусловлен выбор GL865-DUAL? Почему например не SIM900? Последний ведь существенно дешевле… И также есть возможность написания программ — Embedded AT Не на Питоне, правда
У них разница 100-200 рублей, что было не так критично. Да и сыграл свою роль фактор скорости разработки прошивки — на Питоне ее написать куда как проще и быстрее.
работаю с 863 чипом, на котором базируется GPS-трекер компании M2M (привет их дружному коллективу :) )
как по мне, так некоторые моменты в коде или не обязательны или нужны только раз, например:
MDM.send('AT+CSCA='+csca+'\r',2)

не обязательная секция, т.к. при регистрации в GSM сети номер СМС-центра устанавливается автоматически
MDM.send('AT+CMGF=1\r',2)

достаточно вызывать единожды при инициализации… (кстати, Вы забыли упомянуть, что эта команда устанавливает текстовый режим приема-передачи, в то время как значение 0 установит PDU формат приемо-передачи и является форматом по-умолчанию) так же при инициализации я бы добавил такие команды (не обязательно, но на всякий случай):
# New Message Indications: Buffer unsolicited result codes in the TA in case the DTE is busy and flush them to the TE after reservation. Otherwise forward them directly to the TE.
MDM.send('AT+CNMI=2,1\r',2)
# Set Text Mode Parameters: outgoing message with 24 hours of validity period and default properties
MDM.send('AT+CSMP=17,167,0,0\r',2)

еще не совсем понятна логика:
a = MDM.send('AT+CMGS="' + number + '"\r', 2)
res = MDM.receive(10)          
a = MDM.send(smstext, 2)
a = MDM.sendbyte(0x1A, 2)
a=''

«res» в коде больше нигде не используется, а «а» — просто «обнуляется». Да и сократить можно было:
MDM.send(smstext + chr(26), 2)
Кстати, в функции проверки сети Вы зря так категоричны, что не допускаете роуминга ;)

Спасибо за внимание.
Забыл уточнить — именно в приведенном коде, т.к. например те же СМС один раз можно принимать в текстовом формате, а следующее — в PDU
Спасибо за уточнения. Обязательно учту.
Да и целью статьи было написание самого простого приложения без заморочек.

Насчет
MDM.send('AT+CMGF=1\r',2)


На GL865 с симкой Мегафона Северозапада у меня такой трюк не прокатил. МТС тоже раз через полтора выставляется.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории