signalk-server
Version:
An implementation of a [Signal K](http://signalk.org) server for boats.
185 lines • 160 kB
HTML
<!DOCTYPE html><html class="default" lang="en" data-base="../../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ServerAPI | Signal K</title><meta name="description" content="Documentation for Signal K"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../../assets/style.css?cache=1750891486567"/><link rel="stylesheet" href="../../assets/highlight.css?cache=1750891486567"/><script defer src="../../assets/main.js?cache=1750891486567"></script><script async src="../../assets/icons.js?cache=1750891486567" id="tsd-icons-script"></script><script async src="../../assets/search.js?cache=1750891486567" id="tsd-search-script"></script><script async src="../../assets/navigation.js?cache=1750891486567" id="tsd-nav-script"></script><script async src="../../assets/hierarchy.js?cache=1750891486567" id="tsd-hierarchy-script"></script><link rel="stylesheet" href="../../assets/theme.css"/></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../../index.html" class="title"><img src="../../assets/logo.svg" alt="Signal K"/></a><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-search"></use></svg><span class="visible@s">Search</span></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><div id="tsd-toolbar-links"><a href="https://discord.gg/uuZrwz4dCS" target="_blank" rel="noopener" class="toolbar-icon visible@s" aria-label="Discord"><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M524.5 69.8a1.5 1.5 0 0 0 -.8-.7A485.1 485.1 0 0 0 404.1 32a1.8 1.8 0 0 0 -1.9 .9 337.5 337.5 0 0 0 -14.9 30.6 447.8 447.8 0 0 0 -134.4 0 309.5 309.5 0 0 0 -15.1-30.6 1.9 1.9 0 0 0 -1.9-.9A483.7 483.7 0 0 0 116.1 69.1a1.7 1.7 0 0 0 -.8 .7C39.1 183.7 18.2 294.7 28.4 404.4a2 2 0 0 0 .8 1.4A487.7 487.7 0 0 0 176 479.9a1.9 1.9 0 0 0 2.1-.7A348.2 348.2 0 0 0 208.1 430.4a1.9 1.9 0 0 0 -1-2.6 321.2 321.2 0 0 1 -45.9-21.9 1.9 1.9 0 0 1 -.2-3.1c3.1-2.3 6.2-4.7 9.1-7.1a1.8 1.8 0 0 1 1.9-.3c96.2 43.9 200.4 43.9 295.5 0a1.8 1.8 0 0 1 1.9 .2c2.9 2.4 6 4.9 9.1 7.2a1.9 1.9 0 0 1 -.2 3.1 301.4 301.4 0 0 1 -45.9 21.8 1.9 1.9 0 0 0 -1 2.6 391.1 391.1 0 0 0 30 48.8 1.9 1.9 0 0 0 2.1 .7A486 486 0 0 0 610.7 405.7a1.9 1.9 0 0 0 .8-1.4C623.7 277.6 590.9 167.5 524.5 69.8zM222.5 337.6c-29 0-52.8-26.6-52.8-59.2S193.1 219.1 222.5 219.1c29.7 0 53.3 26.8 52.8 59.2C275.3 311 251.9 337.6 222.5 337.6zm195.4 0c-29 0-52.8-26.6-52.8-59.2S388.4 219.1 417.9 219.1c29.7 0 53.3 26.8 52.8 59.2C470.7 311 447.5 337.6 417.9 337.6z"></path></svg></a><a href="https://github.com/SignalK/signalk-server" target="_blank" rel="noopener" class="toolbar-icon visible@s" aria-label="Discord"><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3 .3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5 .3-6.2 2.3zm44.2-1.7c-2.9 .7-4.9 2.6-4.6 4.9 .3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3 .7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3 .3 2.9 2.3 3.9 1.6 1 3.6 .7 4.3-.7 .7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3 .7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3 .7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg></a><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../server-api.html">@signalk/server-api</a></li><li><a href="" aria-current="page">ServerAPI</a></li></ul><h1>Interface ServerAPI</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><p>SignalK server provides an interface to allow <a href="Plugin.html" class="tsd-kind-interface">Plugins</a> to:</p>
<ul>
<li>Discover Features.</li>
<li>Access / update the full data model</li>
<li>send / receive deltas (updates)</li>
<li>Interact with APIs</li>
<li>Expose HTTP endpoints</li>
</ul>
<p>These functions are available via the app object passed to the plugin when it is invoked.</p>
<div class="tsd-alert tsd-alert-warning"><div class="tsd-alert-title"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><use href="../../assets/icons.svg#icon-alertWarning"></use></svg><span>Warning</span></div><p>
Typing is incomplete. If you find a missing or inaccurate type, please <a href="https://github.com/SignalK/signalk-server/issues/1917">report it</a>.</p>
</div>
</div><div class="tsd-comment tsd-typography"></div></section><div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">ServerAPI</span> <span class="tsd-signature-symbol">{</span><br/> <a class="tsd-kind-property" href="#resourcesapi">resourcesApi</a><span class="tsd-signature-symbol">:</span> <a href="ResourcesApi.html" class="tsd-signature-type tsd-kind-interface">ResourcesApi</a><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-property" href="#selfcontext">selfContext</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-property" href="#selfid">selfId</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-property" href="#selftype">selfType</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-property" href="#streambundle">streambundle</a><span class="tsd-signature-symbol">:</span> <a href="StreamBundle.html" class="tsd-signature-type tsd-kind-interface">StreamBundle</a><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-property" href="#subscriptionmanager">subscriptionmanager</a><span class="tsd-signature-symbol">:</span> <a href="SubscriptionManager.html" class="tsd-signature-type tsd-kind-interface">SubscriptionManager</a><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#activateroute-1">activateRoute</a><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">dest</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">null</span> <span class="tsd-signature-symbol">|</span> <a href="RouteDestination.html" class="tsd-signature-type tsd-kind-interface">RouteDestination</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise" class="tsd-signature-type external" target="_blank">Promise</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#autopilotupdate-1">autopilotUpdate</a><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">deviceId</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <span class="tsd-kind-parameter">apInfo</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-signature-symbol">[</span><span class="tsd-kind-index-signature">path</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]:</span> <a href="Value.html" class="tsd-signature-type tsd-kind-type-alias">Value</a> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#cleardestination-1">clearDestination</a><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise" class="tsd-signature-type external" target="_blank">Promise</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#debug-1">debug</a><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">msg</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#emitpropertyvalue-1">emitPropertyValue</a><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">name</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <span class="tsd-kind-parameter">value</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#error-1">error</a><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">msg</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#getcourse-1">getCourse</a><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise" class="tsd-signature-type external" target="_blank">Promise</a><span class="tsd-signature-symbol"><</span><a href="CourseInfo.html" class="tsd-signature-type tsd-kind-interface">CourseInfo</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#getdatadirpath-1">getDataDirPath</a><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#getfeatures-1">getFeatures</a><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">onlyEnabled</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="FeatureInfo.html" class="tsd-signature-type tsd-kind-interface">FeatureInfo</a><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#getmetadata-1">getMetadata</a><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">path</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span> <span class="tsd-signature-symbol">|</span> <a href="Metadata.html" class="tsd-signature-type tsd-kind-interface">Metadata</a><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#getpath-1">getPath</a><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">path</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#getselfpath-1">getSelfPath</a><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">path</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#getserialports-1">getSerialPorts</a><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise" class="tsd-signature-type external" target="_blank">Promise</a><span class="tsd-signature-symbol"><</span><a href="Ports.html" class="tsd-signature-type tsd-kind-interface">Ports</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#handlemessage-1">handleMessage</a><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">id</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <span class="tsd-kind-parameter">msg</span><span class="tsd-signature-symbol">:</span> <a href="https://www.typescriptlang.org/docs/handbook/utility-types.html#partialtype" class="tsd-signature-type external" target="_blank">Partial</a><span class="tsd-signature-symbol"><</span><a href="Delta.html" class="tsd-signature-type tsd-kind-interface">Delta</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">,</span> <span class="tsd-kind-parameter">skVersion</span><span class="tsd-signature-symbol">?:</span> <a href="SKVersion.html" class="tsd-signature-type tsd-kind-enum">SKVersion</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#onpropertyvalues-1">onPropertyValues</a><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">name</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <span class="tsd-kind-parameter">cb</span><span class="tsd-signature-symbol">:</span> <a href="PropertyValuesCallback.html" class="tsd-signature-type tsd-kind-type-alias">PropertyValuesCallback</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">()</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#putpath-1">putPath</a><span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">aPath</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">value</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">number</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">boolean</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">updateCb</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">err</span><span class="tsd-signature-symbol">?:</span> <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Error" class="tsd-signature-type external" target="_blank">Error</a><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">source</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise" class="tsd-signature-type external" target="_blank">Promise</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#putselfpath-1">putSelfPath</a><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">aPath</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <span class="tsd-kind-parameter">value</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">,</span> <span class="tsd-kind-parameter">updateCb</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">()</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise" class="tsd-signature-type external" target="_blank">Promise</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#queryrequest-1">queryRequest</a><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">requestId</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise" class="tsd-signature-type external" target="_blank">Promise</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#readpluginoptions-1">readPluginOptions</a><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#registeractionhandler-1">registerActionHandler</a><span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">context</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">path</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">callback</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">()</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">source</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#registerautopilotprovider-1">registerAutopilotProvider</a><span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">provider</span><span class="tsd-signature-symbol">:</span> <a href="AutopilotProvider.html" class="tsd-signature-type tsd-kind-interface">AutopilotProvider</a><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">devices</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#registerdeltainputhandler-1">registerDeltaInputHandler</a><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">handler</span><span class="tsd-signature-symbol">:</span> <a href="DeltaInputHandler.html" class="tsd-signature-type tsd-kind-type-alias">DeltaInputHandler</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#registerhistoryprovider-1">registerHistoryProvider</a><span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">provider</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span><br/> <span class="tsd-kind-property">getHistory</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">date</span><span class="tsd-signature-symbol">:</span> <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Date" class="tsd-signature-type external" target="_blank">Date</a><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">path</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">cb</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">deltas</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">hasAnydata</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">,</span> <span class="tsd-kind-parameter">cb</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">hasResults</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">streamHistory</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">spark</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">onDelta</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">delta</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#registerputhandler-1">registerPutHandler</a><span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">context</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">path</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">callback</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">()</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">source</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#registerresourceprovider-1">registerResourceProvider</a><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">provider</span><span class="tsd-signature-symbol">:</span> <a href="ResourceProvider.html" class="tsd-signature-type tsd-kind-interface">ResourceProvider</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#reportoutputmessages-1">reportOutputMessages</a><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">count</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#savepluginoptions-1">savePluginOptions</a><span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">configuration</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">cb</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">err</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">null</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">ErrnoException</span><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#setdestination-1">setDestination</a><span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">dest</span><span class="tsd-signature-symbol">:</span><br/> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">null</span><br/> <span class="tsd-signature-symbol">|</span> (PointDestination & { arrivalCircle?: number | undefined; })<span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise" class="tsd-signature-type external" target="_blank">Promise</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#setpluginerror-1">setPluginError</a><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">msg</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-call-signature" href="#setpluginstatus-1">setPluginStatus</a><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">msg</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></div><section class="tsd-panel tsd-hierarchy" data-refl="1110"><h4>Hierarchy</h4><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><a href="PropertyValuesEmitter.html" class="tsd-signature-type tsd-kind-interface">PropertyValuesEmitter</a></li><li class="tsd-hierarchy-item"><a href="ResourceProviderRegistry.html" class="tsd-signature-type tsd-kind-interface">ResourceProviderRegistry</a></li><li class="tsd-hierarchy-item"><a href="CourseApi.html" class="tsd-signature-type tsd-kind-interface">CourseApi</a></li><li class="tsd-hierarchy-item"><a href="SelfIdentity.html" class="tsd-signature-type tsd-kind-interface">SelfIdentity</a><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-hierarchy-target">ServerAPI</span></li></ul></li></ul></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/serverapi.ts#L27">serverapi.ts:27</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-chevronDown"></use></svg><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Autopilot API</h3><div class="tsd-index-list"><a href="#autopilotupdate" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>autopilot<wbr/>Update</span></a>
<a href="#registerautopilotprovider" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>register<wbr/>Autopilot<wbr/>Provider</span></a>
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Configuration</h3><div class="tsd-index-list"><a href="#getdatadirpath" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Data<wbr/>Dir<wbr/>Path</span></a>
<a href="#readpluginoptions" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>read<wbr/>Plugin<wbr/>Options</span></a>
<a href="#savepluginoptions" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>save<wbr/>Plugin<wbr/>Options</span></a>
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Course API</h3><div class="tsd-index-list"><a href="#activateroute" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>activate<wbr/>Route</span></a>
<a href="#cleardestination" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>clear<wbr/>Destination</span></a>
<a href="#getcourse" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Course</span></a>
<a href="#setdestination" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>set<wbr/>Destination</span></a>
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Data Model</h3><div class="tsd-index-list"><a href="#streambundle" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../../assets/icons.svg#icon-1024"></use></svg><span>streambundle</span></a>
<a href="#subscriptionmanager" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../../assets/icons.svg#icon-1024"></use></svg><span>subscriptionmanager</span></a>
<a href="#getmetadata" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Metadata</span></a>
<a href="#getpath" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Path</span></a>
<a href="#getselfpath" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Self<wbr/>Path</span></a>
<a href="#handlemessage" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>handle<wbr/>Message</span></a>
<a href="#putpath" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>put<wbr/>Path</span></a>
<a href="#putselfpath" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>put<wbr/>Self<wbr/>Path</span></a>
<a href="#registerdeltainputhandler" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>register<wbr/>Delta<wbr/>Input<wbr/>Handler</span></a>
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Other</h3><div class="tsd-index-list"><a href="#selfcontext" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../../assets/icons.svg#icon-1024"></use></svg><span>self<wbr/>Context</span></a>
<a href="#selfid" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../../assets/icons.svg#icon-1024"></use></svg><span>self<wbr/>Id</span></a>
<a href="#selftype" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../../assets/icons.svg#icon-1024"></use></svg><span>self<wbr/>Type</span></a>
<a href="#getfeatures" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Features</span></a>
<a href="#queryrequest" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>query<wbr/>Request</span></a>
<a href="#registeractionhandler" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>register<wbr/>Action<wbr/>Handler</span></a>
<a href="#registerhistoryprovider" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>register<wbr/>History<wbr/>Provider</span></a>
<a href="#registerputhandler" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>register<wbr/>Put<wbr/>Handler</span></a>
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Property Values</h3><div class="tsd-index-list"><a href="#emitpropertyvalue" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>emit<wbr/>Property<wbr/>Value</span></a>
<a href="#onpropertyvalues" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>on<wbr/>Property<wbr/>Values</span></a>
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Resources API</h3><div class="tsd-index-list"><a href="#resourcesapi" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../../assets/icons.svg#icon-1024"></use></svg><span>resources<wbr/>Api</span></a>
<a href="#registerresourceprovider" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>register<wbr/>Resource<wbr/>Provider</span></a>
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Serial Ports</h3><div class="tsd-index-list"><a href="#getserialports" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Serial<wbr/>Ports</span></a>
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Status and Debugging</h3><div class="tsd-index-list"><a href="#debug" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>debug</span></a>
<a href="#error" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>error</span></a>
<a href="#reportoutputmessages" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>report<wbr/>Output<wbr/>Messages</span></a>
<a href="#setpluginerror" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>set<wbr/>Plugin<wbr/>Error</span></a>
<a href="#setpluginstatus" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>set<wbr/>Plugin<wbr/>Status</span></a>
</div></section></div></details></section></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Autopilot API"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-chevronDown"></use></svg><h2>Autopilot API</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="autopilotupdate"><span>autopilot<wbr/>Update</span><a href="#autopilotupdate" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="autopilotupdate-1"><span class="tsd-kind-call-signature">autopilotUpdate</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">deviceId</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <span class="tsd-kind-parameter">apInfo</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-signature-symbol">[</span><span class="tsd-kind-index-signature">path</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]:</span> <a href="Value.html" class="tsd-signature-type tsd-kind-type-alias">Value</a> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#autopilotupdate-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">deviceId</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>the autopilot device identifier</p>
</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">apInfo</span>: <span class="tsd-signature-symbol">{</span> <span class="tsd-signature-symbol">[</span><span class="tsd-kind-index-signature">path</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]:</span> <a href="Value.html" class="tsd-signature-type tsd-kind-type-alias">Value</a> <span class="tsd-signature-symbol">}</span></span><div class="tsd-comment tsd-typography"><p>object containing values keyed by <a href="AutopilotInfo.html" class="tsd-kind-interface">AutopilotInfo</a></p>
</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><p>Inherited from AutopilotProviderRegistry.autopilotUpdate</p><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/autopilotapi.ts#L346">autopilotapi.ts:346</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="registerautopilotprovider"><span>register<wbr/>Autopilot<wbr/>Provider</span><a href="#registerautopilotprovider" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="registerautopilotprovider-1"><span class="tsd-kind-call-signature">registerAutopilotProvider</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">provider</span><span class="tsd-signature-symbol">:</span> <a href="AutopilotProvider.html" class="tsd-signature-type tsd-kind-interface">AutopilotProvider</a><span class="tsd-signature-symbol">,</span> <span class="tsd-kind-parameter">devices</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#registerautopilotprovider-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">provider</span>: <a href="AutopilotProvider.html" class="tsd-signature-type tsd-kind-interface">AutopilotProvider</a></span></li><li><span><span class="tsd-kind-parameter">devices</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><p>Inherited from AutopilotProviderRegistry.registerAutopilotProvider</p><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/autopilotapi.ts#L336">autopilotapi.ts:336</a></li></ul></aside></div></li></ul></section></section></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Configuration"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-chevronDown"></use></svg><h2>Configuration</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="getdatadirpath"><span>get<wbr/>Data<wbr/>Dir<wbr/>Path</span><a href="#getdatadirpath" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="getdatadirpath-1"><span class="tsd-kind-call-signature">getDataDirPath</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><a href="#getdatadirpath-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Returns the full path of the directory where the plugin can persist its internal data, e.g. data files, etc.</p>
</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example">Example<a href="#example" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="javascript"><span class="hl-5">let</span><span class="hl-1"> myDataFile </span><span class="hl-5">=</span><span class="hl-1"> </span><span class="hl-8">require</span><span class="hl-1">(</span><span class="hl-2">'path'</span><span class="hl-1">).</span><span class="hl-8">join</span><span class="hl-1">( app.</span><span class="hl-8">getDataDirPath</span><span class="hl-1">(), </span><span class="hl-2">'somedatafile.ext'</span><span class="hl-1">)</span>
</code><button type="button">Copy</button></pre>
</div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/serverapi.ts#L269">serverapi.ts:269</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="readpluginoptions"><span>read<wbr/>Plugin<wbr/>Options</span><a href="#readpluginoptions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="readpluginoptions-1"><span class="tsd-kind-call-signature">readPluginOptions</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span><a href="#readpluginoptions-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Read the stored plugin configuration options.</p>
</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">object</span></h4><div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example-1">Example<a href="#example-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="javascript"><span class="hl-5">let</span><span class="hl-1"> options </span><span class="hl-5">=</span><span class="hl-1"> app.</span><span class="hl-8">readPluginOptions</span><span class="hl-1">();</span>
</code><button type="button">Copy</button></pre>
</div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/serverapi.ts#L258">serverapi.ts:258</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="savepluginoptions"><span>save<wbr/>Plugin<wbr/>Options</span><a href="#savepluginoptions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="savepluginoptions-1"><span class="tsd-kind-call-signature">savePluginOptions</span><span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">configuration</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">cb</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">err</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">null</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">ErrnoException</span><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#savepluginoptions-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Save changes to the plugin's configuration options.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">configuration</span>: <span class="tsd-signature-type">object</span></span></li><li><span><span class="tsd-kind-parameter">cb</span>: <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">err</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">null</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">ErrnoException</span><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example-2">Example<a href="#example-2" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="javascript"><span class="hl-5">let</span><span class="hl-1"> options </span><span class="hl-5">=</span><span class="hl-1"> {</span><br/><span class="hl-1"> myConfigValue </span><span class="hl-5">=</span><span class="hl-1"> </span><span class="hl-2">'Something the plugin calculated'</span><br/><span class="hl-1">};</span><br/><br/><span class="hl-1">app.</span><span class="hl-8">savePluginOptions</span><span class="hl-1">(options, () </span><span class="hl-5">=></span><span class="hl-1"> {app.</span><span class="hl-8">debug</span><span class="hl-1">(</span><span class="hl-2">'Plugin options saved'</span><span class="hl-1">)});</span>
</code><button type="button">Copy</button></pre>
</div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/serverapi.ts#L243">serverapi.ts:243</a></li></ul></aside></div></li></ul></section></section></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Course API"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-chevronDown"></use></svg><h2>Course API</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="activateroute"><span>activate<wbr/>Route</span><a href="#activateroute" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="activateroute-1"><span class="tsd-kind-call-signature">activateRoute</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">dest</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">null</span> <span class="tsd-signature-symbol">|</span> <a href="RouteDestination.html" class="tsd-signature-type tsd-kind-interface">RouteDestination</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise" class="tsd-signature-type external" target="_blank">Promise</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span><a href="#activateroute-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Follow a route in the specified direction and starting at the specified point.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">dest</span>: <span class="tsd-signature-type">null</span> <span class="tsd-signature-symbol">|</span> <a href="RouteDestination.html" class="tsd-signature-type tsd-kind-interface">RouteDestination</a></span><div class="tsd-comment tsd-typography"><p>Object containing route information.</p>
<ul>
<li>returns: Resolved Promise on success.</li>
</ul>
</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise" class="tsd-signature-type external" target="_blank">Promise</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><p>Inherited from <a href="CourseApi.html">CourseApi</a>.<a href="CourseApi.html#activateroute">activateRoute</a></p><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/course.ts#L42">course.ts:42</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="cleardestination"><span>clear<wbr/>Destination</span><a href="#cleardestination" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="cleardestination-1"><span class="tsd-kind-call-signature">clearDestination</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise" class="tsd-signature-type external" target="_blank">Promise</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span><a href="#cleardestination-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Cancels navigation to the current point or route being followed.</p>
</div><h4 class="tsd-returns-title">Returns <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise" class="tsd-signature-type external" target="_blank">Promise</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><p>Inherited from <a href="CourseApi.html">CourseApi</a>.<a href="CourseApi.html#cleardestination">clearDestination</a></p><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/course.ts#L19">course.ts:19</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="getcourse"><span>get<wbr/>Course</span><a href="#getcourse" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="getcourse-1"><span class="tsd-kind-call-signature">getCourse</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise" class="tsd-signature-type external" target="_blank">Promise</a><span class="tsd-signature-symbol"><</span><a href="CourseInfo.html" class="tsd-signature-type tsd-kind-interface">CourseInfo</a><span class="tsd-signature-symbol">></span><a href="#getcourse-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Retrieves the current course information.</p>
</div><h4 class="tsd-returns-title">Returns <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise" class="tsd-signature-type external" target="_blank">Promise</a><span class="tsd-signature-symbol"><</span><a href="CourseInfo.html" class="tsd-signature-type tsd-kind-interface">CourseInfo</a><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><p>Inherited from <a href="CourseApi.html">CourseApi</a>.<a href="CourseApi.html#getcourse">getCourse</a></p><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/course.ts#L12">course.ts:12</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="setdestination"><span>set<wbr/>Destination</span><a href="#setdestination" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="setdestination-1"><span class="tsd-kind-call-signature">setDestination</span><span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">dest</span><span class="tsd-signature-symbol">:</span><br/> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">null</span><br/> <span class="tsd-signature-symbol">|</span> (PointDestination & { arrivalCircle?: number | undefined; })<span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise" class="tsd-signature-type external" target="_blank">Promise</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span><a href="#setdestination-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Set course to a specified position / waypoint.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">dest</span>: <span class="tsd-signature-type">null</span> <span class="tsd-signature-symbol">|</span> (PointDestination & { arrivalCircle?: number | undefined; })</span><div class="tsd-comment tsd-typography"><p>Object containing destination position information.</p>
</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise" class="tsd-signature-type external" target="_blank">Promise</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><p>Inherited from <a href="CourseApi.html">CourseApi</a>.<a href="CourseApi.html#setdestination">setDestination</a></p><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/course.ts#L29">course.ts:29</a></li></ul></aside></div></li></ul></section></section></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Data Model"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-chevronDown"></use></svg><h2>Data Model</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="streambundle"><span>streambundle</span><a href="#streambundle" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">streambundle</span><span class="tsd-signature-symbol">:</span> <a href="StreamBundle.html" class="tsd-signature-type tsd-kind-interface">StreamBundle</a></div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/serverapi.ts#L103">serverapi.ts:103</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="subscriptionmanager"><span>subscriptionmanager</span><a href="#subscriptionmanager" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">subscriptionmanager</span><span class="tsd-signature-symbol">:</span> <a href="SubscriptionManager.html" class="tsd-signature-type tsd-kind-interface">SubscriptionManager</a></div><div class="tsd-comment tsd-typography"><div class="tsd-tag-see"><h4 class="tsd-anchor-link" id="see">See<a href="#see" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h4><p><a href="../../Developing/Plugins/Processing_Data.html#subscribing-to-deltas">Processing data from the server</a></p>
</div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/serverapi.ts#L109">serverapi.ts:109</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="getmetadata"><span>get<wbr/>Metadata</span><a href="#getmetadata" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="getmetadata-1"><span class="tsd-kind-call-signature">getMetadata</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">path</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span> <span class="tsd-signature-symbol">|</span> <a href="Metadata.html" class="tsd-signature-type tsd-kind-interface">Metadata</a><a href="#getmetadata-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">undefined</span> <span class="tsd-signature-symbol">|</span> <a href="Metadata.html" class="tsd-signature-type tsd-kind-interface">Metadata</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/serverapi.ts#L81">serverapi.ts:81</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="getpath"><span>get<wbr/>Path</span><a href="#getpath" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="getpath-1"><span class="tsd-kind-call-signature">getPath</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">path</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span><a href="#getpath-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Returns the entry for the provided path starting from the <code>root</code> of the full data model.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span></h4><div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example-3">Example<a href="#example-3" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="javascript"><span class="hl-5">let</span><span class="hl-1"> baseStations </span><span class="hl-5">=</span><span class="hl-1"> app.</span><span class="hl-8">getPath</span><span class="hl-1">(</span><span class="hl-2">'shore.basestations'</span><span class="hl-1">);</span><br/><br/><span class="hl-4">// baseStations:</span><br/><span class="hl-1">{</span><br/><span class="hl-1"> </span><span class="hl-2">'urn:mrn:imo:mmsi:2766140'</span><span class="hl-1">: {</span><br/><span class="hl-1"> url: </span><span class="hl-2">'basestations'</span><span class="hl-1">,</span><br/><span class="hl-1"> navigation: { position: {latitude: </span><span class="hl-3">45.2</span><span class="hl-1">, longitude: </span><span class="hl-3">76.4</span><span class="hl-1">} },</span><br/><span class="hl-1"> mmsi: </span><span class="hl-2">'2766140'</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-2">'urn:mrn:imo:mmsi:2766160'</span><span class="hl-1">: {</span><br/><span class="hl-1"> url: </span><span class="hl-2">'basestations'</span><span class="hl-1">,</span><br/><span class="hl-1"> navigation: { position: {latitude: </span><span class="hl-3">46.9</span><span class="hl-1">, longitude: </span><span class="hl-3">72.22</span><span class="hl-1">} },</span><br/><span class="hl-1"> mmsi: </span><span class="hl-2">'2766160'</span><br/><span class="hl-1"> }</span><br/><span class="hl-1">}</span>
</code><button type="button">Copy</button></pre>
</div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/serverapi.ts#L76">serverapi.ts:76</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="getselfpath"><span>get<wbr/>Self<wbr/>Path</span><a href="#getselfpath" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="getselfpath-1"><span class="tsd-kind-call-signature">getSelfPath</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">path</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span><a href="#getselfpath-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Returns the entry for the provided path starting from <code>vessels.self</code> in the full data model.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span></h4><div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example-4">Example<a href="#example-4" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="ts"><span class="hl-5">let</span><span class="hl-1"> uuid </span><span class="hl-5">=</span><span class="hl-1"> app.</span><span class="hl-8">getSelfPath</span><span class="hl-1">(</span><span class="hl-2">'uuid'</span><span class="hl-1">);</span><br/><span class="hl-4">// Note: This is synonymous with app.getPath('vessels.self.uuid')</span><br/><br/><span class="hl-1">app.</span><span class="hl-8">debug</span><span class="hl-1">(uuid);</span><br/><span class="hl-4">// urn:mrn:signalk:uuid:a9d2c3b1-611b-4b00-8628-0b89d014ed60</span>
</code><button type="button">Copy</button></pre>
</div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/serverapi.ts#L49">serverapi.ts:49</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="handlemessage"><span>handle<wbr/>Message</span><a href="#handlemessage" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="handlemessage-1"><span class="tsd-kind-call-signature">handleMessage</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">id</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <span class="tsd-kind-parameter">msg</span><span class="tsd-signature-symbol">:</span> <a href="https://www.typescriptlang.org/docs/handbook/utility-types.html#partialtype" class="tsd-signature-type external" target="_blank">Partial</a><span class="tsd-signature-symbol"><</span><a href="Delta.html" class="tsd-signature-type tsd-kind-interface">Delta</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">,</span> <span class="tsd-kind-parameter">skVersion</span><span class="tsd-signature-symbol">?:</span> <a href="SKVersion.html" class="tsd-signature-type tsd-kind-enum">SKVersion</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#handlemessage-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Emit a delta message.</p>
<p><em>Note: These deltas are handled by the server in the same way as any other incoming deltas.</em></p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">id</span>: <span class="tsd-signature-type">string</span></span></li><li><span><span class="tsd-kind-parameter">msg</span>: <a href="https://www.typescriptlang.org/docs/handbook/utility-types.html#partialtype" class="tsd-signature-type external" target="_blank">Partial</a><span class="tsd-signature-symbol"><</span><a href="Delta.html" class="tsd-signature-type tsd-kind-interface">Delta</a><span class="tsd-signature-symbol">></span></span></li><li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">skVersion</span>: <a href="SKVersion.html" class="tsd-signature-type tsd-kind-enum">SKVersion</a></span><div class="tsd-comment tsd-typography"><p>Optional parameter to specify the Signal K version of the delta.</p>
</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example-5">Example<a href="#example-5" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="javascript"><span class="hl-1">app.</span><span class="hl-8">handleMessage</span><span class="hl-1">(</span><span class="hl-2">'my-signalk-plugin'</span><span class="hl-1">, {</span><br/><span class="hl-1"> updates: [</span><br/><span class="hl-1"> {</span><br/><span class="hl-1"> values: [</span><br/><span class="hl-1"> {</span><br/><span class="hl-1"> path: </span><span class="hl-2">'navigation.courseOverGroundTrue'</span><span class="hl-1">,</span><br/><span class="hl-1"> value: </span><span class="hl-3">1.0476934</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> ]</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> ]</span><br/><span class="hl-1">});</span>
</code><button type="button">Copy</button></pre>
<p>Plugins emitting deltas that use Signal K v2 paths (like the <a href="http://localhost:3000/admin/openapi/?urls.primaryName=course">Course API</a> paths) should call <code>handleMessage</code> with the optional <code>skVersion</code> parameter set to <code>v2</code>. This prevents v2 API data getting mixed in v1 paths' data in full data model & the v1 http API.</p>
<p>Omitting the <code>skVersion</code> parameter will cause the delta to be sent as <code>v1</code>.</p>
</div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/serverapi.ts#L227">serverapi.ts:227</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="putpath"><span>put<wbr/>Path</span><a href="#putpath" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="putpath-1"><span class="tsd-kind-call-signature">putPath</span><span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">aPath</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">value</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">number</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">boolean</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">updateCb</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">err</span><span class="tsd-signature-symbol">?:</span> <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Error" class="tsd-signature-type external" target="_blank">Error</a><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">source</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise" class="tsd-signature-type external" target="_blank">Promise</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">></span><a href="#putpath-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">aPath</span>: <span class="tsd-signature-type">string</span></span></li><li><span><span class="tsd-kind-parameter">value</span>: <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">number</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">boolean</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">object</span></span></li><li><span><span class="tsd-kind-parameter">updateCb</span>: <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">err</span><span class="tsd-signature-symbol">?:</span> <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Error" class="tsd-signature-type external" target="_blank">Error</a><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span></span></li><li><span><span class="tsd-kind-parameter">source</span>: <span class="tsd-signature-type">string</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise" class="tsd-signature-type external" target="_blank">Promise</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/serverapi.ts#L92">serverapi.ts:92</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="putselfpath"><span>put<wbr/>Self<wbr/>Path</span><a href="#putselfpath" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="putselfpath-1"><span class="tsd-kind-call-signature">putSelfPath</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">aPath</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <span class="tsd-kind-parameter">value</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">,</span> <span class="tsd-kind-parameter">updateCb</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">()</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise" class="tsd-signature-type external" target="_blank">Promise</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">></span><a href="#putselfpath-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">aPath</span>: <span class="tsd-signature-type">string</span></span></li><li><span><span class="tsd-kind-parameter">value</span>: <span class="tsd-signature-type">any</span></span></li><li><span><span class="tsd-kind-parameter">updateCb</span>: <span class="tsd-signature-symbol">()</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise" class="tsd-signature-type external" target="_blank">Promise</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/serverapi.ts#L87">serverapi.ts:87</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="registerdeltainputhandler"><span>register<wbr/>Delta<wbr/>Input<wbr/>Handler</span><a href="#registerdeltainputhandler" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="registerdeltainputhandler-1"><span class="tsd-kind-call-signature">registerDeltaInputHandler</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">handler</span><span class="tsd-signature-symbol">:</span> <a href="DeltaInputHandler.html" class="tsd-signature-type tsd-kind-type-alias">DeltaInputHandler</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#registerdeltainputhandler-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Register a function to intercept all delta messages <em>before</em> they are processed by the server.</p>
<p>The callback function should call <code>next(delta)</code> with either:</p>
<ul>
<li>A modified delta (if it wants to alter the incoming delta)</li>
<li>With the original delta to process it normally.</li>
</ul>
<div class="tsd-alert tsd-alert-important"><div class="tsd-alert-title"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><use href="../../assets/icons.svg#icon-alertImportant"></use></svg><span>Important</span></div><p>
Not calling <code>next(delta)</code> will cause the incoming delta to be dropped and will only show in delta statistics.</p>
</div>
<p>Other, non-delta messages produced by provider pipe elements are emitted normally.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">handler</span>: <a href="DeltaInputHandler.html" class="tsd-signature-type tsd-kind-type-alias">DeltaInputHandler</a></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example-6">Example<a href="#example-6" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="javascript"><span class="hl-1">app.</span><span class="hl-8">registerDeltaInputHandler</span><span class="hl-1">((</span><span class="hl-0">delta</span><span class="hl-1">, </span><span class="hl-0">next</span><span class="hl-1">) </span><span class="hl-5">=></span><span class="hl-1"> {</span><br/><span class="hl-1"> delta.updates.</span><span class="hl-8">forEach</span><span class="hl-1">(</span><span class="hl-0">update</span><span class="hl-1"> </span><span class="hl-5">=></span><span class="hl-1"> {</span><br/><span class="hl-1"> update.values.</span><span class="hl-8">forEach</span><span class="hl-1">(</span><span class="hl-0">pathValue</span><span class="hl-1"> </span><span class="hl-5">=></span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-5">if</span><span class="hl-1">(pathValue.</span><span class="hl-8">startsWith</span><span class="hl-1">(</span><span class="hl-2">"foo"</span><span class="hl-1">)) {</span><br/><span class="hl-1"> pathValue.path </span><span class="hl-5">=</span><span class="hl-1"> </span><span class="hl-2">"bar"</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> })</span><br/><span class="hl-1"> })</span><br/><span class="hl-1"> </span><span class="hl-8">next</span><span class="hl-1">(delta)</span><br/><span class="hl-1">});</span>
</code><button type="button">Copy</button></pre>
</div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/serverapi.ts#L163">serverapi.ts:163</a></li></ul></aside></div></li></ul></section></section></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Other"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-chevronDown"></use></svg><h2>Other</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="selfcontext"><span>self<wbr/>Context</span><a href="#selfcontext" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">selfContext</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><p>Inherited from <a href="SelfIdentity.html">SelfIdentity</a>.<a href="SelfIdentity.html#selfcontext">selfContext</a></p><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/serverapi.ts#L440">serverapi.ts:440</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="selfid"><span>self<wbr/>Id</span><a href="#selfid" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">selfId</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><p>Inherited from <a href="SelfIdentity.html">SelfIdentity</a>.<a href="SelfIdentity.html#selfid">selfId</a></p><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/serverapi.ts#L439">serverapi.ts:439</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="selftype"><span>self<wbr/>Type</span><a href="#selftype" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">selfType</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><p>Inherited from <a href="SelfIdentity.html">SelfIdentity</a>.<a href="SelfIdentity.html#selftype">selfType</a></p><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/serverapi.ts#L438">serverapi.ts:438</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="getfeatures"><span>get<wbr/>Features</span><a href="#getfeatures" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="getfeatures-1"><span class="tsd-kind-call-signature">getFeatures</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">onlyEnabled</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="FeatureInfo.html" class="tsd-signature-type tsd-kind-interface">FeatureInfo</a><a href="#getfeatures-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Returns the available APIs and Plugins.</p>
<p><em>Example:</em></p>
<pre><code class="javascript"><span class="hl-5">let</span><span class="hl-1"> features </span><span class="hl-5">=</span><span class="hl-1"> app.</span><span class="hl-8">getFeatures</span><span class="hl-1">();</span><br/><br/><span class="hl-1">{</span><br/><span class="hl-1"> </span><span class="hl-2">"apis"</span><span class="hl-1">: [</span><br/><span class="hl-1"> </span><span class="hl-2">"resources"</span><span class="hl-1">,</span><span class="hl-2">"course"</span><br/><span class="hl-1"> ],</span><br/><span class="hl-1"> </span><span class="hl-2">"plugins"</span><span class="hl-1">: [</span><br/><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-2">"id"</span><span class="hl-1">: </span><span class="hl-2">"anchoralarm"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">"name"</span><span class="hl-1">: </span><span class="hl-2">"Anchor Alarm"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">"version"</span><span class="hl-1">: </span><span class="hl-2">"1.13.0"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">"enabled"</span><span class="hl-1">: </span><span class="hl-3">true</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-2">"id"</span><span class="hl-1">: </span><span class="hl-2">"autopilot"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">"name"</span><span class="hl-1">: </span><span class="hl-2">"Autopilot Control"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">"version"</span><span class="hl-1">: </span><span class="hl-2">"1.4.0"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">"enabled"</span><span class="hl-1">: </span><span class="hl-3">false</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-2">"id"</span><span class="hl-1">: </span><span class="hl-2">"sk-to-nmea2000"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">"name"</span><span class="hl-1">: </span><span class="hl-2">"Signal K to NMEA 2000"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">"version"</span><span class="hl-1">: </span><span class="hl-2">"2.17.0"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">"enabled"</span><span class="hl-1">: </span><span class="hl-3">false</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-2">"id"</span><span class="hl-1">: </span><span class="hl-2">"udp-nmea-sender"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">"name"</span><span class="hl-1">: </span><span class="hl-2">"UDP NMEA0183 Sender"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">"version"</span><span class="hl-1">: </span><span class="hl-2">"2.0.0"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">"enabled"</span><span class="hl-1">: </span><span class="hl-3">false</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> ]</span><br/><span class="hl-1">}</span>
</code><button type="button">Copy</button></pre>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">onlyEnabled</span>: <span class="tsd-signature-type">boolean</span></span><div class="tsd-comment tsd-typography"><p><code>undefined</code> (not provided): list all features</p>
<ul>
<li><code>true</code>: list only enabled features</li>
<li><code>false</code>: list only disabled features</li>
</ul>
</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="FeatureInfo.html" class="tsd-signature-type tsd-kind-interface">FeatureInfo</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><p>Inherited from Features.getFeatures</p><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/features.ts#L50">features.ts:50</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="queryrequest"><span>query<wbr/>Request</span><a href="#queryrequest" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="queryrequest-1"><span class="tsd-kind-call-signature">queryRequest</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">requestId</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise" class="tsd-signature-type external" target="_blank">Promise</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">></span><a href="#queryrequest-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">requestId</span>: <span class="tsd-signature-type">string</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise" class="tsd-signature-type external" target="_blank">Promise</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/serverapi.ts#L113">serverapi.ts:113</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="registeractionhandler"><span>register<wbr/>Action<wbr/>Handler</span><a href="#registeractionhandler" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="registeractionhandler-1"><span class="tsd-kind-call-signature">registerActionHandler</span><span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">context</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">path</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">callback</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">()</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">source</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#registeractionhandler-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">context</span>: <span class="tsd-signature-type">string</span></span></li><li><span><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></span></li><li><span><span class="tsd-kind-parameter">callback</span>: <span class="tsd-signature-symbol">()</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span></span></li><li><span><span class="tsd-kind-parameter">source</span>: <span class="tsd-signature-type">string</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/serverapi.ts#L366">serverapi.ts:366</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="registerhistoryprovider"><span>register<wbr/>History<wbr/>Provider</span><a href="#registerhistoryprovider" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="registerhistoryprovider-1"><span class="tsd-kind-call-signature">registerHistoryProvider</span><span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">provider</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span><br/> <span class="tsd-kind-property">getHistory</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">date</span><span class="tsd-signature-symbol">:</span> <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Date" class="tsd-signature-type external" target="_blank">Date</a><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">path</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">cb</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">deltas</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">hasAnydata</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">,</span> <span class="tsd-kind-parameter">cb</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">hasResults</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">streamHistory</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">spark</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">onDelta</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">delta</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#registerhistoryprovider-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">provider</span>: <span class="tsd-signature-symbol">{</span><br/> <span class="tsd-kind-property">getHistory</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">date</span><span class="tsd-signature-symbol">:</span> <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Date" class="tsd-signature-type external" target="_blank">Date</a><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">path</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">cb</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">deltas</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">hasAnydata</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">,</span> <span class="tsd-kind-parameter">cb</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">hasResults</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">streamHistory</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">spark</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">onDelta</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">delta</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/serverapi.ts#L373">serverapi.ts:373</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="registerputhandler"><span>register<wbr/>Put<wbr/>Handler</span><a href="#registerputhandler" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="registerputhandler-1"><span class="tsd-kind-call-signature">registerPutHandler</span><span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">context</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">path</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">callback</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">()</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">source</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#registerputhandler-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Register a handler to action <a href="http://signalk.org/specification/1.3.0/doc/put.html"><code>PUT</code></a> requests for a specific path.</p>
<p>The action handler can handle the request synchronously or asynchronously.</p>
<p>The <code>callback</code> parameter should be a function which accepts the following arguments:</p>
<ul>
<li><code>context</code></li>
<li><code>path</code></li>
<li><code>value</code></li>
<li><code>callback</code></li>
</ul>
<p>For synchronous actions, the handler must return a value describing the response of the request:</p>
<pre><code class="javascript"><span class="hl-1">{</span><br/><span class="hl-1"> </span><span class="hl-0">state</span><span class="hl-1">: </span><span class="hl-2">'COMPLETED'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-0">statusCode</span><span class="hl-1">: </span><span class="hl-3">200</span><br/><span class="hl-1">}</span>
</code><button type="button">Copy</button></pre>
<p>or</p>
<pre><code class="javascript"><span class="hl-1">{</span><br/><span class="hl-1"> </span><span class="hl-0">state</span><span class="hl-1">:</span><span class="hl-2">'COMPLETED'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-0">statusCode</span><span class="hl-1">: </span><span class="hl-3">400</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-0">message</span><span class="hl-1">:</span><span class="hl-2">'Some Error Message'</span><br/><span class="hl-1">}</span>
</code><button type="button">Copy</button></pre>
<p>The <code>statusCode</code> value can be any valid HTTP response code.</p>
<p>For asynchronous actions, that may take considerable time to complete and the requester should not be kept waiting for the result, the handler must return:</p>
<pre><code class="javascript"><span class="hl-1">{ </span><span class="hl-0">state</span><span class="hl-1">: </span><span class="hl-2">'PENDING'</span><span class="hl-1"> }</span>
</code><button type="button">Copy</button></pre>
<p>When the action has completed the handler should call the <code>callback</code> function with the result:</p>
<pre><code class="javascript"><span class="hl-8">callback</span><span class="hl-1">({ state: </span><span class="hl-2">'COMPLETED'</span><span class="hl-1">, statusCode: </span><span class="hl-3">200</span><span class="hl-1"> })</span>
</code><button type="button">Copy</button></pre>
<p>or</p>
<pre><code class="javascript"><span class="hl-8">callback</span><span class="hl-1">({</span><br/><span class="hl-1"> state:</span><span class="hl-2">'COMPLETED'</span><span class="hl-1">,</span><br/><span class="hl-1"> statusCode: </span><span class="hl-3">400</span><span class="hl-1">,</span><br/><span class="hl-1"> message:</span><span class="hl-2">'Some Error Message'</span><br/><span class="hl-1">})</span>
</code><button type="button">Copy</button></pre>
<p><em>Example: Synchronous response:</em></p>
<pre><code class="javascript"><span class="hl-5">function</span><span class="hl-1"> </span><span class="hl-8">myActionHandler</span><span class="hl-1">(</span><span class="hl-0">context</span><span class="hl-1">, </span><span class="hl-0">path</span><span class="hl-1">, </span><span class="hl-0">value</span><span class="hl-1">, </span><span class="hl-0">callback</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-5">if</span><span class="hl-1">(</span><span class="hl-8">doSomething</span><span class="hl-1">(context, path, value)){</span><br/><span class="hl-1"> </span><span class="hl-5">return</span><span class="hl-1"> { state: </span><span class="hl-2">'COMPLETED'</span><span class="hl-1">, statusCode: </span><span class="hl-3">200</span><span class="hl-1"> };</span><br/><span class="hl-1"> } </span><span class="hl-5">else</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-5">return</span><span class="hl-1"> { state: </span><span class="hl-2">'COMPLETED'</span><span class="hl-1">, statusCode: </span><span class="hl-3">400</span><span class="hl-1"> };</span><br/><span class="hl-1"> }</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-1">plugin.</span><span class="hl-8">start</span><span class="hl-1"> </span><span class="hl-5">=</span><span class="hl-1"> (</span><span class="hl-0">options</span><span class="hl-1">) </span><span class="hl-5">=></span><span class="hl-1"> {</span><br/><span class="hl-1"> app.</span><span class="hl-8">registerPutHandler</span><span class="hl-1">(</span><span class="hl-2">'vessels.self'</span><span class="hl-1">, </span><span class="hl-2">'some.path'</span><span class="hl-1">, myActionHandler, </span><span class="hl-2">'somesource.1'</span><span class="hl-1">);</span><br/><span class="hl-1">}</span>
</code><button type="button">Copy</button></pre>
<p><em>Example: Asynchronous response:</em></p>
<pre><code class="javascript"><span class="hl-5">function</span><span class="hl-1"> </span><span class="hl-8">myActionHandler</span><span class="hl-1">(</span><span class="hl-0">context</span><span class="hl-1">, </span><span class="hl-0">path</span><span class="hl-1">, </span><span class="hl-0">value</span><span class="hl-1">, </span><span class="hl-0">callback</span><span class="hl-1">) {</span><br/><br/><span class="hl-1"> </span><span class="hl-8">doSomethingAsync</span><span class="hl-1">(context, path, value, (</span><span class="hl-0">result</span><span class="hl-1">) </span><span class="hl-5">=></span><span class="hl-1">{</span><br/><span class="hl-1"> </span><span class="hl-5">if</span><span class="hl-1">(result) {</span><br/><span class="hl-1"> </span><span class="hl-8">callback</span><span class="hl-1">({ state: </span><span class="hl-2">'COMPLETED'</span><span class="hl-1">, result: </span><span class="hl-3">200</span><span class="hl-1"> })</span><br/><span class="hl-1"> } </span><span class="hl-5">else</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">callback</span><span class="hl-1">({ state: </span><span class="hl-2">'COMPLETED'</span><span class="hl-1">, result: </span><span class="hl-3">400</span><span class="hl-1"> })</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> });</span><br/><br/><span class="hl-1"> </span><span class="hl-5">return</span><span class="hl-1"> { state: </span><span class="hl-2">'PENDING'</span><span class="hl-1"> };</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-1">plugin.</span><span class="hl-8">start</span><span class="hl-1"> </span><span class="hl-5">=</span><span class="hl-1"> (</span><span class="hl-0">options</span><span class="hl-1">) </span><span class="hl-5">=></span><span class="hl-1"> {</span><br/><span class="hl-1"> app.</span><span class="hl-8">registerPutHandler</span><span class="hl-1">(</span><span class="hl-2">'vessels.self'</span><span class="hl-1">, </span><span class="hl-2">'some.path'</span><span class="hl-1">, myActionHandler);</span><br/><span class="hl-1">}</span>
</code><button type="button">Copy</button></pre>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">context</span>: <span class="tsd-signature-type">string</span></span></li><li><span><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></span></li><li><span><span class="tsd-kind-parameter">callback</span>: <span class="tsd-signature-symbol">()</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span></span></li><li><span><span class="tsd-kind-parameter">source</span>: <span class="tsd-signature-type">string</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/serverapi.ts#L359">serverapi.ts:359</a></li></ul></aside></div></li></ul></section></section></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Property Values"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-chevronDown"></use></svg><h2>Property Values</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="emitpropertyvalue"><span>emit<wbr/>Property<wbr/>Value</span><a href="#emitpropertyvalue" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="emitpropertyvalue-1"><span class="tsd-kind-call-signature">emitPropertyValue</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">name</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <span class="tsd-kind-parameter">value</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#emitpropertyvalue-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">name</span>: <span class="tsd-signature-type">string</span></span></li><li><span><span class="tsd-kind-parameter">value</span>: <span class="tsd-signature-type">any</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><p>Inherited from <a href="PropertyValuesEmitter.html">PropertyValuesEmitter</a>.<a href="PropertyValuesEmitter.html#emitpropertyvalue">emitPropertyValue</a></p><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/propertyvalues.ts#L42">propertyvalues.ts:42</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="onpropertyvalues"><span>on<wbr/>Property<wbr/>Values</span><a href="#onpropertyvalues" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="onpropertyvalues-1"><span class="tsd-kind-call-signature">onPropertyValues</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">name</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <span class="tsd-kind-parameter">cb</span><span class="tsd-signature-symbol">:</span> <a href="PropertyValuesCallback.html" class="tsd-signature-type tsd-kind-type-alias">PropertyValuesCallback</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">()</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><a href="#onpropertyvalues-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">name</span>: <span class="tsd-signature-type">string</span></span></li><li><span><span class="tsd-kind-parameter">cb</span>: <a href="PropertyValuesCallback.html" class="tsd-signature-type tsd-kind-type-alias">PropertyValuesCallback</a></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">()</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><p>Inherited from <a href="PropertyValuesEmitter.html">PropertyValuesEmitter</a>.<a href="PropertyValuesEmitter.html#onpropertyvalues">onPropertyValues</a></p><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/propertyvalues.ts#L47">propertyvalues.ts:47</a></li></ul></aside></div></li></ul></section></section></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Resources API"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-chevronDown"></use></svg><h2>Resources API</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="resourcesapi"><span>resources<wbr/>Api</span><a href="#resourcesapi" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">resourcesApi</span><span class="tsd-signature-symbol">:</span> <a href="ResourcesApi.html" class="tsd-signature-type tsd-kind-interface">ResourcesApi</a></div><div class="tsd-comment tsd-typography"><p>Access the Resources API to list, get, set, and delete resources.</p>
</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><p>Inherited from <a href="ResourceProviderRegistry.html">ResourceProviderRegistry</a>.<a href="ResourceProviderRegistry.html#resourcesapi">resourcesApi</a></p><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/resourcesapi.ts#L399">resourcesapi.ts:399</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="registerresourceprovider"><span>register<wbr/>Resource<wbr/>Provider</span><a href="#registerresourceprovider" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="registerresourceprovider-1"><span class="tsd-kind-call-signature">registerResourceProvider</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">provider</span><span class="tsd-signature-symbol">:</span> <a href="ResourceProvider.html" class="tsd-signature-type tsd-kind-interface">ResourceProvider</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#registerresourceprovider-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Used by <em>Resource Provider plugins</em> to register each resource type it handles.
See <a href="../../Developing/Plugins/Resource_Providers.html#registering-as-a-resource-provider"><code>Resource Provider Plugins</code></a> for details.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">provider</span>: <a href="ResourceProvider.html" class="tsd-signature-type tsd-kind-interface">ResourceProvider</a></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><p>Inherited from <a href="ResourceProviderRegistry.html">ResourceProviderRegistry</a>.<a href="ResourceProviderRegistry.html#registerresourceprovider">registerResourceProvider</a></p><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/resourcesapi.ts#L392">resourcesapi.ts:392</a></li></ul></aside></div></li></ul></section></section></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Serial Ports"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-chevronDown"></use></svg><h2>Serial Ports</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="getserialports"><span>get<wbr/>Serial<wbr/>Ports</span><a href="#getserialports" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="getserialports-1"><span class="tsd-kind-call-signature">getSerialPorts</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise" class="tsd-signature-type external" target="_blank">Promise</a><span class="tsd-signature-symbol"><</span><a href="Ports.html" class="tsd-signature-type tsd-kind-interface">Ports</a><span class="tsd-signature-symbol">></span><a href="#getserialports-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Returns Ports object which contains information about the serial ports available on the machine.</p>
</div><h4 class="tsd-returns-title">Returns <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise" class="tsd-signature-type external" target="_blank">Promise</a><span class="tsd-signature-symbol"><</span><a href="Ports.html" class="tsd-signature-type tsd-kind-interface">Ports</a><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/serverapi.ts#L394">serverapi.ts:394</a></li></ul></aside></div></li></ul></section></section></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Status and Debugging"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-chevronDown"></use></svg><h2>Status and Debugging</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="debug"><span>debug</span><a href="#debug" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="debug-1"><span class="tsd-kind-call-signature">debug</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">msg</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#debug-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Log debug messages.</p>
<p>This function exposes the <code>debug</code> method from the <a href="https://www.npmjs.com/package/debug">debug module</a>.
The npm module name is used as the debug name.</p>
<p><code>app.debug()</code> can take any type and will serialize it before outputting.</p>
<div class="tsd-alert tsd-alert-note"><div class="tsd-alert-title"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><use href="../../assets/icons.svg#icon-alertNote"></use></svg><span>Note</span></div><p>
Do not use <code>debug</code> from the debug module directly! Using <code>app.debug()</code> provided by the server ensures that the plugin taps into the server's debug logging system, including the helper switches in Admin UI's Server Log page.</p>
</div>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">msg</span>: <span class="tsd-signature-type">string</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/serverapi.ts#L133">serverapi.ts:133</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="error"><span>error</span><a href="#error" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="error-1"><span class="tsd-kind-call-signature">error</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">msg</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#error-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">msg</span>: <span class="tsd-signature-type">string</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/serverapi.ts#L118">serverapi.ts:118</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="reportoutputmessages"><span>report<wbr/>Output<wbr/>Messages</span><a href="#reportoutputmessages" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="reportoutputmessages-1"><span class="tsd-kind-call-signature">reportOutputMessages</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">count</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#reportoutputmessages-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Report to the server that the plugin has sent data to other hosts, which will update the output message rate and
icon in the Dashboard.</p>
<p><em>Note: This function is for use when the plugin is sending data to hosts other than the Signal K server (e.g.
network packets, http requests or messages sent to a broker).</em></p>
<p><em><strong>This function should NOT be used for deltas that the plugin sends with <code>handleMessage()</code>!</strong></em></p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">count</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>number of handled messages between the last
call and this one. If omitted the call will count as one output
message.</p>
</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example-7">Example<a href="#example-7" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="javascript"><span class="hl-1">app.</span><span class="hl-8">reportOutputMessages</span><span class="hl-1">(</span><span class="hl-3">54</span><span class="hl-1">);</span>
</code><button type="button">Copy</button></pre>
</div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/serverapi.ts#L416">serverapi.ts:416</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="setpluginerror"><span>set<wbr/>Plugin<wbr/>Error</span><a href="#setpluginerror" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="setpluginerror-1"><span class="tsd-kind-call-signature">setPluginError</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">msg</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#setpluginerror-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Set the current error status of the plugin that is displayed in the plugin configuration UI and the Dashboard.</p>
<p>The <code>msg</code> parameter should be a short text message describing the current status of the plugin.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">msg</span>: <span class="tsd-signature-type">string</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example-8">Example<a href="#example-8" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="javascript"><span class="hl-1">app.</span><span class="hl-8">setPluginError</span><span class="hl-1">(</span><span class="hl-2">'Error connecting to database'</span><span class="hl-1">);</span>
</code><button type="button">Copy</button></pre>
<p><em>Note: Replaces deprecated <code>setProviderError()</code></em></p>
</div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/serverapi.ts#L197">serverapi.ts:197</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="setpluginstatus"><span>set<wbr/>Plugin<wbr/>Status</span><a href="#setpluginstatus" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="setpluginstatus-1"><span class="tsd-kind-call-signature">setPluginStatus</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">msg</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#setpluginstatus-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Set the current status of the plugin that is displayed in the plugin configuration UI and the Dashboard.</p>
<p>The <code>msg</code> parameter should be a short text message describing the current status of the plugin.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">msg</span>: <span class="tsd-signature-type">string</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example-9">Example<a href="#example-9" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="javascript"><span class="hl-1">app.</span><span class="hl-8">setPluginStatus</span><span class="hl-1">(</span><span class="hl-2">'Initializing'</span><span class="hl-1">);</span><br/><span class="hl-4">// Do something</span><br/><span class="hl-1">app.</span><span class="hl-8">setPluginStatus</span><span class="hl-1">(</span><span class="hl-2">'Done initializing'</span><span class="hl-1">);</span>
</code><button type="button">Copy</button></pre>
<p><em>Note: Replaces deprecated <code>setProviderStatus()</code></em></p>
</div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/41bd3684f484c0e782078bc972d68c16ee0c81c2/packages/server-api/src/serverapi.ts#L181">serverapi.ts:181</a></li></ul></aside></div></li></ul></section></section></details></div><div class="col-sidebar"><div class="page-menu"><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Autopilot API"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-chevronDown"></use></svg>Autopilot API</summary><div><a href="#autopilotupdate"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>autopilot<wbr/>Update</span></a><a href="#registerautopilotprovider"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>register<wbr/>Autopilot<wbr/>Provider</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Configuration"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-chevronDown"></use></svg>Configuration</summary><div><a href="#getdatadirpath"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Data<wbr/>Dir<wbr/>Path</span></a><a href="#readpluginoptions"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>read<wbr/>Plugin<wbr/>Options</span></a><a href="#savepluginoptions"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>save<wbr/>Plugin<wbr/>Options</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Course API"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-chevronDown"></use></svg>Course API</summary><div><a href="#activateroute"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>activate<wbr/>Route</span></a><a href="#cleardestination"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>clear<wbr/>Destination</span></a><a href="#getcourse"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Course</span></a><a href="#setdestination"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>set<wbr/>Destination</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Data Model"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-chevronDown"></use></svg>Data Model</summary><div><a href="#streambundle"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../../assets/icons.svg#icon-1024"></use></svg><span>streambundle</span></a><a href="#subscriptionmanager"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../../assets/icons.svg#icon-1024"></use></svg><span>subscriptionmanager</span></a><a href="#getmetadata"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Metadata</span></a><a href="#getpath"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Path</span></a><a href="#getselfpath"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Self<wbr/>Path</span></a><a href="#handlemessage"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>handle<wbr/>Message</span></a><a href="#putpath"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>put<wbr/>Path</span></a><a href="#putselfpath"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>put<wbr/>Self<wbr/>Path</span></a><a href="#registerdeltainputhandler"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>register<wbr/>Delta<wbr/>Input<wbr/>Handler</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Other"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-chevronDown"></use></svg>Other</summary><div><a href="#selfcontext"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../../assets/icons.svg#icon-1024"></use></svg><span>self<wbr/>Context</span></a><a href="#selfid"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../../assets/icons.svg#icon-1024"></use></svg><span>self<wbr/>Id</span></a><a href="#selftype"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../../assets/icons.svg#icon-1024"></use></svg><span>self<wbr/>Type</span></a><a href="#getfeatures"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Features</span></a><a href="#queryrequest"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>query<wbr/>Request</span></a><a href="#registeractionhandler"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>register<wbr/>Action<wbr/>Handler</span></a><a href="#registerhistoryprovider"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>register<wbr/>History<wbr/>Provider</span></a><a href="#registerputhandler"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>register<wbr/>Put<wbr/>Handler</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Property Values"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-chevronDown"></use></svg>Property Values</summary><div><a href="#emitpropertyvalue"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>emit<wbr/>Property<wbr/>Value</span></a><a href="#onpropertyvalues"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>on<wbr/>Property<wbr/>Values</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Resources API"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-chevronDown"></use></svg>Resources API</summary><div><a href="#resourcesapi"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../../assets/icons.svg#icon-1024"></use></svg><span>resources<wbr/>Api</span></a><a href="#registerresourceprovider"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>register<wbr/>Resource<wbr/>Provider</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Serial Ports"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-chevronDown"></use></svg>Serial Ports</summary><div><a href="#getserialports"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Serial<wbr/>Ports</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Status and Debugging"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-chevronDown"></use></svg>Status and Debugging</summary><div><a href="#debug"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>debug</span></a><a href="#error"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>error</span></a><a href="#reportoutputmessages"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>report<wbr/>Output<wbr/>Messages</span></a><a href="#setpluginerror"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>set<wbr/>Plugin<wbr/>Error</span></a><a href="#setpluginstatus"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../../assets/icons.svg#icon-2048"></use></svg><span>set<wbr/>Plugin<wbr/>Status</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../../modules.html">Signal K</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>