@rhizomatics/signalk-boat-tech-directory-plugin 1.2.3 → 1.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/public/404.html +5 -4
- package/public/_astro/common.DWLYySiw.css +3 -0
- package/public/charts/index.html +12 -8
- package/public/contributing/index.html +7 -7
- package/public/education/index.html +7 -7
- package/public/favicon.svg +10 -0
- package/public/images/icons/pypi.ico +0 -0
- package/public/index-of-terms/index.html +26 -10
- package/public/index.html +9 -9
- package/public/llms-full.txt +51 -11
- package/public/llms-small.txt +13 -7
- package/public/llms.txt +12 -8
- package/public/news/index.html +7 -7
- package/public/open-source-projects/index.html +14 -10
- package/public/pagefind/fragment/en_2875c6c.pf_fragment +0 -0
- package/public/pagefind/fragment/en_2c2287e.pf_fragment +0 -0
- package/public/pagefind/fragment/en_4363a6c.pf_fragment +0 -0
- package/public/pagefind/fragment/en_4639db7.pf_fragment +0 -0
- package/public/pagefind/fragment/en_5ab54c2.pf_fragment +0 -0
- package/public/pagefind/fragment/en_98947e1.pf_fragment +0 -0
- package/public/pagefind/fragment/en_ff67eba.pf_fragment +0 -0
- package/public/pagefind/index/en_bd6823f.pf_index +0 -0
- package/public/pagefind/pagefind-entry.json +1 -1
- package/public/pagefind/pagefind.en_a246882be9.pf_meta +0 -0
- package/public/protocols/index.html +16 -8
- package/public/reference/index.html +7 -7
- package/public/social/index.html +12 -9
- package/public/vendors/index.html +10 -7
- package/public/_astro/common.BVvL3Ez1.css +0 -3
- package/public/pagefind/fragment/en_234f624.pf_fragment +0 -0
- package/public/pagefind/fragment/en_3b4a294.pf_fragment +0 -0
- package/public/pagefind/fragment/en_4bae6d4.pf_fragment +0 -0
- package/public/pagefind/fragment/en_4c89e32.pf_fragment +0 -0
- package/public/pagefind/fragment/en_89b1310.pf_fragment +0 -0
- package/public/pagefind/fragment/en_c5d7cb8.pf_fragment +0 -0
- package/public/pagefind/fragment/en_df5e3a4.pf_fragment +0 -0
- package/public/pagefind/index/en_c62e1ae.pf_index +0 -0
- package/public/pagefind/pagefind.en_4d1aeefb59.pf_meta +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" dir="ltr" data-theme="dark" data-has-sidebar class="astro-
|
|
1
|
+
<!DOCTYPE html><html lang="en" dir="ltr" data-theme="dark" data-has-sidebar class="astro-g5ptsecz"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>Open Source Projects | Boat Tech Directory</title><link rel="canonical" href="https://boat-tech-directory.rhizomatics.org.uk/@rhizomatics/signalk-boat-tech-directory-plugin/open-source-projects/"/><link rel="sitemap" href="/@rhizomatics/signalk-boat-tech-directory-plugin/sitemap-index.xml"/><link rel="shortcut icon" href="/@rhizomatics/signalk-boat-tech-directory-plugin/favicon.svg" type="image/svg+xml"/><meta name="generator" content="Astro v7.3.2"/><meta name="generator" content="Starlight v0.42.1"/><meta property="og:title" content="Open Source Projects"/><meta property="og:type" content="article"/><meta property="og:url" content="https://boat-tech-directory.rhizomatics.org.uk/@rhizomatics/signalk-boat-tech-directory-plugin/open-source-projects/"/><meta property="og:locale" content="en"/><meta property="og:description" content="Software and firmware, including NMEA libraries."/><meta property="og:site_name" content="Boat Tech Directory"/><meta name="description" content="Software and firmware, including NMEA libraries."/><meta property="og:image" content="https://boat-tech-directory.rhizomatics.org.uk/images/social-preview.jpg"/><meta property="og:image:width" content="1536"/><meta property="og:image:height" content="1024"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:image" content="https://boat-tech-directory.rhizomatics.org.uk/images/social-preview.jpg"/><script>
|
|
2
2
|
window.StarlightThemeProvider = (() => {
|
|
3
3
|
const storedTheme =
|
|
4
4
|
typeof localStorage !== 'undefined' && localStorage.getItem('starlight-theme');
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
},
|
|
25
25
|
};
|
|
26
26
|
})();
|
|
27
|
-
</script><template id="theme-icons"><svg aria-hidden="true" class="light astro-
|
|
27
|
+
</script><template id="theme-icons"><svg aria-hidden="true" class="light astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M5 12a1 1 0 0 0-1-1H3a1 1 0 0 0 0 2h1a1 1 0 0 0 1-1Zm.64 5-.71.71a1 1 0 0 0 0 1.41 1 1 0 0 0 1.41 0l.71-.71A1 1 0 0 0 5.64 17ZM12 5a1 1 0 0 0 1-1V3a1 1 0 0 0-2 0v1a1 1 0 0 0 1 1Zm5.66 2.34a1 1 0 0 0 .7-.29l.71-.71a1 1 0 1 0-1.41-1.41l-.66.71a1 1 0 0 0 0 1.41 1 1 0 0 0 .66.29Zm-12-.29a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.71-.71a1.004 1.004 0 1 0-1.43 1.41l.73.71ZM21 11h-1a1 1 0 0 0 0 2h1a1 1 0 0 0 0-2Zm-2.64 6A1 1 0 0 0 17 18.36l.71.71a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.76-.66ZM12 6.5a5.5 5.5 0 1 0 5.5 5.5A5.51 5.51 0 0 0 12 6.5Zm0 9a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7Zm0 3.5a1 1 0 0 0-1 1v1a1 1 0 0 0 2 0v-1a1 1 0 0 0-1-1Z"/></svg><svg aria-hidden="true" class="dark astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.64 13a1 1 0 0 0-1.05-.14 8.049 8.049 0 0 1-3.37.73 8.15 8.15 0 0 1-8.14-8.1 8.59 8.59 0 0 1 .25-2A1 1 0 0 0 8 2.36a10.14 10.14 0 1 0 14 11.69 1 1 0 0 0-.36-1.05Zm-9.5 6.69A8.14 8.14 0 0 1 7.08 5.22v.27a10.15 10.15 0 0 0 10.14 10.14 9.784 9.784 0 0 0 2.1-.22 8.11 8.11 0 0 1-7.18 4.32v-.04Z"/></svg><svg aria-hidden="true" class="auto astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg></template><link rel="stylesheet" href="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/print.ehPL0gv-.css" media="print"><link rel="stylesheet" href="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/common.DWLYySiw.css"><script type="module" src="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/page.LAbJoB63.js"></script></head><body class="astro-g5ptsecz"><a class="sl-skip-link astro-qb7clj6f" href="#_top">Skip to content</a><div class="page sl-flex astro-yntsjkba"><header class="header astro-yntsjkba"><div class="header astro-by6fddyj"><div class="title-wrapper sl-flex astro-by6fddyj"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/" class="site-title sl-flex astro-6rvad3va"><span class="astro-6rvad3va" translate="no">Boat Tech Directory</span></a></div><div class="sl-flex print:hidden astro-by6fddyj"><site-search class="astro-by6fddyj astro-ac66eqjo" data-translations="{"placeholder":"Search"}"><button data-open-modal disabled aria-label="Search" aria-keyshortcuts="Control+K" class="astro-ac66eqjo"><svg aria-hidden="true" class="astro-ac66eqjo astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.71 20.29 18 16.61A9 9 0 1 0 16.61 18l3.68 3.68a.999.999 0 0 0 1.42 0 1 1 0 0 0 0-1.39ZM11 18a7 7 0 1 1 0-14 7 7 0 0 1 0 14Z"/></svg><span class="sl-hidden md:sl-block astro-ac66eqjo" aria-hidden="true">Search</span><kbd class="sl-hidden md:sl-flex astro-ac66eqjo" style="display: none;"><kbd class="astro-ac66eqjo">Ctrl</kbd><kbd class="astro-ac66eqjo">K</kbd></kbd></button><dialog style="padding:0" aria-label="Search" class="astro-ac66eqjo"><div class="dialog-frame sl-flex astro-ac66eqjo"><button data-close-modal class="sl-flex md:sl-hidden astro-ac66eqjo">Cancel</button><div class="search-container astro-ac66eqjo"><div id="starlight__search" class="astro-ac66eqjo"><form id="starlight__search-form" role="search" aria-label="Search" class="astro-ac66eqjo"><input id="starlight__search-input" type="text" autocapitalize="none" enterkeyhint="search" placeholder="Search" title="Search" class="astro-ac66eqjo"><button type="button" id="starlight__search-clear" hidden class="astro-ac66eqjo">Search</button></form><div id="starlight__search-results-area" hidden class="astro-ac66eqjo"><p id="starlight__search-message" role="status" class="astro-ac66eqjo"></p><ol id="starlight__search-results" class="astro-ac66eqjo"></ol></div></div></div></div></dialog></site-search><script>
|
|
28
28
|
(() => {
|
|
29
29
|
const openBtn = document.querySelector('button[data-open-modal]');
|
|
30
30
|
const shortcut = openBtn?.querySelector('kbd');
|
|
@@ -36,9 +36,9 @@
|
|
|
36
36
|
}
|
|
37
37
|
shortcut.style.display = '';
|
|
38
38
|
})();
|
|
39
|
-
</script><script type="module" src="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/Search.astro_astro_type_script_index_0_lang.3ca-UBSH.js"></script></div><div class="sl-hidden md:sl-flex print:hidden right-group astro-
|
|
39
|
+
</script><script type="module" src="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/Search.astro_astro_type_script_index_0_lang.3ca-UBSH.js"></script></div><div class="sl-hidden md:sl-flex print:hidden right-group astro-by6fddyj"><div class="sl-flex social-icons astro-by6fddyj"><a href="https://github.com/rhizomatics/boat-tech-directory" rel="me" class="sl-flex astro-n2mnl6yq"><span class="sr-only astro-n2mnl6yq">GitHub</span><svg aria-hidden="true" class="astro-n2mnl6yq astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg></a></div><starlight-theme-select><label style="--sl-select-width: 6.25em" class="astro-2z5xp7gb"><span class="sr-only astro-2z5xp7gb">Select theme</span><svg aria-hidden="true" class="icon label-icon astro-2z5xp7gb astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg><select autocomplete="off" class="astro-2z5xp7gb"><option value="dark" class="astro-2z5xp7gb">Dark</option><option value="light" class="astro-2z5xp7gb">Light</option><option value="auto" selected class="astro-2z5xp7gb">Auto</option></select><svg aria-hidden="true" class="icon caret astro-2z5xp7gb astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg></label></starlight-theme-select><script>
|
|
40
40
|
StarlightThemeProvider.updatePickers();
|
|
41
|
-
</script><script type="module">var e=`starlight-theme`,t=e=>e===`auto`||e===`dark`||e===`light`?e:`auto`,n=()=>t(typeof localStorage<`u`&&localStorage.getItem(e));function r(t){typeof localStorage<`u`&&localStorage.setItem(e,t===`light`||t===`dark`?t:``)}var i=()=>matchMedia(`(prefers-color-scheme: light)`).matches?`light`:`dark`;function a(e){StarlightThemeProvider.updatePickers(e),document.documentElement.dataset.theme=e===`auto`?i():e,r(e)}matchMedia(`(prefers-color-scheme: light)`).addEventListener(`change`,()=>{n()===`auto`&&a(`auto`)});var o=class extends HTMLElement{constructor(){super(),a(n()),this.querySelector(`select`)?.addEventListener(`change`,e=>{e.currentTarget instanceof HTMLSelectElement&&a(t(e.currentTarget.value))})}};customElements.define(`starlight-theme-select`,o);</script><script type="module">var e=class extends HTMLElement{constructor(){super();let e=this.querySelector(`select`);e&&(e.addEventListener(`change`,e=>{e.currentTarget instanceof HTMLSelectElement&&(window.location.pathname=e.currentTarget.value)}),window.addEventListener(`pageshow`,t=>{if(!t.persisted)return;let n=e.querySelector(`option[selected]`)?.index;n!==e.selectedIndex&&(e.selectedIndex=n??0)}))}};customElements.define(`starlight-lang-select`,e);</script></div></div></header><nav class="sidebar print:hidden astro-
|
|
41
|
+
</script><script type="module">var e=`starlight-theme`,t=e=>e===`auto`||e===`dark`||e===`light`?e:`auto`,n=()=>t(typeof localStorage<`u`&&localStorage.getItem(e));function r(t){typeof localStorage<`u`&&localStorage.setItem(e,t===`light`||t===`dark`?t:``)}var i=()=>matchMedia(`(prefers-color-scheme: light)`).matches?`light`:`dark`;function a(e){StarlightThemeProvider.updatePickers(e),document.documentElement.dataset.theme=e===`auto`?i():e,r(e)}matchMedia(`(prefers-color-scheme: light)`).addEventListener(`change`,()=>{n()===`auto`&&a(`auto`)});var o=class extends HTMLElement{constructor(){super(),a(n()),this.querySelector(`select`)?.addEventListener(`change`,e=>{e.currentTarget instanceof HTMLSelectElement&&a(t(e.currentTarget.value))})}};customElements.define(`starlight-theme-select`,o);</script><script type="module">var e=class extends HTMLElement{constructor(){super();let e=this.querySelector(`select`);e&&(e.addEventListener(`change`,e=>{e.currentTarget instanceof HTMLSelectElement&&(window.location.pathname=e.currentTarget.value)}),window.addEventListener(`pageshow`,t=>{if(!t.persisted)return;let n=e.querySelector(`option[selected]`)?.index;n!==e.selectedIndex&&(e.selectedIndex=n??0)}))}};customElements.define(`starlight-lang-select`,e);</script></div></div></header><nav class="sidebar print:hidden astro-yntsjkba" aria-label="Main"><button popovertarget="starlight__sidebar" class="sl-menu-button sl-flex md:sl-hidden print:hidden astro-r2osgdlg"><svg aria-hidden="true" class="open-menu astro-r2osgdlg astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M3 8h18a1 1 0 1 0 0-2H3a1 1 0 0 0 0 2Zm18 8H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Zm0-5H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Z"/></svg><svg aria-hidden="true" class="close-menu astro-r2osgdlg astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="m13.41 12 6.3-6.29a1.004 1.004 0 1 0-1.42-1.42L12 10.59l-6.29-6.3a1.004 1.004 0 0 0-1.42 1.42l6.3 6.29-6.3 6.29a1 1 0 0 0 0 1.42.998.998 0 0 0 1.42 0l6.29-6.3 6.29 6.3a.999.999 0 0 0 1.42 0 1 1 0 0 0 0-1.42L13.41 12Z"/></svg><span class="sr-only astro-r2osgdlg">Menu</span></button><script type="module">var e=class extends HTMLElement{constructor(){super();let e=matchMedia(`(min-width: 50em)`),t=()=>{this.popover=e.matches?null:`auto`};t(),e.addEventListener(`change`,()=>t()),this.addEventListener(`toggle`,({newState:e})=>this.trapFocus(e===`open`))}trapFocus(e){document.querySelectorAll(`.main-frame, .sl-skip-link`).forEach(t=>{t.toggleAttribute(`inert`,e)})}};customElements.define(`sl-sidebar-pane`,e);</script><sl-sidebar-pane popover id="starlight__sidebar" class="sidebar-pane astro-yntsjkba"><div class="sidebar-content sl-flex astro-yntsjkba"><sl-sidebar-state-persist data-hash="0xizxmh" class="astro-ipdry5cl"><script aria-hidden="true">
|
|
42
42
|
(() => {
|
|
43
43
|
try {
|
|
44
44
|
if (!matchMedia('(min-width: 50em)').matches) return;
|
|
@@ -68,9 +68,9 @@
|
|
|
68
68
|
scroller.scrollTop = window._starlightScrollRestore;
|
|
69
69
|
delete window._starlightScrollRestore;
|
|
70
70
|
})();
|
|
71
|
-
</script></sl-sidebar-state-persist><div class="md:sl-hidden astro-wv7whodv"><div class="mobile-preferences sl-flex astro-
|
|
71
|
+
</script></sl-sidebar-state-persist><div class="md:sl-hidden astro-wv7whodv"><div class="mobile-preferences sl-flex astro-p4azlveh"><div class="social-icons astro-p4azlveh"><a href="https://github.com/rhizomatics/boat-tech-directory" rel="me" class="sl-flex astro-n2mnl6yq"><span class="sr-only astro-n2mnl6yq">GitHub</span><svg aria-hidden="true" class="astro-n2mnl6yq astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg></a></div><starlight-theme-select><label style="--sl-select-width: 6.25em" class="astro-2z5xp7gb"><span class="sr-only astro-2z5xp7gb">Select theme</span><svg aria-hidden="true" class="icon label-icon astro-2z5xp7gb astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg><select autocomplete="off" class="astro-2z5xp7gb"><option value="dark" class="astro-2z5xp7gb">Dark</option><option value="light" class="astro-2z5xp7gb">Light</option><option value="auto" selected class="astro-2z5xp7gb">Auto</option></select><svg aria-hidden="true" class="icon caret astro-2z5xp7gb astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg></label></starlight-theme-select><script>
|
|
72
72
|
StarlightThemeProvider.updatePickers();
|
|
73
|
-
</script></div></div></div></
|
|
73
|
+
</script></div></div></div></sl-sidebar-pane></nav><div class="main-frame astro-yntsjkba"><script type="module">var e=document.getElementById(`starlight__sidebar`),t=e?.querySelector(`sl-sidebar-state-persist`),n=`sl-sidebar-state`,r=()=>{let r=[],i=t?.dataset.hash||``;try{let e=sessionStorage.getItem(n),t=JSON.parse(e||`{}`);Array.isArray(t.open)&&t.hash===i&&(r=t.open)}catch{}return{hash:i,open:r,scroll:e?.scrollTop||0}},i=e=>{try{sessionStorage.setItem(n,JSON.stringify(e))}catch{}},a=()=>i(r()),o=(e,t)=>{let n=r();n.open[t]=e,i(n)};t?.addEventListener(`click`,e=>{if(!(e.target instanceof Element))return;let t=e.target.closest(`summary`)?.closest(`details`);if(!t)return;let n=t.querySelector(`sl-sidebar-restore`),r=parseInt(n?.dataset.index||``);isNaN(r)||o(!t.open,r)}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&a()});</script><div class="lg:sl-flex astro-lrzkfocr"><div class="main-pane astro-lrzkfocr"><main data-pagefind-body class="astro-g5ptsecz" lang="en" dir="ltr"><div class="content-panel astro-a7po4psb"><div class="sl-container astro-a7po4psb"><h1 id="_top" class="astro-bebwqqxs">Open Source Projects</h1></div></div><div class="content-panel astro-a7po4psb"><div class="sl-container astro-a7po4psb"><div class="sl-markdown-content"><!-- Generated from ../../../../README.md by scripts/sync-readme.mjs — do not edit directly. -->
|
|
74
74
|
<p>Software projects for boats, with recent commits as of 2026.</p>
|
|
75
75
|
<ul>
|
|
76
76
|
<li id="ais-catcher"><img src="../images/icons/github.ico" width="16" height="16"> <a href="https://github.com/jvde-github/AIS-catcher">AIS-catcher</a> - AIS receiver for software defined radio (SDR) dongles.</li>
|
|
@@ -84,12 +84,13 @@
|
|
|
84
84
|
<li id="can-boat"><img src="../images/icons/github.ico" width="16" height="16"> <a href="https://github.com/canboat/canboat">CAN Boat</a> - NMEA2000 and NMEA 0183 CLI utilities.</li>
|
|
85
85
|
<li id="d3kos"><img src="../images/icons/github.ico" width="16" height="16"> <a href="https://github.com/SkipperDon/d3kOS">d3kOS</a> - Raspberry Pi based navigation and automation platform.</li>
|
|
86
86
|
<li id="discotime"><img src="../images/icons/github.ico" width="16" height="16"> <a href="https://github.com/cr/discotime/">DiscoTime</a> - Time and lat/long dashboard for long distance passages.</li>
|
|
87
|
-
<li id="eink-labels-for-signalk"><img src="../images/icons/github.ico" width="16" height="16"> <a href="https://github.com/rhizomatics/signalk-einklabel-plugin">eInk Labels for SignalK</a> - SignalK plugin to send SignalK path data or API results to an BLE eInk Electronic Shelf Label.</li>
|
|
87
|
+
<li id="eink-labels-for-signalk"><img src="../images/icons/github.ico" width="16" height="16"> <a href="https://github.com/rhizomatics/signalk-einklabel-plugin">eInk Labels for SignalK</a> - SignalK plugin to send SignalK path data or API results to an BLE eInk Electronic Shelf Label using simple SVG templates. Optional add-on plugin for AI generated screens.</li>
|
|
88
88
|
<li id="frothfet"><a href="https://frothfet.com">FrothFet</a> - Open source hardware and software for digital switching boat DC loads.</li>
|
|
89
89
|
<li id="galadriel-plotter"><img src="../images/icons/github.ico" width="16" height="16"> <a href="https://github.com/VladimirKalachikhin/Galadriel-map">Galadriel Plotter</a> - Raster based chartplotter for low power servers.</li>
|
|
90
90
|
<li id="gpsd"><img src="../images/icons/gitlab.png" width="16" height="16"> <a href="https://gpsd.gitlab.io/gpsd/index.html">gpsd</a> - GPS and AIS daemon wrapping NMEA0183 in its own simpler format. C, Python. Ubiquitous.</li>
|
|
91
91
|
<li id="gweatherrouting"><a href="https://gweatherrouting.org">GWeatherRouting</a> - Navigation and automated routing, Python/GTK4.</li>
|
|
92
92
|
<li id="gypsy"><a href="https://gypsy.freedesktop.org">gypsy</a> - Multiplexer for GPS NMEA data, daemon and C library, alternative to gpsd.</li>
|
|
93
|
+
<li id="helm"><img src="../images/icons/github.ico" width="16" height="16"> <a href="https://github.com/StevenRidder/helm-public">Helm</a> - Clean-room re-engineered OpenCPN equivalent, alpha as of Q3/2026.</li>
|
|
93
94
|
<li id="ilma"><a href="https://ilma.sailorslog.io">Ilma</a> - Software based Navtex receiver for Raspberry Pi or similar.</li>
|
|
94
95
|
<li id="imud"><img src="../images/icons/gitlab.png" width="16" height="16"> <a href="https://github.com/richcreations/imud">imud</a> - IMU (Inertial Measurement Unit)/Magnetometer multiplexer with NMEA stream for chartplotters.</li>
|
|
95
96
|
<li id="kip"><img src="../images/icons/github.ico" width="16" height="16"> <a href="https://github.com/mxtommy/Kip">Kip</a> - SignalK dashboard / instrument display.</li>
|
|
@@ -107,11 +108,12 @@
|
|
|
107
108
|
<li id="openplotter"><a href="https://openplotter.readthedocs.io/">OpenPlotter</a> - Combined project of SignalK, OpenCPN, PyPilot etc.</li>
|
|
108
109
|
<li id="pygpsclient"><img src="../images/icons/github.ico" width="16" height="16"> <a href="https://github.com/semuconsulting/PyGPSClient">PyGPSClient</a> - Python GPS/GNSS testing, diagnostic and configuration, incl NMEA integration.</li>
|
|
109
110
|
<li id="pypilot"><a href="https://pypilot.org">PyPilot</a> - Python based auto-pilot.</li>
|
|
110
|
-
<li id="rhizomatics"><img src="../images/icons/github.ico" width="16" height="16"><a href="https://
|
|
111
|
+
<li id="rhizomatics-sailing"><img src="../images/icons/github.ico" width="16" height="16"><a href="https://www.rhizomatics.org.uk/sailing/">Rhizomatics Sailing</a> - SignalK and Home Assistant plug-ins and associated apps, including integrations for eInk Electronic Shelf Labels, Teltonika modems and Bluetti power stations.</li>
|
|
111
112
|
<li id="rob"><img src="../images/icons/github.ico" width="16" height="16"> <a href="https://github.com/OlivierLD/ROB">ROB</a> - Raspberry Pi On Board, Java and Python navigation utilities.</li>
|
|
112
113
|
<li id="sail-o-vision"><img src="../images/icons/github.ico" width="16" height="16"> <a href="https://github.com/adam-gol/sail-o-vision">Sail-O-Vision</a> - Obstacle and wildlife detection with camera and NVIDIA Jetson.</li>
|
|
113
114
|
<li id="sailtrack"><img src="../images/icons/github.ico" width="16" height="16"> <a href="https://metisvela.github.io/sailtrack/">Sailtrack</a> - Modular racing performance tracker using MQTT.</li>
|
|
114
115
|
<li id="signalk"><a href="https://signalk.org">SignalK</a> - Node.js pluggable framework for boat data distribution and analysis.</li>
|
|
116
|
+
<li id="signalk-cli"><img src="../images/icons/pypi.ico" width="16" height="16"> <a href="https://pypi.org/project/signalk-cli/">signalk-cli</a> - Command line interface to explore and extract data from SignalK, including the History API and Deltas streaming. Exports to CSV, JSON, raw and Apache Arrow Feather dataframes.</li>
|
|
115
117
|
<li id="smart-boat-innovations"><a href="https://smartboatinnovations.com">Smart Boat Innovations</a> - Videos and articles on building a Raspberry Pi and Home Assistant based smart boat.</li>
|
|
116
118
|
<li id="twocan"><img src="../images/icons/github.ico" width="16" height="16"> <a href="https://github.com/TwoCanPlugIn/TwoCanPlugIn">TwoCan</a> - NMEA2000 integration for OpenCPN.</li>
|
|
117
119
|
<li id="venus"><img src="../images/icons/github.ico" width="16" height="16"> <a href="https://github.com/victronenergy/venus">Venus</a> - Victron Energy’s open source OS for their GX products, available for self-hosting on Raspberry Pi.</li>
|
|
@@ -151,8 +153,10 @@
|
|
|
151
153
|
<li id="nmea-simple"><img src="../images/icons/github.ico" width="16" height="16"> <a href="https://github.com/101100/nmea-simple">nmea-simple</a> - NMEA 0183 sentence parser. Fork of the now deprecated <code dir="auto">nmea</code> package.</li>
|
|
152
154
|
</ul>
|
|
153
155
|
<div class="sl-heading-wrapper level-h4"><h4 id="python">Python</h4><a class="sl-anchor-link" href="#python"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “Python”</span></a></div>
|
|
154
|
-
<p>Lots more libraries and tools can be found on PyPI, for example <a href="https://pypi.org/search/?q=nmea">NMEA</a>-related.</p>
|
|
156
|
+
<p>Lots more libraries and tools can be found on PyPI, for example <a href="https://pypi.org/search/?q=nmea">NMEA</a>-related. Selection limited to ones recently active in 2026.</p>
|
|
155
157
|
<ul>
|
|
158
|
+
<li id="nmea2000-1"><img src="../images/icons/pypi.ico" width="16" height="16"> <a href="https://pypi.org/project/nmea2000/">nmea2000</a> - NMEA 2000 encoder and decoder.</li>
|
|
159
|
+
<li id="pyais"><img src="../images/icons/pypi.ico" width="16" height="16"> <a href="https://pypi.org/project/pyais/">pyais</a> - AIS specific NMEA 0183 parser and encoder, with streaming server.</li>
|
|
156
160
|
<li id="pynmea2"><img src="../images/icons/github.ico" width="16" height="16"> <a href="https://github.com/Knio/pynmea2">pynmea2</a> - NMEA 0183 sentence parser.</li>
|
|
157
161
|
<li id="nmeasim"><img src="../images/icons/gitlab.png" width="16" height="16"> <a href="https://gitlab.com/nmeasim/nmeasim">nmeasim</a> - NMEA/GNSS receiver simulator.</li>
|
|
158
162
|
</ul>
|
|
@@ -163,4 +167,4 @@
|
|
|
163
167
|
<div class="sl-heading-wrapper level-h4"><h4 id="swift">Swift</h4><a class="sl-anchor-link" href="#swift"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “Swift”</span></a></div>
|
|
164
168
|
<ul>
|
|
165
169
|
<li id="nmeaparser"><img src="../images/icons/github.ico" width="16" height="16"> <a href="https://github.com/sindreoyen/NMEAParser">NMEAParser</a> - iOS and macOS NMEA 0183 parser and validator.</li>
|
|
166
|
-
</ul></div><footer class="sl-flex astro-
|
|
170
|
+
</ul></div><footer class="sl-flex astro-ddtxxk7k"><div class="meta sl-flex astro-ddtxxk7k"></div><div class="pagination-links print:hidden astro-b5raizh3" dir="ltr"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/charts/" rel="prev" class="astro-b5raizh3"><svg aria-hidden="true" class="astro-b5raizh3 astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17 11H9.41l3.3-3.29a1.004 1.004 0 1 0-1.42-1.42l-5 5a1 1 0 0 0-.21.33 1 1 0 0 0 0 .76 1 1 0 0 0 .21.33l5 5a1.002 1.002 0 0 0 1.639-.325 1 1 0 0 0-.219-1.095L9.41 13H17a1 1 0 0 0 0-2Z"/></svg><span class="astro-b5raizh3">Previous<br class="astro-b5raizh3"><span class="link-title astro-b5raizh3">Charts and Data</span></span></a><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/protocols/" rel="next" class="astro-b5raizh3"><svg aria-hidden="true" class="astro-b5raizh3 astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17.92 11.62a1.001 1.001 0 0 0-.21-.33l-5-5a1.003 1.003 0 1 0-1.42 1.42l3.3 3.29H7a1 1 0 0 0 0 2h7.59l-3.3 3.29a1.002 1.002 0 0 0 .325 1.639 1 1 0 0 0 1.095-.219l5-5a1 1 0 0 0 .21-.33 1 1 0 0 0 0-.76Z"/></svg><span class="astro-b5raizh3">Next<br class="astro-b5raizh3"><span class="link-title astro-b5raizh3">Protocols</span></span></a></div></footer></div></div></main></div></div></div></div></body></html>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"1.5.2","languages":{"en":{"hash":"
|
|
1
|
+
{"version":"1.5.2","languages":{"en":{"hash":"en_a246882be9","wasm":"en","page_count":11}},"include_characters":["_","‿","⁀","⁔","︳","︴","﹍","﹎","﹏","_"]}
|
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" dir="ltr" data-theme="dark" data-has-sidebar class="astro-
|
|
1
|
+
<!DOCTYPE html><html lang="en" dir="ltr" data-theme="dark" data-has-sidebar class="astro-g5ptsecz"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>Standards and Protocols | Boat Tech Directory</title><link rel="canonical" href="https://boat-tech-directory.rhizomatics.org.uk/@rhizomatics/signalk-boat-tech-directory-plugin/protocols/"/><link rel="sitemap" href="/@rhizomatics/signalk-boat-tech-directory-plugin/sitemap-index.xml"/><link rel="shortcut icon" href="/@rhizomatics/signalk-boat-tech-directory-plugin/favicon.svg" type="image/svg+xml"/><meta name="generator" content="Astro v7.3.2"/><meta name="generator" content="Starlight v0.42.1"/><meta property="og:title" content="Standards and Protocols"/><meta property="og:type" content="article"/><meta property="og:url" content="https://boat-tech-directory.rhizomatics.org.uk/@rhizomatics/signalk-boat-tech-directory-plugin/protocols/"/><meta property="og:locale" content="en"/><meta property="og:description" content="NMEA, Seatalk, SAE and other marine networking standards."/><meta property="og:site_name" content="Boat Tech Directory"/><meta name="description" content="NMEA, Seatalk, SAE and other marine networking standards."/><meta property="og:image" content="https://boat-tech-directory.rhizomatics.org.uk/images/social-preview.jpg"/><meta property="og:image:width" content="1536"/><meta property="og:image:height" content="1024"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:image" content="https://boat-tech-directory.rhizomatics.org.uk/images/social-preview.jpg"/><script>
|
|
2
2
|
window.StarlightThemeProvider = (() => {
|
|
3
3
|
const storedTheme =
|
|
4
4
|
typeof localStorage !== 'undefined' && localStorage.getItem('starlight-theme');
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
},
|
|
25
25
|
};
|
|
26
26
|
})();
|
|
27
|
-
</script><template id="theme-icons"><svg aria-hidden="true" class="light astro-
|
|
27
|
+
</script><template id="theme-icons"><svg aria-hidden="true" class="light astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M5 12a1 1 0 0 0-1-1H3a1 1 0 0 0 0 2h1a1 1 0 0 0 1-1Zm.64 5-.71.71a1 1 0 0 0 0 1.41 1 1 0 0 0 1.41 0l.71-.71A1 1 0 0 0 5.64 17ZM12 5a1 1 0 0 0 1-1V3a1 1 0 0 0-2 0v1a1 1 0 0 0 1 1Zm5.66 2.34a1 1 0 0 0 .7-.29l.71-.71a1 1 0 1 0-1.41-1.41l-.66.71a1 1 0 0 0 0 1.41 1 1 0 0 0 .66.29Zm-12-.29a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.71-.71a1.004 1.004 0 1 0-1.43 1.41l.73.71ZM21 11h-1a1 1 0 0 0 0 2h1a1 1 0 0 0 0-2Zm-2.64 6A1 1 0 0 0 17 18.36l.71.71a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.76-.66ZM12 6.5a5.5 5.5 0 1 0 5.5 5.5A5.51 5.51 0 0 0 12 6.5Zm0 9a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7Zm0 3.5a1 1 0 0 0-1 1v1a1 1 0 0 0 2 0v-1a1 1 0 0 0-1-1Z"/></svg><svg aria-hidden="true" class="dark astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.64 13a1 1 0 0 0-1.05-.14 8.049 8.049 0 0 1-3.37.73 8.15 8.15 0 0 1-8.14-8.1 8.59 8.59 0 0 1 .25-2A1 1 0 0 0 8 2.36a10.14 10.14 0 1 0 14 11.69 1 1 0 0 0-.36-1.05Zm-9.5 6.69A8.14 8.14 0 0 1 7.08 5.22v.27a10.15 10.15 0 0 0 10.14 10.14 9.784 9.784 0 0 0 2.1-.22 8.11 8.11 0 0 1-7.18 4.32v-.04Z"/></svg><svg aria-hidden="true" class="auto astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg></template><link rel="stylesheet" href="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/print.ehPL0gv-.css" media="print"><link rel="stylesheet" href="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/common.DWLYySiw.css"><script type="module" src="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/page.LAbJoB63.js"></script></head><body class="astro-g5ptsecz"><a class="sl-skip-link astro-qb7clj6f" href="#_top">Skip to content</a><div class="page sl-flex astro-yntsjkba"><header class="header astro-yntsjkba"><div class="header astro-by6fddyj"><div class="title-wrapper sl-flex astro-by6fddyj"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/" class="site-title sl-flex astro-6rvad3va"><span class="astro-6rvad3va" translate="no">Boat Tech Directory</span></a></div><div class="sl-flex print:hidden astro-by6fddyj"><site-search class="astro-by6fddyj astro-ac66eqjo" data-translations="{"placeholder":"Search"}"><button data-open-modal disabled aria-label="Search" aria-keyshortcuts="Control+K" class="astro-ac66eqjo"><svg aria-hidden="true" class="astro-ac66eqjo astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.71 20.29 18 16.61A9 9 0 1 0 16.61 18l3.68 3.68a.999.999 0 0 0 1.42 0 1 1 0 0 0 0-1.39ZM11 18a7 7 0 1 1 0-14 7 7 0 0 1 0 14Z"/></svg><span class="sl-hidden md:sl-block astro-ac66eqjo" aria-hidden="true">Search</span><kbd class="sl-hidden md:sl-flex astro-ac66eqjo" style="display: none;"><kbd class="astro-ac66eqjo">Ctrl</kbd><kbd class="astro-ac66eqjo">K</kbd></kbd></button><dialog style="padding:0" aria-label="Search" class="astro-ac66eqjo"><div class="dialog-frame sl-flex astro-ac66eqjo"><button data-close-modal class="sl-flex md:sl-hidden astro-ac66eqjo">Cancel</button><div class="search-container astro-ac66eqjo"><div id="starlight__search" class="astro-ac66eqjo"><form id="starlight__search-form" role="search" aria-label="Search" class="astro-ac66eqjo"><input id="starlight__search-input" type="text" autocapitalize="none" enterkeyhint="search" placeholder="Search" title="Search" class="astro-ac66eqjo"><button type="button" id="starlight__search-clear" hidden class="astro-ac66eqjo">Search</button></form><div id="starlight__search-results-area" hidden class="astro-ac66eqjo"><p id="starlight__search-message" role="status" class="astro-ac66eqjo"></p><ol id="starlight__search-results" class="astro-ac66eqjo"></ol></div></div></div></div></dialog></site-search><script>
|
|
28
28
|
(() => {
|
|
29
29
|
const openBtn = document.querySelector('button[data-open-modal]');
|
|
30
30
|
const shortcut = openBtn?.querySelector('kbd');
|
|
@@ -36,9 +36,9 @@
|
|
|
36
36
|
}
|
|
37
37
|
shortcut.style.display = '';
|
|
38
38
|
})();
|
|
39
|
-
</script><script type="module" src="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/Search.astro_astro_type_script_index_0_lang.3ca-UBSH.js"></script></div><div class="sl-hidden md:sl-flex print:hidden right-group astro-
|
|
39
|
+
</script><script type="module" src="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/Search.astro_astro_type_script_index_0_lang.3ca-UBSH.js"></script></div><div class="sl-hidden md:sl-flex print:hidden right-group astro-by6fddyj"><div class="sl-flex social-icons astro-by6fddyj"><a href="https://github.com/rhizomatics/boat-tech-directory" rel="me" class="sl-flex astro-n2mnl6yq"><span class="sr-only astro-n2mnl6yq">GitHub</span><svg aria-hidden="true" class="astro-n2mnl6yq astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg></a></div><starlight-theme-select><label style="--sl-select-width: 6.25em" class="astro-2z5xp7gb"><span class="sr-only astro-2z5xp7gb">Select theme</span><svg aria-hidden="true" class="icon label-icon astro-2z5xp7gb astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg><select autocomplete="off" class="astro-2z5xp7gb"><option value="dark" class="astro-2z5xp7gb">Dark</option><option value="light" class="astro-2z5xp7gb">Light</option><option value="auto" selected class="astro-2z5xp7gb">Auto</option></select><svg aria-hidden="true" class="icon caret astro-2z5xp7gb astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg></label></starlight-theme-select><script>
|
|
40
40
|
StarlightThemeProvider.updatePickers();
|
|
41
|
-
</script><script type="module">var e=`starlight-theme`,t=e=>e===`auto`||e===`dark`||e===`light`?e:`auto`,n=()=>t(typeof localStorage<`u`&&localStorage.getItem(e));function r(t){typeof localStorage<`u`&&localStorage.setItem(e,t===`light`||t===`dark`?t:``)}var i=()=>matchMedia(`(prefers-color-scheme: light)`).matches?`light`:`dark`;function a(e){StarlightThemeProvider.updatePickers(e),document.documentElement.dataset.theme=e===`auto`?i():e,r(e)}matchMedia(`(prefers-color-scheme: light)`).addEventListener(`change`,()=>{n()===`auto`&&a(`auto`)});var o=class extends HTMLElement{constructor(){super(),a(n()),this.querySelector(`select`)?.addEventListener(`change`,e=>{e.currentTarget instanceof HTMLSelectElement&&a(t(e.currentTarget.value))})}};customElements.define(`starlight-theme-select`,o);</script><script type="module">var e=class extends HTMLElement{constructor(){super();let e=this.querySelector(`select`);e&&(e.addEventListener(`change`,e=>{e.currentTarget instanceof HTMLSelectElement&&(window.location.pathname=e.currentTarget.value)}),window.addEventListener(`pageshow`,t=>{if(!t.persisted)return;let n=e.querySelector(`option[selected]`)?.index;n!==e.selectedIndex&&(e.selectedIndex=n??0)}))}};customElements.define(`starlight-lang-select`,e);</script></div></div></header><nav class="sidebar print:hidden astro-
|
|
41
|
+
</script><script type="module">var e=`starlight-theme`,t=e=>e===`auto`||e===`dark`||e===`light`?e:`auto`,n=()=>t(typeof localStorage<`u`&&localStorage.getItem(e));function r(t){typeof localStorage<`u`&&localStorage.setItem(e,t===`light`||t===`dark`?t:``)}var i=()=>matchMedia(`(prefers-color-scheme: light)`).matches?`light`:`dark`;function a(e){StarlightThemeProvider.updatePickers(e),document.documentElement.dataset.theme=e===`auto`?i():e,r(e)}matchMedia(`(prefers-color-scheme: light)`).addEventListener(`change`,()=>{n()===`auto`&&a(`auto`)});var o=class extends HTMLElement{constructor(){super(),a(n()),this.querySelector(`select`)?.addEventListener(`change`,e=>{e.currentTarget instanceof HTMLSelectElement&&a(t(e.currentTarget.value))})}};customElements.define(`starlight-theme-select`,o);</script><script type="module">var e=class extends HTMLElement{constructor(){super();let e=this.querySelector(`select`);e&&(e.addEventListener(`change`,e=>{e.currentTarget instanceof HTMLSelectElement&&(window.location.pathname=e.currentTarget.value)}),window.addEventListener(`pageshow`,t=>{if(!t.persisted)return;let n=e.querySelector(`option[selected]`)?.index;n!==e.selectedIndex&&(e.selectedIndex=n??0)}))}};customElements.define(`starlight-lang-select`,e);</script></div></div></header><nav class="sidebar print:hidden astro-yntsjkba" aria-label="Main"><button popovertarget="starlight__sidebar" class="sl-menu-button sl-flex md:sl-hidden print:hidden astro-r2osgdlg"><svg aria-hidden="true" class="open-menu astro-r2osgdlg astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M3 8h18a1 1 0 1 0 0-2H3a1 1 0 0 0 0 2Zm18 8H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Zm0-5H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Z"/></svg><svg aria-hidden="true" class="close-menu astro-r2osgdlg astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="m13.41 12 6.3-6.29a1.004 1.004 0 1 0-1.42-1.42L12 10.59l-6.29-6.3a1.004 1.004 0 0 0-1.42 1.42l6.3 6.29-6.3 6.29a1 1 0 0 0 0 1.42.998.998 0 0 0 1.42 0l6.29-6.3 6.29 6.3a.999.999 0 0 0 1.42 0 1 1 0 0 0 0-1.42L13.41 12Z"/></svg><span class="sr-only astro-r2osgdlg">Menu</span></button><script type="module">var e=class extends HTMLElement{constructor(){super();let e=matchMedia(`(min-width: 50em)`),t=()=>{this.popover=e.matches?null:`auto`};t(),e.addEventListener(`change`,()=>t()),this.addEventListener(`toggle`,({newState:e})=>this.trapFocus(e===`open`))}trapFocus(e){document.querySelectorAll(`.main-frame, .sl-skip-link`).forEach(t=>{t.toggleAttribute(`inert`,e)})}};customElements.define(`sl-sidebar-pane`,e);</script><sl-sidebar-pane popover id="starlight__sidebar" class="sidebar-pane astro-yntsjkba"><div class="sidebar-content sl-flex astro-yntsjkba"><sl-sidebar-state-persist data-hash="0xizxmh" class="astro-ipdry5cl"><script aria-hidden="true">
|
|
42
42
|
(() => {
|
|
43
43
|
try {
|
|
44
44
|
if (!matchMedia('(min-width: 50em)').matches) return;
|
|
@@ -68,14 +68,14 @@
|
|
|
68
68
|
scroller.scrollTop = window._starlightScrollRestore;
|
|
69
69
|
delete window._starlightScrollRestore;
|
|
70
70
|
})();
|
|
71
|
-
</script></sl-sidebar-state-persist><div class="md:sl-hidden astro-wv7whodv"><div class="mobile-preferences sl-flex astro-
|
|
71
|
+
</script></sl-sidebar-state-persist><div class="md:sl-hidden astro-wv7whodv"><div class="mobile-preferences sl-flex astro-p4azlveh"><div class="social-icons astro-p4azlveh"><a href="https://github.com/rhizomatics/boat-tech-directory" rel="me" class="sl-flex astro-n2mnl6yq"><span class="sr-only astro-n2mnl6yq">GitHub</span><svg aria-hidden="true" class="astro-n2mnl6yq astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg></a></div><starlight-theme-select><label style="--sl-select-width: 6.25em" class="astro-2z5xp7gb"><span class="sr-only astro-2z5xp7gb">Select theme</span><svg aria-hidden="true" class="icon label-icon astro-2z5xp7gb astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg><select autocomplete="off" class="astro-2z5xp7gb"><option value="dark" class="astro-2z5xp7gb">Dark</option><option value="light" class="astro-2z5xp7gb">Light</option><option value="auto" selected class="astro-2z5xp7gb">Auto</option></select><svg aria-hidden="true" class="icon caret astro-2z5xp7gb astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg></label></starlight-theme-select><script>
|
|
72
72
|
StarlightThemeProvider.updatePickers();
|
|
73
|
-
</script></div></div></div></
|
|
73
|
+
</script></div></div></div></sl-sidebar-pane></nav><div class="main-frame astro-yntsjkba"><script type="module">var e=document.getElementById(`starlight__sidebar`),t=e?.querySelector(`sl-sidebar-state-persist`),n=`sl-sidebar-state`,r=()=>{let r=[],i=t?.dataset.hash||``;try{let e=sessionStorage.getItem(n),t=JSON.parse(e||`{}`);Array.isArray(t.open)&&t.hash===i&&(r=t.open)}catch{}return{hash:i,open:r,scroll:e?.scrollTop||0}},i=e=>{try{sessionStorage.setItem(n,JSON.stringify(e))}catch{}},a=()=>i(r()),o=(e,t)=>{let n=r();n.open[t]=e,i(n)};t?.addEventListener(`click`,e=>{if(!(e.target instanceof Element))return;let t=e.target.closest(`summary`)?.closest(`details`);if(!t)return;let n=t.querySelector(`sl-sidebar-restore`),r=parseInt(n?.dataset.index||``);isNaN(r)||o(!t.open,r)}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&a()});</script><div class="lg:sl-flex astro-lrzkfocr"><div class="main-pane astro-lrzkfocr"><main data-pagefind-body class="astro-g5ptsecz" lang="en" dir="ltr"><div class="content-panel astro-a7po4psb"><div class="sl-container astro-a7po4psb"><h1 id="_top" class="astro-bebwqqxs">Standards and Protocols</h1></div></div><div class="content-panel astro-a7po4psb"><div class="sl-container astro-a7po4psb"><div class="sl-markdown-content"><!-- Generated from ../../../../README.md by scripts/sync-readme.mjs — do not edit directly. -->
|
|
74
74
|
<div class="sl-heading-wrapper level-h3"><h3 id="marine-industry-standards">Marine Industry Standards</h3><a class="sl-anchor-link" href="#marine-industry-standards"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “Marine Industry Standards”</span></a></div>
|
|
75
75
|
<ul>
|
|
76
76
|
<li id="iec61162"><img src="../images/icons/wikipedia.ico" width="16" height="16"> <a href="https://en.wikipedia.org/wiki/IEC_61162">IEC61162</a> - International Electrotechnical Commission standards, partly wrapping NMEA standards (IEC 61162-1 is NMEA0183 and IEC 61162-3 is NMEA2000).</li>
|
|
77
77
|
<li id="nmea0183"><img src="../images/icons/wikipedia.ico" width="16" height="16"> <a href="https://en.wikipedia.org/wiki/NMEA_0183">NMEA0183</a> - RS-422 based wiring layer with proprietary information protocol.</li>
|
|
78
|
-
<li id="nmea2000"><img src="../images/icons/wikipedia.ico" width="16" height="16"> <a href="https://en.wikipedia.org/wiki/NMEA_2000">NMEA2000</a> - CAN Bus based wiring with proprietary information protocol. Also known as N2K
|
|
78
|
+
<li id="nmea2000"><img src="../images/icons/wikipedia.ico" width="16" height="16"> <a href="https://en.wikipedia.org/wiki/NMEA_2000">NMEA2000</a> - CAN Bus based wiring with proprietary information protocol. Also known as N2K. Open source reverse engineered documentation by <a href="https://canboat.github.io/canboat/canboat.html">canboat</a>.</li>
|
|
79
79
|
<li id="nmea-onenet"><a href="https://www.nmea.org/nmea-onenet.html">NMEA OneNet</a> - IPv6 Ethernet based wiring with proprietary information protocol, using M12 and RJ45 connectors.</li>
|
|
80
80
|
<li id="nmea-over-ip"><a href="https://opencpn.org/wiki/dokuwiki/doku.php?id=opencpn:manual_basic:set_options:connections:advanced">NMEA over IP</a> - Informal standard (with a formal IANA port assigned, <code dir="auto">10110</code>) using TCP or UDP provided by several vendor and open source products, and consumed by Navionics, AngelNav, SavvyNavvy and more.</li>
|
|
81
81
|
</ul>
|
|
@@ -85,6 +85,14 @@
|
|
|
85
85
|
</ul>
|
|
86
86
|
<div class="sl-heading-wrapper level-h3"><h3 id="vendor-proprietary">Vendor Proprietary</h3><a class="sl-anchor-link" href="#vendor-proprietary"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “Vendor Proprietary”</span></a></div>
|
|
87
87
|
<ul>
|
|
88
|
+
<li id="antant"><a href="https://developer.garmin.com/ant-program/overview/">ANT/ANT+</a> - Garmin protocol for low power devices, including linking watches to autopilots and chart plotters. Retirement announced by vendor in 2025, replacing with BLE.</li>
|
|
89
|
+
</ul>
|
|
90
|
+
<!--lint disable awesome-list-item-->
|
|
91
|
+
<ul>
|
|
92
|
+
<li id="bg-fastnet-notes"><strong>B&G Fastnet</strong> - Proprietary serial bus network. No vendor documentation. Reverse engineered docs, C code and interface specs at <a href="https://github.com/trlafleur/Fastnet">B&G FastNet Notes</a> and <a href="https://www.oppedijk.com/bandg/fastnet.html">Oppedjik Blog</a>.</li>
|
|
93
|
+
</ul>
|
|
94
|
+
<!--lint enable awesome-list-item-->
|
|
95
|
+
<ul>
|
|
88
96
|
<li id="garmin-bluenet"><a href="https://www8.garmin.com/manuals/webhelp/GUID-C3D5DCE9-C0FF-4AC4-B759-D5B34E1EB78E/EN-US/GUID-A1161F2C-CEB3-4E87-9388-EE6F69DFD026.html">Garmin BlueNet</a> - Current Ethernet based netwoking, with proprietary connector.</li>
|
|
89
97
|
<li id="garmin-marine-network"><a href="https://www.garmin.com/en-GB/c/networking-hardware/">Garmin Marine Network</a> - Previous generation of Ethernet networking, using RJ45 connectors.</li>
|
|
90
98
|
</ul>
|
|
@@ -125,4 +133,4 @@
|
|
|
125
133
|
<li id="tcp"><img src="../images/icons/wikipedia.ico" width="16" height="16"> <a href="https://en.wikipedia.org/wiki/Transmission_Control_Protocol">TCP</a> - Network protocol used for NMEA data distribution, to set up a session between a NMEA gateway and a client like OpenCPN or Navionics. Data is checked for receipt and retried if failed, so this is more reliable than UDP and also slower and more work for the gateway, hence commonly limited to how many clients can be supported at one time.</li>
|
|
126
134
|
<li id="udp"><img src="../images/icons/wikipedia.ico" width="16" height="16"> <a href="https://en.wikipedia.org/wiki/User_Datagram_Protocol">UDP</a> - Network protocol commonly used for NMEA data distribution, either passively (send out UDP packets to all clients that attach to a port) or actively ( forward on data to a list of listening client IP addresses/ports ), and either way as ‘fire-and-forget’. Navionics, OpenCPN, AngelNav, SavvyNavvy and other apps will use this (or TCP) to subscribe to NMEA data.</li>
|
|
127
135
|
<li id="zigbee"><a href="https://signalk.org/2025/signalk-zigbee-sensors/">Zigbee</a> - Common mesh network for sensors, alarms, switches and other home automation uses. Bi-directional (so for example, the device battery can be remotely read), designed for low power devices, and uses the same 2.4Ghz spectrum as Bluetooth and Wifi. Becoming more common on boats since home automation scale drives down the costs, and where <a href="https://www.home-assistant.io">Home Assistant</a> is used in conjunction with SignalK.</li>
|
|
128
|
-
</ul></div><footer class="sl-flex astro-
|
|
136
|
+
</ul></div><footer class="sl-flex astro-ddtxxk7k"><div class="meta sl-flex astro-ddtxxk7k"></div><div class="pagination-links print:hidden astro-b5raizh3" dir="ltr"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/open-source-projects/" rel="prev" class="astro-b5raizh3"><svg aria-hidden="true" class="astro-b5raizh3 astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17 11H9.41l3.3-3.29a1.004 1.004 0 1 0-1.42-1.42l-5 5a1 1 0 0 0-.21.33 1 1 0 0 0 0 .76 1 1 0 0 0 .21.33l5 5a1.002 1.002 0 0 0 1.639-.325 1 1 0 0 0-.219-1.095L9.41 13H17a1 1 0 0 0 0-2Z"/></svg><span class="astro-b5raizh3">Previous<br class="astro-b5raizh3"><span class="link-title astro-b5raizh3">Open Source Projects</span></span></a><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/vendors/" rel="next" class="astro-b5raizh3"><svg aria-hidden="true" class="astro-b5raizh3 astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17.92 11.62a1.001 1.001 0 0 0-.21-.33l-5-5a1.003 1.003 0 1 0-1.42 1.42l3.3 3.29H7a1 1 0 0 0 0 2h7.59l-3.3 3.29a1.002 1.002 0 0 0 .325 1.639 1 1 0 0 0 1.095-.219l5-5a1 1 0 0 0 .21-.33 1 1 0 0 0 0-.76Z"/></svg><span class="astro-b5raizh3">Next<br class="astro-b5raizh3"><span class="link-title astro-b5raizh3">Vendors</span></span></a></div></footer></div></div></main></div></div></div></div></body></html>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" dir="ltr" data-theme="dark" data-has-sidebar class="astro-
|
|
1
|
+
<!DOCTYPE html><html lang="en" dir="ltr" data-theme="dark" data-has-sidebar class="astro-g5ptsecz"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>Reference | Boat Tech Directory</title><link rel="canonical" href="https://boat-tech-directory.rhizomatics.org.uk/@rhizomatics/signalk-boat-tech-directory-plugin/reference/"/><link rel="sitemap" href="/@rhizomatics/signalk-boat-tech-directory-plugin/sitemap-index.xml"/><link rel="shortcut icon" href="/@rhizomatics/signalk-boat-tech-directory-plugin/favicon.svg" type="image/svg+xml"/><meta name="generator" content="Astro v7.3.2"/><meta name="generator" content="Starlight v0.42.1"/><meta property="og:title" content="Reference"/><meta property="og:type" content="article"/><meta property="og:url" content="https://boat-tech-directory.rhizomatics.org.uk/@rhizomatics/signalk-boat-tech-directory-plugin/reference/"/><meta property="og:locale" content="en"/><meta property="og:description" content="Reference material, including checklists."/><meta property="og:site_name" content="Boat Tech Directory"/><meta name="description" content="Reference material, including checklists."/><meta property="og:image" content="https://boat-tech-directory.rhizomatics.org.uk/images/social-preview.jpg"/><meta property="og:image:width" content="1536"/><meta property="og:image:height" content="1024"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:image" content="https://boat-tech-directory.rhizomatics.org.uk/images/social-preview.jpg"/><script>
|
|
2
2
|
window.StarlightThemeProvider = (() => {
|
|
3
3
|
const storedTheme =
|
|
4
4
|
typeof localStorage !== 'undefined' && localStorage.getItem('starlight-theme');
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
},
|
|
25
25
|
};
|
|
26
26
|
})();
|
|
27
|
-
</script><template id="theme-icons"><svg aria-hidden="true" class="light astro-
|
|
27
|
+
</script><template id="theme-icons"><svg aria-hidden="true" class="light astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M5 12a1 1 0 0 0-1-1H3a1 1 0 0 0 0 2h1a1 1 0 0 0 1-1Zm.64 5-.71.71a1 1 0 0 0 0 1.41 1 1 0 0 0 1.41 0l.71-.71A1 1 0 0 0 5.64 17ZM12 5a1 1 0 0 0 1-1V3a1 1 0 0 0-2 0v1a1 1 0 0 0 1 1Zm5.66 2.34a1 1 0 0 0 .7-.29l.71-.71a1 1 0 1 0-1.41-1.41l-.66.71a1 1 0 0 0 0 1.41 1 1 0 0 0 .66.29Zm-12-.29a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.71-.71a1.004 1.004 0 1 0-1.43 1.41l.73.71ZM21 11h-1a1 1 0 0 0 0 2h1a1 1 0 0 0 0-2Zm-2.64 6A1 1 0 0 0 17 18.36l.71.71a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.76-.66ZM12 6.5a5.5 5.5 0 1 0 5.5 5.5A5.51 5.51 0 0 0 12 6.5Zm0 9a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7Zm0 3.5a1 1 0 0 0-1 1v1a1 1 0 0 0 2 0v-1a1 1 0 0 0-1-1Z"/></svg><svg aria-hidden="true" class="dark astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.64 13a1 1 0 0 0-1.05-.14 8.049 8.049 0 0 1-3.37.73 8.15 8.15 0 0 1-8.14-8.1 8.59 8.59 0 0 1 .25-2A1 1 0 0 0 8 2.36a10.14 10.14 0 1 0 14 11.69 1 1 0 0 0-.36-1.05Zm-9.5 6.69A8.14 8.14 0 0 1 7.08 5.22v.27a10.15 10.15 0 0 0 10.14 10.14 9.784 9.784 0 0 0 2.1-.22 8.11 8.11 0 0 1-7.18 4.32v-.04Z"/></svg><svg aria-hidden="true" class="auto astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg></template><link rel="stylesheet" href="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/print.ehPL0gv-.css" media="print"><link rel="stylesheet" href="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/common.DWLYySiw.css"><script type="module" src="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/page.LAbJoB63.js"></script></head><body class="astro-g5ptsecz"><a class="sl-skip-link astro-qb7clj6f" href="#_top">Skip to content</a><div class="page sl-flex astro-yntsjkba"><header class="header astro-yntsjkba"><div class="header astro-by6fddyj"><div class="title-wrapper sl-flex astro-by6fddyj"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/" class="site-title sl-flex astro-6rvad3va"><span class="astro-6rvad3va" translate="no">Boat Tech Directory</span></a></div><div class="sl-flex print:hidden astro-by6fddyj"><site-search class="astro-by6fddyj astro-ac66eqjo" data-translations="{"placeholder":"Search"}"><button data-open-modal disabled aria-label="Search" aria-keyshortcuts="Control+K" class="astro-ac66eqjo"><svg aria-hidden="true" class="astro-ac66eqjo astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.71 20.29 18 16.61A9 9 0 1 0 16.61 18l3.68 3.68a.999.999 0 0 0 1.42 0 1 1 0 0 0 0-1.39ZM11 18a7 7 0 1 1 0-14 7 7 0 0 1 0 14Z"/></svg><span class="sl-hidden md:sl-block astro-ac66eqjo" aria-hidden="true">Search</span><kbd class="sl-hidden md:sl-flex astro-ac66eqjo" style="display: none;"><kbd class="astro-ac66eqjo">Ctrl</kbd><kbd class="astro-ac66eqjo">K</kbd></kbd></button><dialog style="padding:0" aria-label="Search" class="astro-ac66eqjo"><div class="dialog-frame sl-flex astro-ac66eqjo"><button data-close-modal class="sl-flex md:sl-hidden astro-ac66eqjo">Cancel</button><div class="search-container astro-ac66eqjo"><div id="starlight__search" class="astro-ac66eqjo"><form id="starlight__search-form" role="search" aria-label="Search" class="astro-ac66eqjo"><input id="starlight__search-input" type="text" autocapitalize="none" enterkeyhint="search" placeholder="Search" title="Search" class="astro-ac66eqjo"><button type="button" id="starlight__search-clear" hidden class="astro-ac66eqjo">Search</button></form><div id="starlight__search-results-area" hidden class="astro-ac66eqjo"><p id="starlight__search-message" role="status" class="astro-ac66eqjo"></p><ol id="starlight__search-results" class="astro-ac66eqjo"></ol></div></div></div></div></dialog></site-search><script>
|
|
28
28
|
(() => {
|
|
29
29
|
const openBtn = document.querySelector('button[data-open-modal]');
|
|
30
30
|
const shortcut = openBtn?.querySelector('kbd');
|
|
@@ -36,9 +36,9 @@
|
|
|
36
36
|
}
|
|
37
37
|
shortcut.style.display = '';
|
|
38
38
|
})();
|
|
39
|
-
</script><script type="module" src="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/Search.astro_astro_type_script_index_0_lang.3ca-UBSH.js"></script></div><div class="sl-hidden md:sl-flex print:hidden right-group astro-
|
|
39
|
+
</script><script type="module" src="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/Search.astro_astro_type_script_index_0_lang.3ca-UBSH.js"></script></div><div class="sl-hidden md:sl-flex print:hidden right-group astro-by6fddyj"><div class="sl-flex social-icons astro-by6fddyj"><a href="https://github.com/rhizomatics/boat-tech-directory" rel="me" class="sl-flex astro-n2mnl6yq"><span class="sr-only astro-n2mnl6yq">GitHub</span><svg aria-hidden="true" class="astro-n2mnl6yq astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg></a></div><starlight-theme-select><label style="--sl-select-width: 6.25em" class="astro-2z5xp7gb"><span class="sr-only astro-2z5xp7gb">Select theme</span><svg aria-hidden="true" class="icon label-icon astro-2z5xp7gb astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg><select autocomplete="off" class="astro-2z5xp7gb"><option value="dark" class="astro-2z5xp7gb">Dark</option><option value="light" class="astro-2z5xp7gb">Light</option><option value="auto" selected class="astro-2z5xp7gb">Auto</option></select><svg aria-hidden="true" class="icon caret astro-2z5xp7gb astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg></label></starlight-theme-select><script>
|
|
40
40
|
StarlightThemeProvider.updatePickers();
|
|
41
|
-
</script><script type="module">var e=`starlight-theme`,t=e=>e===`auto`||e===`dark`||e===`light`?e:`auto`,n=()=>t(typeof localStorage<`u`&&localStorage.getItem(e));function r(t){typeof localStorage<`u`&&localStorage.setItem(e,t===`light`||t===`dark`?t:``)}var i=()=>matchMedia(`(prefers-color-scheme: light)`).matches?`light`:`dark`;function a(e){StarlightThemeProvider.updatePickers(e),document.documentElement.dataset.theme=e===`auto`?i():e,r(e)}matchMedia(`(prefers-color-scheme: light)`).addEventListener(`change`,()=>{n()===`auto`&&a(`auto`)});var o=class extends HTMLElement{constructor(){super(),a(n()),this.querySelector(`select`)?.addEventListener(`change`,e=>{e.currentTarget instanceof HTMLSelectElement&&a(t(e.currentTarget.value))})}};customElements.define(`starlight-theme-select`,o);</script><script type="module">var e=class extends HTMLElement{constructor(){super();let e=this.querySelector(`select`);e&&(e.addEventListener(`change`,e=>{e.currentTarget instanceof HTMLSelectElement&&(window.location.pathname=e.currentTarget.value)}),window.addEventListener(`pageshow`,t=>{if(!t.persisted)return;let n=e.querySelector(`option[selected]`)?.index;n!==e.selectedIndex&&(e.selectedIndex=n??0)}))}};customElements.define(`starlight-lang-select`,e);</script></div></div></header><nav class="sidebar print:hidden astro-
|
|
41
|
+
</script><script type="module">var e=`starlight-theme`,t=e=>e===`auto`||e===`dark`||e===`light`?e:`auto`,n=()=>t(typeof localStorage<`u`&&localStorage.getItem(e));function r(t){typeof localStorage<`u`&&localStorage.setItem(e,t===`light`||t===`dark`?t:``)}var i=()=>matchMedia(`(prefers-color-scheme: light)`).matches?`light`:`dark`;function a(e){StarlightThemeProvider.updatePickers(e),document.documentElement.dataset.theme=e===`auto`?i():e,r(e)}matchMedia(`(prefers-color-scheme: light)`).addEventListener(`change`,()=>{n()===`auto`&&a(`auto`)});var o=class extends HTMLElement{constructor(){super(),a(n()),this.querySelector(`select`)?.addEventListener(`change`,e=>{e.currentTarget instanceof HTMLSelectElement&&a(t(e.currentTarget.value))})}};customElements.define(`starlight-theme-select`,o);</script><script type="module">var e=class extends HTMLElement{constructor(){super();let e=this.querySelector(`select`);e&&(e.addEventListener(`change`,e=>{e.currentTarget instanceof HTMLSelectElement&&(window.location.pathname=e.currentTarget.value)}),window.addEventListener(`pageshow`,t=>{if(!t.persisted)return;let n=e.querySelector(`option[selected]`)?.index;n!==e.selectedIndex&&(e.selectedIndex=n??0)}))}};customElements.define(`starlight-lang-select`,e);</script></div></div></header><nav class="sidebar print:hidden astro-yntsjkba" aria-label="Main"><button popovertarget="starlight__sidebar" class="sl-menu-button sl-flex md:sl-hidden print:hidden astro-r2osgdlg"><svg aria-hidden="true" class="open-menu astro-r2osgdlg astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M3 8h18a1 1 0 1 0 0-2H3a1 1 0 0 0 0 2Zm18 8H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Zm0-5H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Z"/></svg><svg aria-hidden="true" class="close-menu astro-r2osgdlg astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="m13.41 12 6.3-6.29a1.004 1.004 0 1 0-1.42-1.42L12 10.59l-6.29-6.3a1.004 1.004 0 0 0-1.42 1.42l6.3 6.29-6.3 6.29a1 1 0 0 0 0 1.42.998.998 0 0 0 1.42 0l6.29-6.3 6.29 6.3a.999.999 0 0 0 1.42 0 1 1 0 0 0 0-1.42L13.41 12Z"/></svg><span class="sr-only astro-r2osgdlg">Menu</span></button><script type="module">var e=class extends HTMLElement{constructor(){super();let e=matchMedia(`(min-width: 50em)`),t=()=>{this.popover=e.matches?null:`auto`};t(),e.addEventListener(`change`,()=>t()),this.addEventListener(`toggle`,({newState:e})=>this.trapFocus(e===`open`))}trapFocus(e){document.querySelectorAll(`.main-frame, .sl-skip-link`).forEach(t=>{t.toggleAttribute(`inert`,e)})}};customElements.define(`sl-sidebar-pane`,e);</script><sl-sidebar-pane popover id="starlight__sidebar" class="sidebar-pane astro-yntsjkba"><div class="sidebar-content sl-flex astro-yntsjkba"><sl-sidebar-state-persist data-hash="0xizxmh" class="astro-ipdry5cl"><script aria-hidden="true">
|
|
42
42
|
(() => {
|
|
43
43
|
try {
|
|
44
44
|
if (!matchMedia('(min-width: 50em)').matches) return;
|
|
@@ -68,9 +68,9 @@
|
|
|
68
68
|
scroller.scrollTop = window._starlightScrollRestore;
|
|
69
69
|
delete window._starlightScrollRestore;
|
|
70
70
|
})();
|
|
71
|
-
</script></sl-sidebar-state-persist><div class="md:sl-hidden astro-wv7whodv"><div class="mobile-preferences sl-flex astro-
|
|
71
|
+
</script></sl-sidebar-state-persist><div class="md:sl-hidden astro-wv7whodv"><div class="mobile-preferences sl-flex astro-p4azlveh"><div class="social-icons astro-p4azlveh"><a href="https://github.com/rhizomatics/boat-tech-directory" rel="me" class="sl-flex astro-n2mnl6yq"><span class="sr-only astro-n2mnl6yq">GitHub</span><svg aria-hidden="true" class="astro-n2mnl6yq astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg></a></div><starlight-theme-select><label style="--sl-select-width: 6.25em" class="astro-2z5xp7gb"><span class="sr-only astro-2z5xp7gb">Select theme</span><svg aria-hidden="true" class="icon label-icon astro-2z5xp7gb astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg><select autocomplete="off" class="astro-2z5xp7gb"><option value="dark" class="astro-2z5xp7gb">Dark</option><option value="light" class="astro-2z5xp7gb">Light</option><option value="auto" selected class="astro-2z5xp7gb">Auto</option></select><svg aria-hidden="true" class="icon caret astro-2z5xp7gb astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg></label></starlight-theme-select><script>
|
|
72
72
|
StarlightThemeProvider.updatePickers();
|
|
73
|
-
</script></div></div></div></
|
|
73
|
+
</script></div></div></div></sl-sidebar-pane></nav><div class="main-frame astro-yntsjkba"><script type="module">var e=document.getElementById(`starlight__sidebar`),t=e?.querySelector(`sl-sidebar-state-persist`),n=`sl-sidebar-state`,r=()=>{let r=[],i=t?.dataset.hash||``;try{let e=sessionStorage.getItem(n),t=JSON.parse(e||`{}`);Array.isArray(t.open)&&t.hash===i&&(r=t.open)}catch{}return{hash:i,open:r,scroll:e?.scrollTop||0}},i=e=>{try{sessionStorage.setItem(n,JSON.stringify(e))}catch{}},a=()=>i(r()),o=(e,t)=>{let n=r();n.open[t]=e,i(n)};t?.addEventListener(`click`,e=>{if(!(e.target instanceof Element))return;let t=e.target.closest(`summary`)?.closest(`details`);if(!t)return;let n=t.querySelector(`sl-sidebar-restore`),r=parseInt(n?.dataset.index||``);isNaN(r)||o(!t.open,r)}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&a()});</script><div class="lg:sl-flex astro-lrzkfocr"><div class="main-pane astro-lrzkfocr"><main data-pagefind-body class="astro-g5ptsecz" lang="en" dir="ltr"><div class="content-panel astro-a7po4psb"><div class="sl-container astro-a7po4psb"><h1 id="_top" class="astro-bebwqqxs">Reference</h1></div></div><div class="content-panel astro-a7po4psb"><div class="sl-container astro-a7po4psb"><div class="sl-markdown-content"><!-- Generated from ../../../../README.md by scripts/sync-readme.mjs — do not edit directly. -->
|
|
74
74
|
<ul>
|
|
75
75
|
<li id="nmea-faq"><a href="https://www.eoss.org/pubs/nmeafaq">NMEA FAQ</a> - 2006 vintage, latest and remains relevant.</li>
|
|
76
76
|
<li id="nmea-revealed"><img src="../images/icons/gitlab.png" width="16" height="16"> <a href="https://gpsd.gitlab.io/gpsd/NMEA.html">NMEA Revealed</a> - Detailed technical reference for NMEA0183, part of the gpsd project.</li>
|
|
@@ -84,4 +84,4 @@
|
|
|
84
84
|
<li id="salty-lass"><a href="http://www.saltylass.co.uk/resources">Salty Lass</a> - 2002 Bavaria 36, British flagged. Sailing, laying up, buying a boat checklists plus logbook template.</li>
|
|
85
85
|
<li id="sea-jade"><a href="https://sy-sea-jade.github.io/boatstuff/checklists">Sea Jade</a> - 2011 Bavaria Cruiser 36, British flagged. Before/after sailing, storm prep etc plus navigation templates.</li>
|
|
86
86
|
<li id="the-boat-app"><a href="https://theboatapp.com/checklists">The Boat App</a> - Dozens of checklists for maintenance and at sea.</li>
|
|
87
|
-
</ul></div><footer class="sl-flex astro-
|
|
87
|
+
</ul></div><footer class="sl-flex astro-ddtxxk7k"><div class="meta sl-flex astro-ddtxxk7k"></div><div class="pagination-links print:hidden astro-b5raizh3" dir="ltr"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/education/" rel="prev" class="astro-b5raizh3"><svg aria-hidden="true" class="astro-b5raizh3 astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17 11H9.41l3.3-3.29a1.004 1.004 0 1 0-1.42-1.42l-5 5a1 1 0 0 0-.21.33 1 1 0 0 0 0 .76 1 1 0 0 0 .21.33l5 5a1.002 1.002 0 0 0 1.639-.325 1 1 0 0 0-.219-1.095L9.41 13H17a1 1 0 0 0 0-2Z"/></svg><span class="astro-b5raizh3">Previous<br class="astro-b5raizh3"><span class="link-title astro-b5raizh3">Education</span></span></a><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/index-of-terms/" rel="next" class="astro-b5raizh3"><svg aria-hidden="true" class="astro-b5raizh3 astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17.92 11.62a1.001 1.001 0 0 0-.21-.33l-5-5a1.003 1.003 0 1 0-1.42 1.42l3.3 3.29H7a1 1 0 0 0 0 2h7.59l-3.3 3.29a1.002 1.002 0 0 0 .325 1.639 1 1 0 0 0 1.095-.219l5-5a1 1 0 0 0 .21-.33 1 1 0 0 0 0-.76Z"/></svg><span class="astro-b5raizh3">Next<br class="astro-b5raizh3"><span class="link-title astro-b5raizh3">Index</span></span></a></div></footer></div></div></main></div></div></div></div></body></html>
|