N

netAIS

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

In English

netAIS License: CC BY-NC-SA 4.0

v. 1.5

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

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

scheme

Программное обеспечение использует TOR как среду коммуникации, и функционирует и через мобильный интернет и через публичные точки доступа wi-fi без дополнительных настроек.
Координаты программное обеспечение получает от gpsd или Signal K.

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

Возможности

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

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

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

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

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

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

Демо

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

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

Linux.

Зависимости

Требуется библиотека cURL и расширение php-curl -- для работы через TOR. К сожалению, замечательная функция file_get_contents() не умеет socs proxy... (позднейшее замечание: Зато с тех пор TOR умеет http proxy, но не переделывать же...)

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

На машине под управлением 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 -- укажите те же адрес и порт gpsd.
Если в локальной сети есть служба Signal K, то получение координат можно, в принципе, вообще не настраивать. Клиент netAIS попробует обнаружить Signal K и получить от неё координаты, если в файле конфигурации не указаны никакие источники геопозиционирования.
Но лучше указать адрес Signal K в файле params.php

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

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

  • Непосредственно из файла. Так работает GaladrielMap. Вся передаваемая информация, включая пользовательский текст в данных статуса, доступна.
  • Через сервис 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), в том числе и старых. Производительности от устройств не требуется.

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

Поддержка

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

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

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