для Windows 2000 - Windows 7 (вкл. Server, x86 и x64). Последняя версия: 2.0.5 build 504. 4 мая 2012.
Прием и обработка СМС от 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>
В данной СМС все значения в СМС разделены символом “@”.
В качестве парсера можно использовать парсер “ASCII Data Parser”, который входит в пакет установки. Необходимо активировать данный парсер на закладке “Запрос Анализ Фильтрация” (рис. 1).

Рис.1 Выбор парсера
Далее нужно открыть окно настройки парсера (рис. 2) с помощью кнопки “Настроить”.

Рис.2 Настройка парсера
Рвзбивать пакеты по признакам начала/конца – включено.
В поле “Признак конца пакета” указываем #0D#0A, что соответствует шестнадцатеричным кодам ASCII символов <CR> и <LF>.

Рис.3 Настройка парсера
На следующей закладке активируем опцию “Определять идент. клиента”. Эта опция указывает парсеру, что перед СМС передается идентификатор отправителя (номер) и парсер автоматически поместит его в переменную парсера с именем CLIENTID.
При необходимости, можно настроить фильтр, который позволяет отсеивать ненужные СМС. Детальную информацию по этой функции можно прочитать в файле справки.
На закладке “Парсинг данных” (рис. 4) нужно указать какие поля содержит СМС.

Рис.4 Настройка парсера
В дерево переменных парсера нужно добавить описание всех значений, которые вы хотите извлечь из СМС. На рисунке 4 показано одно из значений.
- Имя переменной – данное имя будет использоваться далее в модулях фильтрации и экспорта данных. В имени можно использовать только буквы латинского алфавита.
- Тип обработки данных – данный параметр указывает парсеру как нужно извлекать значение из текста СМС. В данном примере все значения указаны через разделитель. Поэтому выбираем соответствующий тип обработки данных.
- Тип данных – задает тип данных извлекаемого значения. В данном примере IMEI это строка символов, что соответствует типу String. В зависимости от выбранного типа данных будет производиться последующая обработка: строки будут обрезаться, для даты и времени будет применяться маска форматирования.
- Целочисленные положительные значения могут быть типа Word
- Целочисленные значения со знаком – Integer
- Вещественные числа – Float
- Дата – Date
- Время – Time
- Дата и время – Datatime
- Значение по умолчанию – данное значение будет использоваться, когда извлекаемое значение отсутствует в СМС или его нельзя преобразовать к выбранному типу данных. Значение по умолчанию должно соответствовать выбранному типу данных. Например, для целых чисел нельзя указывать значение по умолчанию состоящее не из цифр.
- Разделитель полей – для выбранного ранее типа обработки данных необходимо указать разделитель значений. В данном примере это символ “@”.
- Номер по порядку – задается позиция значения в СМС. Нумерация позиции значений начинается с единицы.
Таким образом добавляем описание всех значений, которые нужно извлечь из СМС. Очередность следования значений в дереве не имеет значения.

Рис.5 Переменные парсера
На закладке “Формат данных” (рис. 6), в поле “Дата и время” нужно задать формат даты и времени значения, которое извлекается из СМС. Используя этот формат строка даты и времени будет преобразовано в значение с типом Datetime. Если формат будет задан неверно, то вы програме будет выводиться сообщение об ошибке. Детальное описания символов, которые можно использовать в формате даты и времени, приведено в файле справки.

Рис.6 Параметры форматирования
После настройки парсера его нужно проверить.
1. Для этого сохраните изменения, кликнув по кнопке “OK”.
2. Активируйте модуль экспорта данных DDE сервер (рис. 7)

Рис.7 Модуль экспорта данных
3. Сохраните изменения, кликнув по кнопке “OK”.
4. Дождитесь прихода новой СМС и появления ее в главном окне программы.
5. Откройте окно настройки параметров и дважды кликните на модуле экспорта данных DDE сервер. В окне настройки DDE сервера перейдите к закладке “Активные переменные” (рис. 8). Данный список должен содержать настроенные переменные парсера и их значения. Здесь вы можете проверить правильность настройки парсера и при необходимости внести изменения в его параметры.

Рис.8 Активные переменные
Сопутствующие статьи:
- Анализ и разбор данных от сканера штрих кодов (данные в фиксированной позиции, нет признаков начала и окончания пакета данных);
- Парсинг данных сканера штрих кодов (данные в фиксированной позиции, есть признак окончания пакета данных);
- Парсинг данных с использованием регулярных выражений (сложный формат данных, регулярные выражения, фильтрация данных);
- Прием и обработка данных от авиационного двигателя (пример использования, специальный парсер данных);
- Обработка данных от лабораторного оборудования (простой формат данных, регулярные выражения);
- Прием и обработка GPS данных на примере Garmin Geko301 (простой формат данных, данные в фиксированной позиции, есть признаки начала и окончания пакета данных);
- Анализ и разбор данных от фасовочной машины (простой формат данных, данные через разделитель, есть признак окончания пакета данных, фильтр данных);
- Анализ и разбор данных от АТС (простой формат данных, данные в фиксированной позиции, есть признак окончания пакета данных, фильтр данных);
- Логгер данных измерителя давления (запрос данных с устройства, простой формат данных, данные в фиксированной позиции, есть признак окончания пакета данных, фильтр данных);
- Сбор данных в "Управляющей информационной системе учета добычи" (сложный формат данных, регулярные выражения, фильтрация данных);
- Объединение данных из двух портов для экспорта одной строкой (простой формат данных, данные в фиксированной позиции, есть признак окончания пакета данных, фильтр данных);
- Анализ и парсинг данных от весов (простой формат данных, данные в фиксированной позиции, есть признак окончания пакета данных, фильтр данных).