bg

Запись данных NMEA в базу данных (на примере MS Access)

Задача: Запись данных навигационной информации, полученных от GPS-приемника, в базу данных (на примере Microsoft Access).


Исходные требования:

  1. Advanced NMEA Data Logger Professional или пробная версия (скачать).
  2. Модуль экспорта данных “ODBC Database” (включен в инсталляционный пакет логгера).
  3. Необходимо настроить прием данных от оборудования, передающего данные в формате NMEA 0183 (формат NMEA 2000 не поддерживается). Принимаемые данные должны отображаться в главном окне программы.

Решение:

Шаг 1. Настройка парсера

Выберите необходимые пакеты NMEA из списка поддерживаемых пакетов в парсере:

1. Откройте конфигурацию (Опции –> Управление конфигурациями –> Ваша конфигурация –> Изменить).

2. Перейдите к закладке “Модули – Запрос Анализ Фильтрация” (рис. 1).

Модуль-парсер
Рис. 1. Модуль-парсер

3. Нажмите кнопку “Настроить” рядом с “NMEA data parser”.

4. В появившемся окне (рис. 2) выберите типы пакетов, данные из которых будут экспортироваться в базу данных.

Типы пакетов данных
Рис. 2. Типы пакетов данных

Важно: выберите только нужные типы пакетов данных, чтобы исключить экспорт ненужных данных.

5. На закладке “Основное” (рис. 3) рекомендуется добавить выбранные типы пакетов в список группируемых данных. Следует обратить внимание на то, указывается идентификатор типа устройства. RMC -> GPRMC. Поскольку пакеты идут один за другим и обрабатываются последовательно, включение группировки данных поможет избежать появления пустых полей в базе данных.

Группировка пакетов данных
Рис. 3. Группировка пакетов данных

Сохраните изменения, нажав кнопку “OK”.

Шаг 2. Проверка парсера и просмотр принимаемых данных

На данном этапе необходимо убедиться в том, что парсер работает корректно. Это можно сделать с помощью модуля “DDE server”, включенного в стандартный инсталляционный пакет. Для проверки парсера сделайте следующее:

1. Включите модуль “DDE server” на закладке “Экспорт данных” (рис. 4).

Модуль экспорта данных
Рис. 4. Модуль экспорта данных

2. Сохраните изменения, нажав кнопку “OK”. Новый модуль будет загружен и начнет работать. Снова откройте окно с модулями экспорта данных и дважды щелкните по “DDE server” в списке модулей.

3. В появившемся окне (рис. 5) перейдите на закладку “Все активные переменные”.

DDE сервер
Рис. 5. DDE server

4. Дождитесь приема пакетов данных, которые вы выбрали в парсере. Если вы включили группировку пакетов данных в парсере, то необходимо дождаться приема пакетов обоих типов.

5. В списке активных переменных появятся переменные с декодированными значениями (рис. 6). Как видно, даже два типа пакетов дают большое количество декодированных значений. Возможно, вы захотите использовать и записывать в базу только некоторые значения. В этом случае запомните имена необходимых переменных. В дальнейшем в модуле экспорта данных каждая переменная будет записываться в свою колонку в базе данных.

Переменные парсера
Рис. 6. Переменные парсера

Замечание: префикс “srvi” у переменных используется только в модуле “DDE server”. Все остальные модули оперируют именами переменных без этого префикса.

Если переменные не появляются в списке, убедитесь в том, что:

  1. Вы выбрали нужные типы пакетов данных.
  2. Группируются только типы пакетов, выбранные из списка.
  3. Принимаемые данные имеют формат, соответствующий стандарту NMEA 0183. Пример корректных пакетов NMEA 0183:
$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A
$GPGLL,3907.360,N,12102.481,W,183730,A*33

Шаг 3. Настройка экспорта данных в базу данных

В данном примере запись данных в базу будет осуществляться с помощью модуля “ODBC Database” (рис. 7).

Предварительно необходимо создать базу данных необходимой структуры, поскольку программа не умеет создавать базу данных автоматически. В базе данных необходимо вручную создать таблицу, где будут храниться данные. Базу данных, которая использовалась в примере можно скачать здесь.

Далее сделайте следующее:

1. Включите модуль экспорта данных и дважды щелкните по его имени.

Модуль записи данных в БД
Рис. 7. Модуль записи данных в базу данных

2. В появившемся окне включите запись с помощью переключателя “Записывать новые данные в базу данных” (рис. 8).

Включение записи в данных
Рис. 8. Включение записи в базу данных

3. На закладке “Соединение” (рис. 9) настройте соединение с базой данных.

4. Если ваша база данных отсутствует в выпадающем списке, создайте и настройте системный источник данных (System DSN) в администраторе ODBC-соединений. Затем закройте администратор ODBC-соединений и нажмите кнопку “Refresh”.

5. Выберите базу данных из выпадающего списка. В случае использования Microsoft Access необходимо дополнительно указать полный путь к файлу базы данных (см. рис. 9).

Модуль записи данных в БД
Рис. 9. Модуль записи данных в базу данных

6. Перейдите к закладке "Связывание” (рис. 10) и импортируйте описание вашей таблицы из базы данных с помощью кнопки “Импорт”.

Связывание
Рис. 10. Связывание переменных и колонок в таблице

7. Для каждой колонки укажите переменную парсера. Большинство переменных можно выбрать из выпадающего списка. Если переменная отсутствует в списке, но была в списке активных переменных на шаге №2, то ее имя можно ввести вручную.

8. Удалите из списка колонки, в которые не нужно записывать данные (например, поля типа “Счетчик” или поля, которые заполняются значением по умолчанию).

9. Нажмите кнопку “OK” и сохраните сделанные изменения. Теперь при поступлении новых данных они сразу будут записываться в базу данных.

Готовую конфигурацию модуль экспорта данных можно загрузить из файла, используя кнопку "Загр. и Сохр.".

Готовую конфигурацию всей программы можно загрузить из файла, используя пункт меню "Файл - Восстановить из резервной копии" в главном окне программы.

Сопутствующие статьи:

Запись данных NMEA в базу данных (на примере MS Access)
Запись данных AIS в базу данных
Экспорт всех принимаемых данных AIS или NMEA в XML, в тестовый файл
Экспорт данных NMEA или AIS в Excel, в CSV файл