Прием и обработка СМС от GPS трекера
После поступления СМС модуль приема СМС направляет ее на обработку парсеру. Задача парсера состоит в том, чтобы разделить входящую СМС на несколько отдельных значений. При приходе СМС она появляется в главном окне программы в виде:
[790477207XX]<CR><LF>
352848024311173@2011.09.02 11:19:06@48.715569@44.522743@85@2@5@N/A@7@0<CR><LF>
[790477207XX] – номер отправителя СМС
<CR><LF> - ASCII символы возврата каретки и перевода строки
Далее следует текст СМС.
<CR><LF> - ASCII символы возврата каретки и перевода строки завершают текст СМС.
Текст СМС имеет формат, который зависит от модели трекера. Для примера возьмем СМС, которая имеет вид:
<imei>@<time>@<fix_lat>@<fix_lon>@<fix_angle>@<fix_speed>@<fix_satellites>@<bat_status>@<alarm_on>@<alarm_off>
В данной СМС все значения в СМС разделены символом “@”.
![](/gps-tracker-data-logger/tutorials/gps-tracker-sms/s1.png)
Рис. 1. Пример входящих данных
В качестве парсера можно использовать парсер “ASCII Data Parser”, который входит в пакет установки. Необходимо активировать данный парсер на закладке “Запрос Анализ Фильтрация” (рис. 2).
![Выбор парсера](/gps-tracker-data-logger/tutorials/gps-tracker-sms/s2.png)
Рис. 2. Выбор парсера
Далее нужно открыть окно настройки парсера (рис. 3) с помощью кнопки “Настроить”.
![Настройки парсера](/gps-tracker-data-logger/tutorials/gps-tracker-sms/s3.png)
Рис. 3. Настройка парсера
Рвзбивать пакеты по признакам начала/конца – включено.
В поле “Признак конца пакета” указываем #0D#0A, что соответствует шестнадцатеричным кодам ASCII символов <CR> и <LF>.
При необходимости, можно настроить фильтр, который позволяет отсеивать ненужные СМС. В данном примере, мы отсеиваем строчку м номером отправителя СМС и обрабатываем только строчку с данными GPS (рис. 5).
![](/gps-tracker-data-logger/tutorials/gps-tracker-sms/s4.png)
Рис. 4. Настройка фильтра
В дерево переменных парсера нужно добавить описание всех значений, которые вы хотите извлечь из СМС. На рисунке 5 показано одно из значений.
- Имя переменной – данное имя будет использоваться далее в модулях фильтрации и экспорта данных. В имени можно использовать только буквы латинского алфавита.
- Тип обработки данных – данный параметр указывает парсеру как нужно извлекать значение из текста СМС. В данном примере все значения указаны через разделитель. Поэтому выбираем соответствующий тип обработки данных.
- Тип данных – задает тип данных извлекаемого значения. В данном примере IMEI это строка символов, что соответствует типу String. В зависимости от выбранного типа данных будет производиться последующая обработка: строки будут обрезаться, для даты и времени будет применяться маска форматирования.
- Целочисленные положительные значения могут быть типа Word
- Целочисленные значения со знаком – Integer
- Вещественные числа – Float
- Дата – Date
- Время – Time
- Дата и время – Datatime
- Значение по умолчанию – данное значение будет использоваться, когда извлекаемое значение отсутствует в СМС или его нельзя преобразовать к выбранному типу данных. Значение по умолчанию должно соответствовать выбранному типу данных. Например, для целых чисел нельзя указывать значение по умолчанию состоящее не из цифр.
- Разделитель полей – для выбранного ранее типа обработки данных необходимо указать разделитель значений. В данном примере это символ “@”.
- Номер по порядку – задается позиция значения в СМС. Нумерация позиции значений начинается с единицы.
Таким образом добавляем описание всех значений, которые нужно извлечь из СМС. Очередность следования значений в дереве не имеет значения.
![](/gps-tracker-data-logger/tutorials/gps-tracker-sms/s5.png)
Рис. 5. Переменные парсера
На закладке “Формат данных” (рис. 6), в поле “Дата и время” нужно задать формат даты и времени значения, которое извлекается из СМС. Используя этот формат строка даты и времени будет преобразовано в значение с типом Datetime. Если формат будет задан неверно, то вы програме будет выводиться сообщение об ошибке. Детальное описания символов, которые можно использовать в формате даты и времени, приведено в файле справки.
![](/gps-tracker-data-logger/tutorials/gps-tracker-sms/s6.png)
Рис. 6. Параметры форматирования
После настройки парсера его нужно проверить.
1. Для этого сохраните изменения, кликнув по кнопке “OK”.
2. Активируйте модуль экспорта данных DDE сервер (рис. 7)
![](/gps-tracker-data-logger/tutorials/gps-tracker-sms/s7.png)
Рис. 7. Модуль экспорта данных
3. Сохраните изменения, кликнув по кнопке “OK”.
4. Дождитесь прихода новой СМС и появления ее в главном окне программы.
5. Откройте окно настройки параметров и дважды кликните на модуле экспорта данных DDE сервер. В окне настройки DDE сервера перейдите к закладке “Активные переменные” (рис. 8). Данный список должен содержать настроенные переменные парсера и их значения. Здесь вы можете проверить правильность настройки парсера и при необходимости внести изменения в его параметры.
![](/gps-tracker-data-logger/tutorials/gps-tracker-sms/s8.png)
Рис. 8. Активные переменные
Сопутствующие статьи:
Установка
Настройка