openc3-cosmos-tool-docs 5.17.1 → 5.18.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/tools/staticdocs/404.html +4 -4
- data/tools/staticdocs/assets/css/{styles.8a0f1b26.css → styles.80ddca08.css} +1 -1
- data/tools/staticdocs/assets/js/{019369f3.34291acc.js → 019369f3.727d87f1.js} +1 -1
- data/tools/staticdocs/assets/js/{058ffc22.8d9049f4.js → 058ffc22.f2d69d72.js} +1 -1
- data/tools/staticdocs/assets/js/{0686a885.dde7b18b.js → 0686a885.83641127.js} +1 -1
- data/tools/staticdocs/assets/js/078dbab0.945c9f59.js +1 -0
- data/tools/staticdocs/assets/js/{0f5d161c.ca02c5b2.js → 0f5d161c.e26d88b8.js} +1 -1
- data/tools/staticdocs/assets/js/{0ff569c9.ad025a56.js → 0ff569c9.aa4daee5.js} +1 -1
- data/tools/staticdocs/assets/js/{103cc3be.6b6cd0fa.js → 103cc3be.78f97eb1.js} +1 -1
- data/tools/staticdocs/assets/js/{13196248.9e7794e3.js → 13196248.ca2e8950.js} +1 -1
- data/tools/staticdocs/assets/js/{13c1b4e4.cec67b9c.js → 13c1b4e4.22a0b1d4.js} +1 -1
- data/tools/staticdocs/assets/js/{2047b354.bdd2586a.js → 2047b354.25d11993.js} +1 -1
- data/tools/staticdocs/assets/js/22b3ac48.7a5ea984.js +1 -0
- data/tools/staticdocs/assets/js/{2bb7bf90.043455de.js → 2bb7bf90.fa05d998.js} +1 -1
- data/tools/staticdocs/assets/js/3917.1ec7d126.js +1 -0
- data/tools/staticdocs/assets/js/{3dd7ef3b.c7c1d93f.js → 3dd7ef3b.d55880a8.js} +1 -1
- data/tools/staticdocs/assets/js/{40365d27.7eb3f7b1.js → 40365d27.4b4b2ccd.js} +1 -1
- data/tools/staticdocs/assets/js/{411898ad.d5f62a27.js → 411898ad.1d6a609d.js} +1 -1
- data/tools/staticdocs/assets/js/{42170351.69a8ed02.js → 42170351.c68b85e1.js} +1 -1
- data/tools/staticdocs/assets/js/43652efd.d1e1add3.js +1 -0
- data/tools/staticdocs/assets/js/53ca7c5b.c3111020.js +1 -0
- data/tools/staticdocs/assets/js/{54d0d530.28ba5be7.js → 54d0d530.d3f9a4ac.js} +1 -1
- data/tools/staticdocs/assets/js/{5b233ba7.9c621552.js → 5b233ba7.6fdd6b6c.js} +1 -1
- data/tools/staticdocs/assets/js/{5bc719f6.7fa17221.js → 5bc719f6.daa2a049.js} +1 -1
- data/tools/staticdocs/assets/js/{5c6ce5ec.5e6ca46b.js → 5c6ce5ec.61a9cae2.js} +1 -1
- data/tools/staticdocs/assets/js/5e3ed378.2bee863a.js +1 -0
- data/tools/staticdocs/assets/js/5fe211ef.a9f21277.js +1 -0
- data/tools/staticdocs/assets/js/6831b732.185eb427.js +1 -0
- data/tools/staticdocs/assets/js/{696b4199.0335bd94.js → 696b4199.a5ae3d65.js} +1 -1
- data/tools/staticdocs/assets/js/{6b210247.2cbd59e6.js → 6b210247.e96f3982.js} +1 -1
- data/tools/staticdocs/assets/js/{6b65133b.87dc7da6.js → 6b65133b.4e84b1c2.js} +1 -1
- data/tools/staticdocs/assets/js/6f92e431.65aa0240.js +1 -0
- data/tools/staticdocs/assets/js/72c6d8a8.98daa27a.js +1 -0
- data/tools/staticdocs/assets/js/{75e64983.932fbc0e.js → 75e64983.6ef0928b.js} +1 -1
- data/tools/staticdocs/assets/js/{867640d5.ffd4cf4c.js → 867640d5.48133ad5.js} +1 -1
- data/tools/staticdocs/assets/js/{89e76475.97389cc5.js → 89e76475.13ce283b.js} +1 -1
- data/tools/staticdocs/assets/js/{8f7843ee.d1ffd5ee.js → 8f7843ee.7a68246a.js} +1 -1
- data/tools/staticdocs/assets/js/9424f0b3.61c6bd97.js +1 -0
- data/tools/staticdocs/assets/js/{97535711.fc45ced1.js → 97535711.5311ddd9.js} +1 -1
- data/tools/staticdocs/assets/js/{99581c43.8e571df8.js → 99581c43.527aab44.js} +1 -1
- data/tools/staticdocs/assets/js/{9fb6059a.42881e94.js → 9fb6059a.a5107afb.js} +1 -1
- data/tools/staticdocs/assets/js/{a507c363.04b98d2c.js → a507c363.d2cc5d72.js} +1 -1
- data/tools/staticdocs/assets/js/{a677c089.b2928bac.js → a677c089.abc52ace.js} +1 -1
- data/tools/staticdocs/assets/js/{a9987364.8f065f19.js → a9987364.5ef1644f.js} +1 -1
- data/tools/staticdocs/assets/js/{aa6b6c1b.d78e5212.js → aa6b6c1b.c51c044d.js} +1 -1
- data/tools/staticdocs/assets/js/{b4596165.6806d46b.js → b4596165.daa24b72.js} +1 -1
- data/tools/staticdocs/assets/js/b6d70f94.4923c793.js +1 -0
- data/tools/staticdocs/assets/js/b9f60ba6.e55cd937.js +1 -0
- data/tools/staticdocs/assets/js/{bd0034eb.b4e3d6c1.js → bd0034eb.6691ccc4.js} +1 -1
- data/tools/staticdocs/assets/js/c24eae19.251e0038.js +1 -0
- data/tools/staticdocs/assets/js/{cb8c3f08.a0ef4b5f.js → cb8c3f08.b82ad06f.js} +1 -1
- data/tools/staticdocs/assets/js/cd879be4.f956406f.js +1 -0
- data/tools/staticdocs/assets/js/d1b923aa.d6bafb72.js +1 -0
- data/tools/staticdocs/assets/js/{d1bfc316.2d823a88.js → d1bfc316.0a5ff560.js} +1 -1
- data/tools/staticdocs/assets/js/{d24bf9b6.53eca5e8.js → d24bf9b6.6c422113.js} +1 -1
- data/tools/staticdocs/assets/js/{d57a4b5d.aaa48891.js → d57a4b5d.8f23a506.js} +1 -1
- data/tools/staticdocs/assets/js/{d5d77c37.be6fe7b6.js → d5d77c37.70fdbbc6.js} +1 -1
- data/tools/staticdocs/assets/js/{d8ca4191.c6632184.js → d8ca4191.2349d796.js} +1 -1
- data/tools/staticdocs/assets/js/{d9b92eba.c6a2c7e5.js → d9b92eba.8f82360d.js} +1 -1
- data/tools/staticdocs/assets/js/{db8fa1d0.f078bc02.js → db8fa1d0.8f1b2c9f.js} +1 -1
- data/tools/staticdocs/assets/js/{dc5f7beb.a4afe7cd.js → dc5f7beb.e3a82d1e.js} +1 -1
- data/tools/staticdocs/assets/js/{e501b0d1.d108a8a9.js → e501b0d1.0b407477.js} +1 -1
- data/tools/staticdocs/assets/js/ebec1ccb.9bea92b0.js +1 -0
- data/tools/staticdocs/assets/js/f15615f1.5c433923.js +1 -0
- data/tools/staticdocs/assets/js/{fd886806.a21dd400.js → fd886806.4a41fa80.js} +1 -1
- data/tools/staticdocs/assets/js/main.b5390098.js +2 -0
- data/tools/staticdocs/assets/js/runtime~main.12d1e41d.js +1 -0
- data/tools/staticdocs/docs/configuration/command.html +96 -180
- data/tools/staticdocs/docs/configuration/format.html +25 -54
- data/tools/staticdocs/docs/configuration/interfaces.html +25 -80
- data/tools/staticdocs/docs/configuration/plugins.html +138 -178
- data/tools/staticdocs/docs/configuration/protocols.html +91 -110
- data/tools/staticdocs/docs/configuration/ssl-tls.html +33 -104
- data/tools/staticdocs/docs/configuration/table.html +67 -125
- data/tools/staticdocs/docs/configuration/target.html +23 -31
- data/tools/staticdocs/docs/configuration/telemetry-screens.html +194 -455
- data/tools/staticdocs/docs/configuration/telemetry.html +104 -187
- data/tools/staticdocs/docs/configuration.html +4 -4
- data/tools/staticdocs/docs/development/curl.html +17 -126
- data/tools/staticdocs/docs/development/developing.html +29 -80
- data/tools/staticdocs/docs/development/host-install.html +10 -23
- data/tools/staticdocs/docs/development/json-api.html +20 -32
- data/tools/staticdocs/docs/development/log-structure.html +14 -14
- data/tools/staticdocs/docs/development/roadmap.html +15 -15
- data/tools/staticdocs/docs/development/streaming-api.html +11 -83
- data/tools/staticdocs/docs/development/testing.html +17 -26
- data/tools/staticdocs/docs/development.html +4 -4
- data/tools/staticdocs/docs/getting-started/generators.html +35 -109
- data/tools/staticdocs/docs/getting-started/gettingstarted.html +26 -74
- data/tools/staticdocs/docs/getting-started/installation.html +24 -35
- data/tools/staticdocs/docs/getting-started/key_concepts.html +35 -35
- data/tools/staticdocs/docs/getting-started/podman.html +26 -57
- data/tools/staticdocs/docs/getting-started/requirements.html +21 -21
- data/tools/staticdocs/docs/getting-started/upgrading.html +12 -17
- data/tools/staticdocs/docs/getting-started.html +4 -4
- data/tools/staticdocs/docs/guides/bridges.html +19 -63
- data/tools/staticdocs/docs/guides/cfs.html +44 -184
- data/tools/staticdocs/docs/guides/custom-widgets.html +20 -47
- data/tools/staticdocs/docs/guides/little-endian-bitfields.html +5 -14
- data/tools/staticdocs/docs/guides/local-mode.html +16 -21
- data/tools/staticdocs/docs/guides/logging.html +12 -12
- data/tools/staticdocs/docs/guides/monitoring.html +22 -137
- data/tools/staticdocs/docs/guides/performance.html +18 -27
- data/tools/staticdocs/docs/guides/raspberrypi.html +10 -23
- data/tools/staticdocs/docs/guides/script-writing.html +85 -391
- data/tools/staticdocs/docs/guides/scripting-api.html +482 -1353
- data/tools/staticdocs/docs/guides.html +4 -4
- data/tools/staticdocs/docs/meta/contributing.html +14 -19
- data/tools/staticdocs/docs/meta/licenses.html +13 -31
- data/tools/staticdocs/docs/meta/philosophy.html +4 -4
- data/tools/staticdocs/docs/meta/xtce.html +15 -17
- data/tools/staticdocs/docs/meta.html +4 -4
- data/tools/staticdocs/docs/privacy.html +20 -20
- data/tools/staticdocs/docs/tools/autonomic.html +22 -22
- data/tools/staticdocs/docs/tools/bucket-explorer.html +13 -13
- data/tools/staticdocs/docs/tools/calendar.html +21 -21
- data/tools/staticdocs/docs/tools/cmd-sender.html +16 -16
- data/tools/staticdocs/docs/tools/cmd-tlm-server.html +23 -23
- data/tools/staticdocs/docs/tools/data-extractor.html +27 -27
- data/tools/staticdocs/docs/tools/data-viewer.html +13 -13
- data/tools/staticdocs/docs/tools/handbooks.html +7 -7
- data/tools/staticdocs/docs/tools/limits-monitor.html +19 -19
- data/tools/staticdocs/docs/tools/packet-viewer.html +16 -16
- data/tools/staticdocs/docs/tools/script-runner.html +36 -75
- data/tools/staticdocs/docs/tools/table-manager.html +13 -48
- data/tools/staticdocs/docs/tools/tlm-grapher.html +23 -23
- data/tools/staticdocs/docs/tools/tlm-viewer.html +18 -18
- data/tools/staticdocs/docs/tools.html +4 -4
- data/tools/staticdocs/docs.html +14 -14
- data/tools/staticdocs/index.html +4 -4
- data/tools/staticdocs/lunr-index-1724101625047.json +1 -0
- data/tools/staticdocs/lunr-index.json +1 -1
- data/tools/staticdocs/markdown-page.html +5 -5
- data/tools/staticdocs/search-doc-1724101625047.json +1 -0
- data/tools/staticdocs/search-doc.json +1 -1
- metadata +71 -71
- data/tools/staticdocs/assets/js/078dbab0.b275e04c.js +0 -1
- data/tools/staticdocs/assets/js/22b3ac48.0f4fbe9d.js +0 -1
- data/tools/staticdocs/assets/js/43652efd.be2c1d02.js +0 -1
- data/tools/staticdocs/assets/js/4650.292aca67.js +0 -1
- data/tools/staticdocs/assets/js/53ca7c5b.3f1245d5.js +0 -1
- data/tools/staticdocs/assets/js/5e3ed378.77db7b87.js +0 -1
- data/tools/staticdocs/assets/js/5fe211ef.71dc8326.js +0 -1
- data/tools/staticdocs/assets/js/6831b732.5714d508.js +0 -1
- data/tools/staticdocs/assets/js/6f92e431.300a9857.js +0 -1
- data/tools/staticdocs/assets/js/72c6d8a8.cfccace6.js +0 -1
- data/tools/staticdocs/assets/js/9424f0b3.29299bde.js +0 -1
- data/tools/staticdocs/assets/js/b6d70f94.f5514e8b.js +0 -1
- data/tools/staticdocs/assets/js/b9f60ba6.c3b3046d.js +0 -1
- data/tools/staticdocs/assets/js/c24eae19.6b084c7c.js +0 -1
- data/tools/staticdocs/assets/js/cd879be4.6f19050a.js +0 -1
- data/tools/staticdocs/assets/js/d1b923aa.3f3e186d.js +0 -1
- data/tools/staticdocs/assets/js/ebec1ccb.1ded1149.js +0 -1
- data/tools/staticdocs/assets/js/f15615f1.f9b655a6.js +0 -1
- data/tools/staticdocs/assets/js/main.c2e2b617.js +0 -2
- data/tools/staticdocs/assets/js/runtime~main.2bb31799.js +0 -1
- data/tools/staticdocs/lunr-index-1719505302032.json +0 -1
- data/tools/staticdocs/search-doc-1719505302032.json +0 -1
- /data/tools/staticdocs/assets/js/{main.c2e2b617.js.LICENSE.txt → main.b5390098.js.LICENSE.txt} +0 -0
@@ -2,23 +2,23 @@
|
|
2
2
|
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-guides/bridges" data-has-hydrated="false">
|
3
3
|
<head>
|
4
4
|
<meta charset="UTF-8">
|
5
|
-
<meta name="generator" content="Docusaurus v3.
|
6
|
-
<title data-rh="true">Bridges | OpenC3 Docs</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://docs.openc3.com/tools/staticdocs/docs/guides/bridges"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Bridges | OpenC3 Docs"><meta data-rh="true" name="description" content="COSMOS Bridges provide an easy solution for getting data from devices that don't speak Ethernet into COSMOS."><meta data-rh="true" property="og:description" content="COSMOS Bridges provide an easy solution for getting data from devices that don't speak Ethernet into COSMOS."><link data-rh="true" rel="icon" href="/tools/staticdocs/img/favicon.png"><link data-rh="true" rel="canonical" href="https://docs.openc3.com/tools/staticdocs/docs/guides/bridges"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/guides/bridges" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/guides/bridges" hreflang="x-default"><link rel="stylesheet" href="/tools/staticdocs/assets/css/styles.
|
7
|
-
<script src="/tools/staticdocs/assets/js/runtime~main.
|
8
|
-
<script src="/tools/staticdocs/assets/js/main.
|
5
|
+
<meta name="generator" content="Docusaurus v3.5.2">
|
6
|
+
<title data-rh="true">Bridges | OpenC3 Docs</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://docs.openc3.com/tools/staticdocs/docs/guides/bridges"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Bridges | OpenC3 Docs"><meta data-rh="true" name="description" content="COSMOS Bridges provide an easy solution for getting data from devices that don't speak Ethernet into COSMOS."><meta data-rh="true" property="og:description" content="COSMOS Bridges provide an easy solution for getting data from devices that don't speak Ethernet into COSMOS."><link data-rh="true" rel="icon" href="/tools/staticdocs/img/favicon.png"><link data-rh="true" rel="canonical" href="https://docs.openc3.com/tools/staticdocs/docs/guides/bridges"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/guides/bridges" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/guides/bridges" hreflang="x-default"><link rel="stylesheet" href="/tools/staticdocs/assets/css/styles.80ddca08.css">
|
7
|
+
<script src="/tools/staticdocs/assets/js/runtime~main.12d1e41d.js" defer="defer"></script>
|
8
|
+
<script src="/tools/staticdocs/assets/js/main.b5390098.js" defer="defer"></script>
|
9
9
|
</head>
|
10
10
|
<body class="navigation-with-keyboard">
|
11
11
|
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"dark")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_G6ar" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/tools/staticdocs/"><div class="navbar__logo"><img src="/tools/staticdocs/img/logo.svg" alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--light_DIHH"><img src="/tools/staticdocs/img/logo.svg" alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--dark_Bv2M"></div><b class="navbar__title text--truncate">OpenC3 Docs</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/tools/staticdocs/docs">Documentation</a><a href="https://openc3.com/enterprise/" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Enterprise</a></div><div class="navbar__items navbar__items--right"><div class="navbarSearchContainer_bmvg"><div class="navbar__search"><span aria-label="expand searchbar" role="button" class="search-icon" tabindex="0"></span><input id="search_input_react" type="search" placeholder="Loading..." aria-label="Search" class="navbar__search-input search-bar" disabled=""></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_UyTV"><div class="docsWrapper_XLvK"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_z1FD" type="button"></button><div class="docRoot_HciC"><aside class="theme-doc-sidebar-container docSidebarContainer_e5ai"><div class="sidebarViewport_N8x0"><div class="sidebar_vJCc"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_qiME"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/tools/staticdocs/docs">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/tools/staticdocs/docs/getting-started">Getting Started</a><button aria-label="Expand sidebar category 'Getting Started'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/tools/staticdocs/docs/configuration">Configuration</a><button aria-label="Expand sidebar category 'Configuration'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/tools/staticdocs/docs/tools">Tools</a><button aria-label="Expand sidebar category 'Tools'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" href="/tools/staticdocs/docs/guides">Guides</a><button aria-label="Collapse sidebar category 'Guides'" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/tools/staticdocs/docs/guides/bridges">Bridges</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/cfs">COSMOS and NASA cFS</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/custom-widgets">Custom Widgets</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/little-endian-bitfields">Little Endian Bitfields</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/local-mode">Local Mode</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/logging">Logging</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/monitoring">Monitoring</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/performance">Performance</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/raspberrypi">Raspberry Pi</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/script-writing">Script Writing Guide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/scripting-api">Scripting API Guide</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/tools/staticdocs/docs/development">Development</a><button aria-label="Expand sidebar category 'Development'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/tools/staticdocs/docs/meta">Meta</a><button aria-label="Expand sidebar category 'Meta'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/tools/staticdocs/docs/privacy">OpenC3, Inc. Privacy Policy</a></li></ul></nav></div></div></aside><main class="docMainContainer_namt"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_YAwJ"><div class="docItemContainer_Rv5Z"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_zCmv" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/tools/staticdocs/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_JFrk"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/tools/staticdocs/docs/guides"><span itemprop="name">Guides</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Bridges</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_O_Qc theme-doc-toc-mobile tocMobile_tjDr"><button type="button" class="clean-btn tocCollapsibleButton_htYj">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Bridges</h1></header><p>COSMOS Bridges provide an easy solution for getting data from devices that don't speak Ethernet into COSMOS.
|
12
12
|
Serial ports are the most common, but other devices such as USB, PCI cards, and Bluetooth devices can also be
|
13
13
|
supported by using bridges to convert from a host computer accessible device, into an Ethernet byte stream that
|
14
14
|
COSMOS can process from inside of containers.</p>
|
15
|
-
<admonition
|
16
|
-
packet delineation.</p></
|
17
|
-
<h2 id="bridges-are-generally-just-an-interface-and-router">Bridges are Generally Just an Interface and Router
|
15
|
+
<div class="theme-admonition theme-admonition-warning admonition_IZjC alert alert--warning"><div class="admonitionHeading_uVvU"><span class="admonitionIcon_HiR3"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Bridges are Meant to be Dumb</div><div class="admonitionContent_bl22"><p>The purpose of bridges is to get bytes into COSMOS. Processing should be done in COSMOS itself, including details such as
|
16
|
+
packet delineation.</p></div></div>
|
17
|
+
<h2 class="anchor anchorWithStickyNavbar_fF9Z" id="bridges-are-generally-just-an-interface-and-router">Bridges are Generally Just an Interface and Router<a href="#bridges-are-generally-just-an-interface-and-router" class="hash-link" aria-label="Direct link to Bridges are Generally Just an Interface and Router" title="Direct link to Bridges are Generally Just an Interface and Router"></a></h2>
|
18
18
|
<p>Bridges are generally made up of a COSMOS Interface class that pull data from a host connected device, and a Router that forwards that data to
|
19
19
|
COSMOS over TCP/IP. In most cases, data can be safely sent to COSMOS using the BURST protocol, and let the COSMOS side use the correct packet delineation
|
20
20
|
protocol like LENGTH.</p>
|
21
|
-
<h2 id="host-requirements-for-running-bridges">Host Requirements for Running Bridges
|
21
|
+
<h2 class="anchor anchorWithStickyNavbar_fF9Z" id="host-requirements-for-running-bridges">Host Requirements for Running Bridges<a href="#host-requirements-for-running-bridges" class="hash-link" aria-label="Direct link to Host Requirements for Running Bridges" title="Direct link to Host Requirements for Running Bridges"></a></h2>
|
22
22
|
<ul>
|
23
23
|
<li>Requires a host Ruby installation (Ruby 3)</li>
|
24
24
|
<li>Install the OpenC3 gem<!-- -->
|
@@ -33,75 +33,31 @@ protocol like LENGTH.</p>
|
|
33
33
|
</li>
|
34
34
|
<li>If successful, you should be able to run <code>openc3cli</code> from a terminal</li>
|
35
35
|
</ul>
|
36
|
-
<h2 id="bridge-configuration-bridgetxt">Bridge Configuration: bridge.txt
|
36
|
+
<h2 class="anchor anchorWithStickyNavbar_fF9Z" id="bridge-configuration-bridgetxt">Bridge Configuration: bridge.txt<a href="#bridge-configuration-bridgetxt" class="hash-link" aria-label="Direct link to Bridge Configuration: bridge.txt" title="Direct link to Bridge Configuration: bridge.txt"></a></h2>
|
37
37
|
<p>Bridges are run using an configuration file named bridge.txt. This file is a subset of the plugin.txt configuration syntax supporting VARIABLE, INTERFACE, ROUTER, and associated modifier keywords. However, BRIDGES HAVE NO KNOWLEDGE OF TARGETS. So instead of MAP_TARGETS, the INTERFACE is associated with the ROUTER using the ROUTE keyword.</p>
|
38
38
|
<p>The following is the default bridge.txt that is generated by running <code>openc3cli bridgesetup</code></p>
|
39
|
-
<pre><code class="language-ruby"># Write serial port name
|
40
|
-
VARIABLE write_port_name COM1
|
41
|
-
|
42
|
-
# Read serial port name
|
43
|
-
VARIABLE read_port_name COM1
|
44
|
-
|
45
|
-
# Baud Rate
|
46
|
-
VARIABLE baud_rate 115200
|
47
|
-
|
48
|
-
# Parity - NONE, ODD, or EVEN
|
49
|
-
VARIABLE parity NONE
|
50
|
-
|
51
|
-
# Stop bits - 0, 1, or 2
|
52
|
-
VARIABLE stop_bits 1
|
53
|
-
|
54
|
-
# Write Timeout
|
55
|
-
VARIABLE write_timeout 10.0
|
56
|
-
|
57
|
-
# Read Timeout
|
58
|
-
VARIABLE read_timeout nil
|
59
|
-
|
60
|
-
# Flow Control - NONE, or RTSCTS
|
61
|
-
VARIABLE flow_control NONE
|
62
|
-
|
63
|
-
# Data bits per word - Typically 8
|
64
|
-
VARIABLE data_bits 8
|
65
|
-
|
66
|
-
# Port to listen for connections from COSMOS - Plugin must match
|
67
|
-
VARIABLE router_port 2950
|
68
|
-
|
69
|
-
# Port to listen on for connections from COSMOS. Defaults to localhost for security. Will need to be opened
|
70
|
-
# if COSMOS is on another machine.
|
71
|
-
VARIABLE router_listen_address 127.0.0.1
|
72
|
-
|
73
|
-
INTERFACE SERIAL_INT serial_interface.rb <%= write_port_name %> <%= read_port_name %> <%= baud_rate %> <%= parity %> <%= stop_bits %> <%= write_timeout %> <%= read_timeout %>
|
74
|
-
OPTION FLOW_CONTROL <%= flow_control %>
|
75
|
-
OPTION DATA_BITS <%= data_bits %>
|
76
|
-
|
77
|
-
ROUTER SERIAL_ROUTER tcpip_server_interface.rb <%= router_port %> <%= router_port %> 10.0 nil BURST
|
78
|
-
ROUTE SERIAL_INT
|
79
|
-
OPTION LISTEN_ADDRESS <%= router_listen_address %>
|
80
|
-
</code></pre>
|
39
|
+
<div class="language-ruby codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-ruby codeBlock_TAPP thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_AdAo"><span class="token-line" style="color:#d6deeb"><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Write serial port name</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token constant" style="color:rgb(130, 170, 255)">VARIABLE</span><span class="token plain"> write_port_name </span><span class="token constant" style="color:rgb(130, 170, 255)">COM1</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Read serial port name</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token constant" style="color:rgb(130, 170, 255)">VARIABLE</span><span class="token plain"> read_port_name </span><span class="token constant" style="color:rgb(130, 170, 255)">COM1</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Baud Rate</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token constant" style="color:rgb(130, 170, 255)">VARIABLE</span><span class="token plain"> baud_rate </span><span class="token number" style="color:rgb(247, 140, 108)">115200</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Parity - NONE, ODD, or EVEN</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token constant" style="color:rgb(130, 170, 255)">VARIABLE</span><span class="token plain"> parity </span><span class="token constant" style="color:rgb(130, 170, 255)">NONE</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Stop bits - 0, 1, or 2</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token constant" style="color:rgb(130, 170, 255)">VARIABLE</span><span class="token plain"> stop_bits </span><span class="token number" style="color:rgb(247, 140, 108)">1</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Write Timeout</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token constant" style="color:rgb(130, 170, 255)">VARIABLE</span><span class="token plain"> write_timeout </span><span class="token number" style="color:rgb(247, 140, 108)">10.0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Read Timeout</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token constant" style="color:rgb(130, 170, 255)">VARIABLE</span><span class="token plain"> read_timeout </span><span class="token keyword" style="color:rgb(127, 219, 202)">nil</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Flow Control - NONE, or RTSCTS</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token constant" style="color:rgb(130, 170, 255)">VARIABLE</span><span class="token plain"> flow_control </span><span class="token constant" style="color:rgb(130, 170, 255)">NONE</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Data bits per word - Typically 8</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token constant" style="color:rgb(130, 170, 255)">VARIABLE</span><span class="token plain"> data_bits </span><span class="token number" style="color:rgb(247, 140, 108)">8</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Port to listen for connections from COSMOS - Plugin must match</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token constant" style="color:rgb(130, 170, 255)">VARIABLE</span><span class="token plain"> router_port </span><span class="token number" style="color:rgb(247, 140, 108)">2950</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Port to listen on for connections from COSMOS. Defaults to localhost for security. Will need to be opened</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># if COSMOS is on another machine.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token constant" style="color:rgb(130, 170, 255)">VARIABLE</span><span class="token plain"> router_listen_address </span><span class="token number" style="color:rgb(247, 140, 108)">127.0</span><span class="token number" style="color:rgb(247, 140, 108)">.0</span><span class="token number" style="color:rgb(247, 140, 108)">.1</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token constant" style="color:rgb(130, 170, 255)">INTERFACE</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">SERIAL_INT</span><span class="token plain"> serial_interface</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">rb </span><span class="token operator" style="color:rgb(127, 219, 202)"><</span><span class="token operator" style="color:rgb(127, 219, 202)">%=</span><span class="token plain"> write_port_name </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">%> <%= read_port_name %></span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)"><</span><span class="token operator" style="color:rgb(127, 219, 202)">%=</span><span class="token plain"> baud_rate </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">%> <%= parity %></span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)"><</span><span class="token operator" style="color:rgb(127, 219, 202)">%=</span><span class="token plain"> stop_bits </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">%> <%= write_timeout %></span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)"><</span><span class="token operator" style="color:rgb(127, 219, 202)">%=</span><span class="token plain"> read_timeout </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">%></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token string-literal string" style="color:rgb(173, 219, 103)"> OPTION FLOW_CONTROL <%= flow_control %></span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">OPTION</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">DATA_BITS</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)"><</span><span class="token operator" style="color:rgb(127, 219, 202)">%=</span><span class="token plain"> data_bits </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">%></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token string-literal string" style="display:inline-block;color:rgb(173, 219, 103)"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token string-literal string" style="color:rgb(173, 219, 103)">ROUTER SERIAL_ROUTER tcpip_server_interface.rb <%= router_port %></span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)"><</span><span class="token operator" style="color:rgb(127, 219, 202)">%=</span><span class="token plain"> router_port </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">%> 10.0 nil BURST</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token string-literal string" style="color:rgb(173, 219, 103)"> ROUTE SERIAL_INT</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token string-literal string" style="color:rgb(173, 219, 103)"> OPTION LISTEN_ADDRESS <%= router_listen_address %></span><br></span></code></pre><div class="buttonGroup_TNwR"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_MVhB" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_yxgH"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_QJLJ"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
|
81
40
|
<p>VARIABLE provides default values to variables that can be changed when the bridge is started. This example shows an INTERFACE that is configured to use the serial_interface.rb class. It also includes a standard ROUTER using tcpip_server_interface.rb that COSMOS can connect to and get the data from the serial port. The LISTEN_ADDRESS is set to 127.0.0.1 in this example to prevent access from outside of the host system. Docker running on the same machine can access
|
82
41
|
this server using the host.docker.internal hostname and the configured port (2950 in this example).</p>
|
83
|
-
<h2 id="bridge-commands-openc3cli">Bridge Commands: openc3cli
|
42
|
+
<h2 class="anchor anchorWithStickyNavbar_fF9Z" id="bridge-commands-openc3cli">Bridge Commands: openc3cli<a href="#bridge-commands-openc3cli" class="hash-link" aria-label="Direct link to Bridge Commands: openc3cli" title="Direct link to Bridge Commands: openc3cli"></a></h2>
|
84
43
|
<p><code>openc3cli bridgesetup</code></p>
|
85
44
|
<p>Generates a bridge.txt example file</p>
|
86
45
|
<p><code>openc3cli bridge [filename] [variable1=value1] [variable2=value2]</code></p>
|
87
46
|
<p>Runs a bridge from a given configuration file. Defaults to bridge.txt in the current directory. Variables can also be passed into to override VARIABLE defaults.</p>
|
88
47
|
<p><code>openc3cli bridgegem [gem_name] [variable1=value1] [variable2=value2]</code></p>
|
89
48
|
<p>Runs a bridge using the bridge.txt provided in a bridge gem. Variables can also be passed into to override VARIABLE defaults.</p>
|
90
|
-
<h2 id="example-bridge-gems">Example Bridge Gems
|
49
|
+
<h2 class="anchor anchorWithStickyNavbar_fF9Z" id="example-bridge-gems">Example Bridge Gems<a href="#example-bridge-gems" class="hash-link" aria-label="Direct link to Example Bridge Gems" title="Direct link to Example Bridge Gems"></a></h2>
|
91
50
|
<ul>
|
92
|
-
<li>Serial Port: <a href="https://github.com/OpenC3/openc3-cosmos-bridge-serial">openc3-cosmos-bridge-serial</a></li>
|
93
|
-
<li>Host: <a href="https://github.com/OpenC3/openc3-cosmos-bridge-host">openc3-cosmos-bridge-host</a></li>
|
94
|
-
<li>HIDAPI: <a href="https://github.com/OpenC3/openc3-cosmos-bridge-hidapi">openc3-cosmos-bridge-hidapi</a></li>
|
95
|
-
<li>PS5 Dual Sense Controller: <a href="https://github.com/OpenC3/openc3-cosmos-bridge-dualsense">openc3-cosmos-bridge-dualsense</a></li>
|
51
|
+
<li>Serial Port: <a href="https://github.com/OpenC3/openc3-cosmos-bridge-serial" target="_blank" rel="noopener noreferrer">openc3-cosmos-bridge-serial</a></li>
|
52
|
+
<li>Host: <a href="https://github.com/OpenC3/openc3-cosmos-bridge-host" target="_blank" rel="noopener noreferrer">openc3-cosmos-bridge-host</a></li>
|
53
|
+
<li>HIDAPI: <a href="https://github.com/OpenC3/openc3-cosmos-bridge-hidapi" target="_blank" rel="noopener noreferrer">openc3-cosmos-bridge-hidapi</a></li>
|
54
|
+
<li>PS5 Dual Sense Controller: <a href="https://github.com/OpenC3/openc3-cosmos-bridge-dualsense" target="_blank" rel="noopener noreferrer">openc3-cosmos-bridge-dualsense</a></li>
|
96
55
|
</ul>
|
97
|
-
<h2 id="note-on-serial-ports">Note on Serial Ports
|
56
|
+
<h2 class="anchor anchorWithStickyNavbar_fF9Z" id="note-on-serial-ports">Note on Serial Ports<a href="#note-on-serial-ports" class="hash-link" aria-label="Direct link to Note on Serial Ports" title="Direct link to Note on Serial Ports"></a></h2>
|
98
57
|
<p>Serial ports can be used directly without bridges on Linux Docker installations.</p>
|
99
58
|
<p>Add the following to the operator service in compose.yaml:</p>
|
100
|
-
<pre><code> devices
|
101
|
-
- "/dev/ttyUSB0:/dev/ttyUSB0"
|
102
|
-
</code></pre>
|
59
|
+
<div class="codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-text codeBlock_TAPP thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_AdAo"><span class="token-line" style="color:#d6deeb"><span class="token plain"> devices:</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> - "/dev/ttyUSB0:/dev/ttyUSB0"</span><br></span></code></pre><div class="buttonGroup_TNwR"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_MVhB" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_yxgH"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_QJLJ"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
|
103
60
|
<p>Make sure the serial device has permissions for the user running Docker to access:</p>
|
104
|
-
<pre><code>sudo chmod 666 /dev/ttyUSB0
|
105
|
-
</code></pre></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/OpenC3/cosmos/tree/main/docs.openc3.com/docs/guides/bridges.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_UohW" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_g62E"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/tools/staticdocs/docs/guides"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Guides</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/tools/staticdocs/docs/guides/cfs"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">COSMOS and NASA cFS</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_TN1Q thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/bridges#bridges-are-generally-just-an-interface-and-router">Bridges are Generally Just an Interface and Router</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/bridges#host-requirements-for-running-bridges">Host Requirements for Running Bridges</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/bridges#bridge-configuration-bridgetxt">Bridge Configuration: bridge.txt</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/bridges#bridge-commands-openc3cli">Bridge Commands: openc3cli</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/bridges#example-bridge-gems">Example Bridge Gems</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/bridges#note-on-serial-ports">Note on Serial Ports</a></li></ul></div></div></div></div></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Homepage</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://openc3.com" target="_blank" rel="noopener noreferrer" class="footer__link-item">Home</a></li></ul></div><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/tools/staticdocs/docs">Documentation</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/company/openc3" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_awgD"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/OpenC3/cosmos" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_awgD"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a class="footer__link-item" href="/tools/staticdocs/docs/privacy">Privacy</a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2024 OpenC3, Inc.</div></div></div></footer></div>
|
61
|
+
<div class="codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-text codeBlock_TAPP thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_AdAo"><span class="token-line" style="color:#d6deeb"><span class="token plain">sudo chmod 666 /dev/ttyUSB0</span><br></span></code></pre><div class="buttonGroup_TNwR"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_MVhB" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_yxgH"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_QJLJ"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/OpenC3/cosmos/tree/main/docs.openc3.com/docs/guides/bridges.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_UohW" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_g62E"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/tools/staticdocs/docs/guides"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Guides</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/tools/staticdocs/docs/guides/cfs"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">COSMOS and NASA cFS</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_TN1Q thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#bridges-are-generally-just-an-interface-and-router" class="table-of-contents__link toc-highlight">Bridges are Generally Just an Interface and Router</a></li><li><a href="#host-requirements-for-running-bridges" class="table-of-contents__link toc-highlight">Host Requirements for Running Bridges</a></li><li><a href="#bridge-configuration-bridgetxt" class="table-of-contents__link toc-highlight">Bridge Configuration: bridge.txt</a></li><li><a href="#bridge-commands-openc3cli" class="table-of-contents__link toc-highlight">Bridge Commands: openc3cli</a></li><li><a href="#example-bridge-gems" class="table-of-contents__link toc-highlight">Example Bridge Gems</a></li><li><a href="#note-on-serial-ports" class="table-of-contents__link toc-highlight">Note on Serial Ports</a></li></ul></div></div></div></div></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Homepage</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://openc3.com" target="_blank" rel="noopener noreferrer" class="footer__link-item">Home</a></li></ul></div><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/tools/staticdocs/docs">Documentation</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/company/openc3" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_awgD"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/OpenC3/cosmos" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_awgD"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a class="footer__link-item" href="/tools/staticdocs/docs/privacy">Privacy</a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2024 OpenC3, Inc.</div></div></div></footer></div>
|
106
62
|
</body>
|
107
63
|
</html>
|