open-index/open-npm huggingface dataset:
npm package: @signalk/assemblyscript-plugin-sdk
Description: AssemblyScript SDK for developing Signal K WASM plugins
Author: Signal K
Latest version: 0.2.0

# Signal K AssemblyScript Plugin SDK

Build WASM plugins for Signal K Server using TypeScript-like syntax.

## Features

- TypeScript-like syntax (strict subset)
- Compiles directly to WASM
- Small binaries (3-10 KB typical)
- Good performance (80-90% of Rust)
- Familiar tooling (npm, TypeScript)

## Installation

```bash
npm install @signalk/assemblyscript-plugin-sdk
npm install --save-dev assemblyscript
```

## Documentation

For complete documentation including:

- Step-by-step tutorial
- API reference
- Resource providers
- Troubleshooting

See the [AssemblyScript Plugin Guide](../../docs/develop/plugins/wasm/assemblyscript.md) in the Signal K Server documentation.

## Examples

See [examples/wasm-plugins/](../../examples/wasm-plugins/) for working examples:

- `example-hello-assemblyscript` - Basic plugin
- `example-weather-plugin` - Resource provider with network requests

## License

Apache-2.0
npm package: @signalk/calibration
Description: Signal K Node Server plugin to alter incoming data based a set of calibration values
Author: Teppo Kurki
Latest version: 1.3.3

# calibration
Signal K Node Server plugin to alter incoming data based a set of calibration values.


You configure it by entering the Signal K path and some pairs of input and output values. Each pair is a "known" calibration point, where you know what the input is and what the output should be.

Additionally you can enter a source id to specify the source of the data that the calibration should be applied to. Please refer to server's Data Browser for the ids in your system.

You can also specify the length of the period, like 2 * Pi for angles, to cap the output.

The units in Signal K are SI units, so for example angles are in radians.

![image](https://user-images.githubusercontent.com/1049678/100268587-ef688300-2f5d-11eb-9b5e-4358af94d110.png)
npm package: @signalk/course-provider
Description: Course data provider plugin for SignalK Server.
Author: AdrianP
Latest version: 1.2.6

# Course Provider Plugin:

__Signal K server plugin that acts as a Course data provider__.

_Note: This plugin should ONLY be installed on Signal K Server version 2.0 or later!_

---

This plugin populates the following course data paths found under `navigation.course.calcValues` as well as providing an API endpoint at `/signalk/v2/api/vessels/self/navigation/course/calcValues`:

- `calcMethod`
- `bearingTrackTrue`
- `bearingTrackMagnetic`
- `crossTrackError`
- `previousPoint.distance`
- `distance`
- `bearingTrue`
- `bearingMagnetic`
- `velocityMadeGood`
- `timeToGo`
- `estimatedTimeOfArrival`
- `targetSpeed`
- `route.distance`
- `route.timeToGo`
- `route.estimatedTimeOfArrival`

AND
- `performance.velocityMadeGoodToWaypoint`


Additionally it will raise the following notification:
- **`notifications.navigation.arrivalCircleEntered`**: _alert_ message is sent when the value of `distance` falls below the value of `navigation.course.nextPoint.arrivalCircle`.

- **`notifications.navigation.perpendicularPassed`**: _alert_ message is sent when the perpendicular line (relative to `navigation.course.previousPoint.position` at the destination has been passed by the vessel.

## Configuration
---
**Notifications:** provides configuration for generated notifications.

- **Enable sound:** Checking this option sets the `sound` flag for any notifications generated.

**Calculation method:** Select the course calculation method to use and the paths to populate.

- **GreatCircle (default)**: populates values using _GreatCircle_ calculations.
- **Rhumbline**: populates values using _Rhumbline_ calculations.
npm package: @signalk/instrumentpanel
Description: Signal K instrument panel implemented as an HTML5 grid with draggable & resizable widgets
Author: Teppo Kurki
Latest version: 0.26.0

Signal K Instrument Panel
=========================
Instrument panel implemented as a grid with draggable &amp; resizable components. Components are added dynamically eg.
when the panel receives data it hasn't seen before a new cell is added to the grid.

![instrumentpanel-demo](instrumentpanel-demo.gif)

Online demo: [http://demo.signalk.org/@signalk/instrumentpanel](http://demo.signalk.org/@signalk/instrumentpanel)  
InstrumentPanel help: [http://demo.signalk.org/@signalk/instrumentpanel#help](http://demo.signalk.org/@signalk/instrumentpanel#help)  

Trouble?
========
First consult the online help, link above or click on **?** icon inside the GUI.  
InstrumentPanel stores some of the settings in the browser's localstorage. In case there is some garbage there you can
get it cleared by using a url with query parameter `?reset=true`.  

For iOS user:
=============
On an unlocked grid, to drag or to resize a widget,
 first click once or twice in the center of the widget
 to bring focus to it and then you can drag or resize the widget with the screen's scroll locked.  
If you don't click first in the center of the widget,
 the page starts scrolling before you can drag or resize the widget.  

For Developers
==============
- clone repository: `git clone https://github.com/SignalK/instrumentpanel.git`
- install development dependencies with: `npm install`
- build & watch with: `npm start` (run an instrumentpanel http server on port 3001)
- building js bundle for distribution: `npm run prepublishOnly` will publish in `public\ui.js`. This builds minified ui.js.
  
The address of the signal K server is directly derived from your web page.  
You can manually specify the address and the protocol to connect to your signal K server.  
Be careful if you mix secure and unsecured protocols, your browser may refuse the connection.  
To manually specify the address and the protocol of the signal K server,  
 add the following query parameter **?signalkServer=wss://mysignalk.local:3443** to the url.  
Use **wss://** for secure websocket or **ws://** for unsecure websocket.  

Changelog
=====
Please see [Releases](https://github.com/SignalK/instrumentpanel/releases) for the release notes.

To Do
=====
Please open a github issue if you want a new feature.