N

netAIS

Категория проекта: Ожидает модерации
Темы: AIS maps chart
+ ещё 5
Обмен AIS-подобными сообщениями с координатами и сопутствующей информацией через Интрнет между участниками выделенной группы. Для взаимодействия не требуется интернет-сервер с реальным адресом.

In English

netAIS License: CC BY-NC-SA 4.0

v. 1.5

Обмен AIS-подобными сообщениями с координатами и сопутствующей информацией через Интрнет между участниками выделенной закрытой группы. Для взаимодействия не требуется интернет-сервер с реальным адресом.

Удобно для организации коллективного плавания, соревнований, рыбалки.

scheme

Программное обеспечение представляет собой набор демонов (серверов), функционирующих на компьютере под управлением Linux. Используется TOR как среда коммуникации, и обмен информацией происходит и через мобильный интернет и через публичные точки доступа wi-fi без дополнительных настроек.
Собственные координаты программное обеспечение получает от gpsd, gpsdPROXY или Signal K.

Сообщения netAIS могут быть восприняты любым оборудованием или программным обеспечением, принимающим сообщения AIS по локальной сети.

Возможности

  • Создание одной выделенной группы
  • Участие в любом количестве выделенных групп
  • Веб-интерфейс на русском и английском языках

Технические детали

Комплект программного обеспечения содержит клиентскую часть -- собственно для обмена сообщениями, и серверную часть, обеспечивающую эту возможность. Один сервер обслуживает одну выделенную группу и является скрытым сервисом TOR. Если вы хотите организовать собственную группу, .onion адрес этого сервиса надо передать потенциальным членам группы каким-нибудь сторонним способом -- в sms, электронной или голубиной почтой. Каждый член вашей группы указывает этот адрес в своём клиенте, и клиент получает возможность обмениваться информацией с сервером через сеть TOR. В адресах обычного интернета нет необходимости.

Клиент сохраняет полученные от сервера сведения обо всех членах группы в файл. Файл может независимо считываться каким-то другим программным обеспечением для отображения на экране. Кроме файла, информацию можно получить из tcp socket по протоколу gpsd или в виде потока сообщений AIS.
Информация в файле представляет собой закодированный в JSON ассоциированный массив, где ключ -- это mmsi плавсредства, а значение -- ассоциированный массив AIS характеристик, как они описаны в gpsd/www/AIVDM.adoc (если у вас установлен gpsd) или на сайте e-Navigation Netherlands, за исключением:

  • Все единицы измерения приведены к общепринятым
  • Метка времени является временем Unix

Картплотер GaladrielMap получает информацию netAIS через gpsdPROXY, который обращается за ней через сетевой соктет по протоколу gpsd. Другое программное и аппаратное обеспечение может просто получать поток стандартных сообщений AIS.

Демо

Общедоступная группа netAIS для тестовых целей:
2q6q4phwaduy4mly2mrujxlhpjg7el7z2b4u6s7spghylcd6bv3eqvyd.onion
Все активные участники группы видны в демонстрационной версии GaladrielMap.
К сожалению, Oracle Inc оказались жуликами, поэтому демо не работает.

Совместимость

Linux, PHP7.

Зависимости

Требуется библиотека cURL и расширение php-curl -- для работы через TOR.

Установка и конфигурирование:

На машине под управлением Linux должен быть установлен и сконфигурирован web сервер с поддержкой PHP и сервис TOR service.
Скопируйте файлы проекта в желаемый каталог web сервера и соответствующим образом исправьте пути в файле params.php.
Установите права на запись в каталоги data/ и server/ для пользователя и/или группы web сервера (обычно это www-data).
Настройте скрытый сервис TOR на каталог server/, если вы предполагаете держать свою выделенную группу. Если нет -- поднимать скрытый сервис нет необходимости.
Если скрытый сервис сконфигурирован, укажите его адрес .onion в переменной $onion файла params.php. Адрес находится в файле hostname по пути, указанном в файле конфигурации TOR torrs. (Например, в Ubuntu .onion адрес можно узнать, сказав: # cat /var/lib/tor/hidden_service_netAIS/hostname, если скрытый сервис описан в torrc именно как hidden_service_netAIS)
Если вы хотите новый .onion адрес для скрытого сервиса -- удалите содержимое каталога скрытого сервиса и перезапустите TOR. Во вновь появившемся файле hostname будет новый адрес.

Укажите адрес и порт для службы AIS вещания, если предполагается использовать netAIS не только с GaladrielMap в переменных $netAISdHost и $netAISdPort.

Информация о судне

Информация о вашем судне, передаваемая участникам группы, содержится в файле boatInfo.ini. Лучше заполнить его содержательно.

Геопозиционирование

Информацию о положении клиент netAIS обычно должен получать от демона gpsd, работающего на сервере. Установка и настройка gpsd описана на сайте проекта. При необходимости в файле params.php можно указать фактический адрес и порт gpsd, если они отличаются от умолчальных. Если у вас уже установлен и настроен картплотер GaladrielMap, то координаты можно получать от gpsdPROXY: укажите те же адрес и порт, что в файле конфигурации GaladrielMap.
Если в локальной сети есть служба Signal K, то получение координат можно, в принципе, вообще не настраивать. Клиент netAIS попробует обнаружить Signal K и получить от неё координаты, если в файле конфигурации не указаны никакие источники геопозиционирования.
Но лучше указать адрес Signal K в файле params.php

Использование

Данные netAIS сторонними потребителями могут быть получены:

  • Непосредственно из файла с именем $netAISJSONfilesDir/group_address.onion. Параметр $netAISJSONfilesDir указывается в params.php. Вся передаваемая информация, включая пользовательский текст в данных статуса, имеется в этом файле.
  • Через сервис gpsdPROXY. Самый простой способ. Нужно указать в переменных $netAISgpsdHost $netAISgpsdPort в файле params.php хост и порт gpsdPROXY, а не gpsd. Тогда gpsdPROXY будет отдавать информацию netAIS вместе с остальными данными AIS. Также доступны все данные, включая нестандартные.
  • Через сетевой ресурс по протоколу gpsd:// Кроме стандартной информации AIS передаются пользовательские текстовые поля.
  • Через сетевой ресурс как поток стандартных сообщений AIS № 18, 24 и 27. Так могут быть подключены OpenCPN, OruxMaps, Signal K и специализированные картплотеры. В этом случае доступны только стандартные возможности AIS.

Сетевой ресурс обслуживается отдельным демоном, отключенным по умолчанию. Включите его в params.php и откройте веб-интерфейс.

Настройка OpenCPN

Для отображения целей netAIS в OpenCPN сделайте следующее:
Создайте сетевое подключение, как описано в руководстве к OpenCPN.
Укажите "Протокол" -- TCP
Укажите "Адрес" и "Порт связи" в соответствии с указанными в файле params.php.
netAIS

Настройка OruxMaps

Для отображения целей netAIS в OruxMaps сделайте следующее:
В верхнем меню выберите крайний справа пункт "Ещё".
Пройдите по пунктам меню Global settings -> Sensors -> AIS (nautical)
В разделе AIS (nautical):
Отметьте пункт Enable AIS.
Установите в GPS-AIS-NMEA source значение IP. Установите в AIS IP address адрес и порт в соответствии с файлом params.php
После этого надо включить отображение целей AIS. Закройте меню настроек, и в верхнем меню главного экрана выберите пункт "Маршруты".
Откройте меню Sensors и выберите Start AIS.

Настройка Signal K

Просто добавьте источник данных "Server -> Data Connections" со следующими параметрами:
Data Type: NMEA0183
NMEA 0183 Source: TCP Client
Host: {адрес, указанный в переменной $netAISdHost в файле params.php, по умолчанию -- localhost}
Port: {порт, указанный в переменной $netAISdPort в файле params.php, по умолчанию -- 3838}

Веб-интерфейс

screen
Веб-интерфейс позволяет:

  • Включить - выключить обслуживание вашей выделенной группы (верхняя секция). Если обслуживание выключено, обращения к скрытому сервису TOR не приведут ни к какому результату. Но быть членом других групп вы сможете.
  • Подключение к другим группам и создание нового подключения (средняя секция). Подключение к своей группе будет создано автоматически. Левая кнопка каждого подключения включает - выключает видимость группы для вас и вас для группы.
  • Указать свой собственный статус, как он будет транслироваться участникам группы (нижняя секция). Не забывайте обновлять статус не реже, чем указано в параметре $selfStatusTimeOut в файле конфигурации params.php Если статус не будет обновлён в течение указанного времени, netAIS отключится.

Веб-интерфейс оптимизирован для мобильный устройств и устройств с экраном на электронных чернилах (e-Inc), в том числе и старых. Производительности от устройств не требуется.

Благодарности

Поддержка

Сообщество ВКонтакте

Индивидуальная платная консультация

Вы можете сделать пожертвование через ЮМани.