signalk-ais-navionics-converter 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -18
- package/ais-encoder.js +556 -66
- package/img/OpenCpn1.png +0 -0
- package/img/OpenCpn2.png +0 -0
- package/index.js +337 -155
- package/package.json +3 -13
- package/public/src_components_PluginConfigurationPanel_jsx.js +1 -1
- package/src/components/PluginConfigurationPanel.jsx +158 -80
package/README.md
CHANGED
|
@@ -15,6 +15,7 @@ IMPORTANT: The following are required for the plugin to function:
|
|
|
15
15
|
- [Configuration Parameters](#configuration-parameters)
|
|
16
16
|
- [Basic Settings](#basic-settings)
|
|
17
17
|
- [TCP Port](#tcp-port)
|
|
18
|
+
- [Websocket Port](#websocket-port)
|
|
18
19
|
- [Update Interval for Changed Vessels](#update-interval-for-changed-vessels)
|
|
19
20
|
- [Update Interval for Unchanged Vessels](#update-interval-for-unchanged-vessels)
|
|
20
21
|
- [Data Filtering](#data-filtering)
|
|
@@ -57,11 +58,11 @@ IMPORTANT: The following are required for the plugin to function:
|
|
|
57
58
|
- [Author](#author)
|
|
58
59
|
- [Contributing](#contributing)
|
|
59
60
|
- [Changelog](#changelog)
|
|
60
|
-
- [Version 1.0.0](#version-100)
|
|
61
61
|
|
|
62
62
|
## Features
|
|
63
63
|
|
|
64
|
-
- **TCP Server**: Broadcasts NMEA 0183 AIS messages ([Type 1 - Position report](https://gpsd.gitlab.io/gpsd/AIVDM.html#_types_1_2_and_3_position_report_class_a)
|
|
64
|
+
- **TCP Server**: Broadcasts NMEA 0183 AIS messages ([Type 1 - Position report AIS class A](https://gpsd.gitlab.io/gpsd/AIVDM.html#_types_1_2_and_3_position_report_class_a), [Type 19 - Extended position report AIS class B](https://gpsd.gitlab.io/gpsd/AIVDM.html#_type_19_extended_class_b_cs_position_report), [Type 5 - static and voyage related data class A](https://gpsd.gitlab.io/gpsd/AIVDM.html#_type_5_static_and_voyage_related_data) and [Type 24 - static data report class B](https://gpsd.gitlab.io/gpsd/AIVDM.html#_type_24_static_data_report)) to connected clients
|
|
65
|
+
- **Websocket Server**: Same data broadcasted by the TCP server is send via a separate Websocket Server to connected clients. In addition the vessel data is broadcasted as JSON object ({"mmsi": 123456, ....})
|
|
65
66
|
- **Smart Update Logic**:
|
|
66
67
|
- Sends updates immediately when vessel data changes
|
|
67
68
|
- Resends unchanged vessels periodically to prevent timeout in navigation apps
|
|
@@ -92,6 +93,10 @@ Warning: AIS data provided by this plugin can assist navigation. However, it nev
|
|
|
92
93
|
- **Default**: 10113
|
|
93
94
|
- **Description**: Port for the NMEA 0183 TCP server. Configure your navigation app (e.g., Navionics, OpenCpn) to connect to this port.
|
|
94
95
|
|
|
96
|
+
#### Websocket Port
|
|
97
|
+
- **Default**: 10114
|
|
98
|
+
- **Description**: All AIS (NMEA 0183) messages are send by an own websocket server on this port to connected clients. In addition the data of the vessels is send as JSON. Data can then be used by other plugins / apps (as clients). For the communication with the Navionics app, this port is not needed. If port is set to 0 no Websocket server is started.
|
|
99
|
+
|
|
95
100
|
#### Update Interval for Changed Vessels
|
|
96
101
|
- **Default**: 15 (seconds)
|
|
97
102
|
- **Description**: How often to check for and send updates when vessel data changes. Lower values = more real-time updates but higher CPU usage.
|
|
@@ -132,7 +137,7 @@ Warning: AIS data provided by this plugin can assist navigation. However, it nev
|
|
|
132
137
|
|
|
133
138
|
#### Enable VesselFinder Forwarding
|
|
134
139
|
- **Default**: false
|
|
135
|
-
- **Description**: When enabled, AIS Type 1 messages (position reports) are forwarded to VesselFinder.com via UDP.
|
|
140
|
+
- **Description**: When enabled, AIS Type 1 and Type 19 messages (position reports for AIS class A and B) are forwarded to VesselFinder.com via UDP.
|
|
136
141
|
|
|
137
142
|
#### VesselFinder Host
|
|
138
143
|
- **Default**: ais.vesselfinder.com
|
|
@@ -150,7 +155,7 @@ Warning: AIS data provided by this plugin can assist navigation. However, it nev
|
|
|
150
155
|
|
|
151
156
|
#### Include Vessels from AISFleet.com
|
|
152
157
|
- **Default**: true
|
|
153
|
-
- **Description**: Fetches nearby vessels from AISFleet.com cloud API and merges them with local SignalK vessel data. Requires internet connection and own position.
|
|
158
|
+
- **Description**: Fetches nearby vessels from AISFleet.com cloud API and merges them with local SignalK vessel data. Requires internet connection and own position (in SignalK key "navigation.position" must exist). If the plugin "AIS Fleet" is already installed and enabled in SignalK, this option is not shown.
|
|
154
159
|
|
|
155
160
|
#### Radius for Cloud Vessels
|
|
156
161
|
- **Default**: 10 (nm / nautical miles)
|
|
@@ -160,27 +165,27 @@ Warning: AIS data provided by this plugin can assist navigation. However, it nev
|
|
|
160
165
|
|
|
161
166
|
#### Debug All Vessel Details
|
|
162
167
|
- **Default**: false
|
|
163
|
-
- **Description**: Enables detailed debug logging for all vessels in the server log.
|
|
168
|
+
- **Description**: Enables detailed debug logging for all vessels in the server log. Option only visible if plugin is in debug mode. Useful for troubleshooting or understanding of send data.
|
|
164
169
|
|
|
165
170
|
#### Debug MMSI
|
|
166
171
|
- **Default**: empty
|
|
167
|
-
- **Description**:
|
|
172
|
+
- **Description**: Debug output will be filtered for only this MMSI. Option only visible if plugin is in debug mode. Leave empty to disable.
|
|
168
173
|
|
|
169
174
|
#### Debug Stale
|
|
170
175
|
- **Default**: false
|
|
171
|
-
- **Description**: Stale vessels will be shown in debug log - only visible if plugin is in debug mode and debug all vessel details is enabled
|
|
176
|
+
- **Description**: Stale vessels will be shown in debug log - option only visible if plugin is in debug mode and debug all vessel details is enabled
|
|
172
177
|
|
|
173
178
|
#### Debug JSON
|
|
174
179
|
- **Default**: false
|
|
175
|
-
- **Description**: JSON data of vessels will be shown in debug log - only visible if plugin is in debug mode and debug all vessel details is enabled
|
|
180
|
+
- **Description**: JSON data of vessels will be shown in debug log - option only visible if plugin is in debug mode and debug all vessel details is enabled
|
|
176
181
|
|
|
177
182
|
#### Debug AIS data
|
|
178
183
|
- **Default**: false
|
|
179
|
-
- **Description**:
|
|
184
|
+
- **Description**: AIS NMEA0183 data output will be shown in debug log - option only visible if plugin is in debug mode and debug all vessel details is enabled
|
|
180
185
|
|
|
181
186
|
#### Debug corrected SOG
|
|
182
187
|
- **Default**: false
|
|
183
|
-
- **Description**:
|
|
188
|
+
- **Description**: Vessels with corrected SOG will be shown in the debug log - option only visible if plugin is in debug mode and debug all vessel details is enabled
|
|
184
189
|
|
|
185
190
|
## How It Works
|
|
186
191
|
|
|
@@ -189,7 +194,7 @@ Warning: AIS data provided by this plugin can assist navigation. However, it nev
|
|
|
189
194
|
1. **Data Collection**:
|
|
190
195
|
- Fetches vessel data from SignalK API (`http://<IP_OF_SIGNALK_SERVER>:<PORT_SIGNALK_SERVER>/signalk/v1/api/vessels`)
|
|
191
196
|
- use other SignalK plugins (like AisHub WS) to receive more vessels for SignalK with AIS information
|
|
192
|
-
- Optionally fetches nearby vessels from AISFleet.com API
|
|
197
|
+
- Optionally fetches nearby vessels from AISFleet.com API (if plugin "AIS Fleet" is not installed or not enabled)
|
|
193
198
|
- Merges both sources, preferring newer timestamps
|
|
194
199
|
|
|
195
200
|
2. **Data Processing**:
|
|
@@ -199,12 +204,13 @@ Warning: AIS data provided by this plugin can assist navigation. However, it nev
|
|
|
199
204
|
- Filters vessels without valid name AND callsign
|
|
200
205
|
|
|
201
206
|
3. **NMEA Generation**:
|
|
202
|
-
- Creates AIS Type 1 messages (position reports)
|
|
203
|
-
- Creates AIS Type 5 messages (static vessel data)
|
|
207
|
+
- Creates AIS Type 1 (class A) or Type 19 (class B) messages (position reports)
|
|
208
|
+
- Creates AIS Type 5 (class A) or Type 25 (class B) messages (static vessel data)
|
|
204
209
|
- Encodes as NMEA 0183 sentences
|
|
205
210
|
|
|
206
211
|
4. **Broadcasting**:
|
|
207
212
|
- Sends to all connected TCP clients
|
|
213
|
+
- Sends to all connected Websocket clients
|
|
208
214
|
- Optionally forwards to VesselFinder.com via UDP
|
|
209
215
|
- Resends periodically to prevent client timeouts
|
|
210
216
|
|
|
@@ -270,7 +276,7 @@ When a new TCP client connects:
|
|
|
270
276
|
|
|
271
277
|
### Too many/few vessels
|
|
272
278
|
- Adjust "Stale Data Threshold" to filter outdated vessels
|
|
273
|
-
- Enable/disable "Include Vessels from AISFleet.com"
|
|
279
|
+
- Enable/disable "Include Vessels from AISFleet.com" (if plugin "AIS Fleet" is not installed)
|
|
274
280
|
- Adjust "Radius for Cloud Vessels" to control area coverage
|
|
275
281
|
|
|
276
282
|
## Debug Logging
|
|
@@ -290,10 +296,9 @@ Debug information includes:
|
|
|
290
296
|
## Requirements
|
|
291
297
|
|
|
292
298
|
- SignalK server (Node.js version)
|
|
293
|
-
- Own vessel position (for AISFleet cloud integration)
|
|
299
|
+
- Own vessel position (for AISFleet cloud integration, if "AIS Fleet" plugin is not installed)
|
|
294
300
|
- Own vessel MMSI
|
|
295
|
-
-
|
|
296
|
-
- Navigation app with NMEA 0183 TCP support (e.g. Navionics boating app or OpenCpn)
|
|
301
|
+
- Navigation app with NMEA 0183 TCP support (e.g. Navionics boating app, OpenCpn,...)
|
|
297
302
|
|
|
298
303
|
## License
|
|
299
304
|
|
|
@@ -319,4 +324,9 @@ Issues and pull requests are welcome!
|
|
|
319
324
|
### Version 1.0.1
|
|
320
325
|
- enhanced debug logs
|
|
321
326
|
### Version 1.0.2
|
|
322
|
-
- Changed to "Embedded Plugin Configuration Forms"
|
|
327
|
+
- Changed to "Embedded Plugin Configuration Forms"
|
|
328
|
+
### Version 1.0.3
|
|
329
|
+
- AIS message types for class A / B separated
|
|
330
|
+
- AIS Websocket server added
|
|
331
|
+
### Version 1.0.4
|
|
332
|
+
- minor bug corrections for unavailable ROT / Heading
|