Pavel, is this the long-term plan?
The user runs a SignalK server - this might be its own device (like an Arduino or Raspberry Pi) or a service
on a PC/Mac.
The SignalK server subscribes to all of the data sources - NMEA-0183, NMEA-2000, AIS
, and others. It ingests data via serial/USB, Ethernet, WiFi
, and other sources then converts to the internal SignalK JSON format. These replace the current OpenCPN
direct connections to data source busses.
The SignalK server makes data available over LAN/WiFi/Bluetooth (or other) connections.
OpenCPN subscribes to interesting SignalK data as a network connection like it does now with a Vesper or 127.0.0.1 for a local server. OpenCPN is taught SignalK's JSON data structures.
Functionality is similar (or better) than current
OpenCPN with the responsibility to understand NMEA
and vendor data formats moved to SignalK.
Current users running OpenCPN on a PC or Mac laptop
will run one more service
and users with a dedicated on-board server get much greater flexibility.