README
Freeboard
Freeboard is a stateless, multi-station ready, Openlayers chartplotter for Signal K.
Display and manage routes, waypoints, notes, alarms, notifications on your Signal K server from multiple clients.
Features:
Vessel / Chart Display:
Moving map display with the ability to use a combination of online and locally served charts.
Ability to select the active vessel and direct actions to it (where supported by the server).
- North-up / Vessel-up
- Moving Map / Moving Vessel
- Vessel Heading / Bearing lines
- Wind True / Apparent display
- Measure distance
CHARTS
Built in support (no plugin required) for:
- OpenStreetMap / WORLD chart outline
- OpenSeaMap
Signal K /resources/charts
path:
Charts listed under the Signal K servers /resources/charts
path are avaialble for display.
The following chart types / sources are supported
- Image tiles (XYZ)
- Vector Tiles (MVT / PBF)
- WMS (Web Map Server)
Resources:
The following resources available at the Signal K /resources
path are supported:
Routes and Waypoints:
Path(s): /resources/routes
, /resources/waypoints
- Show / Hide Routes & Waypoints
- Set an active Route
- Select destination point along and Active Route
- Select a Waypoint as a destination
- Create / Edit / Delete Routes
- Add Waypoint at location or Vessel position
- Edit / Delete Waypoints
- Import Routes and Waypoints from GPX files
Notes and Regions:
Path(s): /resources/notes
, /resources/regions
- Display Notes and Regions
- View / Edit Note properties
- Draw Regions and attach Notes
- Add / Edit / Delete Notes
- Associate Notes with Regions
Alarms and Notifications:
Display alarms from received Notification messages (visual and audio) including:
- Depth
- Closest Approach
- "Buddy" notifications
Raise alarms such as
Man overboard
,Sinking
, etc.Set anchor watch / drag alarm
Vessel Closest Approach alarm:
History Playback
Playback recorded time-series data captured on the Signal K server via the playback
api.
Instruments:
Freeboard allows you to use your favourite instrumentation app hosted on the Signal K server.
Select one or more from installed applications in the settings
screen and they will displayed in the instrument panel drawer.
When more than one app is selected you can cycle through them within the instrument panel.
Instrument Panel: Signal K Instrument Panel
app is the default.
System Requirements:
For all Freeboard features to be fully functional, it requires that the Signal K server in use be able to provide the necessary services for the following paths:
reources/routes
,resources/waypoints
,resources/notes
,resources/regions
- Serve resources as well as accept and persist resource data submitted to these paths.resources/charts
- Serve chart resources.navigation/anchor
,notifications/navigation/anchor
- Serve and acceptposition
,maxRadius
values as well as calculatecurrentRadius
and serve notifications.notifications/environment/depth
- Serve notifications forbelowKeel
,belowSurface
belowTransducer
.navigation/courseGreatCircle/activeRoute
- Serve and accepthref
&startTime
values to allow a route to be set as active. It is expected that the server will initiate any subsequent calculations and related value updates.navigation/courseGreatCircle/nextPoint
- Serve and acceptposition
values to allow a waypoint to be set as a destination. It is expected that the server will initiate any subsequent calculations and related value updates.Playback History - Implement the Signal K Playback api (
/signalk/v1/playback
)
These functions may be provided natively by the server or through the use of plugins.
Recommended Plugins:
The following plugins are recommended for the Signal K node server to enable full functionality:
- freeeboard-sk-helper (Set destination, active route, arrival circle)
- sk-resources-fs (Routes, Waypoints, Notes & Regions provider)
- @signalk/charts-plugin (Charts provider)
- signalk-anchoralarm-plugin (anchor alarm settings & notifications)
- signalk-simple-notifications (depth alarm notifications)
- signalk-derived-data (XTE, DTG, etc.)
Development:
Freeboard is an Angular project.
It is recommended that the Angular CLI be installed globally npm i -g @angular/cli@latest
prior to following the steps below.
Clone this repository.
Run
npm i
to install project dependencies. Note: this will also build the project placing the deployable application files in thepublic
folder.Run
npm start
orng serve
to start a development web server and then navigate tohttp://localhost:4200/
to load the application. The application will automatically reload once you save changes to any of the source files.
Note:
The Freeboard application will look to connect to a Signal K server at the ip address:port contained in the url of your browser.
In development mode you are able to specify the Signal K server host address and port you wish to connect to by editing the DEV_SERVER
object in the src/app.info.ts
file.
DEV_SERVER {
host: '192.168.99.100',
port; 3000,
ssl: false
}
Note: These settings apply in Development Mode only!
- `npm start`
- `ng serve`
- `ng build`
They will NOT apply when using Production Mode, the generated application will attempt to connect to a Signal K api / stream on the hosting server.
- `ng build -c production`
- `npm run build:prod`
Building a Release:
Angular Build:
To build the Freeboard application use the npm run build:prod
command.
Built application files for deployment are placed in the /public
folder.
NPM package:
To build the NPM package use npm pack
command which will:
- Build the application using
npm run build:prod
. - Create the NPM package
*.tgz
file.
Built *.tgz
file is placed in the root folder of the project.
Freeboard is a port of http://www.42.co.nz/freeboard for use with Signal K communication protocols and server features.