Управление модемом через СМС.
Модем на основе модуля Enfora GSM0308
Программа для чтения UDP сообщений с исползованием компанента Indy C++ Builder
Управление модемом Enfora через СМС
Пишите автору сайта ganatol2000@mail.ru
Еще несколько слов об управлении этим модемом с
помощью CMC. Все описано в
GSM0308AN001-_Enabler_III_AT_Commands_over_SMS_-_Revision_1.00.pdf.
Во-первых надо проверить, что параметр
CMCDAEN установлен в 1. Если нет то подать
команду AT$CMCDAEN=1. Затем для себя решить с
любого ли номера мобильного телефона вы намерены управлять модемом с помощью
CMC или с какого-то определенного. Если вы намерены
ограничить свой выбор, то используя команду AT$CMCDA
нужно составить список номеров (до пяти штук) с которых позволено управлять
модемом при помощи CMC ( Например
первый номер: AT$CMCDA=1,"+79217776655","" ).
СМС передаваемое на модем должно быть вида:
>RSP=[T/F];ID=[modem id];[at command]<
Здесь: T-если
требуется ответ модема, F - ответ модема отключен
; modem id - идентификационный номер
модема (значение параметра MDMID);
at command -
АТ команда. Вот список АТ команд, которые могут быть выполнены с помощью
CMC:
•AT$ACKTM
• AT$ACTIVE
• AT$APIPWD
• AT$AREG
• AT$CONNTO
• AT$EVDEL
• AT$EVDELA
• AT$EVENT
• AT$EVTIM
• AT $FRIEND
• AT$IDLETO
• AT$MDMID
• AT$MSGLOGEN
• AT$MSGLOGRD
• AT$MSGSND
• AT$PADBLK
• AT$PADBS
• AT$PADDST
• AT$PADSRC
• AT$PADTO
• AT$PKG
• AT$SMSDA
• AT$UDPAPI
• AT$WAKEUP
• AT+CGDCONT
• AT&W
• AT$RESET
• AT$EVTEST
Таким образом зная MDMID с помощью
СМС в модем можно ввести новые EVENT или изменить
существующие, а так же изменить многие конфигурационные настройки. Как замечание
сказано, что если посылаете составную AT команду (AT
команды разделенные точкой с запятой ';'
GSM0308AN003-_Sending_Concatenated_AT_commands_-_Revision_1.01.pdf)
то ответ модема надо отключать.
Особый интерес представляет команда AT$EVTEST.
Фактически с помощью этой команды можно имитировать
изменение состояния дискретного входа.
Команда AT$EVTEST=3, 1 означает, что на вход GPIO4
имитируется подача логической 1.
Команда AT$EVTEST=3, 0 означает,
что на вход GPIO4 имитируется подача логического 0.
Например вам хочется, чтобы модем управлял состоянием третьего дискретного
вывода. Но это может быть лишь реакция на соответствующее входящее событие.
Пусть модем изменяет состояние третьего дискретного вывода в зависимости от
состояния четвертого дискретного вывода. Пишем соответствующие EVENT:
AT$EVENT=11, 0, 3, 1, 1 состояние входа GPIO4
изменилось с низкого в высокое
AT$EVENT=11, 3, 18, 0, 0 на выход GPIO3
подана логическая 1
AT$EVENT=12, 0, 3, 0, 0 состояние входа
GPIO4 изменилось с высокого в низкое
AT$EVENT=12, 3, 10, 0, 0 на выход GPIO3
подан логический 0
(Интересно, что контроллер модема сам определяет на вход или на выход вы
используете выводы GPIO. О текущем назначении выводов
GPIO можно узнать применив команду AT$IOCFG).
Теперь при приеме СМС вида: >RSP=F;ID=8904Test;AT$EVTEST=3,1<
модем с MDMID=8904Test будет подавать на
GPIO3 логическую 1.
А при приеме СМС вида >RSP=F;ID=8904Test;AT$EVTEST=3,0<
модем с MDMID=8904Test будет подавать на
GPIO3 логический 0.
Это все, что мне хотелось поведать вам о
модеме SL116 с модулем Enfora
GSM0308.
Творческих успехов Вам коллеги!