openc3-cosmos-tool-docs 5.14.1 → 5.15.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (204) hide show
  1. checksums.yaml +4 -4
  2. data/tools/staticdocs/404.html +3 -3
  3. data/tools/staticdocs/assets/css/styles.a4426211.css +1 -0
  4. data/tools/staticdocs/assets/js/{019369f3.d8613c30.js → 019369f3.3a124fd7.js} +1 -1
  5. data/tools/staticdocs/assets/js/{058ffc22.acfac831.js → 058ffc22.c85ad785.js} +1 -1
  6. data/tools/staticdocs/assets/js/0686a885.4d6b8154.js +1 -0
  7. data/tools/staticdocs/assets/js/{07876b9c.990c8af0.js → 07876b9c.b8d12431.js} +1 -1
  8. data/tools/staticdocs/assets/js/078dbab0.45ea4593.js +1 -0
  9. data/tools/staticdocs/assets/js/0f5d161c.dda04dbb.js +1 -0
  10. data/tools/staticdocs/assets/js/{0ff569c9.f11f548e.js → 0ff569c9.317b47d0.js} +1 -1
  11. data/tools/staticdocs/assets/js/103cc3be.a946540f.js +1 -0
  12. data/tools/staticdocs/assets/js/{13196248.1b40932b.js → 13196248.d8f8ef9f.js} +1 -1
  13. data/tools/staticdocs/assets/js/13c1b4e4.50ee3d02.js +1 -0
  14. data/tools/staticdocs/assets/js/{1b2b4b61.b662e271.js → 1b2b4b61.2556cd65.js} +1 -1
  15. data/tools/staticdocs/assets/js/{2047b354.cf71ed85.js → 2047b354.75fe47dd.js} +1 -1
  16. data/tools/staticdocs/assets/js/{22b3ac48.10ffd4c3.js → 22b3ac48.77516494.js} +1 -1
  17. data/tools/staticdocs/assets/js/2601.ca992ab9.js +1 -0
  18. data/tools/staticdocs/assets/js/26b8abb2.dcdf815e.js +1 -0
  19. data/tools/staticdocs/assets/js/{2923e883.0cbdcbc5.js → 2923e883.ed90d0a7.js} +1 -1
  20. data/tools/staticdocs/assets/js/{2bb7bf90.41136655.js → 2bb7bf90.c642620c.js} +1 -1
  21. data/tools/staticdocs/assets/js/3dd7ef3b.f84c6956.js +1 -0
  22. data/tools/staticdocs/assets/js/{3df159b4.6c6b5f85.js → 3df159b4.ff98bfab.js} +1 -1
  23. data/tools/staticdocs/assets/js/40365d27.c318f801.js +1 -0
  24. data/tools/staticdocs/assets/js/{411898ad.fb3b44cb.js → 411898ad.e29e2db3.js} +1 -1
  25. data/tools/staticdocs/assets/js/{42170351.99726677.js → 42170351.15f2f1e3.js} +1 -1
  26. data/tools/staticdocs/assets/js/43652efd.4e7d6a97.js +1 -0
  27. data/tools/staticdocs/assets/js/53ca7c5b.3f1245d5.js +1 -0
  28. data/tools/staticdocs/assets/js/54d0d530.769f5473.js +1 -0
  29. data/tools/staticdocs/assets/js/55cdbca5.695875ea.js +1 -0
  30. data/tools/staticdocs/assets/js/5723.f6123e37.js +1 -0
  31. data/tools/staticdocs/assets/js/{1131.f9e1547d.js → 5778.7d36f1c2.js} +1 -1
  32. data/tools/staticdocs/assets/js/5b233ba7.0029b2f5.js +1 -0
  33. data/tools/staticdocs/assets/js/{5bc719f6.80666891.js → 5bc719f6.84f6ce9e.js} +1 -1
  34. data/tools/staticdocs/assets/js/{5c6ce5ec.3cb1b75a.js → 5c6ce5ec.8667906a.js} +1 -1
  35. data/tools/staticdocs/assets/js/5e3ed378.91d6735f.js +1 -0
  36. data/tools/staticdocs/assets/js/5fe211ef.1d991947.js +1 -0
  37. data/tools/staticdocs/assets/js/64630c4f.a229ae1d.js +1 -0
  38. data/tools/staticdocs/assets/js/6831b732.a77e4761.js +1 -0
  39. data/tools/staticdocs/assets/js/696b4199.2700ad91.js +1 -0
  40. data/tools/staticdocs/assets/js/{6b210247.0db8db18.js → 6b210247.074332a1.js} +1 -1
  41. data/tools/staticdocs/assets/js/6b65133b.109a6bef.js +1 -0
  42. data/tools/staticdocs/assets/js/6f92e431.67f5a7a4.js +1 -0
  43. data/tools/staticdocs/assets/js/{72c6d8a8.41b091e3.js → 72c6d8a8.5fca8d68.js} +1 -1
  44. data/tools/staticdocs/assets/js/75373ac0.6a0a4fa2.js +1 -0
  45. data/tools/staticdocs/assets/js/75e64983.e31793e1.js +1 -0
  46. data/tools/staticdocs/assets/js/7760.7f593c4f.js +2 -0
  47. data/tools/staticdocs/assets/js/7918.25ec42db.js +1 -0
  48. data/tools/staticdocs/assets/js/{867640d5.7d9b46cc.js → 867640d5.a8f59357.js} +1 -1
  49. data/tools/staticdocs/assets/js/89e76475.de702714.js +1 -0
  50. data/tools/staticdocs/assets/js/8f7843ee.0f25fdc3.js +1 -0
  51. data/tools/staticdocs/assets/js/9424f0b3.66b19930.js +1 -0
  52. data/tools/staticdocs/assets/js/97535711.ddc0f5af.js +1 -0
  53. data/tools/staticdocs/assets/js/99581c43.0767018a.js +1 -0
  54. data/tools/staticdocs/assets/js/{99b59eea.56ab3bff.js → 99b59eea.d4dd9989.js} +1 -1
  55. data/tools/staticdocs/assets/js/9d6e81d0.c31feabc.js +1 -0
  56. data/tools/staticdocs/assets/js/9fb6059a.30085d79.js +1 -0
  57. data/tools/staticdocs/assets/js/{a507c363.b04cc959.js → a507c363.198e9246.js} +1 -1
  58. data/tools/staticdocs/assets/js/a677c089.48b6c791.js +1 -0
  59. data/tools/staticdocs/assets/js/{a9987364.a33207e6.js → a9987364.cfb3492e.js} +1 -1
  60. data/tools/staticdocs/assets/js/aa6b6c1b.065a8213.js +1 -0
  61. data/tools/staticdocs/assets/js/b4596165.b4c6c1b8.js +1 -0
  62. data/tools/staticdocs/assets/js/b6d70f94.66d95cb7.js +1 -0
  63. data/tools/staticdocs/assets/js/b9f60ba6.655a4097.js +1 -0
  64. data/tools/staticdocs/assets/js/bd0034eb.ff7f6265.js +1 -0
  65. data/tools/staticdocs/assets/js/c24eae19.db62873a.js +1 -0
  66. data/tools/staticdocs/assets/js/{cb8c3f08.bd7af12d.js → cb8c3f08.f669adda.js} +1 -1
  67. data/tools/staticdocs/assets/js/cd879be4.6ee752c7.js +1 -0
  68. data/tools/staticdocs/assets/js/d1b923aa.e7ee188a.js +1 -0
  69. data/tools/staticdocs/assets/js/d1bfc316.963c2477.js +1 -0
  70. data/tools/staticdocs/assets/js/{d24bf9b6.a8d698fc.js → d24bf9b6.31d82456.js} +1 -1
  71. data/tools/staticdocs/assets/js/{d57a4b5d.743b976b.js → d57a4b5d.905988ec.js} +1 -1
  72. data/tools/staticdocs/assets/js/{d5d77c37.cd2d8652.js → d5d77c37.80e1a28b.js} +1 -1
  73. data/tools/staticdocs/assets/js/{d797a795.9243eac2.js → d797a795.5725bf2b.js} +1 -1
  74. data/tools/staticdocs/assets/js/{d8ca4191.abd56e6c.js → d8ca4191.56c22a69.js} +1 -1
  75. data/tools/staticdocs/assets/js/{d9b92eba.d632d375.js → d9b92eba.16d983a0.js} +1 -1
  76. data/tools/staticdocs/assets/js/{db8fa1d0.b9ed5eb0.js → db8fa1d0.c35b153c.js} +1 -1
  77. data/tools/staticdocs/assets/js/dc5f7beb.88b0f00b.js +1 -0
  78. data/tools/staticdocs/assets/js/{e501b0d1.21aadf25.js → e501b0d1.3aa571ae.js} +1 -1
  79. data/tools/staticdocs/assets/js/{ebec1ccb.4fc9c662.js → ebec1ccb.a801549e.js} +1 -1
  80. data/tools/staticdocs/assets/js/{f15615f1.0d1e925a.js → f15615f1.0b19ae07.js} +1 -1
  81. data/tools/staticdocs/assets/js/fd886806.57eeb84b.js +1 -0
  82. data/tools/staticdocs/assets/js/main.a6fe34c0.js +2 -0
  83. data/tools/staticdocs/assets/js/runtime~main.256dc9a2.js +1 -0
  84. data/tools/staticdocs/docs/configuration/command.html +169 -75
  85. data/tools/staticdocs/docs/configuration/format.html +52 -23
  86. data/tools/staticdocs/docs/configuration/interfaces.html +90 -27
  87. data/tools/staticdocs/docs/configuration/plugins.html +163 -114
  88. data/tools/staticdocs/docs/configuration/protocols.html +87 -47
  89. data/tools/staticdocs/docs/configuration/ssl-tls.html +103 -32
  90. data/tools/staticdocs/docs/configuration/table.html +114 -49
  91. data/tools/staticdocs/docs/configuration/target.html +31 -23
  92. data/tools/staticdocs/docs/configuration/telemetry-screens.html +442 -184
  93. data/tools/staticdocs/docs/configuration/telemetry.html +176 -76
  94. data/tools/staticdocs/docs/configuration.html +3 -3
  95. data/tools/staticdocs/docs/development/curl.html +55 -12
  96. data/tools/staticdocs/docs/development/developing.html +84 -72
  97. data/tools/staticdocs/docs/development/host-install.html +21 -8
  98. data/tools/staticdocs/docs/development/json-api.html +31 -19
  99. data/tools/staticdocs/docs/development/log-structure.html +12 -12
  100. data/tools/staticdocs/docs/development/roadmap.html +32 -6
  101. data/tools/staticdocs/docs/development/streaming-api.html +82 -10
  102. data/tools/staticdocs/docs/development/testing.html +24 -15
  103. data/tools/staticdocs/docs/development.html +4 -4
  104. data/tools/staticdocs/docs/getting-started/generators.html +108 -34
  105. data/tools/staticdocs/docs/getting-started/gettingstarted.html +71 -23
  106. data/tools/staticdocs/docs/getting-started/installation.html +34 -23
  107. data/tools/staticdocs/docs/getting-started/key_concepts.html +34 -34
  108. data/tools/staticdocs/docs/getting-started/podman.html +55 -24
  109. data/tools/staticdocs/docs/getting-started/requirements.html +19 -19
  110. data/tools/staticdocs/docs/getting-started/upgrading.html +15 -10
  111. data/tools/staticdocs/docs/getting-started.html +3 -3
  112. data/tools/staticdocs/docs/guides/bridges.html +62 -18
  113. data/tools/staticdocs/docs/guides/cfs.html +183 -43
  114. data/tools/staticdocs/docs/guides/custom-widgets.html +45 -18
  115. data/tools/staticdocs/docs/guides/little-endian-bitfields.html +13 -4
  116. data/tools/staticdocs/docs/guides/local-mode.html +19 -14
  117. data/tools/staticdocs/docs/guides/logging.html +11 -11
  118. data/tools/staticdocs/docs/guides/monitoring.html +136 -21
  119. data/tools/staticdocs/docs/guides/performance.html +25 -16
  120. data/tools/staticdocs/docs/guides/raspberrypi.html +23 -8
  121. data/tools/staticdocs/docs/guides/script-writing.html +388 -83
  122. data/tools/staticdocs/docs/guides/scripting-api.html +1340 -477
  123. data/tools/staticdocs/docs/guides.html +3 -3
  124. data/tools/staticdocs/docs/meta/contributing.html +18 -13
  125. data/tools/staticdocs/docs/meta/licenses.html +29 -11
  126. data/tools/staticdocs/docs/meta/philosophy.html +3 -3
  127. data/tools/staticdocs/docs/meta/xtce.html +15 -13
  128. data/tools/staticdocs/docs/meta.html +3 -3
  129. data/tools/staticdocs/docs/privacy.html +18 -18
  130. data/tools/staticdocs/docs/tools/autonomic.html +21 -21
  131. data/tools/staticdocs/docs/tools/bucket-explorer.html +12 -12
  132. data/tools/staticdocs/docs/tools/calendar.html +20 -20
  133. data/tools/staticdocs/docs/tools/cmd-sender.html +14 -14
  134. data/tools/staticdocs/docs/tools/cmd-tlm-server.html +22 -22
  135. data/tools/staticdocs/docs/tools/data-extractor.html +25 -25
  136. data/tools/staticdocs/docs/tools/data-viewer.html +12 -12
  137. data/tools/staticdocs/docs/tools/handbooks.html +5 -5
  138. data/tools/staticdocs/docs/tools/limits-monitor.html +18 -18
  139. data/tools/staticdocs/docs/tools/packet-viewer.html +14 -14
  140. data/tools/staticdocs/docs/tools/script-runner.html +73 -34
  141. data/tools/staticdocs/docs/tools/table-manager.html +47 -12
  142. data/tools/staticdocs/docs/tools/tlm-grapher.html +21 -21
  143. data/tools/staticdocs/docs/tools/tlm-viewer.html +16 -16
  144. data/tools/staticdocs/docs/tools.html +3 -3
  145. data/tools/staticdocs/docs.html +13 -13
  146. data/tools/staticdocs/index.html +3 -3
  147. data/tools/staticdocs/lunr-index-1710043920959.json +1 -0
  148. data/tools/staticdocs/lunr-index.json +1 -1
  149. data/tools/staticdocs/markdown-page.html +4 -4
  150. data/tools/staticdocs/search-doc-1710043920959.json +1 -0
  151. data/tools/staticdocs/search-doc.json +1 -1
  152. metadata +87 -87
  153. data/tools/staticdocs/assets/css/styles.dd31dbff.css +0 -1
  154. data/tools/staticdocs/assets/js/0686a885.b4118c45.js +0 -1
  155. data/tools/staticdocs/assets/js/078dbab0.d34d0a8f.js +0 -1
  156. data/tools/staticdocs/assets/js/0f5d161c.d4d5d4dc.js +0 -1
  157. data/tools/staticdocs/assets/js/103cc3be.53ec680c.js +0 -1
  158. data/tools/staticdocs/assets/js/12.afe230eb.js +0 -1
  159. data/tools/staticdocs/assets/js/13c1b4e4.a9ce7463.js +0 -1
  160. data/tools/staticdocs/assets/js/1670.3df3e214.js +0 -1
  161. data/tools/staticdocs/assets/js/2624.ae6ba6f0.js +0 -1
  162. data/tools/staticdocs/assets/js/26b8abb2.98364dbd.js +0 -1
  163. data/tools/staticdocs/assets/js/3dd7ef3b.5133eebe.js +0 -1
  164. data/tools/staticdocs/assets/js/40365d27.b31cf9ac.js +0 -1
  165. data/tools/staticdocs/assets/js/43652efd.f9ce2508.js +0 -1
  166. data/tools/staticdocs/assets/js/4657.780d60d2.js +0 -2
  167. data/tools/staticdocs/assets/js/53ca7c5b.5ba66d69.js +0 -1
  168. data/tools/staticdocs/assets/js/54d0d530.29eb7035.js +0 -1
  169. data/tools/staticdocs/assets/js/55cdbca5.9562da85.js +0 -1
  170. data/tools/staticdocs/assets/js/5b233ba7.b7a30c7f.js +0 -1
  171. data/tools/staticdocs/assets/js/5e3ed378.c40da631.js +0 -1
  172. data/tools/staticdocs/assets/js/5fe211ef.9938cdb0.js +0 -1
  173. data/tools/staticdocs/assets/js/64630c4f.d3aaa17e.js +0 -1
  174. data/tools/staticdocs/assets/js/6831b732.176e2062.js +0 -1
  175. data/tools/staticdocs/assets/js/696b4199.68411c90.js +0 -1
  176. data/tools/staticdocs/assets/js/6b65133b.3b600a13.js +0 -1
  177. data/tools/staticdocs/assets/js/6f92e431.0e99b0f7.js +0 -1
  178. data/tools/staticdocs/assets/js/75373ac0.f2ff00fb.js +0 -1
  179. data/tools/staticdocs/assets/js/75e64983.6078b2bb.js +0 -1
  180. data/tools/staticdocs/assets/js/89e76475.76286adb.js +0 -1
  181. data/tools/staticdocs/assets/js/8f7843ee.7aaf5f45.js +0 -1
  182. data/tools/staticdocs/assets/js/9424f0b3.d0685f0f.js +0 -1
  183. data/tools/staticdocs/assets/js/97535711.7354a61a.js +0 -1
  184. data/tools/staticdocs/assets/js/99581c43.9077ef97.js +0 -1
  185. data/tools/staticdocs/assets/js/9d6e81d0.48e17a84.js +0 -1
  186. data/tools/staticdocs/assets/js/9fb6059a.709498de.js +0 -1
  187. data/tools/staticdocs/assets/js/a677c089.759b7b09.js +0 -1
  188. data/tools/staticdocs/assets/js/aa6b6c1b.c81fb740.js +0 -1
  189. data/tools/staticdocs/assets/js/b4596165.0d43540a.js +0 -1
  190. data/tools/staticdocs/assets/js/b6d70f94.67e3cf1e.js +0 -1
  191. data/tools/staticdocs/assets/js/b9f60ba6.4f87cb90.js +0 -1
  192. data/tools/staticdocs/assets/js/bd0034eb.caedd00a.js +0 -1
  193. data/tools/staticdocs/assets/js/c24eae19.541e6a95.js +0 -1
  194. data/tools/staticdocs/assets/js/cd879be4.5d8c0503.js +0 -1
  195. data/tools/staticdocs/assets/js/d1b923aa.2c753a51.js +0 -1
  196. data/tools/staticdocs/assets/js/d1bfc316.3ba6fac4.js +0 -1
  197. data/tools/staticdocs/assets/js/dc5f7beb.002b1519.js +0 -1
  198. data/tools/staticdocs/assets/js/fd886806.823bd757.js +0 -1
  199. data/tools/staticdocs/assets/js/main.89007ebb.js +0 -2
  200. data/tools/staticdocs/assets/js/runtime~main.8f84aa81.js +0 -1
  201. data/tools/staticdocs/lunr-index-1706136992441.json +0 -1
  202. data/tools/staticdocs/search-doc-1706136992441.json +0 -1
  203. /data/tools/staticdocs/assets/js/{4657.780d60d2.js.LICENSE.txt → 7760.7f593c4f.js.LICENSE.txt} +0 -0
  204. /data/tools/staticdocs/assets/js/{main.89007ebb.js.LICENSE.txt → main.a6fe34c0.js.LICENSE.txt} +0 -0
@@ -3,9 +3,9 @@
3
3
  <head>
4
4
  <meta charset="UTF-8">
5
5
  <meta name="generator" content="Docusaurus v3.1.0">
6
- <title data-rh="true">Requirements and Design | 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/getting-started/requirements"><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="Requirements and Design | OpenC3 Docs"><meta data-rh="true" name="description" content="OpenC3 COSMOS is a command and control system providing commanding, scripting, and data visualization capabilities for embedded systems and systems of systems. COSMOS is intended for use during all phases of testing (board, box, integrated system) and during operations."><meta data-rh="true" property="og:description" content="OpenC3 COSMOS is a command and control system providing commanding, scripting, and data visualization capabilities for embedded systems and systems of systems. COSMOS is intended for use during all phases of testing (board, box, integrated system) and during operations."><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/getting-started/requirements"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/getting-started/requirements" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/getting-started/requirements" hreflang="x-default"><link rel="stylesheet" href="/tools/staticdocs/assets/css/styles.dd31dbff.css">
7
- <script src="/tools/staticdocs/assets/js/runtime~main.8f84aa81.js" defer="defer"></script>
8
- <script src="/tools/staticdocs/assets/js/main.89007ebb.js" defer="defer"></script>
6
+ <title data-rh="true">Requirements and Design | 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/getting-started/requirements"><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="Requirements and Design | OpenC3 Docs"><meta data-rh="true" name="description" content="OpenC3 COSMOS is a command and control system providing commanding, scripting, and data visualization capabilities for embedded systems and systems of systems. COSMOS is intended for use during all phases of testing (board, box, integrated system) and during operations."><meta data-rh="true" property="og:description" content="OpenC3 COSMOS is a command and control system providing commanding, scripting, and data visualization capabilities for embedded systems and systems of systems. COSMOS is intended for use during all phases of testing (board, box, integrated system) and during operations."><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/getting-started/requirements"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/getting-started/requirements" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/getting-started/requirements" hreflang="x-default"><link rel="stylesheet" href="/tools/staticdocs/assets/css/styles.a4426211.css">
7
+ <script src="/tools/staticdocs/assets/js/runtime~main.256dc9a2.js" defer="defer"></script>
8
+ <script src="/tools/staticdocs/assets/js/main.a6fe34c0.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 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"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/tools/staticdocs/docs/getting-started">Getting Started</a><button aria-label="Collapse sidebar category &#x27;Getting Started&#x27;" 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/getting-started/installation">Installation</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/getting-started/gettingstarted">Getting Started</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/getting-started/generators">Code Generators</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/getting-started/upgrading">Upgrading</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/getting-started/key_concepts">Key Concepts</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/getting-started/requirements">Requirements and Design</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/getting-started/podman">Podman</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/configuration">Configuration</a><button aria-label="Expand sidebar category &#x27;Configuration&#x27;" 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 &#x27;Tools&#x27;" 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/guides">Guides</a><button aria-label="Expand sidebar category &#x27;Guides&#x27;" 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/development">Development</a><button aria-label="Expand sidebar category &#x27;Development&#x27;" 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 &#x27;Meta&#x27;" 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/getting-started"><span itemprop="name">Getting Started</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">Requirements and Design</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>Requirements and Design</h1></header><p>OpenC3 COSMOS is a command and control system providing commanding, scripting, and data visualization capabilities for embedded systems and systems of systems. COSMOS is intended for use during all phases of testing (board, box, integrated system) and during operations.</p>
@@ -27,12 +27,12 @@
27
27
  <li><strong>Admin</strong> - Provides an administrative interface to COSMOS.</li>
28
28
  </ol>
29
29
  <p>More detailed descriptions, requirements, and design for each tool are found later in this document. Additionally, each of the above applications is built using COSMOS libraries that are available for use as a framework to develop custom program/project applications.</p>
30
- <h2 class="anchor anchorWithStickyNavbar_fF9Z" id="terminology">Terminology<a href="#terminology" class="hash-link" aria-label="Direct link to Terminology" title="Direct link to Terminology">​</a></h2>
30
+ <h2 id="terminology">Terminology</h2>
31
31
  <p>The COSMOS system uses several terms that are important to understand. The following table defines these terms.</p>
32
32
  <table><thead><tr><th>Term</th><th>Definition</th></tr></thead><tbody><tr><td>Target</td><td>A COSMOS target is an embedded system that the COSMOS Command and Telemetry Server connects to using an interface in order to send commands to and/or receive telemetry from.</td></tr><tr><td>Command</td><td>A packet of information telling a target to perform an action of some sort.</td></tr><tr><td>Telemetry Packet</td><td>A packet of information providing status from a target.</td></tr><tr><td>Interface</td><td>A Ruby class that knows how to send commands to and/or receive telemetry from a target. COSMOS comes with interfaces that support TCP/IP, UDP, and serial connections. Custom interfaces are easy to add to the system.</td></tr><tr><td>Ruby</td><td>The powerful dynamic programming language used to write the COSMOS applications and libraries as well as COSMOS scripts and test procedures.</td></tr><tr><td>Configuration Files</td><td>COSMOS uses simple plain text configuration files to define commands and telemetry packets, and to configure each COSMOS application. These files are easily human readable/editable and machine readable/editable.</td></tr><tr><td>Packet Log Files</td><td>Binary files containing either logged commands or telemetry packets.</td></tr><tr><td>Message Log Files</td><td>Text files containing messages generated by the system.</td></tr><tr><td>Tool</td><td>Another name for a COSMOS application.</td></tr></tbody></table>
33
- <h2 class="anchor anchorWithStickyNavbar_fF9Z" id="overall-architecture-and-context-diagram">Overall Architecture and Context Diagram<a href="#overall-architecture-and-context-diagram" class="hash-link" aria-label="Direct link to Overall Architecture and Context Diagram" title="Direct link to Overall Architecture and Context Diagram">​</a></h2>
33
+ <h2 id="overall-architecture-and-context-diagram">Overall Architecture and Context Diagram</h2>
34
34
  <p>The following diagram shows the COSMOS 5 architecture.</p>
35
- <p><img loading="lazy" alt="COSMOS Architecture" src="/tools/staticdocs/assets/images/architecture-b78f12eba076a0c07af7abdd9dd4187c59aa6b4f5c51b47ad03f73e9f98a6ed6.png" width="1155" height="538" class="img__Ss2"></p>
35
+ <p><img alt="COSMOS Architecture" src="/tools/staticdocs/assets/images/architecture-b78f12eba076a0c07af7abdd9dd4187c59aa6b4f5c51b47ad03f73e9f98a6ed6.png" width="1155" height="538"></p>
36
36
  <p>Key aspects of this architecture:</p>
37
37
  <p>COSMOS 5 is a cloud native, containerized, microservice oriented command and control system. All the COSMOS microservices are docker containers which is why Docker is shown containing the entire COSMOS system. The green boxes on the left represent external embedded systems (Targets) which COSMOS connects to. The Redis data store contains the configuration for all the microservices, the current value table, as well as data streams containing decommutated data. The Minio data store contains plugins, targets, configuration data, text logs as well as binary logs of all the raw, decommutated, and reduced data. Users interact with COSMOS from a web browser which routes through the internal Traefik load balancer.</p>
38
38
  <ul>
@@ -42,42 +42,42 @@
42
42
  <li>Every tool is configured with plain text configuration files.</li>
43
43
  <li>Program specific tools can be written using the COSMOS libraries that can interact with the realtime command and telemetry streams and can process logged data.</li>
44
44
  </ul>
45
- <h2 class="anchor anchorWithStickyNavbar_fF9Z" id="overall-requirements">Overall Requirements<a href="#overall-requirements" class="hash-link" aria-label="Direct link to Overall Requirements" title="Direct link to Overall Requirements">​</a></h2>
45
+ <h2 id="overall-requirements">Overall Requirements</h2>
46
46
  <table><thead><tr><th>Reqt. ID</th><th>Description</th><th>Test Description</th></tr></thead><tbody><tr><td>COSMOS-1</td><td>All COSMOS core functionality shall be containerized.</td><td>Verify COSMOS is running in Docker</td></tr><tr><td>COSMOS-2</td><td>The COSMOS user interface shall be accessible from Chromium based web browsers</td><td>Open COSMOS in Chrome/Edge</td></tr><tr><td>COSMOS-3</td><td>The COSMOS user interface shall be accessible from the Firefox web browser</td><td>Open COSMOS in Firefox</td></tr><tr><td>COSMOS-4</td><td>COSMOS shall log all commands sent</td><td></td></tr><tr><td>COSMOS-5</td><td>COSMOS shall log all telemetry received</td><td></td></tr><tr><td>COSMOS-6</td><td>COSMOS shall decommutate all telemetry packets recieved</td><td></td></tr><tr><td>COSMOS-7</td><td>COSMOS shall support autonomously attempting to connect to targets.</td><td>Verify targets are connected upon starting the CTS.</td></tr><tr><td>COSMOS-8</td><td>COSMOS shall time stamp telemetry packets upon receipt.</td><td>Verify logged packets are timestamped.</td></tr><tr><td>COSMOS-9</td><td>COSMOS shall time stamp telemetry packets to a resolution of 1 millisecond or better. Note: This requirement only refers to resolution. COSMOS does not run on real-time operating systems and accuracy cannot be guaranteed.</td><td>View time stamps in log.</td></tr><tr><td>COSMOS-10</td><td>COSMOS shall time stamp received telemetry with a UTC timestamp.</td><td>Verify logged time stamps are as expected.</td></tr><tr><td>COSMOS-11</td><td>COSMOS shall maintain a timestamped log of commands received, limits violations, and errors encountered.</td><td>View COSMOS message log.</td></tr></tbody></table>
47
- <h2 class="anchor anchorWithStickyNavbar_fF9Z" id="api-requirements">Api Requirements<a href="#api-requirements" class="hash-link" aria-label="Direct link to Api Requirements" title="Direct link to Api Requirements">​</a></h2>
47
+ <h2 id="api-requirements">Api Requirements</h2>
48
48
  <table><thead><tr><th>Reqt. ID</th><th>Description</th><th>Test Description</th></tr></thead><tbody><tr><td>API-1</td><td>The COSMOS API shall allow scripted connection and disconnection of interfaces.</td><td>Disconnect and connect an interface from a script.</td></tr><tr><td>API-2</td><td>The COSMOS API shall allow scripted connection and disconnection of routers.</td><td>Disconnect and connect a router from a script.</td></tr><tr><td>API-3</td><td>The COSMOS API shall allow scripted setting of the current limits set.</td><td>Select a different limits set from a script.</td></tr><tr><td>API-4</td><td>The COSMOS API shall allow commanding of targets</td><td>Send a command</td></tr><tr><td>API-5</td><td>The COSMOS API shall allow reading the current value of any telemetry item</td><td>Read a telemetry point</td></tr><tr><td>API-6</td><td>The COSMOS API shall allow streaming realtime and logged telemetry packets</td><td>Stream telemetry packets</td></tr><tr><td>API-7</td><td>The COSMOS API shall allow streaming realtime and logged command packets</td><td>Stream command packets</td></tr><tr><td>API-8</td><td>The COSMOS API shall allow starting COSMOS scripts</td><td>Start a script using the API</td></tr></tbody></table>
49
- <h2 class="anchor anchorWithStickyNavbar_fF9Z" id="command-and-telemetry-server">Command and Telemetry Server<a href="#command-and-telemetry-server" class="hash-link" aria-label="Direct link to Command and Telemetry Server" title="Direct link to Command and Telemetry Server">​</a></h2>
49
+ <h2 id="command-and-telemetry-server">Command and Telemetry Server</h2>
50
50
  <p>The Command and Telemetry server provides status on the the overall COSMOS installation for a specific scope.</p>
51
51
  <table><thead><tr><th>Reqt. ID</th><th>Description</th><th>Test Description</th></tr></thead><tbody><tr><td>CTS-1</td><td>The Command and Telemetry Server shall display a list of all interfaces.</td><td>View the Interfaces tab.</td></tr><tr><td>CTS-2</td><td>The Command and Telemetry Server shall allow manual connection and disconnection of interfaces.</td><td>Press a GUI button to disconnect and connect an interface.</td></tr><tr><td>CTS-3</td><td>The Command and Telemetry Server shall display a list of all targets.</td><td>View the Targets tab.</td></tr><tr><td>CTS-4</td><td>The Command and Telemetry Server shall display a list of known commands.</td><td>View the Cmd Packets tab.</td></tr><tr><td>CTS-5</td><td>The Command and Telemetry Server shall display raw command data for the most recent command received.</td><td>View the Cmd Packets tab and click the View Raw button for a command.</td></tr><tr><td>CTS-6</td><td>The Command and Telemetry Server shall display a list of known telemetry packets.</td><td>View the Tlm Packets tab.</td></tr><tr><td>CTS-7</td><td>The Command and Telemetry Server shall display raw telemetry packet data for the most recent telemetry packet received.</td><td>View the Tlm Packets tab and click the View Raw button for a telemetry packet.</td></tr><tr><td>CTS-8</td><td>The Command and Telemetry Server shall display a list of all routers.</td><td>View the Routers tab.</td></tr><tr><td>CTS-9</td><td>The Command and Telemetry Server shall allow manual connection and disconnection of routers.</td><td>Press a GUI button to disconnect and connect a router.</td></tr><tr><td>CTS-10</td><td>The Command and Telemetry Server shall allow manually setting the current limits set.</td><td>Select a different limits set from the combobox.</td></tr><tr><td>CTS-11</td><td>The Command and Telemetry Server shall support opening telemetry packets in Packet Viewer.</td><td>On the Tlm Packets tab click View in Packet Viewer for a telemetry packet.</td></tr><tr><td>CTS-12</td><td>The Command and Telemetry Server shall display time stamps in local time.</td><td>View time stamps in log.</td></tr></tbody></table>
52
- <h2 class="anchor anchorWithStickyNavbar_fF9Z" id="limits-monitor">Limits Monitor<a href="#limits-monitor" class="hash-link" aria-label="Direct link to Limits Monitor" title="Direct link to Limits Monitor">​</a></h2>
52
+ <h2 id="limits-monitor">Limits Monitor</h2>
53
53
  <p>Limits Monitor displays all telemetry points that are currently out of limits and also shows any telemetry points that have gone out of limits since Limits Monitor was started.</p>
54
54
  <table><thead><tr><th>Reqt. ID</th><th>Description</th><th>Test Description</th></tr></thead><tbody><tr><td>LM-1</td><td>Limits Monitor shall display all telemetry points currently out of limits.</td><td>View displayed telemetry points.</td></tr><tr><td>LM-2</td><td>Limits Monitor shall support ignoring telemetry points.</td><td>Click ignore on a telemetry point.</td></tr><tr><td>LM-3</td><td>Limits Monitor shall keep a displayed log of limits violations.</td><td>View the log tab.</td></tr><tr><td>LM-4</td><td>Limits Monitor shall continue displaying a telemetry point that temporarily went out of limits.</td><td>Watch until a telemetry points returns to green.</td></tr><tr><td>LM-5</td><td>Limits Monitor shall support saving its configuration.</td><td>Save the configuration.</td></tr><tr><td>LM-6</td><td>Limits Monitor shall support loading its configuration.</td><td>Load the configuration.</td></tr></tbody></table>
55
- <h2 class="anchor anchorWithStickyNavbar_fF9Z" id="command-sender">Command Sender<a href="#command-sender" class="hash-link" aria-label="Direct link to Command Sender" title="Direct link to Command Sender">​</a></h2>
55
+ <h2 id="command-sender">Command Sender</h2>
56
56
  <p>Command Sender provides an easy method to send single commands to targets. The graphical user interface provides simple dropdowns to quickly select the desired command to send organized by target name and command name. After the user has selected the command, they then fill in the desired command parameters and click send to send the command to the target.</p>
57
57
  <table><thead><tr><th>Reqt. ID</th><th>Description</th><th>Test Description</th></tr></thead><tbody><tr><td>CMD-1</td><td>Command Sender shall allow selection of a command by target name and packet name.</td><td>Select a specific command by target name and packet name in the drop down menus.</td></tr><tr><td>CMD-2</td><td>Command Sender shall allow sending the selected command.</td><td>Send the selected command by pressing the Send button.</td></tr><tr><td>CMD-3</td><td>Command Sender shall display non-ignored parameters for the selected command.</td><td>Select a specific command and verify the expected parameters are shown.</td></tr><tr><td>CMD-4</td><td>Command Sender shall provide a mechanism to select state values for command parameters with states.</td><td>Select a specific state value for a specific command with states.</td></tr><tr><td>CMD-5</td><td>Command Sender shall allow sending a manually entered value for a command parameter with states.</td><td>Manually enter a value for a specific command with states.</td></tr><tr><td>CMD-6</td><td>Command Sender shall refuse to send commands if required parameters are not provided.</td><td>Attempt to send a command with a required parameter not filled out.</td></tr><tr><td>CMD-7</td><td>Command Sender shall support sending commands while ignoring range checking.</td><td>Enter Ignore Range Checking mode and then send a command with an out of range parameter.</td></tr><tr><td>CMD-8</td><td>Command Sender shall optionally display state values in hex.</td><td>Enter &quot;Display State Values in Hex&quot; mode and verify state values are displayed as hex.</td></tr><tr><td>CMD-9</td><td>Command Sender shall optionally display ignored command parameters.</td><td>Enter &quot;Show Ignored Parameters&quot; mode and verify ignored parameters are displayed.</td></tr><tr><td>CMD-10</td><td>Command Sender shall respect hazardous commands and notify the user before proceeding.</td><td>Send a hazardous command and verify a dialog box appears before the command is sent. Verify both accepting the dialog and declining to send.</td></tr><tr><td>CMD-11</td><td>Command Sender shall keep a command history of each command sent.</td><td>Send a command and verify that it shows up in the command history box.</td></tr><tr><td>CMD-12</td><td>Command Sender shall allow resending of any command in the command history.</td><td>Resend one of the commands in the command history box.</td></tr></tbody></table>
58
- <h2 class="anchor anchorWithStickyNavbar_fF9Z" id="script-runner">Script Runner<a href="#script-runner" class="hash-link" aria-label="Direct link to Script Runner" title="Direct link to Script Runner">​</a></h2>
58
+ <h2 id="script-runner">Script Runner</h2>
59
59
  <p>Script Runner provides a visual interface for editing and executing scripts/procedures. A full featured text editor provides syntax highlighting and code completion while developing scripts. During script execution, the currently executing line is highlighted and any logged messages are highlighted to the user. If any failure occurs, the script is paused and the user alerted. The user can then decide whether to stop the script, or ignore the failure and continue. The user can also retry the failed lines, or other nearby lines before proceeding.</p>
60
60
  <p>Script Runner now also provides a structured methodology for designing system level scripting that mirrors the very successful pattern used in software unit tests (previously implemented in the Test Runner tool). System level tests/procedures are built up of cases that are organized into groups. For example, you might have one group that verified all of the requirements associated with a particular mechanism. Ideally you would break this down into individual cases for different scenarios. One perhaps for opening a shutter, another for closing it, etc. Cases are ideally small and independent tasks. A number of these groups are then combined into an overall suite which would be run to execute a major test such as EMI, or software FQT.</p>
61
61
  <table><thead><tr><th>Reqt. ID</th><th>Description</th><th>Test Description</th></tr></thead><tbody><tr><td>SR-1</td><td>Script Runner shall provide a text editor for developing test scripts.</td><td>Open Script Runner and create a simple test script. Perform all standard file operations including New, Open, Reload, Close, Save, and Save As. Perform all standard editing operations such as Cut, Copy, Paste, Undo, Redo, Select All, and Comment/Uncomment lines.</td></tr><tr><td>SR-2</td><td>Script Runner shall provide search and replace functionality.</td><td>Perform all standard search and replace functionality, including search, replace, find next, and find previous.</td></tr><tr><td>SR-3</td><td>Script Runner shall provide code completion for cmd(), tlm(), and wait_check() COSMOS API methods. Note: Other methods may also be supported.</td><td>Create a script and exercise code completion on the mentioned keywords.</td></tr><tr><td>SR-4</td><td>Script Runner shall execute Ruby-based COSMOS scripts.</td><td>Press start and execute a script.</td></tr><tr><td>SR-5</td><td>Script Runner shall highlight the currently executing line of the script.</td><td>Verify that lines are highlighted as a test script executes.</td></tr><tr><td>SR-6</td><td>Script Runner shall allow pausing an executing script.</td><td>Press pause button and verify script is paused. Press start to resume.</td></tr><tr><td>SR-7</td><td>Script Runner shall allow stopping an executing script.</td><td>Press stop and verify script stops.</td></tr><tr><td>SR-8</td><td>Script Runner shall pause an executing script upon the occurance of an error.</td><td>Create a script with a statement that is guaranteed to fail and verify that the script is paused.</td></tr><tr><td>SR-9</td><td>Script Runner shall log commands sent.</td><td>Execute a script that sends a command and verify it is logged.</td></tr><tr><td>SR-10</td><td>Script Runner shall log text written to STDOUT. Note: Typically through the puts method.</td><td>Execute a script that uses puts to write a message and verify it is logged.</td></tr><tr><td>SR-11</td><td>Script Runner shall log wait times.</td><td>Execute a script that includes a wait method and verify wait time is logged.</td></tr><tr><td>SR-12</td><td>Script Runner shall log errors that occur while the script is executing.</td><td>Create a script with a check statement that is guaranteed to fail and verify it is logged.</td></tr><tr><td>SR-13</td><td>Script Runner shall log check statement success and failure.</td><td>Create a script with a check statement that is guaranteed to fail and one that is guaranteed to succeeed. Verify both the success and failure are logged.</td></tr><tr><td>SR-14</td><td>Script Runner shall support executing selected lines.</td><td>Select a set of lines and execute them using Script-&gt;Execute Selected Lines.</td></tr><tr><td>SR-15</td><td>Script Runner shall support executing selected lines while paused.</td><td>Select a set of lines and execute them from the right-click context menu.</td></tr><tr><td>SR-16</td><td>Script Runner shall support starting a script from any line.</td><td>Place the mouse cursor at the desired first line and then select Script-&gt;Execute From Cursor.</td></tr><tr><td>SR-17</td><td>Script Runner shall support a mnemonic checking function.</td><td>Select Script-&gt;Mnemonic Check.</td></tr><tr><td>SR-18</td><td>Script Runner shall support a syntax checking function.</td><td>Select Script-&gt;Ruby Syntax Check.</td></tr><tr><td>SR-19</td><td>Script Runner shall support viewing the script instrumentation.</td><td>Select Script-&gt;View Instrumented Script.</td></tr><tr><td>SR-20</td><td>Script Runner shall support an disconnected mode to allow for executing scripts without a connection to the Command and Telemetry Server.</td><td>Select Script-&gt;Toggle Disconnect. Execute a script with commands and check statements and verify that it runs to completion.</td></tr><tr><td>SR-21</td><td>Script Runner shall support a Debug terminal to aid in debugging scripts.</td><td>Select Script-&gt;Toggle Debug.</td></tr><tr><td>SR-22</td><td>Script Runner shall support a step mode where the script will stop and wait for use interaction after each line.</td><td>Press Step to progress through the script.</td></tr><tr><td>SR-23</td><td>Script Runner shall support breakpoint functionality.</td><td>Create a breakpoint then execute the script and verify it stops at the specified line.</td></tr><tr><td>SR-25</td><td>Script Runner Suite Mode shall support executing individual test suites.</td><td>Execute an individual test suite.</td></tr><tr><td>SR-26</td><td>Script Runner Suite Mode shall support executing individual test groups.</td><td>Execute an individual test group.</td></tr><tr><td>SR-27</td><td>Script Runner Suite Mode shall support executing individual test cases.</td><td>Execute an individual test case.</td></tr><tr><td>SR-28</td><td>Script Runner Suite Mode shall support executing test group setup and teardown methods individually.</td><td>Execute a test group setup. Execute a test group teardown.</td></tr><tr><td>SR-29</td><td>Script Runner Suite Mode shall support executing test suite setup and teardown methods individually.</td><td>Execute a test suite setup. Execute a test suite teardown.</td></tr><tr><td>SR-30</td><td>Script Runner Suite Mode shall create a report after executing any suite test.</td><td>Verify a report is generated after executing a suite.</td></tr><tr><td>SR-31</td><td>Script Runner Suite Mode shall support pausing when an error occurs.</td><td>Execute a test script with the pause on error box checked and without.</td></tr><tr><td>SR-32</td><td>Script Runner Suite Mode shall support allowing the user to proceed on an error.</td><td>Execute a test script with the Allow go/retry on error box checked and without.</td></tr><tr><td>SR-33</td><td>Script Runner Suite Mode shall support aborting execution on an error.</td><td>Execute a test script with the abort on error box checked and without.</td></tr><tr><td>SR-34</td><td>Script Runner Suite Mode shall support looping a test.</td><td>Execute a test script with the loop testing box checked and without.</td></tr><tr><td>SR-35</td><td>Script Runner Suite Mode shall support breaking the looping of a test on error.</td><td>Execute a test script with the break loop on error box checked and without.</td></tr><tr><td>SR-36</td><td>Script Runner Suite Mode shall support a user readable flag indicating that loop testing is occurring.</td><td>Execute a test script that checks the $loop_testing variable while looping and again while not looping.</td></tr><tr><td>SR-37</td><td>Script Runner Suite Mode shall support a user readable flag indicating manual operations are desired.</td><td>Execute a test script with the manual box checked and without.</td></tr></tbody></table>
62
- <h2 class="anchor anchorWithStickyNavbar_fF9Z" id="packet-viewer">Packet Viewer<a href="#packet-viewer" class="hash-link" aria-label="Direct link to Packet Viewer" title="Direct link to Packet Viewer">​</a></h2>
62
+ <h2 id="packet-viewer">Packet Viewer</h2>
63
63
  <p>Packet Viewer provides a simple tool to view the realtime contents of any telemetry packet defined in the system in a tabular, key-value format.</p>
64
64
  <table><thead><tr><th>Reqt. ID</th><th>Description</th><th>Test Description</th></tr></thead><tbody><tr><td>PV-1</td><td>Packet Viewer shall allow selection of a telemetry packet by target name and packet name.</td><td>Select a specific telemetry packet by target name and packet name in the drop down menus.</td></tr><tr><td>PV-2</td><td>Packet Viewer shall display the contents of the selected telemetry packet.</td><td>Ensure all items of the selected telemetry packet are displayed and updating.</td></tr><tr><td>PV-3</td><td>Packet Viewer shall provide a mechanism to get detailed information on a telemetry item.</td><td>Right click on a telemetry item and select &quot;Details&quot; from the context menu.</td></tr><tr><td>PV-4</td><td>Packet Viewer shall provide a mechanism to view a graph of any telemetry item.</td><td>Right click on a telemetry item and select &quot;Graph&quot; from the context menu.</td></tr><tr><td>PV-5</td><td>Packet Viewer shall color telemetry values based upon limits state.</td><td>View a packet with items containing limits and verify they are colored.</td></tr><tr><td>PV-6</td><td>Packet Viewer shall support a configurable polling rate.</td><td>Select File-&gt;Options and change the polling rate.</td></tr><tr><td>PV-7</td><td>Packet Viewer shall support a color-blind mode to allow distinguishing limits states for those who are color blind.</td><td>Select View-&gt;Color Blind Mode and verify that items with limits are also displayed with a textual indication of limits state color.</td></tr><tr><td>PV-8</td><td>Packet Viewer shall support displaying telemetry in each of the four COSMOS value types (raw, converted, formatted, and formatted with units)</td><td>In the View menu, select each of the four value types and verify values are displayed accordingly.</td></tr></tbody></table>
65
- <h2 class="anchor anchorWithStickyNavbar_fF9Z" id="telemetry-viewer">Telemetry Viewer<a href="#telemetry-viewer" class="hash-link" aria-label="Direct link to Telemetry Viewer" title="Direct link to Telemetry Viewer">​</a></h2>
65
+ <h2 id="telemetry-viewer">Telemetry Viewer</h2>
66
66
  <p>Telemetry Viewer provides a way to organize telemetry points into custom &quot;screens&quot; that allow for the creation of unique and organized views of telemetry data. Screens are made up of widgets or small GUI components that display telemetry in unique ways.</p>
67
67
  <table><thead><tr><th>Reqt. ID</th><th>Description</th><th>Test Description</th></tr></thead><tbody><tr><td>TV-1</td><td>Telemetry Viewer shall display user-defined telemetry screens.</td><td>Open a telemetry</td></tr><tr><td>TV-2</td><td>Telemetry Viewer shall display realtime data.</td><td>Verify telemetry screens show realtime data.</td></tr><tr><td>TV-3</td><td>Telemetry Viewer shall support saving open telemetry screens and their positions.</td><td>Open three telemetry screens and then select File-&gt;Save Configuration.</td></tr></tbody></table>
68
- <h2 class="anchor anchorWithStickyNavbar_fF9Z" id="telemetry-grapher">Telemetry Grapher<a href="#telemetry-grapher" class="hash-link" aria-label="Direct link to Telemetry Grapher" title="Direct link to Telemetry Grapher">​</a></h2>
68
+ <h2 id="telemetry-grapher">Telemetry Grapher</h2>
69
69
  <p>Telemetry Grapher performs graphing of telemetry points in both realtime and log file playback.</p>
70
70
  <table><thead><tr><th>Reqt. ID</th><th>Description</th><th>Test Description</th></tr></thead><tbody><tr><td>TG-1</td><td>Telemetry Grapher shall provide line graphs of telemetry points.</td><td>Add several housekeeping data objects to a plot.</td></tr><tr><td>TG-2</td><td>Telemetry Grapher shall support realtime graphing of telemetry.</td><td>Press Start to start realtime graphing.</td></tr><tr><td>TG-3</td><td>Telemetry Grapher shall support graphing data from logged telemetry.</td><td>Select the menu option to graph data from a logged data</td></tr><tr><td>TG-4</td><td>Telemetry Grapher shall support multiple plots per browser tab.</td><td>Add multiple plots.</td></tr><tr><td>TG-5</td><td>Telemetry Grapher shall support multiple telemetry points per plot.</td><td>Add multiple data objects to one plot.</td></tr><tr><td>TG-6</td><td>Telemetry Grapher shall support saving a variable number of data points.</td><td>Edit Points Saved.</td></tr><tr><td>TG-7</td><td>Telemetry Grapher shall support graphing a variable duration of time.</td><td>Edit Seconds Plotted.</td></tr><tr><td>TG-8</td><td>Telemetry Grapher shall support graphing a variable number of data points.</td><td>Edit Points Plotted.</td></tr><tr><td>TG-9</td><td>Telemetry Grapher shall support saving its configuration.</td><td>Save the current configuration.</td></tr><tr><td>TG-10</td><td>Telemetry Grapher shall support loading its configuration.</td><td>Load the previously saved configuration.</td></tr></tbody></table>
71
- <h2 class="anchor anchorWithStickyNavbar_fF9Z" id="data-extractor">Data Extractor<a href="#data-extractor" class="hash-link" aria-label="Direct link to Data Extractor" title="Direct link to Data Extractor">​</a></h2>
71
+ <h2 id="data-extractor">Data Extractor</h2>
72
72
  <p>Data Extractor processes logged data and extracts data into a CSV format for analysis in Excel or other tools.</p>
73
73
  <table><thead><tr><th>Reqt. ID</th><th>Description</th><th>Test Description</th></tr></thead><tbody><tr><td>DE-1</td><td>Data Extractor shall support adding individual telemetry points.</td><td>Add an individual telemetry point.</td></tr><tr><td>DE-2</td><td>Data Extractor shall support adding entire telemetry packets.</td><td>Add an entire packet.</td></tr><tr><td>DE-3</td><td>Data Extractor shall support adding entire telemetry targets.</td><td>Add all packets for a target.</td></tr><tr><td>DE-4</td><td>Data Extractor shall support selecting the value type to extract for each telemetry point (RAW, CONVERTED, FORMATTED, WITH_UNITS)</td><td>Click an item and change the value type.</td></tr><tr><td>DE-5</td><td>Data Extractor shall support saving configurations.</td><td>Select File-&gt;Save Config</td></tr><tr><td>DE-6</td><td>Data Extractor shall support loading configurations.</td><td>Select File-&gt;Load Config</td></tr><tr><td>DE-7</td><td>Data Extractor shall support deleting items</td><td>Select an Item and press delete</td></tr></tbody></table>
74
- <h2 class="anchor anchorWithStickyNavbar_fF9Z" id="data-viewer">Data Viewer<a href="#data-viewer" class="hash-link" aria-label="Direct link to Data Viewer" title="Direct link to Data Viewer">​</a></h2>
74
+ <h2 id="data-viewer">Data Viewer</h2>
75
75
  <p>Data Viewer provides for textual display of telemetry packets where other display methods are not a good fit. It is especially useful for memory dumps and for log message type data display.</p>
76
76
  <table><thead><tr><th>Reqt. ID</th><th>Description</th><th>Test Description</th></tr></thead><tbody><tr><td>DV-1</td><td>Data Viewer shall support realtime processing of telemetry packets.</td><td>Press Start to start realtime processing.</td></tr><tr><td>DV-2</td><td>Data Viewer shall support logged playback of telemetry packets.</td><td>Select a time range to playback.</td></tr><tr><td>DV-3</td><td>Data Viewer shall support textual display of telemetry packets.</td><td>View the display of data.</td></tr><tr><td>DV-4</td><td>Data Viewer shall support multiple tabs for data display.</td><td>Switch between several tabs of data.</td></tr><tr><td>DV-5</td><td>Data Viewer shall support deleting tabs.</td><td>Delete a tab.</td></tr></tbody></table>
77
- <h2 class="anchor anchorWithStickyNavbar_fF9Z" id="calendar">Calendar<a href="#calendar" class="hash-link" aria-label="Direct link to Calendar" title="Direct link to Calendar">​</a></h2>
77
+ <h2 id="calendar">Calendar</h2>
78
78
  <p>The Calendar tool provides a user interface and API for initiating scheduled actions in COSMOS</p>
79
79
  <table><thead><tr><th>Reqt. ID</th><th>Description</th><th>Test Description</th></tr></thead><tbody><tr><td>TL-1</td><td>Calendar shall allow creating new timelines</td><td>Click the button and create a new timeline</td></tr><tr><td>TL-2</td><td>Calendar shall allow scheduling commands for future execection</td><td>Add a command to a timeline</td></tr><tr><td>TL-3</td><td>Calendar shall allow scheduling scripts for future execution</td><td>Add a script to a timeline</td></tr><tr><td>TL-4</td><td>Calendar shall allow for reserving a resource</td><td>Add a reservation to a timeline</td></tr><tr><td>TL-5</td><td>Calendar shall track success or failure of commands</td><td>Look at status from a completed command</td></tr><tr><td>TL-6</td><td>Calendar shall track success or failure of scripts</td><td>Look at status from a completed script</td></tr><tr><td>TL-7</td><td>Calendar shall allow deleting activities from timelines</td><td>Delete a preexisting item from a timeline</td></tr><tr><td>TL-8</td><td>Calendar shall allow deleting timelines</td><td>Delete a timeline</td></tr></tbody></table>
80
- <h2 class="anchor anchorWithStickyNavbar_fF9Z" id="admin">Admin<a href="#admin" class="hash-link" aria-label="Direct link to Admin" title="Direct link to Admin">​</a></h2>
80
+ <h2 id="admin">Admin</h2>
81
81
  <p>The Admin tool provides administrative functionality including managing plugins for the COSMOS system</p>
82
82
  <table><thead><tr><th>Reqt. ID</th><th>Description</th><th>Test Description</th></tr></thead><tbody><tr><td>AD-1</td><td>The Admin Tool shall allow installing plugins</td><td>Upload and Install a Plugin</td></tr><tr><td>AD-2</td><td>The Admin Tool shall support upgrading plugins</td><td>Upgrade an installed plugin</td></tr><tr><td>AD-3</td><td>The Admin Tool shall support uninstalling plugins</td><td>Uninstall a plugin</td></tr><tr><td>AD-4</td><td>The Admin Tool shall display information on installed plugins</td><td>View info on Interfaces, Microservices, etc</td></tr><tr><td>AD-5</td><td>The Admin Tool shall support editing microservices</td><td>Edit the settings for a microservice</td></tr><tr><td>AD-6</td><td>The Admin Tool shall support discovery of plugins</td><td>Discover and download a plugin</td></tr><tr><td>AD-7</td><td>The Admin Tool shall support adding links to external tools</td><td>Add a link to Google</td></tr><tr><td>AD-8</td><td>The Admin Tool shall support reordering tools</td><td>Reorder tools on the tools tab</td></tr><tr><td>AD-9</td><td>The Admin Tool shall support configuring a classification bar</td><td>Add a classification bar on the settings tab</td></tr></tbody></table></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/getting-started/requirements.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/getting-started/key_concepts"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Key Concepts</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/tools/staticdocs/docs/getting-started/podman"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Podman</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="#terminology" class="table-of-contents__link toc-highlight">Terminology</a></li><li><a href="#overall-architecture-and-context-diagram" class="table-of-contents__link toc-highlight">Overall Architecture and Context Diagram</a></li><li><a href="#overall-requirements" class="table-of-contents__link toc-highlight">Overall Requirements</a></li><li><a href="#api-requirements" class="table-of-contents__link toc-highlight">Api Requirements</a></li><li><a href="#command-and-telemetry-server" class="table-of-contents__link toc-highlight">Command and Telemetry Server</a></li><li><a href="#limits-monitor" class="table-of-contents__link toc-highlight">Limits Monitor</a></li><li><a href="#command-sender" class="table-of-contents__link toc-highlight">Command Sender</a></li><li><a href="#script-runner" class="table-of-contents__link toc-highlight">Script Runner</a></li><li><a href="#packet-viewer" class="table-of-contents__link toc-highlight">Packet Viewer</a></li><li><a href="#telemetry-viewer" class="table-of-contents__link toc-highlight">Telemetry Viewer</a></li><li><a href="#telemetry-grapher" class="table-of-contents__link toc-highlight">Telemetry Grapher</a></li><li><a href="#data-extractor" class="table-of-contents__link toc-highlight">Data Extractor</a></li><li><a href="#data-viewer" class="table-of-contents__link toc-highlight">Data Viewer</a></li><li><a href="#calendar" class="table-of-contents__link toc-highlight">Calendar</a></li><li><a href="#admin" class="table-of-contents__link toc-highlight">Admin</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>
83
83
  </body>
@@ -3,37 +3,42 @@
3
3
  <head>
4
4
  <meta charset="UTF-8">
5
5
  <meta name="generator" content="Docusaurus v3.1.0">
6
- <title data-rh="true">Upgrading | 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/getting-started/upgrading"><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="Upgrading | OpenC3 Docs"><meta data-rh="true" name="description" content="COSMOS Upgrades"><meta data-rh="true" property="og:description" content="COSMOS Upgrades"><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/getting-started/upgrading"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/getting-started/upgrading" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/getting-started/upgrading" hreflang="x-default"><link rel="stylesheet" href="/tools/staticdocs/assets/css/styles.dd31dbff.css">
7
- <script src="/tools/staticdocs/assets/js/runtime~main.8f84aa81.js" defer="defer"></script>
8
- <script src="/tools/staticdocs/assets/js/main.89007ebb.js" defer="defer"></script>
6
+ <title data-rh="true">Upgrading | 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/getting-started/upgrading"><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="Upgrading | OpenC3 Docs"><meta data-rh="true" name="description" content="COSMOS Upgrades"><meta data-rh="true" property="og:description" content="COSMOS Upgrades"><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/getting-started/upgrading"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/getting-started/upgrading" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/getting-started/upgrading" hreflang="x-default"><link rel="stylesheet" href="/tools/staticdocs/assets/css/styles.a4426211.css">
7
+ <script src="/tools/staticdocs/assets/js/runtime~main.256dc9a2.js" defer="defer"></script>
8
+ <script src="/tools/staticdocs/assets/js/main.a6fe34c0.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"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/tools/staticdocs/docs/getting-started">Getting Started</a><button aria-label="Collapse sidebar category &#x27;Getting Started&#x27;" 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/getting-started/installation">Installation</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/getting-started/gettingstarted">Getting Started</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/getting-started/generators">Code Generators</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/getting-started/upgrading">Upgrading</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/getting-started/key_concepts">Key Concepts</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/getting-started/requirements">Requirements and Design</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/getting-started/podman">Podman</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/configuration">Configuration</a><button aria-label="Expand sidebar category &#x27;Configuration&#x27;" 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 &#x27;Tools&#x27;" 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/guides">Guides</a><button aria-label="Expand sidebar category &#x27;Guides&#x27;" 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/development">Development</a><button aria-label="Expand sidebar category &#x27;Development&#x27;" 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 &#x27;Meta&#x27;" 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/getting-started"><span itemprop="name">Getting Started</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">Upgrading</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>Upgrading</h1></header><h3 class="anchor anchorWithStickyNavbar_fF9Z" id="cosmos-upgrades">COSMOS Upgrades<a href="#cosmos-upgrades" class="hash-link" aria-label="Direct link to COSMOS Upgrades" title="Direct link to COSMOS Upgrades">​</a></h3>
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"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/tools/staticdocs/docs/getting-started">Getting Started</a><button aria-label="Collapse sidebar category &#x27;Getting Started&#x27;" 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/getting-started/installation">Installation</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/getting-started/gettingstarted">Getting Started</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/getting-started/generators">Code Generators</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/getting-started/upgrading">Upgrading</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/getting-started/key_concepts">Key Concepts</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/getting-started/requirements">Requirements and Design</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/getting-started/podman">Podman</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/configuration">Configuration</a><button aria-label="Expand sidebar category &#x27;Configuration&#x27;" 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 &#x27;Tools&#x27;" 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/guides">Guides</a><button aria-label="Expand sidebar category &#x27;Guides&#x27;" 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/development">Development</a><button aria-label="Expand sidebar category &#x27;Development&#x27;" 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 &#x27;Meta&#x27;" 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/getting-started"><span itemprop="name">Getting Started</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">Upgrading</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>Upgrading</h1></header><h3 id="cosmos-upgrades">COSMOS Upgrades</h3>
12
12
  <p>COSMOS is released as Docker containers. Since we&#x27;re using Docker containers and volumes we can simply stop the existing COSMOS application, then download and run the new release.</p>
13
13
  <p>This example assumes an existing COSMOS project at C:\cosmos-project.</p>
14
14
  <ol>
15
15
  <li>
16
16
  <p>Stop the current COSMOS application</p>
17
- <div class="language-batch codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-batch 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">C:\cosmos-project&gt; openc3.bat stop</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>
17
+ <pre><code class="language-batch">C:\cosmos-project&gt; openc3.bat stop
18
+ </code></pre>
18
19
  </li>
19
20
  <li>
20
21
  <p>Change the release in the .env file to the desired release</p>
21
- <div class="language-batch codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-batch 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">OPENC3_TAG=5.1.1</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>
22
+ <pre><code class="language-batch">OPENC3_TAG=5.1.1
23
+ </code></pre>
22
24
  </li>
23
25
  <li>
24
26
  <p>Run the new COSMOS application</p>
25
- <div class="language-batch codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-batch 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">C:\cosmos-project&gt; openc3.bat run</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>
27
+ <pre><code class="language-batch">C:\cosmos-project&gt; openc3.bat run
28
+ </code></pre>
26
29
  </li>
27
30
  </ol>
28
- <h3 class="anchor anchorWithStickyNavbar_fF9Z" id="migrating-from-cosmos-4-to-cosmos-5">Migrating From COSMOS 4 to COSMOS 5<a href="#migrating-from-cosmos-4-to-cosmos-5" class="hash-link" aria-label="Direct link to Migrating From COSMOS 4 to COSMOS 5" title="Direct link to Migrating From COSMOS 4 to COSMOS 5">​</a></h3>
31
+ <h3 id="migrating-from-cosmos-4-to-cosmos-5">Migrating From COSMOS 4 to COSMOS 5</h3>
29
32
  <p>COSMOS 5 is a new architecture and treats targets as independent <a href="/tools/staticdocs/docs/configuration/plugins">plugins</a>. Thus the primary effort in porting from COSMOS 4 to COSMOS 5 is converting targets to plugins. We recommend creating plugins for each independent target (with its own interface) but targets which share an interface will need to be part of the same plugin. The reason for independent plugins is it allows the plugin to be versioned separately and more easily shared outside your specific project. If you have very project specific targets (e.g. custom hardware) those can potentially be combined for ease of deployment.</p>
30
33
  <p>COSMOS 5 includes a migration tool for converting an existing COSMOS 4 configuration into a COSMOS 5 plugin. This example assumes an existing COSMOS 4 configuration at C:\COSMOS and a new COSMOS 5 installation at C:\cosmos-project. Linux users can adjust paths and change from .bat to .sh to follow along.</p>
31
34
  <ol>
32
35
  <li>
33
36
  <p>Change to the existing COSMOS 4 configuration directory. You should see the config, lib, procedures, outputs directory. You can then run the migration tool by specifying the absolute path to the COSMOS 5 installation.</p>
34
- <div class="language-batch codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-batch 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">C:\COSMOS&gt; C:\cosmos-project\openc3.bat cli migrate -a demo</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>
37
+ <pre><code class="language-batch">C:\COSMOS&gt; C:\cosmos-project\openc3.bat cli migrate -a demo
38
+ </code></pre>
35
39
  <p>This creates a new COSMOS 5 plugin called openc3-cosmos-demo with a target named DEMO containing the existing lib and procedures files as well as all the existing targets.</p>
36
- <div class="language-batch codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-batch 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">C:\COSMOS&gt; C:\cosmos-project\openc3.bat cli migrate demo-part INST</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>
40
+ <pre><code class="language-batch">C:\COSMOS&gt; C:\cosmos-project\openc3.bat cli migrate demo-part INST
41
+ </code></pre>
37
42
  <p>This would create a new COSMOS 5 plugin called openc3-cosmos-demo-part with a target named DEMO_PART containing the existing lib and procedures files as well as the INST target (but no others).</p>
38
43
  </li>
39
44
  <li>
@@ -3,9 +3,9 @@
3
3
  <head>
4
4
  <meta charset="UTF-8">
5
5
  <meta name="generator" content="Docusaurus v3.1.0">
6
- <title data-rh="true">Getting Started | 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/getting-started"><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="Getting Started | OpenC3 Docs"><meta data-rh="true" name="description" content="Get started with OpenC3 COSMOS"><meta data-rh="true" property="og:description" content="Get started with OpenC3 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/getting-started"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/getting-started" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/getting-started" hreflang="x-default"><link rel="stylesheet" href="/tools/staticdocs/assets/css/styles.dd31dbff.css">
7
- <script src="/tools/staticdocs/assets/js/runtime~main.8f84aa81.js" defer="defer"></script>
8
- <script src="/tools/staticdocs/assets/js/main.89007ebb.js" defer="defer"></script>
6
+ <title data-rh="true">Getting Started | 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/getting-started"><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="Getting Started | OpenC3 Docs"><meta data-rh="true" name="description" content="Get started with OpenC3 COSMOS"><meta data-rh="true" property="og:description" content="Get started with OpenC3 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/getting-started"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/getting-started" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/getting-started" hreflang="x-default"><link rel="stylesheet" href="/tools/staticdocs/assets/css/styles.a4426211.css">
7
+ <script src="/tools/staticdocs/assets/js/runtime~main.256dc9a2.js" defer="defer"></script>
8
+ <script src="/tools/staticdocs/assets/js/main.a6fe34c0.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 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"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" href="/tools/staticdocs/docs/getting-started">Getting Started</a><button aria-label="Collapse sidebar category &#x27;Getting Started&#x27;" 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/getting-started/installation">Installation</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/getting-started/gettingstarted">Getting Started</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/getting-started/generators">Code Generators</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/getting-started/upgrading">Upgrading</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/getting-started/key_concepts">Key Concepts</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/getting-started/requirements">Requirements and Design</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/getting-started/podman">Podman</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/configuration">Configuration</a><button aria-label="Expand sidebar category &#x27;Configuration&#x27;" 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 &#x27;Tools&#x27;" 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/guides">Guides</a><button aria-label="Expand sidebar category &#x27;Guides&#x27;" 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/development">Development</a><button aria-label="Expand sidebar category &#x27;Development&#x27;" 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 &#x27;Meta&#x27;" 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="generatedIndexPage_ak01"><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 breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Getting Started</span><meta itemprop="position" content="1"></li></ul></nav><header><h1 class="title_AulG">Getting Started</h1><p>Get started with OpenC3 COSMOS</p></header><article class="margin-top--lg"><section class="row list_iQEt"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_Shn5" href="/tools/staticdocs/docs/getting-started/installation"><h2 class="text--truncate cardTitle_h48N" title="Installation">📄️<!-- --> <!-- -->Installation</h2><p class="text--truncate cardDescription_CytT" title="Installing OpenC3 COSMOS">Installing OpenC3 COSMOS</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_Shn5" href="/tools/staticdocs/docs/getting-started/gettingstarted"><h2 class="text--truncate cardTitle_h48N" title="Getting Started">📄️<!-- --> <!-- -->Getting Started</h2><p class="text--truncate cardDescription_CytT" title="Welcome to the OpenC3 COSMOS system... Let&#x27;s get started! This guide is a high level overview that will help with setting up your first COSMOS project.">Welcome to the OpenC3 COSMOS system... Let&#x27;s get started! This guide is a high level overview that will help with setting up your first COSMOS project.</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_Shn5" href="/tools/staticdocs/docs/getting-started/generators"><h2 class="text--truncate cardTitle_h48N" title="Code Generators">📄️<!-- --> <!-- -->Code Generators</h2><p class="text--truncate cardDescription_CytT" title="The COSMOS Code Generators are built into the scripts openc3.sh and openc3.bat that are included in the COSMOS project (more about projects).">The COSMOS Code Generators are built into the scripts openc3.sh and openc3.bat that are included in the COSMOS project (more about projects).</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_Shn5" href="/tools/staticdocs/docs/getting-started/upgrading"><h2 class="text--truncate cardTitle_h48N" title="Upgrading">📄️<!-- --> <!-- -->Upgrading</h2><p class="text--truncate cardDescription_CytT" title="COSMOS Upgrades">COSMOS Upgrades</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_Shn5" href="/tools/staticdocs/docs/getting-started/key_concepts"><h2 class="text--truncate cardTitle_h48N" title="Key Concepts">📄️<!-- --> <!-- -->Key Concepts</h2><p class="text--truncate cardDescription_CytT" title="Projects">Projects</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_Shn5" href="/tools/staticdocs/docs/getting-started/requirements"><h2 class="text--truncate cardTitle_h48N" title="Requirements and Design">📄️<!-- --> <!-- -->Requirements and Design</h2><p class="text--truncate cardDescription_CytT" title="OpenC3 COSMOS is a command and control system providing commanding, scripting, and data visualization capabilities for embedded systems and systems of systems. COSMOS is intended for use during all phases of testing (board, box, integrated system) and during operations.">OpenC3 COSMOS is a command and control system providing commanding, scripting, and data visualization capabilities for embedded systems and systems of systems. COSMOS is intended for use during all phases of testing (board, box, integrated system) and during operations.</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_Shn5" href="/tools/staticdocs/docs/getting-started/podman"><h2 class="text--truncate cardTitle_h48N" title="Podman">📄️<!-- --> <!-- -->Podman</h2><p class="text--truncate cardDescription_CytT" title="OpenC3 COSMOS Using Rootless Podman and Docker-Compose">OpenC3 COSMOS Using Rootless Podman and Docker-Compose</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/tools/staticdocs/docs"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Introduction</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/tools/staticdocs/docs/getting-started/installation"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Installation</div></a></nav></footer></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>