openc3-cosmos-tool-docs 5.14.2 → 5.15.1
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 +2 -2
- data/tools/staticdocs/assets/js/019369f3.3a124fd7.js +1 -0
- data/tools/staticdocs/assets/js/058ffc22.c85ad785.js +1 -0
- data/tools/staticdocs/assets/js/0686a885.4d6b8154.js +1 -0
- data/tools/staticdocs/assets/js/{07876b9c.bcadf7df.js → 07876b9c.b8d12431.js} +1 -1
- data/tools/staticdocs/assets/js/078dbab0.45ea4593.js +1 -0
- data/tools/staticdocs/assets/js/0f5d161c.dda04dbb.js +1 -0
- data/tools/staticdocs/assets/js/0ff569c9.317b47d0.js +1 -0
- data/tools/staticdocs/assets/js/103cc3be.a946540f.js +1 -0
- data/tools/staticdocs/assets/js/13196248.d8f8ef9f.js +1 -0
- data/tools/staticdocs/assets/js/13c1b4e4.50ee3d02.js +1 -0
- data/tools/staticdocs/assets/js/1b2b4b61.2556cd65.js +1 -0
- data/tools/staticdocs/assets/js/2047b354.75fe47dd.js +1 -0
- data/tools/staticdocs/assets/js/22b3ac48.77516494.js +1 -0
- data/tools/staticdocs/assets/js/2601.ca992ab9.js +1 -0
- data/tools/staticdocs/assets/js/26b8abb2.dcdf815e.js +1 -0
- data/tools/staticdocs/assets/js/{2923e883.779dc8d3.js → 2923e883.ed90d0a7.js} +1 -1
- data/tools/staticdocs/assets/js/2bb7bf90.c642620c.js +1 -0
- data/tools/staticdocs/assets/js/3dd7ef3b.f84c6956.js +1 -0
- data/tools/staticdocs/assets/js/{3df159b4.edd6dd5f.js → 3df159b4.ff98bfab.js} +1 -1
- data/tools/staticdocs/assets/js/40365d27.c318f801.js +1 -0
- data/tools/staticdocs/assets/js/411898ad.e29e2db3.js +1 -0
- data/tools/staticdocs/assets/js/42170351.15f2f1e3.js +1 -0
- data/tools/staticdocs/assets/js/43652efd.4e7d6a97.js +1 -0
- data/tools/staticdocs/assets/js/53ca7c5b.3f1245d5.js +1 -0
- data/tools/staticdocs/assets/js/54d0d530.769f5473.js +1 -0
- data/tools/staticdocs/assets/js/{55cdbca5.e73bdb1a.js → 55cdbca5.695875ea.js} +1 -1
- data/tools/staticdocs/assets/js/5723.f6123e37.js +1 -0
- data/tools/staticdocs/assets/js/{9142.cab356f2.js → 5778.7d36f1c2.js} +1 -1
- data/tools/staticdocs/assets/js/5b233ba7.0029b2f5.js +1 -0
- data/tools/staticdocs/assets/js/5bc719f6.84f6ce9e.js +1 -0
- data/tools/staticdocs/assets/js/5c6ce5ec.8667906a.js +1 -0
- data/tools/staticdocs/assets/js/5e3ed378.91d6735f.js +1 -0
- data/tools/staticdocs/assets/js/{5fe211ef.debbddaa.js → 5fe211ef.1d991947.js} +1 -1
- data/tools/staticdocs/assets/js/{64630c4f.81b3c47d.js → 64630c4f.a229ae1d.js} +1 -1
- data/tools/staticdocs/assets/js/6831b732.a77e4761.js +1 -0
- data/tools/staticdocs/assets/js/696b4199.2700ad91.js +1 -0
- data/tools/staticdocs/assets/js/{6b210247.b50441ee.js → 6b210247.074332a1.js} +1 -1
- data/tools/staticdocs/assets/js/6b65133b.109a6bef.js +1 -0
- data/tools/staticdocs/assets/js/6f92e431.67f5a7a4.js +1 -0
- data/tools/staticdocs/assets/js/72c6d8a8.5fca8d68.js +1 -0
- data/tools/staticdocs/assets/js/{75373ac0.f35aa5aa.js → 75373ac0.6a0a4fa2.js} +1 -1
- data/tools/staticdocs/assets/js/{75e64983.9153c043.js → 75e64983.e31793e1.js} +1 -1
- data/tools/staticdocs/assets/js/7760.7f593c4f.js +2 -0
- data/tools/staticdocs/assets/js/7918.25ec42db.js +1 -0
- data/tools/staticdocs/assets/js/867640d5.a8f59357.js +1 -0
- data/tools/staticdocs/assets/js/89e76475.de702714.js +1 -0
- data/tools/staticdocs/assets/js/8f7843ee.0f25fdc3.js +1 -0
- data/tools/staticdocs/assets/js/9424f0b3.66b19930.js +1 -0
- data/tools/staticdocs/assets/js/{97535711.14f1644d.js → 97535711.ddc0f5af.js} +1 -1
- data/tools/staticdocs/assets/js/{99581c43.de6d7078.js → 99581c43.0767018a.js} +1 -1
- data/tools/staticdocs/assets/js/99b59eea.d4dd9989.js +1 -0
- data/tools/staticdocs/assets/js/9d6e81d0.c31feabc.js +1 -0
- data/tools/staticdocs/assets/js/9fb6059a.30085d79.js +1 -0
- data/tools/staticdocs/assets/js/a507c363.198e9246.js +1 -0
- data/tools/staticdocs/assets/js/a677c089.48b6c791.js +1 -0
- data/tools/staticdocs/assets/js/a9987364.cfb3492e.js +1 -0
- data/tools/staticdocs/assets/js/aa6b6c1b.6281c551.js +1 -0
- data/tools/staticdocs/assets/js/b4596165.b4c6c1b8.js +1 -0
- data/tools/staticdocs/assets/js/b6d70f94.66d95cb7.js +1 -0
- data/tools/staticdocs/assets/js/b9f60ba6.655a4097.js +1 -0
- data/tools/staticdocs/assets/js/{bd0034eb.ca5c64eb.js → bd0034eb.ff7f6265.js} +1 -1
- data/tools/staticdocs/assets/js/c24eae19.98857ebf.js +1 -0
- data/tools/staticdocs/assets/js/cb8c3f08.f669adda.js +1 -0
- data/tools/staticdocs/assets/js/cd879be4.6ee752c7.js +1 -0
- data/tools/staticdocs/assets/js/{d1b923aa.c606e06a.js → d1b923aa.e7ee188a.js} +1 -1
- data/tools/staticdocs/assets/js/d1bfc316.963c2477.js +1 -0
- data/tools/staticdocs/assets/js/d24bf9b6.31d82456.js +1 -0
- data/tools/staticdocs/assets/js/d57a4b5d.905988ec.js +1 -0
- data/tools/staticdocs/assets/js/d5d77c37.80e1a28b.js +1 -0
- data/tools/staticdocs/assets/js/{d797a795.b35ee94f.js → d797a795.5725bf2b.js} +1 -1
- data/tools/staticdocs/assets/js/d8ca4191.56c22a69.js +1 -0
- data/tools/staticdocs/assets/js/d9b92eba.16d983a0.js +1 -0
- data/tools/staticdocs/assets/js/db8fa1d0.c35b153c.js +1 -0
- data/tools/staticdocs/assets/js/dc5f7beb.88b0f00b.js +1 -0
- data/tools/staticdocs/assets/js/e501b0d1.3aa571ae.js +1 -0
- data/tools/staticdocs/assets/js/ebec1ccb.a801549e.js +1 -0
- data/tools/staticdocs/assets/js/f15615f1.0b19ae07.js +1 -0
- data/tools/staticdocs/assets/js/fd886806.57eeb84b.js +1 -0
- data/tools/staticdocs/assets/js/main.abd362be.js +2 -0
- data/tools/staticdocs/assets/js/runtime~main.7575b058.js +1 -0
- data/tools/staticdocs/docs/configuration/command.html +168 -74
- data/tools/staticdocs/docs/configuration/format.html +51 -22
- data/tools/staticdocs/docs/configuration/interfaces.html +78 -23
- data/tools/staticdocs/docs/configuration/plugins.html +162 -113
- data/tools/staticdocs/docs/configuration/protocols.html +86 -46
- data/tools/staticdocs/docs/configuration/ssl-tls.html +102 -31
- data/tools/staticdocs/docs/configuration/table.html +113 -48
- data/tools/staticdocs/docs/configuration/target.html +29 -21
- data/tools/staticdocs/docs/configuration/telemetry-screens.html +441 -183
- data/tools/staticdocs/docs/configuration/telemetry.html +175 -75
- data/tools/staticdocs/docs/configuration.html +2 -2
- data/tools/staticdocs/docs/development/curl.html +54 -11
- data/tools/staticdocs/docs/development/developing.html +79 -28
- data/tools/staticdocs/docs/development/host-install.html +20 -7
- data/tools/staticdocs/docs/development/json-api.html +30 -18
- data/tools/staticdocs/docs/development/log-structure.html +11 -11
- data/tools/staticdocs/docs/development/roadmap.html +11 -11
- data/tools/staticdocs/docs/development/streaming-api.html +81 -9
- data/tools/staticdocs/docs/development/testing.html +23 -14
- data/tools/staticdocs/docs/development.html +2 -2
- data/tools/staticdocs/docs/getting-started/generators.html +107 -33
- data/tools/staticdocs/docs/getting-started/gettingstarted.html +70 -22
- data/tools/staticdocs/docs/getting-started/installation.html +33 -22
- data/tools/staticdocs/docs/getting-started/key_concepts.html +33 -33
- data/tools/staticdocs/docs/getting-started/podman.html +54 -23
- data/tools/staticdocs/docs/getting-started/requirements.html +18 -18
- data/tools/staticdocs/docs/getting-started/upgrading.html +14 -9
- data/tools/staticdocs/docs/getting-started.html +2 -2
- data/tools/staticdocs/docs/guides/bridges.html +61 -17
- data/tools/staticdocs/docs/guides/cfs.html +182 -42
- data/tools/staticdocs/docs/guides/custom-widgets.html +44 -17
- data/tools/staticdocs/docs/guides/little-endian-bitfields.html +12 -3
- data/tools/staticdocs/docs/guides/local-mode.html +18 -13
- data/tools/staticdocs/docs/guides/logging.html +10 -10
- data/tools/staticdocs/docs/guides/monitoring.html +135 -20
- data/tools/staticdocs/docs/guides/performance.html +24 -15
- data/tools/staticdocs/docs/guides/raspberrypi.html +22 -7
- data/tools/staticdocs/docs/guides/script-writing.html +387 -82
- data/tools/staticdocs/docs/guides/scripting-api.html +1339 -476
- data/tools/staticdocs/docs/guides.html +2 -2
- data/tools/staticdocs/docs/meta/contributing.html +17 -12
- data/tools/staticdocs/docs/meta/licenses.html +28 -10
- data/tools/staticdocs/docs/meta/philosophy.html +2 -2
- data/tools/staticdocs/docs/meta/xtce.html +14 -12
- data/tools/staticdocs/docs/meta.html +2 -2
- data/tools/staticdocs/docs/privacy.html +17 -17
- data/tools/staticdocs/docs/tools/autonomic.html +20 -20
- data/tools/staticdocs/docs/tools/bucket-explorer.html +11 -11
- data/tools/staticdocs/docs/tools/calendar.html +19 -19
- data/tools/staticdocs/docs/tools/cmd-sender.html +13 -13
- data/tools/staticdocs/docs/tools/cmd-tlm-server.html +21 -21
- data/tools/staticdocs/docs/tools/data-extractor.html +24 -24
- data/tools/staticdocs/docs/tools/data-viewer.html +11 -11
- data/tools/staticdocs/docs/tools/handbooks.html +4 -4
- data/tools/staticdocs/docs/tools/limits-monitor.html +17 -17
- data/tools/staticdocs/docs/tools/packet-viewer.html +13 -13
- data/tools/staticdocs/docs/tools/script-runner.html +72 -33
- data/tools/staticdocs/docs/tools/table-manager.html +46 -11
- data/tools/staticdocs/docs/tools/tlm-grapher.html +20 -20
- data/tools/staticdocs/docs/tools/tlm-viewer.html +15 -15
- data/tools/staticdocs/docs/tools.html +2 -2
- data/tools/staticdocs/docs.html +12 -12
- data/tools/staticdocs/index.html +2 -2
- data/tools/staticdocs/lunr-index-1710527361977.json +1 -0
- data/tools/staticdocs/lunr-index.json +1 -1
- data/tools/staticdocs/markdown-page.html +3 -3
- data/tools/staticdocs/search-doc-1710527361977.json +1 -0
- data/tools/staticdocs/search-doc.json +1 -1
- metadata +86 -86
- data/tools/staticdocs/assets/js/019369f3.4c70e0f5.js +0 -1
- data/tools/staticdocs/assets/js/058ffc22.9fe67269.js +0 -1
- data/tools/staticdocs/assets/js/0686a885.bec3d8d0.js +0 -1
- data/tools/staticdocs/assets/js/078dbab0.21af6e8e.js +0 -1
- data/tools/staticdocs/assets/js/0f5d161c.821a434d.js +0 -1
- data/tools/staticdocs/assets/js/0ff569c9.b7b2f0e7.js +0 -1
- data/tools/staticdocs/assets/js/103cc3be.69ac319c.js +0 -1
- data/tools/staticdocs/assets/js/13196248.50c46920.js +0 -1
- data/tools/staticdocs/assets/js/13c1b4e4.cd1ff3e4.js +0 -1
- data/tools/staticdocs/assets/js/1b2b4b61.bc9d9dae.js +0 -1
- data/tools/staticdocs/assets/js/2047b354.a81749f4.js +0 -1
- data/tools/staticdocs/assets/js/22b3ac48.8087c066.js +0 -1
- data/tools/staticdocs/assets/js/2684.36b8c775.js +0 -1
- data/tools/staticdocs/assets/js/26b8abb2.b69bce6b.js +0 -1
- data/tools/staticdocs/assets/js/2bb7bf90.615ed3e3.js +0 -1
- data/tools/staticdocs/assets/js/3dd7ef3b.4ee9bb2b.js +0 -1
- data/tools/staticdocs/assets/js/40365d27.4c276089.js +0 -1
- data/tools/staticdocs/assets/js/411898ad.dba1dcf4.js +0 -1
- data/tools/staticdocs/assets/js/42170351.7de5b38a.js +0 -1
- data/tools/staticdocs/assets/js/43652efd.817db236.js +0 -1
- data/tools/staticdocs/assets/js/53ca7c5b.7c5b0f91.js +0 -1
- data/tools/staticdocs/assets/js/54d0d530.5600c9b0.js +0 -1
- data/tools/staticdocs/assets/js/5640.603af822.js +0 -2
- data/tools/staticdocs/assets/js/5b233ba7.816cf3c7.js +0 -1
- data/tools/staticdocs/assets/js/5bc719f6.832101d0.js +0 -1
- data/tools/staticdocs/assets/js/5c6ce5ec.29713d16.js +0 -1
- data/tools/staticdocs/assets/js/5e3ed378.2a1df40b.js +0 -1
- data/tools/staticdocs/assets/js/6624.7d23f967.js +0 -1
- data/tools/staticdocs/assets/js/6831b732.cb28ec2a.js +0 -1
- data/tools/staticdocs/assets/js/696b4199.3f5260ea.js +0 -1
- data/tools/staticdocs/assets/js/6b65133b.3e207b70.js +0 -1
- data/tools/staticdocs/assets/js/6f92e431.f39c2a82.js +0 -1
- data/tools/staticdocs/assets/js/72c6d8a8.9247374f.js +0 -1
- data/tools/staticdocs/assets/js/80.7f39c110.js +0 -1
- data/tools/staticdocs/assets/js/867640d5.1ad7ba44.js +0 -1
- data/tools/staticdocs/assets/js/89e76475.ed8629f4.js +0 -1
- data/tools/staticdocs/assets/js/8f7843ee.1efba1e7.js +0 -1
- data/tools/staticdocs/assets/js/9424f0b3.05020154.js +0 -1
- data/tools/staticdocs/assets/js/99b59eea.ff86d64b.js +0 -1
- data/tools/staticdocs/assets/js/9d6e81d0.118681ad.js +0 -1
- data/tools/staticdocs/assets/js/9fb6059a.d3e03463.js +0 -1
- data/tools/staticdocs/assets/js/a507c363.a5cb92f5.js +0 -1
- data/tools/staticdocs/assets/js/a677c089.1e72219d.js +0 -1
- data/tools/staticdocs/assets/js/a9987364.5e9c5fba.js +0 -1
- data/tools/staticdocs/assets/js/aa6b6c1b.bae800c5.js +0 -1
- data/tools/staticdocs/assets/js/b4596165.ca25b65e.js +0 -1
- data/tools/staticdocs/assets/js/b6d70f94.52733814.js +0 -1
- data/tools/staticdocs/assets/js/b9f60ba6.026c925c.js +0 -1
- data/tools/staticdocs/assets/js/c24eae19.94275d3c.js +0 -1
- data/tools/staticdocs/assets/js/cb8c3f08.bd1deb3f.js +0 -1
- data/tools/staticdocs/assets/js/cd879be4.6f45475a.js +0 -1
- data/tools/staticdocs/assets/js/d1bfc316.65307471.js +0 -1
- data/tools/staticdocs/assets/js/d24bf9b6.1233a5c6.js +0 -1
- data/tools/staticdocs/assets/js/d57a4b5d.d43ffea3.js +0 -1
- data/tools/staticdocs/assets/js/d5d77c37.32ff5b2f.js +0 -1
- data/tools/staticdocs/assets/js/d8ca4191.5c73f3e4.js +0 -1
- data/tools/staticdocs/assets/js/d9b92eba.694c3ff3.js +0 -1
- data/tools/staticdocs/assets/js/db8fa1d0.95630ed9.js +0 -1
- data/tools/staticdocs/assets/js/dc5f7beb.d4658c69.js +0 -1
- data/tools/staticdocs/assets/js/e501b0d1.83046007.js +0 -1
- data/tools/staticdocs/assets/js/ebec1ccb.6f1d3fbf.js +0 -1
- data/tools/staticdocs/assets/js/f15615f1.b8e79235.js +0 -1
- data/tools/staticdocs/assets/js/fd886806.a07830ee.js +0 -1
- data/tools/staticdocs/assets/js/main.4510cb33.js +0 -2
- data/tools/staticdocs/assets/js/runtime~main.87667807.js +0 -1
- data/tools/staticdocs/lunr-index-1707604600660.json +0 -1
- data/tools/staticdocs/search-doc-1707604600660.json +0 -1
- /data/tools/staticdocs/assets/js/{5640.603af822.js.LICENSE.txt → 7760.7f593c4f.js.LICENSE.txt} +0 -0
- /data/tools/staticdocs/assets/js/{main.4510cb33.js.LICENSE.txt → main.abd362be.js.LICENSE.txt} +0 -0
@@ -4,52 +4,105 @@
|
|
4
4
|
<meta charset="UTF-8">
|
5
5
|
<meta name="generator" content="Docusaurus v3.1.0">
|
6
6
|
<title data-rh="true">COSMOS and NASA cFS | 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/cfs"><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="COSMOS and NASA cFS | OpenC3 Docs"><meta data-rh="true" name="description" content="Working configuration"><meta data-rh="true" property="og:description" content="Working configuration"><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/cfs"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/guides/cfs" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/guides/cfs" hreflang="x-default"><link rel="stylesheet" href="/tools/staticdocs/assets/css/styles.a4426211.css">
|
7
|
-
<script src="/tools/staticdocs/assets/js/runtime~main.
|
8
|
-
<script src="/tools/staticdocs/assets/js/main.
|
7
|
+
<script src="/tools/staticdocs/assets/js/runtime~main.7575b058.js" defer="defer"></script>
|
8
|
+
<script src="/tools/staticdocs/assets/js/main.abd362be.js" defer="defer"></script>
|
9
9
|
</head>
|
10
10
|
<body class="navigation-with-keyboard">
|
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 localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"dark")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)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" aria-expanded="false" href="/tools/staticdocs/docs/getting-started">Getting Started</a><button aria-label="Expand sidebar category 'Getting Started'" 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" aria-expanded="false" href="/tools/staticdocs/docs/configuration">Configuration</a><button aria-label="Expand sidebar category 'Configuration'" 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" aria-expanded="false" href="/tools/staticdocs/docs/tools">Tools</a><button aria-label="Expand sidebar category 'Tools'" 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" aria-expanded="true" href="/tools/staticdocs/docs/guides">Guides</a><button aria-label="Collapse sidebar category 'Guides'" 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" 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 menu__link--active" aria-current="page" 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" aria-expanded="false" href="/tools/staticdocs/docs/development">Development</a><button aria-label="Expand sidebar category 'Development'" 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" aria-expanded="false" href="/tools/staticdocs/docs/meta">Meta</a><button aria-label="Expand sidebar category 'Meta'" 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">COSMOS and NASA cFS</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>COSMOS and NASA cFS</h1></header><h2
|
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 localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"dark")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)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" aria-expanded="false" href="/tools/staticdocs/docs/getting-started">Getting Started</a><button aria-label="Expand sidebar category 'Getting Started'" 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" aria-expanded="false" href="/tools/staticdocs/docs/configuration">Configuration</a><button aria-label="Expand sidebar category 'Configuration'" 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" aria-expanded="false" href="/tools/staticdocs/docs/tools">Tools</a><button aria-label="Expand sidebar category 'Tools'" 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" aria-expanded="true" href="/tools/staticdocs/docs/guides">Guides</a><button aria-label="Collapse sidebar category 'Guides'" 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" 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 menu__link--active" aria-current="page" 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" aria-expanded="false" href="/tools/staticdocs/docs/development">Development</a><button aria-label="Expand sidebar category 'Development'" 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" aria-expanded="false" href="/tools/staticdocs/docs/meta">Meta</a><button aria-label="Expand sidebar category 'Meta'" 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">COSMOS and NASA cFS</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>COSMOS and NASA cFS</h1></header><h2 id="working-configuration">Working configuration</h2>
|
12
12
|
<p>This tutorial has been tested using the following components:</p>
|
13
13
|
<ul>
|
14
|
-
<li>COSMOS v5 release <a href="https://github.com/OpenC3/cosmos/releases/tag/v5.0.6"
|
14
|
+
<li>COSMOS v5 release <a href="https://github.com/OpenC3/cosmos/releases/tag/v5.0.6">5.0.6</a></li>
|
15
15
|
<li>cFS master-branch commit: 561b128 (June 1, 2022)</li>
|
16
16
|
<li>Docker Desktop 4.9.0 on Windows</li>
|
17
17
|
</ul>
|
18
18
|
<p>Replace all <code><xxxxxx></code> with your matching paths and names. Example: <code><USERNAME></code>.</p>
|
19
|
-
<h2
|
19
|
+
<h2 id="setting-up-cosmos">Setting up COSMOS</h2>
|
20
20
|
<p>Install COSMOS according to the official <a href="/tools/staticdocs/docs/getting-started/installation">installation</a> instructions.</p>
|
21
|
-
<h3
|
21
|
+
<h3 id="configuring-cosmos">Configuring COSMOS</h3>
|
22
22
|
<p>Change the Docker configuration for the interoperability with NASA cFS. For
|
23
23
|
subscribing to the telemetry, you have to append a port binding in the file
|
24
24
|
<code>compose.yaml</code> under the section <code>openc3-operator</code>. The port number has to
|
25
25
|
match with the port number cFS is sending the telemetry on.</p>
|
26
|
-
<
|
26
|
+
<pre><code class="language-yaml">openc3-operator:
|
27
|
+
ports:
|
28
|
+
- "1235:1235/udp"
|
29
|
+
</code></pre>
|
27
30
|
<p>Run COSMOS, the first run takes a while (~15 min).</p>
|
28
|
-
<
|
29
|
-
|
31
|
+
<pre><code class="language-bash">openc3.sh start
|
32
|
+
</code></pre>
|
33
|
+
<p>When started, connect with a browser to <a href="http://localhost:2900">http://localhost:2900</a>.</p>
|
30
34
|
<p>For shutting down COSMOS:</p>
|
31
|
-
<
|
32
|
-
|
33
|
-
<
|
34
|
-
<
|
35
|
-
<
|
36
|
-
<
|
37
|
-
|
38
|
-
<h3
|
35
|
+
<pre><code class="language-bash">openc3.sh stop
|
36
|
+
</code></pre>
|
37
|
+
<h2 id="setting-up-cfs">Setting up cFS</h2>
|
38
|
+
<p>To run <a href="https://github.com/nasa/cFS">NASA cFS</a> as a Docker container do the following:</p>
|
39
|
+
<h3 id="clone-cfs">Clone cFS</h3>
|
40
|
+
<pre><code class="language-bash">git clone --recurse-submodules https://github.com/nasa/cFS.git
|
41
|
+
</code></pre>
|
42
|
+
<h3 id="create-dockerfile-in-cfs-dir">Create Dockerfile in cFS dir</h3>
|
43
|
+
<pre><code class="language-docker">FROM ubuntu:22.10 AS builder
|
44
|
+
|
45
|
+
ARG DEBIAN_FRONTEND=noninteractive
|
46
|
+
ARG SIMULATION=native
|
47
|
+
ENV SIMULATION=${SIMULATION}
|
48
|
+
ARG BUILDTYPE=debug
|
49
|
+
ENV BUILDTYPE=${BUILDTYPE}
|
50
|
+
ARG OMIT_DEPRECATED=true
|
51
|
+
ENV OMIT_DEPRECATED=${OMIT_DEPRECATED}
|
52
|
+
|
53
|
+
RUN \
|
54
|
+
apt-get update && \
|
55
|
+
apt-get -y upgrade && \
|
56
|
+
apt-get install -y build-essential git cmake && \
|
57
|
+
rm -rf /var/lib/apt/lists/*
|
58
|
+
|
59
|
+
WORKDIR /cFS
|
60
|
+
COPY . .
|
61
|
+
|
62
|
+
RUN git submodule init \
|
63
|
+
&& git submodule update \
|
64
|
+
&& cp cfe/cmake/Makefile.sample Makefile \
|
65
|
+
&& cp -r cfe/cmake/sample_defs .
|
66
|
+
|
67
|
+
RUN make prep
|
68
|
+
RUN make
|
69
|
+
RUN make install
|
70
|
+
|
71
|
+
FROM ubuntu:22.10
|
72
|
+
COPY --from=builder /cFS/build /cFS/build
|
73
|
+
WORKDIR /cFS/build/exe/cpu1
|
74
|
+
ENTRYPOINT [ "./core-cpu1" ]
|
75
|
+
</code></pre>
|
76
|
+
<h3 id="build-and-run-cfs">Build and run cFS</h3>
|
39
77
|
<p>Note we're connecting to the COSMOS network (<code>docker network ls</code>) and exposing the cFS ports.</p>
|
40
|
-
<
|
41
|
-
|
78
|
+
<pre><code class="language-bash">docker build -t cfs .
|
79
|
+
docker run --cap-add CAP_SYS_RESOURCE --net=openc3-cosmos-network --name cfs -p1234:1234/udp -p1235:1235 cfs
|
80
|
+
</code></pre>
|
81
|
+
<h2 id="creating-a-cosmos-plugin-for-tmtc-interface-with-cfs">Creating a COSMOS plugin for TM/TC interface with cFS</h2>
|
42
82
|
<p>The detailed instructions how to create a plugin, can be found
|
43
83
|
<a href="/tools/staticdocs/docs/getting-started/gettingstarted">here</a>, in the chapter "Interfacing with Your Hardware".</p>
|
44
84
|
<p>Create a new plugin with the name <code>CFS</code>. <code>CFS</code> is the name of the plugin and
|
45
85
|
must be in capital letters according to the COSMOS documentation. This command
|
46
86
|
should create the plugin structure. Then cd into the plugin to create the target.</p>
|
47
|
-
<
|
87
|
+
<pre><code class="language-bash"># cd .. to the location of the cfs dir
|
88
|
+
$PATH_TO_OPENC3/openc3.sh cli generate plugin CFS
|
89
|
+
cd openc3-cosmos-cfs
|
90
|
+
$PATH_TO_OPENC3/openc3.sh cli generate target CFS
|
91
|
+
</code></pre>
|
48
92
|
<p>In this newly created plugin, change the <code>plugin.txt</code> file, so that the
|
49
93
|
communication happens over UDP. <code>port_tm</code> is the port number on which cFS
|
50
94
|
sends the telemetry messages. <code>port_tc</code> indicates the port on which cFS listens to the
|
51
95
|
telecommands.</p>
|
52
|
-
<
|
96
|
+
<pre><code class="language-ruby">VARIABLE ip 127.0.0.1
|
97
|
+
VARIABLE port_tm 1235
|
98
|
+
VARIABLE port_tc 1234
|
99
|
+
VARIABLE cfs_target_name CFS
|
100
|
+
|
101
|
+
TARGET CFS <%= cfs_target_name %>
|
102
|
+
# hostname write_dest_port read_port write_src_port interface_address ttl write_timeout read_timeout bind_address
|
103
|
+
INTERFACE <%= cfs_target_name %>_INT udp_interface.rb <%= ip %> <%= port_tc %> <%= port_tm %> nil nil 128 nil nil
|
104
|
+
MAP_TARGET <%= cfs_target_name %>
|
105
|
+
</code></pre>
|
53
106
|
<p>Note that the two arguments to the <code>TARGET</code> parameter are:</p>
|
54
107
|
<ol>
|
55
108
|
<li>
|
@@ -64,49 +117,136 @@ convention, the server will refuse to install your plugin at the following steps
|
|
64
117
|
</li>
|
65
118
|
</ol>
|
66
119
|
<p>In this example, we keep both names to be <code>CFS</code>.</p>
|
67
|
-
<h2
|
120
|
+
<h2 id="creating-tmtc-definitions">Creating TM/TC definitions</h2>
|
68
121
|
<p>Change to the target folder and remove the existing files and create own files.</p>
|
69
|
-
<
|
122
|
+
<pre><code class="language-bash">cd openc3-cfs/targets/CFS/cmd_tlm
|
123
|
+
rm *
|
124
|
+
touch cfs_cmds.txt
|
125
|
+
touch cfs_tlm.txt
|
126
|
+
touch to_lab_cmds.txt
|
127
|
+
</code></pre>
|
70
128
|
<p>Open these newly created files in a text editor and fill them with following
|
71
129
|
content.</p>
|
72
130
|
<p><code>to_lab_cmds.txt</code>:</p>
|
73
|
-
<
|
74
|
-
|
131
|
+
<pre><code class="language-ruby">COMMAND CFS TO_LAB_ENABLE BIG_ENDIAN "Enable telemetry"
|
132
|
+
# NAME BITS TYPE min VAL max VAL init VAL DESCRIPTION
|
133
|
+
APPEND_ID_PARAMETER STREAM_ID 16 UINT 0x1880 0x1880 0x1880 "Stream ID"
|
134
|
+
FORMAT_STRING "0x%04X"
|
135
|
+
APPEND_PARAMETER SEQUENCE 16 UINT 0xC000 MAX_UINT16 0xC000 ""
|
136
|
+
FORMAT_STRING "0x%04X"
|
137
|
+
APPEND_PARAMETER PKT_LEN 16 UINT 0x0001 0xFFFF 0x0012 "length of the packet"
|
138
|
+
APPEND_PARAMETER CMD_ID 8 UINT 6 6 6 ""
|
139
|
+
APPEND_PARAMETER CHECKSUM 8 UINT MIN_UINT8 MAX_UINT8 0x98 ""
|
140
|
+
FORMAT_STRING "0x%2X"
|
141
|
+
APPEND_PARAMETER DEST_IP 144 STRING "127.0.0.1" "Destination IP, i.e. 172.16.9.112, pc-57"
|
142
|
+
</code></pre>
|
143
|
+
<admonition title="Enabling Telemetry" type="info"><p>The command <code>0x1880</code> is needed to enable telemetry. When the cFS receives
|
75
144
|
this command, it starts sending telemetry to the IP address provided via the
|
76
|
-
<code>DEST_IP</code> field.</p></
|
145
|
+
<code>DEST_IP</code> field.</p></admonition>
|
77
146
|
<p><code>cfs_cmds.txt</code>:</p>
|
78
|
-
<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 constant" style="color:rgb(130, 170, 255)">COMMAND</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">CFS</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">NOOP</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">BIG_ENDIAN</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">"NOOP Command"</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"># cFS primary header</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)">APPEND_ID_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">STREAM_ID</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x1882</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x1882</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x1882</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">"Packet Identification"</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)">FORMAT_STRING</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">"0x%04X"</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)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">SEQUENCE</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MIN_UINT16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MAX_UINT16</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0xC000</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">""</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)">FORMAT_STRING</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">"0x%04X"</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)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">PKT_LEN</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x0001</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x0001</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x0001</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">"Packet length"</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"># cFS CMD secondary header</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)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">CMD_ID</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">""</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)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">CHECKSUM</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MIN_UINT8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MAX_UINT8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MIN_UINT8</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">""</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)">COMMAND</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">CFS</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">RESET</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">BIG_ENDIAN</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">"Reset Counters Command"</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)">APPEND_ID_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">STREAM_ID</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x1882</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x1882</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x1882</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">"Packet Identification"</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)">FORMAT_STRING</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">"0x%04X"</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)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">SEQUENCE</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MIN_UINT16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MAX_UINT16</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0xC000</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">""</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)">FORMAT_STRING</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">"0x%04X"</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)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">PKT_LEN</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x0001</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x0001</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x0001</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">"Packet length"</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)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">CMD_ID</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">1</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">1</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">1</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">""</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)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">CHECKSUM</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MIN_UINT8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MAX_UINT8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MIN_UINT8</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">""</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)">COMMAND</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">CFS</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">PROCESS</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">BIG_ENDIAN</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">"Process Command"</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)">APPEND_ID_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">STREAM_ID</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x1882</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x1882</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x1882</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">"Packet Identification"</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)">FORMAT_STRING</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">"0x%04X"</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)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">SEQUENCE</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MIN_UINT16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MAX_UINT16</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0xC000</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">""</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)">FORMAT_STRING</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">"0x%04X"</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)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">PKT_LEN</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x0001</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x0001</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x0001</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">"Packet length"</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)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">CMD_ID</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">2</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">2</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">2</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">""</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)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">CHECKSUM</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MIN_UINT8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MAX_UINT8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MIN_UINT8</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">""</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>
|
147
|
+
<pre><code class="language-ruby">COMMAND CFS NOOP BIG_ENDIAN "NOOP Command"
|
148
|
+
# cFS primary header
|
149
|
+
APPEND_ID_PARAMETER STREAM_ID 16 UINT 0x1882 0x1882 0x1882 "Packet Identification"
|
150
|
+
FORMAT_STRING "0x%04X"
|
151
|
+
APPEND_PARAMETER SEQUENCE 16 UINT MIN_UINT16 MAX_UINT16 0xC000 ""
|
152
|
+
FORMAT_STRING "0x%04X"
|
153
|
+
APPEND_PARAMETER PKT_LEN 16 UINT 0x0001 0x0001 0x0001 "Packet length"
|
154
|
+
# cFS CMD secondary header
|
155
|
+
APPEND_PARAMETER CMD_ID 8 UINT 0 0 0 ""
|
156
|
+
APPEND_PARAMETER CHECKSUM 8 UINT MIN_UINT8 MAX_UINT8 MIN_UINT8 ""
|
157
|
+
|
158
|
+
COMMAND CFS RESET BIG_ENDIAN "Reset Counters Command"
|
159
|
+
APPEND_ID_PARAMETER STREAM_ID 16 UINT 0x1882 0x1882 0x1882 "Packet Identification"
|
160
|
+
FORMAT_STRING "0x%04X"
|
161
|
+
APPEND_PARAMETER SEQUENCE 16 UINT MIN_UINT16 MAX_UINT16 0xC000 ""
|
162
|
+
FORMAT_STRING "0x%04X"
|
163
|
+
APPEND_PARAMETER PKT_LEN 16 UINT 0x0001 0x0001 0x0001 "Packet length"
|
164
|
+
APPEND_PARAMETER CMD_ID 8 UINT 1 1 1 ""
|
165
|
+
APPEND_PARAMETER CHECKSUM 8 UINT MIN_UINT8 MAX_UINT8 MIN_UINT8 ""
|
166
|
+
|
167
|
+
COMMAND CFS PROCESS BIG_ENDIAN "Process Command"
|
168
|
+
APPEND_ID_PARAMETER STREAM_ID 16 UINT 0x1882 0x1882 0x1882 "Packet Identification"
|
169
|
+
FORMAT_STRING "0x%04X"
|
170
|
+
APPEND_PARAMETER SEQUENCE 16 UINT MIN_UINT16 MAX_UINT16 0xC000 ""
|
171
|
+
FORMAT_STRING "0x%04X"
|
172
|
+
APPEND_PARAMETER PKT_LEN 16 UINT 0x0001 0x0001 0x0001 "Packet length"
|
173
|
+
APPEND_PARAMETER CMD_ID 8 UINT 2 2 2 ""
|
174
|
+
APPEND_PARAMETER CHECKSUM 8 UINT MIN_UINT8 MAX_UINT8 MIN_UINT8 ""
|
175
|
+
</code></pre>
|
79
176
|
<p><code>cfs_tlm.txt</code>:</p>
|
80
|
-
<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 constant" style="color:rgb(130, 170, 255)">TELEMETRY</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">CFS</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">HK</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">BIG_ENDIAN</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">"housekeeping telemetry"</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"># NAME BITS TYPE ID DESCRIPTION</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)">APPEND_ID_ITEM</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">STREAM_ID</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x0883</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">"Stream ID"</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)">FORMAT_STRING</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">"0x%04X"</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)">APPEND_ITEM</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">SEQUENCE</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">"Packet Sequence"</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)">FORMAT_STRING</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">"0x%04X"</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)">APPEND_ITEM</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">PKT_LEN</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">"Length of the packet"</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"># telemetry secondary header</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)">APPEND_ITEM</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">SECONDS</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">32</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">""</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)">UNITS</span><span class="token plain"> Seconds sec</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)">APPEND_ITEM</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">SUBSECS</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">""</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)">UNITS</span><span class="token plain"> Milliseconds ms</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"># some bytes not known for what</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)">APPEND_ITEM</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">SPARE2ALIGN</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">32</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">"Spares"</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"># payload</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)">APPEND_ITEM</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">CMD_ERRS</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">"Command Error Counter"</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)">APPEND_ITEM</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">CMD_CNT</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">"Command Counter"</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"># spare / alignment</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)">APPEND_ITEM</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">SPARE</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">"Spares"</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>
|
177
|
+
<pre><code class="language-ruby">TELEMETRY CFS HK BIG_ENDIAN "housekeeping telemetry"
|
178
|
+
# NAME BITS TYPE ID DESCRIPTION
|
179
|
+
APPEND_ID_ITEM STREAM_ID 16 UINT 0x0883 "Stream ID"
|
180
|
+
FORMAT_STRING "0x%04X"
|
181
|
+
APPEND_ITEM SEQUENCE 16 UINT "Packet Sequence"
|
182
|
+
FORMAT_STRING "0x%04X"
|
183
|
+
APPEND_ITEM PKT_LEN 16 UINT "Length of the packet"
|
184
|
+
# telemetry secondary header
|
185
|
+
APPEND_ITEM SECONDS 32 UINT ""
|
186
|
+
UNITS Seconds sec
|
187
|
+
APPEND_ITEM SUBSECS 16 UINT ""
|
188
|
+
UNITS Milliseconds ms
|
189
|
+
# some bytes not known for what
|
190
|
+
APPEND_ITEM SPARE2ALIGN 32 UINT "Spares"
|
191
|
+
# payload
|
192
|
+
APPEND_ITEM CMD_ERRS 8 UINT "Command Error Counter"
|
193
|
+
APPEND_ITEM CMD_CNT 8 UINT "Command Counter"
|
194
|
+
# spare / alignment
|
195
|
+
APPEND_ITEM SPARE 16 UINT "Spares"
|
196
|
+
</code></pre>
|
81
197
|
<p>Build the plugin from the base of your plugin folder:</p>
|
82
|
-
<
|
83
|
-
|
198
|
+
<pre><code class="language-bash"># cd openc3-cfs
|
199
|
+
$PATH_TO_OPENC3/openc3.sh cli rake build VERSION=1.0.0
|
200
|
+
</code></pre>
|
201
|
+
<admonition title="Plugin versioning" type="info"><p>Do not forget to change the version number with every build if you want to
|
84
202
|
better distinguish between the versions of the plugin. When the version is
|
85
203
|
seen in the plugin's .gem file name, it is easier to visualize the existing
|
86
|
-
versions and the newly uploaded versions.</p></
|
87
|
-
<
|
88
|
-
<h2
|
204
|
+
versions and the newly uploaded versions.</p></admonition>
|
205
|
+
<admonition title="Plugin parameters" type="info"><p>Multiple parameters are available for the plugin configuration. See the <a href="/tools/staticdocs/docs/configuration/plugins">plugin</a> page.</p></admonition>
|
206
|
+
<h2 id="uploading-the-plugin">Uploading the plugin</h2>
|
89
207
|
<p>After the plugin has been built, you can import the plugin in the admin area of
|
90
208
|
the page.</p>
|
91
209
|
<p>Connect with a browser to
|
92
|
-
<a href="http://localhost:2900/tools/admin"
|
210
|
+
<a href="http://localhost:2900/tools/admin">http://localhost:2900/tools/admin</a>.</p>
|
93
211
|
<p>Click on the clip icon and navigate to where your plugin is stored and select
|
94
212
|
the <code>openc3-cosmos-cfs-1.0.0.gem</code> file. Right of the selection line click on <code>UPLOAD</code>.</p>
|
95
213
|
<p>Determine the IP address the cFS container and COSMOS operator container are running at:</p>
|
96
|
-
<
|
214
|
+
<pre><code class="language-bash">docker network ls
|
215
|
+
NETWORK ID NAME DRIVER SCOPE
|
216
|
+
d842f813f1c7 openc3-cosmos-network bridge local
|
217
|
+
|
218
|
+
docker network inspect openc3-cosmos-network
|
219
|
+
[
|
220
|
+
{
|
221
|
+
"Name": "openc3-cosmos-network",
|
222
|
+
...
|
223
|
+
"Containers": {
|
224
|
+
"03cb6bf1b27c631fad1366e9342aeaa5b80f458a437195e4a95e674bb5f5983d": {
|
225
|
+
"Name": "cfs",
|
226
|
+
"IPv4Address": "172.20.0.9/16",
|
227
|
+
},
|
228
|
+
"ceb9ea99b00849fd8867dcd1646838fef3471f7d64b69014703dbedbcc8147fc": {
|
229
|
+
"Name": "openc3_openc3-operator_1",
|
230
|
+
"IPv4Address": "172.20.0.8/16",
|
231
|
+
}
|
232
|
+
}
|
233
|
+
...
|
234
|
+
}
|
235
|
+
]
|
236
|
+
</code></pre>
|
97
237
|
<p>When using this plugin, make sure to change the <code>ip</code> variable during uploading
|
98
238
|
to match where cFS is running. In the example above you would set it to 172.20.0.9.
|
99
239
|
<code>port_tm</code> is the port number on which cFS is sending the telemetry messages.
|
100
240
|
<code>port_tc</code> indicates the port on cFS is listening for telecommands.</p>
|
101
241
|
<p>Under <code>cfs_target_name</code> you can change the target name of this plugin. This
|
102
242
|
step is optional as long as you are fine with your plugin showing up as <code>CFS</code>.</p>
|
103
|
-
<p><img
|
104
|
-
<
|
105
|
-
Other plugins will not receive any TM anymore.</p></
|
106
|
-
<
|
107
|
-
the plugin's .gem file. Make sure your configuration is typo-free.</p></
|
243
|
+
<p><img alt="Plugin Variable Settings" src="/tools/staticdocs/assets/images/plugin_variables-6904e1d9003a6c8c530bd1f738f7966217beca7d3064b40670e7a4ab7e200927.png" width="1183" height="270"></p>
|
244
|
+
<admonition title="Port subscription" type="warning"><p>The last uploaded plugin on COSMOS will subscribe to TM on port 1235.
|
245
|
+
Other plugins will not receive any TM anymore.</p></admonition>
|
246
|
+
<admonition title="Typo errors" type="info"><p>Presence of typos in one of the plugin files can cause problems when uploading and installing
|
247
|
+
the plugin's .gem file. Make sure your configuration is typo-free.</p></admonition>
|
108
248
|
<p>In the example above, the operator image is running at 172.20.0.8. To enable telemetry, go to the browser and connect to
|
109
|
-
<a href="http://localhost:2900/tools/cmdsender/CFS/TO_LAB_ENABLE"
|
110
|
-
<p>Under <a href="http://localhost:2900/tools/cmdtlmserver/tlm-packets"
|
249
|
+
<a href="http://localhost:2900/tools/cmdsender/CFS/TO_LAB_ENABLE">http://localhost:2900/tools/cmdsender/CFS/TO_LAB_ENABLE</a>. Change the <code>DEST_IP</code> to the IP address of the operator image (172.20.0.8) and send the command.</p>
|
250
|
+
<p>Under <a href="http://localhost:2900/tools/cmdtlmserver/tlm-packets">http://localhost:2900/tools/cmdtlmserver/tlm-packets</a>, you should see the incoming packets. Note in the CmdTlmServer you will also see CFS_INT UNKNOWN packets because we did not define the full cFS packet set. That exercise is left to the reader.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/OpenC3/cosmos/tree/main/docs.openc3.com/docs/guides/cfs.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_T23F"></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/bridges"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Bridges</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/tools/staticdocs/docs/guides/custom-widgets"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Custom Widgets</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="#working-configuration" class="table-of-contents__link toc-highlight">Working configuration</a></li><li><a href="#setting-up-cosmos" class="table-of-contents__link toc-highlight">Setting up COSMOS</a><ul><li><a href="#configuring-cosmos" class="table-of-contents__link toc-highlight">Configuring COSMOS</a></li></ul></li><li><a href="#setting-up-cfs" class="table-of-contents__link toc-highlight">Setting up cFS</a><ul><li><a href="#clone-cfs" class="table-of-contents__link toc-highlight">Clone cFS</a></li><li><a href="#create-dockerfile-in-cfs-dir" class="table-of-contents__link toc-highlight">Create Dockerfile in cFS dir</a></li><li><a href="#build-and-run-cfs" class="table-of-contents__link toc-highlight">Build and run cFS</a></li></ul></li><li><a href="#creating-a-cosmos-plugin-for-tmtc-interface-with-cfs" class="table-of-contents__link toc-highlight">Creating a COSMOS plugin for TM/TC interface with cFS</a></li><li><a href="#creating-tmtc-definitions" class="table-of-contents__link toc-highlight">Creating TM/TC definitions</a></li><li><a href="#uploading-the-plugin" class="table-of-contents__link toc-highlight">Uploading the plugin</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>
|
111
251
|
</body>
|
112
252
|
</html>
|