openc3-cosmos-tool-docs 5.12.0 → 5.13.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (624) hide show
  1. checksums.yaml +4 -4
  2. data/plugin.txt +3 -3
  3. data/tools/staticdocs/404.html +13 -0
  4. data/tools/staticdocs/assets/css/styles.6e885bef.css +1 -0
  5. data/tools/staticdocs/assets/js/019369f3.d8613c30.js +1 -0
  6. data/tools/staticdocs/assets/js/058ffc22.acfac831.js +1 -0
  7. data/tools/staticdocs/assets/js/0686a885.4e302d8a.js +1 -0
  8. data/tools/staticdocs/assets/js/07876b9c.990c8af0.js +1 -0
  9. data/tools/staticdocs/assets/js/078dbab0.d34d0a8f.js +1 -0
  10. data/tools/staticdocs/assets/js/0f5d161c.d985bc97.js +1 -0
  11. data/tools/staticdocs/assets/js/0ff569c9.e271df4e.js +1 -0
  12. data/tools/staticdocs/assets/js/103cc3be.4cf4eeb0.js +1 -0
  13. data/tools/staticdocs/assets/js/12.ef103c80.js +1 -0
  14. data/tools/staticdocs/assets/js/13196248.51e9b91e.js +1 -0
  15. data/tools/staticdocs/assets/js/13c1b4e4.82c72cb7.js +1 -0
  16. data/tools/staticdocs/assets/js/1b2b4b61.b662e271.js +1 -0
  17. data/tools/staticdocs/assets/js/2047b354.fd40457e.js +1 -0
  18. data/tools/staticdocs/assets/js/22b3ac48.10ffd4c3.js +1 -0
  19. data/tools/staticdocs/assets/js/2624.ae6ba6f0.js +1 -0
  20. data/tools/staticdocs/assets/js/26b8abb2.a77dc1e7.js +1 -0
  21. data/tools/staticdocs/assets/js/3dd7ef3b.e063c83a.js +1 -0
  22. data/tools/staticdocs/assets/js/3df159b4.7047e215.js +1 -0
  23. data/tools/staticdocs/assets/js/40365d27.cfe2d836.js +1 -0
  24. data/tools/staticdocs/assets/js/411898ad.fb3b44cb.js +1 -0
  25. data/tools/staticdocs/assets/js/42170351.cee0ce87.js +1 -0
  26. data/tools/staticdocs/assets/js/43652efd.a68af7c2.js +1 -0
  27. data/tools/staticdocs/assets/js/4657.9492019f.js +2 -0
  28. data/tools/staticdocs/assets/js/53ca7c5b.5ba66d69.js +1 -0
  29. data/tools/staticdocs/assets/js/54d0d530.ae86bb53.js +1 -0
  30. data/tools/staticdocs/assets/js/55cdbca5.9562da85.js +1 -0
  31. data/tools/staticdocs/assets/js/5bc719f6.3f10a4f9.js +1 -0
  32. data/tools/staticdocs/assets/js/5c6ce5ec.3cb1b75a.js +1 -0
  33. data/tools/staticdocs/assets/js/5e3ed378.98a98907.js +1 -0
  34. data/tools/staticdocs/assets/js/5fe211ef.943a1325.js +1 -0
  35. data/tools/staticdocs/assets/js/64630c4f.d3aaa17e.js +1 -0
  36. data/tools/staticdocs/assets/js/6831b732.677fead8.js +1 -0
  37. data/tools/staticdocs/assets/js/696b4199.68411c90.js +1 -0
  38. data/tools/staticdocs/assets/js/6b210247.f17d074a.js +1 -0
  39. data/tools/staticdocs/assets/js/6b65133b.1691ed32.js +1 -0
  40. data/tools/staticdocs/assets/js/6f92e431.0e99b0f7.js +1 -0
  41. data/tools/staticdocs/assets/js/7158.db39a041.js +1 -0
  42. data/tools/staticdocs/assets/js/72c6d8a8.895d48ed.js +1 -0
  43. data/tools/staticdocs/assets/js/75373ac0.f2ff00fb.js +1 -0
  44. data/tools/staticdocs/assets/js/75e64983.a5199202.js +1 -0
  45. data/tools/staticdocs/assets/js/867640d5.52676c0c.js +1 -0
  46. data/tools/staticdocs/assets/js/89e76475.da0a4de8.js +1 -0
  47. data/tools/staticdocs/assets/js/8f7843ee.5069508d.js +1 -0
  48. data/tools/staticdocs/assets/js/9424f0b3.d0685f0f.js +1 -0
  49. data/tools/staticdocs/assets/js/97535711.7354a61a.js +1 -0
  50. data/tools/staticdocs/assets/js/99581c43.d6c28a4e.js +1 -0
  51. data/tools/staticdocs/assets/js/99b59eea.56ab3bff.js +1 -0
  52. data/tools/staticdocs/assets/js/9d6e81d0.9a3ba2db.js +1 -0
  53. data/tools/staticdocs/assets/js/9fb6059a.709498de.js +1 -0
  54. data/tools/staticdocs/assets/js/a507c363.b04cc959.js +1 -0
  55. data/tools/staticdocs/assets/js/a677c089.759b7b09.js +1 -0
  56. data/tools/staticdocs/assets/js/a9987364.e1bf97fd.js +1 -0
  57. data/tools/staticdocs/assets/js/aa6b6c1b.eb0299eb.js +1 -0
  58. data/tools/staticdocs/assets/js/b4596165.d2ef4105.js +1 -0
  59. data/tools/staticdocs/assets/js/b6d70f94.67e3cf1e.js +1 -0
  60. data/tools/staticdocs/assets/js/b9f60ba6.4f87cb90.js +1 -0
  61. data/tools/staticdocs/assets/js/bd0034eb.caedd00a.js +1 -0
  62. data/tools/staticdocs/assets/js/c24eae19.541e6a95.js +1 -0
  63. data/tools/staticdocs/assets/js/cb8c3f08.9ca026be.js +1 -0
  64. data/tools/staticdocs/assets/js/cd879be4.4b9bf792.js +1 -0
  65. data/tools/staticdocs/assets/js/d1b923aa.2c753a51.js +1 -0
  66. data/tools/staticdocs/assets/js/d1bfc316.f860e15e.js +1 -0
  67. data/tools/staticdocs/assets/js/d24bf9b6.a8d698fc.js +1 -0
  68. data/tools/staticdocs/assets/js/d57a4b5d.743b976b.js +1 -0
  69. data/tools/staticdocs/assets/js/d5d77c37.c1e1579f.js +1 -0
  70. data/tools/staticdocs/assets/js/d8ca4191.abd56e6c.js +1 -0
  71. data/tools/staticdocs/assets/js/d9b92eba.cd5125b1.js +1 -0
  72. data/tools/staticdocs/assets/js/db8fa1d0.c1a3930b.js +1 -0
  73. data/tools/staticdocs/assets/js/dc5f7beb.87e69867.js +1 -0
  74. data/tools/staticdocs/assets/js/e501b0d1.64985b23.js +1 -0
  75. data/tools/staticdocs/assets/js/ebec1ccb.15788749.js +1 -0
  76. data/tools/staticdocs/assets/js/f15615f1.0d1e925a.js +1 -0
  77. data/tools/staticdocs/assets/js/fd886806.5a283ff8.js +1 -0
  78. data/tools/staticdocs/assets/js/main.1b3209ca.js +2 -0
  79. data/tools/{docs/assets/js/main.b5a535c2.js.LICENSE.txt → staticdocs/assets/js/main.1b3209ca.js.LICENSE.txt} +24 -23
  80. data/tools/staticdocs/assets/js/runtime~main.6ca622b3.js +1 -0
  81. data/tools/staticdocs/docs/configuration/command.html +252 -0
  82. data/tools/staticdocs/docs/configuration/format.html +51 -0
  83. data/tools/staticdocs/docs/configuration/interfaces.html +72 -0
  84. data/tools/staticdocs/docs/configuration/plugins.html +339 -0
  85. data/tools/staticdocs/docs/configuration/protocols.html +118 -0
  86. data/tools/staticdocs/docs/configuration/ssl-tls.html +97 -0
  87. data/tools/staticdocs/docs/configuration/table.html +178 -0
  88. data/tools/staticdocs/docs/configuration/target.html +60 -0
  89. data/tools/staticdocs/docs/configuration/telemetry-screens.html +526 -0
  90. data/tools/staticdocs/docs/configuration/telemetry.html +198 -0
  91. data/tools/staticdocs/docs/configuration.html +13 -0
  92. data/tools/staticdocs/docs/development/curl.html +30 -0
  93. data/tools/staticdocs/docs/development/developing.html +111 -0
  94. data/tools/staticdocs/docs/development/host-install.html +38 -0
  95. data/tools/staticdocs/docs/development/json-api.html +59 -0
  96. data/tools/staticdocs/docs/development/log-structure.html +38 -0
  97. data/tools/staticdocs/docs/development/roadmap.html +15 -0
  98. data/tools/staticdocs/docs/development/streaming-api.html +37 -0
  99. data/tools/staticdocs/docs/development/testing.html +60 -0
  100. data/tools/staticdocs/docs/development.html +13 -0
  101. data/tools/staticdocs/docs/getting-started/gettingstarted.html +128 -0
  102. data/tools/staticdocs/docs/getting-started/installation.html +66 -0
  103. data/tools/staticdocs/docs/getting-started/key_concepts.html +45 -0
  104. data/tools/staticdocs/docs/getting-started/podman.html +95 -0
  105. data/tools/staticdocs/docs/getting-started/requirements.html +84 -0
  106. data/tools/staticdocs/docs/getting-started/upgrading.html +47 -0
  107. data/tools/staticdocs/docs/getting-started.html +13 -0
  108. data/tools/staticdocs/docs/guides/bridges.html +63 -0
  109. data/tools/staticdocs/docs/guides/cfs.html +115 -0
  110. data/tools/staticdocs/docs/guides/custom-widgets.html +30 -0
  111. data/tools/staticdocs/docs/guides/little-endian-bitfields.html +31 -0
  112. data/tools/staticdocs/docs/guides/local-mode.html +37 -0
  113. data/tools/staticdocs/docs/guides/logging.html +31 -0
  114. data/tools/staticdocs/docs/guides/monitoring.html +52 -0
  115. data/tools/staticdocs/docs/guides/performance.html +59 -0
  116. data/tools/staticdocs/docs/guides/raspberrypi.html +81 -0
  117. data/tools/staticdocs/docs/guides/script-writing.html +260 -0
  118. data/tools/staticdocs/docs/guides/scripting-api.html +1073 -0
  119. data/tools/staticdocs/docs/guides.html +13 -0
  120. data/tools/staticdocs/docs/meta/contributing.html +52 -0
  121. data/tools/staticdocs/docs/meta/philosophy.html +39 -0
  122. data/tools/staticdocs/docs/meta/xtce.html +110 -0
  123. data/tools/staticdocs/docs/meta.html +13 -0
  124. data/tools/staticdocs/docs/privacy.html +68 -0
  125. data/tools/staticdocs/docs/tools/autonomic.html +28 -0
  126. data/tools/staticdocs/docs/tools/bucket-explorer.html +23 -0
  127. data/tools/staticdocs/docs/tools/calendar.html +47 -0
  128. data/tools/staticdocs/docs/tools/cmd-sender.html +39 -0
  129. data/tools/staticdocs/docs/tools/cmd-tlm-server.html +45 -0
  130. data/tools/staticdocs/docs/tools/data-extractor.html +73 -0
  131. data/tools/staticdocs/docs/tools/data-viewer.html +32 -0
  132. data/tools/staticdocs/docs/tools/handbooks.html +16 -0
  133. data/tools/staticdocs/docs/tools/limits-monitor.html +30 -0
  134. data/tools/staticdocs/docs/tools/packet-viewer.html +37 -0
  135. data/tools/staticdocs/docs/tools/script-runner.html +91 -0
  136. data/tools/staticdocs/docs/tools/table-manager.html +34 -0
  137. data/tools/staticdocs/docs/tools/tlm-grapher.html +61 -0
  138. data/tools/staticdocs/docs/tools/tlm-viewer.html +45 -0
  139. data/tools/staticdocs/docs/tools.html +13 -0
  140. data/tools/staticdocs/docs/v5/bridges/index.html +11 -0
  141. data/tools/staticdocs/docs/v5/bucket-explorer/index.html +11 -0
  142. data/tools/staticdocs/docs/v5/calendar/index.html +11 -0
  143. data/tools/staticdocs/docs/v5/cfs/index.html +11 -0
  144. data/tools/staticdocs/docs/v5/cmd-sender/index.html +11 -0
  145. data/tools/staticdocs/docs/v5/cmd-tlm-server/index.html +11 -0
  146. data/tools/staticdocs/docs/v5/command/index.html +11 -0
  147. data/tools/staticdocs/docs/v5/contributing/index.html +11 -0
  148. data/tools/staticdocs/docs/v5/custom-widgets/index.html +11 -0
  149. data/tools/staticdocs/docs/v5/data-extractor/index.html +11 -0
  150. data/tools/staticdocs/docs/v5/data-viewer/index.html +11 -0
  151. data/tools/staticdocs/docs/v5/development/index.html +11 -0
  152. data/tools/staticdocs/docs/v5/format/index.html +11 -0
  153. data/tools/staticdocs/docs/v5/gettingstarted/index.html +11 -0
  154. data/tools/staticdocs/docs/v5/handbooks/index.html +11 -0
  155. data/tools/staticdocs/docs/v5/host-install/index.html +11 -0
  156. data/tools/staticdocs/docs/v5/index.html +11 -0
  157. data/tools/staticdocs/docs/v5/installation/index.html +11 -0
  158. data/tools/staticdocs/docs/v5/interfaces/index.html +11 -0
  159. data/tools/staticdocs/docs/v5/json-api/index.html +11 -0
  160. data/tools/staticdocs/docs/v5/limits-monitor/index.html +11 -0
  161. data/tools/staticdocs/docs/v5/little-endian-bitfields/index.html +11 -0
  162. data/tools/staticdocs/docs/v5/local-mode/index.html +11 -0
  163. data/tools/staticdocs/docs/v5/log-structure/index.html +11 -0
  164. data/tools/staticdocs/docs/v5/logging/index.html +11 -0
  165. data/tools/staticdocs/docs/v5/monitoring/index.html +11 -0
  166. data/tools/staticdocs/docs/v5/packet-viewer/index.html +11 -0
  167. data/tools/staticdocs/docs/v5/performance/index.html +11 -0
  168. data/tools/staticdocs/docs/v5/philosophy/index.html +11 -0
  169. data/tools/staticdocs/docs/v5/plugins/index.html +11 -0
  170. data/tools/staticdocs/docs/v5/podman/index.html +11 -0
  171. data/tools/staticdocs/docs/v5/protocols/index.html +11 -0
  172. data/tools/staticdocs/docs/v5/raspberrypi/index.html +11 -0
  173. data/tools/staticdocs/docs/v5/requirements/index.html +11 -0
  174. data/tools/staticdocs/docs/v5/roadmap/index.html +11 -0
  175. data/tools/staticdocs/docs/v5/script-runner/index.html +11 -0
  176. data/tools/staticdocs/docs/v5/script-writing/index.html +11 -0
  177. data/tools/staticdocs/docs/v5/scripting-api/index.html +11 -0
  178. data/tools/staticdocs/docs/v5/ssl-tls/index.html +11 -0
  179. data/tools/staticdocs/docs/v5/streaming-api/index.html +11 -0
  180. data/tools/staticdocs/docs/v5/table/index.html +11 -0
  181. data/tools/staticdocs/docs/v5/table-manager/index.html +11 -0
  182. data/tools/staticdocs/docs/v5/target/index.html +11 -0
  183. data/tools/staticdocs/docs/v5/telemetry/index.html +11 -0
  184. data/tools/staticdocs/docs/v5/telemetry-screens/index.html +11 -0
  185. data/tools/staticdocs/docs/v5/testing/index.html +11 -0
  186. data/tools/staticdocs/docs/v5/tlm-grapher/index.html +11 -0
  187. data/tools/staticdocs/docs/v5/tlm-viewer/index.html +11 -0
  188. data/tools/staticdocs/docs/v5/tools/index.html +11 -0
  189. data/tools/staticdocs/docs/v5/upgrading/index.html +11 -0
  190. data/tools/staticdocs/docs/v5/xtce/index.html +11 -0
  191. data/tools/staticdocs/docs.html +34 -0
  192. data/tools/staticdocs/index.html +13 -0
  193. data/tools/staticdocs/lunr-index-1702922896263.json +1 -0
  194. data/tools/staticdocs/lunr-index.json +1 -0
  195. data/tools/staticdocs/markdown-page.html +14 -0
  196. data/tools/staticdocs/search-doc-1702922896263.json +1 -0
  197. data/tools/staticdocs/search-doc.json +1 -0
  198. data/tools/staticdocs/sitemap.xml +1 -0
  199. metadata +432 -428
  200. data/tools/docs/404.html +0 -16
  201. data/tools/docs/assets/css/styles.7bc79028.css +0 -1
  202. data/tools/docs/assets/js/019369f3.bb600de8.js +0 -1
  203. data/tools/docs/assets/js/058ffc22.ce27f074.js +0 -1
  204. data/tools/docs/assets/js/0686a885.5fe3bfd4.js +0 -1
  205. data/tools/docs/assets/js/078dbab0.0a98e0c9.js +0 -1
  206. data/tools/docs/assets/js/0f5d161c.3a7b00e4.js +0 -1
  207. data/tools/docs/assets/js/0ff569c9.930bab08.js +0 -1
  208. data/tools/docs/assets/js/103cc3be.451dd416.js +0 -1
  209. data/tools/docs/assets/js/13196248.1be5ac81.js +0 -1
  210. data/tools/docs/assets/js/13c1b4e4.ad24c4f6.js +0 -1
  211. data/tools/docs/assets/js/15a39a64.4138456c.js +0 -1
  212. data/tools/docs/assets/js/2029.9e268a82.js +0 -1
  213. data/tools/docs/assets/js/2047b354.7995865f.js +0 -1
  214. data/tools/docs/assets/js/22b3ac48.73a6c979.js +0 -1
  215. data/tools/docs/assets/js/2846.a87f3fc4.js +0 -1
  216. data/tools/docs/assets/js/3477.783e2e37.js +0 -2
  217. data/tools/docs/assets/js/3dd7ef3b.8f77876c.js +0 -1
  218. data/tools/docs/assets/js/3df159b4.dded3e78.js +0 -1
  219. data/tools/docs/assets/js/40365d27.9322abd8.js +0 -1
  220. data/tools/docs/assets/js/411898ad.a1d949a2.js +0 -1
  221. data/tools/docs/assets/js/42170351.46c774f8.js +0 -1
  222. data/tools/docs/assets/js/43652efd.cbac4bc0.js +0 -1
  223. data/tools/docs/assets/js/5109.6a372217.js +0 -1
  224. data/tools/docs/assets/js/54d0d530.e9c8193b.js +0 -1
  225. data/tools/docs/assets/js/5bc719f6.fce76244.js +0 -1
  226. data/tools/docs/assets/js/5c6ce5ec.f909714f.js +0 -1
  227. data/tools/docs/assets/js/5e3ed378.cdfe0362.js +0 -1
  228. data/tools/docs/assets/js/5fe211ef.809c3f96.js +0 -1
  229. data/tools/docs/assets/js/6831b732.735c11e9.js +0 -1
  230. data/tools/docs/assets/js/696b4199.ff9185d0.js +0 -1
  231. data/tools/docs/assets/js/6b210247.248680ef.js +0 -1
  232. data/tools/docs/assets/js/6b65133b.2144fb1b.js +0 -1
  233. data/tools/docs/assets/js/6f92e431.608f28e7.js +0 -1
  234. data/tools/docs/assets/js/72c6d8a8.062b7650.js +0 -1
  235. data/tools/docs/assets/js/75e64983.d42f03f8.js +0 -1
  236. data/tools/docs/assets/js/7efc9fb0.6164fbad.js +0 -1
  237. data/tools/docs/assets/js/867640d5.28196e2c.js +0 -1
  238. data/tools/docs/assets/js/89e76475.5131b624.js +0 -1
  239. data/tools/docs/assets/js/8f7843ee.69e537b0.js +0 -1
  240. data/tools/docs/assets/js/9424f0b3.73086bed.js +0 -1
  241. data/tools/docs/assets/js/97535711.c7556831.js +0 -1
  242. data/tools/docs/assets/js/99581c43.30aef54d.js +0 -1
  243. data/tools/docs/assets/js/9d6e81d0.84fe3bb3.js +0 -1
  244. data/tools/docs/assets/js/9fb6059a.dc4760ab.js +0 -1
  245. data/tools/docs/assets/js/a182b3b3.25afec82.js +0 -1
  246. data/tools/docs/assets/js/a507c363.71a89240.js +0 -1
  247. data/tools/docs/assets/js/a677c089.2ec103f7.js +0 -1
  248. data/tools/docs/assets/js/a9987364.de63d165.js +0 -1
  249. data/tools/docs/assets/js/aa6b6c1b.6b24256f.js +0 -1
  250. data/tools/docs/assets/js/ada50b5c.1c75d3de.js +0 -1
  251. data/tools/docs/assets/js/b4596165.ab1c689f.js +0 -1
  252. data/tools/docs/assets/js/b6d70f94.ec27318b.js +0 -1
  253. data/tools/docs/assets/js/b9f60ba6.bb514133.js +0 -1
  254. data/tools/docs/assets/js/bd0034eb.0c60929d.js +0 -1
  255. data/tools/docs/assets/js/c24eae19.12176204.js +0 -1
  256. data/tools/docs/assets/js/cb8c3f08.762bb287.js +0 -1
  257. data/tools/docs/assets/js/cd879be4.3641a5cb.js +0 -1
  258. data/tools/docs/assets/js/d1b923aa.bf4b0c9e.js +0 -1
  259. data/tools/docs/assets/js/d24bf9b6.6ed3b576.js +0 -1
  260. data/tools/docs/assets/js/d370d7a7.28ef1aad.js +0 -1
  261. data/tools/docs/assets/js/d57a4b5d.017675ee.js +0 -1
  262. data/tools/docs/assets/js/d5d77c37.f472b18b.js +0 -1
  263. data/tools/docs/assets/js/d5f295fb.e008c3ec.js +0 -1
  264. data/tools/docs/assets/js/d7c988eb.2670948e.js +0 -1
  265. data/tools/docs/assets/js/d8ca4191.717db664.js +0 -1
  266. data/tools/docs/assets/js/d9b92eba.5eff70b2.js +0 -1
  267. data/tools/docs/assets/js/db8fa1d0.85784608.js +0 -1
  268. data/tools/docs/assets/js/dc5f7beb.120c148d.js +0 -1
  269. data/tools/docs/assets/js/e501b0d1.ae564e73.js +0 -1
  270. data/tools/docs/assets/js/f15615f1.3126a842.js +0 -1
  271. data/tools/docs/assets/js/fd886806.d2d0bdf4.js +0 -1
  272. data/tools/docs/assets/js/main.b5a535c2.js +0 -2
  273. data/tools/docs/assets/js/runtime~main.e3a6c705.js +0 -1
  274. data/tools/docs/docs/configuration/command.html +0 -40
  275. data/tools/docs/docs/configuration/format.html +0 -16
  276. data/tools/docs/docs/configuration/interfaces.html +0 -16
  277. data/tools/docs/docs/configuration/plugins.html +0 -17
  278. data/tools/docs/docs/configuration/protocols.html +0 -23
  279. data/tools/docs/docs/configuration/ssl-tls.html +0 -17
  280. data/tools/docs/docs/configuration/table.html +0 -30
  281. data/tools/docs/docs/configuration/target.html +0 -16
  282. data/tools/docs/docs/configuration/telemetry-screens.html +0 -36
  283. data/tools/docs/docs/configuration/telemetry.html +0 -16
  284. data/tools/docs/docs/configuration.html +0 -16
  285. data/tools/docs/docs/development/curl.html +0 -16
  286. data/tools/docs/docs/development/developing.html +0 -19
  287. data/tools/docs/docs/development/host-install.html +0 -16
  288. data/tools/docs/docs/development/json-api.html +0 -16
  289. data/tools/docs/docs/development/log-structure.html +0 -17
  290. data/tools/docs/docs/development/roadmap.html +0 -16
  291. data/tools/docs/docs/development/streaming-api.html +0 -18
  292. data/tools/docs/docs/development/testing.html +0 -16
  293. data/tools/docs/docs/development.html +0 -16
  294. data/tools/docs/docs/getting-started/gettingstarted.html +0 -16
  295. data/tools/docs/docs/getting-started/installation.html +0 -18
  296. data/tools/docs/docs/getting-started/podman.html +0 -18
  297. data/tools/docs/docs/getting-started/requirements.html +0 -16
  298. data/tools/docs/docs/getting-started/upgrading.html +0 -16
  299. data/tools/docs/docs/getting-started.html +0 -16
  300. data/tools/docs/docs/guides/bridges.html +0 -23
  301. data/tools/docs/docs/guides/cfs.html +0 -46
  302. data/tools/docs/docs/guides/custom-widgets.html +0 -16
  303. data/tools/docs/docs/guides/little-endian-bitfields.html +0 -16
  304. data/tools/docs/docs/guides/local-mode.html +0 -16
  305. data/tools/docs/docs/guides/logging.html +0 -16
  306. data/tools/docs/docs/guides/monitoring.html +0 -16
  307. data/tools/docs/docs/guides/performance.html +0 -16
  308. data/tools/docs/docs/guides/raspberrypi.html +0 -16
  309. data/tools/docs/docs/guides/script-writing.html +0 -18
  310. data/tools/docs/docs/guides/scripting-api.html +0 -17
  311. data/tools/docs/docs/guides.html +0 -16
  312. data/tools/docs/docs/meta/contributing.html +0 -20
  313. data/tools/docs/docs/meta/philosophy.html +0 -16
  314. data/tools/docs/docs/meta/xtce.html +0 -16
  315. data/tools/docs/docs/meta.html +0 -16
  316. data/tools/docs/docs/privacy.html +0 -23
  317. data/tools/docs/docs/tools/autonomic.html +0 -16
  318. data/tools/docs/docs/tools/bucket-explorer.html +0 -16
  319. data/tools/docs/docs/tools/calendar.html +0 -16
  320. data/tools/docs/docs/tools/cmd-sender.html +0 -16
  321. data/tools/docs/docs/tools/cmd-tlm-server.html +0 -17
  322. data/tools/docs/docs/tools/data-extractor.html +0 -16
  323. data/tools/docs/docs/tools/data-viewer.html +0 -16
  324. data/tools/docs/docs/tools/handbooks.html +0 -16
  325. data/tools/docs/docs/tools/limits-monitor.html +0 -16
  326. data/tools/docs/docs/tools/packet-viewer.html +0 -16
  327. data/tools/docs/docs/tools/script-runner.html +0 -16
  328. data/tools/docs/docs/tools/table-manager.html +0 -16
  329. data/tools/docs/docs/tools/tlm-grapher.html +0 -16
  330. data/tools/docs/docs/tools/tlm-viewer.html +0 -17
  331. data/tools/docs/docs/tools.html +0 -16
  332. data/tools/docs/docs/v5/bridges/index.html +0 -11
  333. data/tools/docs/docs/v5/bucket-explorer/index.html +0 -11
  334. data/tools/docs/docs/v5/calendar/index.html +0 -11
  335. data/tools/docs/docs/v5/cfs/index.html +0 -11
  336. data/tools/docs/docs/v5/cmd-sender/index.html +0 -11
  337. data/tools/docs/docs/v5/cmd-tlm-server/index.html +0 -11
  338. data/tools/docs/docs/v5/command/index.html +0 -11
  339. data/tools/docs/docs/v5/contributing/index.html +0 -11
  340. data/tools/docs/docs/v5/custom-widgets/index.html +0 -11
  341. data/tools/docs/docs/v5/data-extractor/index.html +0 -11
  342. data/tools/docs/docs/v5/data-viewer/index.html +0 -11
  343. data/tools/docs/docs/v5/development/index.html +0 -11
  344. data/tools/docs/docs/v5/format/index.html +0 -11
  345. data/tools/docs/docs/v5/gettingstarted/index.html +0 -11
  346. data/tools/docs/docs/v5/handbooks/index.html +0 -11
  347. data/tools/docs/docs/v5/host-install/index.html +0 -11
  348. data/tools/docs/docs/v5/index.html +0 -11
  349. data/tools/docs/docs/v5/installation/index.html +0 -11
  350. data/tools/docs/docs/v5/interfaces/index.html +0 -11
  351. data/tools/docs/docs/v5/json-api/index.html +0 -11
  352. data/tools/docs/docs/v5/limits-monitor/index.html +0 -11
  353. data/tools/docs/docs/v5/little-endian-bitfields/index.html +0 -11
  354. data/tools/docs/docs/v5/local-mode/index.html +0 -11
  355. data/tools/docs/docs/v5/log-structure/index.html +0 -11
  356. data/tools/docs/docs/v5/logging/index.html +0 -11
  357. data/tools/docs/docs/v5/monitoring/index.html +0 -11
  358. data/tools/docs/docs/v5/packet-viewer/index.html +0 -11
  359. data/tools/docs/docs/v5/performance/index.html +0 -11
  360. data/tools/docs/docs/v5/philosophy/index.html +0 -11
  361. data/tools/docs/docs/v5/plugins/index.html +0 -11
  362. data/tools/docs/docs/v5/podman/index.html +0 -11
  363. data/tools/docs/docs/v5/protocols/index.html +0 -11
  364. data/tools/docs/docs/v5/raspberrypi/index.html +0 -11
  365. data/tools/docs/docs/v5/requirements/index.html +0 -11
  366. data/tools/docs/docs/v5/roadmap/index.html +0 -11
  367. data/tools/docs/docs/v5/script-runner/index.html +0 -11
  368. data/tools/docs/docs/v5/script-writing/index.html +0 -11
  369. data/tools/docs/docs/v5/scripting-api/index.html +0 -11
  370. data/tools/docs/docs/v5/ssl-tls/index.html +0 -11
  371. data/tools/docs/docs/v5/streaming-api/index.html +0 -11
  372. data/tools/docs/docs/v5/table/index.html +0 -11
  373. data/tools/docs/docs/v5/table-manager/index.html +0 -11
  374. data/tools/docs/docs/v5/target/index.html +0 -11
  375. data/tools/docs/docs/v5/telemetry/index.html +0 -11
  376. data/tools/docs/docs/v5/telemetry-screens/index.html +0 -11
  377. data/tools/docs/docs/v5/testing/index.html +0 -11
  378. data/tools/docs/docs/v5/tlm-grapher/index.html +0 -11
  379. data/tools/docs/docs/v5/tlm-viewer/index.html +0 -11
  380. data/tools/docs/docs/v5/tools/index.html +0 -11
  381. data/tools/docs/docs/v5/upgrading/index.html +0 -11
  382. data/tools/docs/docs/v5/xtce/index.html +0 -11
  383. data/tools/docs/docs.html +0 -25
  384. data/tools/docs/index.html +0 -16
  385. data/tools/docs/lunr-index-1699630949575.json +0 -1
  386. data/tools/docs/lunr-index.json +0 -1
  387. data/tools/docs/markdown-page.html +0 -16
  388. data/tools/docs/search-doc-1699630949575.json +0 -1
  389. data/tools/docs/search-doc.json +0 -1
  390. data/tools/docs/sitemap.xml +0 -1
  391. /data/tools/{docs → staticdocs}/CNAME +0 -0
  392. /data/tools/{docs → staticdocs}/assets/images/add_packet-f318d0e92e8a13bd56331350aa341c88c8b12f2c54a4424f6e287817f22fb327.png +0 -0
  393. /data/tools/{docs → staticdocs}/assets/images/architecture-b78f12eba076a0c07af7abdd9dd4187c59aa6b4f5c51b47ad03f73e9f98a6ed6.png +0 -0
  394. /data/tools/{docs → staticdocs}/assets/images/autonomic-3d6d152f700c8fc1878d0f952d013ace31fccd7872d28587dc761610a0959e9c.png +0 -0
  395. /data/tools/{docs → staticdocs}/assets/images/bucket_explorer-983c087ee3bdcf8626219e782620b6c580fd82bfe2e8b0c662a0f90cdca43838.png +0 -0
  396. /data/tools/{docs → staticdocs}/assets/images/calendar-9fbd635cf3df1ba684bb0c1ebc4f6ad34991efc582e9fd07820c8b74cbb66aa1.png +0 -0
  397. /data/tools/{docs → staticdocs}/assets/images/checks_rb-a6049cdd99613cea2ee12d76fcfe798ff05270e39d208e93d37da7347049b2b3.png +0 -0
  398. /data/tools/{docs → staticdocs}/assets/images/cmd_tlm_server-313e3f64afc0e374d9d28b46364235d7b793001f84690fc0ae90e1eefdd9142d.png +0 -0
  399. /data/tools/{docs → staticdocs}/assets/images/command_sender-a0b113b65368263529d0f8f2d93276a0a44ed81af0d0100f56379346ba592928.png +0 -0
  400. /data/tools/{docs → staticdocs}/assets/images/commands-3608d5c856fd34e771d1f9e69f9f449f52929249bdf4f0e7feed0aa2bd2d9fd7.png +0 -0
  401. /data/tools/{docs → staticdocs}/assets/images/connecting-6e453f3d99800d4cb8fdc78f5b8fce1e8cf1bb04840a29dec7c5caefd07c004f.png +0 -0
  402. /data/tools/{docs → staticdocs}/assets/images/data_extractor-62c5b1743ba9dfdff2e393bcbdf863c36effc5ef5319d845cfd17186bd757bca.png +0 -0
  403. /data/tools/{docs → staticdocs}/assets/images/data_viewer-8c547cb5ad2ebd179aac5e46c2f4c147889ebad53a5359a5e6b6c580de7184fe.png +0 -0
  404. /data/tools/{docs → staticdocs}/assets/images/date_chooser-10f7b740b9acc76604e5dc86fe409b6b777abe0fb3fa5ebf8f47cb1ac58b9676.png +0 -0
  405. /data/tools/{docs → staticdocs}/assets/images/debug-04088348cc04bb8e1a1063fc44920dc8e39616840ef4b09a36c823f185c28669.png +0 -0
  406. /data/tools/{docs → staticdocs}/assets/images/delete_all_mouseover-06083f3d3d712d39f21bc5eda45adbfff449732a2061e53cb1a0baf6c5f5d4b8.png +0 -0
  407. /data/tools/{docs → staticdocs}/assets/images/delete_modified-a7ec0ceb61c37398d57fcecf11ebe2453ebd0110be6cfc960a5073a13a557638.png +0 -0
  408. /data/tools/{docs → staticdocs}/assets/images/edit_all_items-2c57aff19d3b1ce52149c37f50dcaad8c30baa0c9931fdc629f1d163bb56ce96.png +0 -0
  409. /data/tools/{docs → staticdocs}/assets/images/edit_all_mouseover-f6646df5320045ee10d4c0a15d0349fed6ede075f9cea6f9e449b3785c4f4f8d.png +0 -0
  410. /data/tools/{docs → staticdocs}/assets/images/edit_graph-4ca61635376fae26cf5eb82fb9fd803f1a51c4d3584aaf9833a270b7916bf531.png +0 -0
  411. /data/tools/{docs → staticdocs}/assets/images/edit_screen-5724ae13958c1631b3c187cf7cdb6dc9672ecd71f8b0786ac17c0266001edac3.png +0 -0
  412. /data/tools/{docs → staticdocs}/assets/images/edit_temp1-7446e7c5b7869ccc9ddd467779fa86f44301a5e5896751b016a527587c483cb2.png +0 -0
  413. /data/tools/{docs → staticdocs}/assets/images/file_menu-2fe13872737c0f3fef84ba5b58b80b609082733acce536ec1f56910c36f68299.png +0 -0
  414. /data/tools/{docs → staticdocs}/assets/images/file_open-319761fd383fc513b3689ef0a7498c73ce9459a3967c8a395cc2da07c89240d0.png +0 -0
  415. /data/tools/{docs → staticdocs}/assets/images/file_save_as-44468ed6a48bea3bc4fdd8f50d802569e4582b453e5bf946bfdcba400030d499.png +0 -0
  416. /data/tools/{docs → staticdocs}/assets/images/four_graphs-826cf8145338fa46e037556df94c59aeb4448330b601953daa94c89de8494cfd.png +0 -0
  417. /data/tools/{docs → staticdocs}/assets/images/graph_min_max-80a2bd83230c71b00ba9d6da24b8c32a09e4983976cdbf32c33d2680b534b106.png +0 -0
  418. /data/tools/{docs → staticdocs}/assets/images/graph_temp1-de937a79b314cf856b783c936d2460a6c942bdd45e4d9b3fe488957df5bfa9bc.png +0 -0
  419. /data/tools/{docs → staticdocs}/assets/images/graph_temp1_temp2-e96370f7d73a6cb68beaa92bcaaf18b72e6619ce948fe835762cca1048efbd18.png +0 -0
  420. /data/tools/{docs → staticdocs}/assets/images/graph_temp1_time-fec5e99e3cc05ea87208abe9c4b66b63b7497bbefee55f65d034417e966b1c46.png +0 -0
  421. /data/tools/{docs → staticdocs}/assets/images/handbooks-1d301c83c80a7cb96c548006f5139fe8ec967ed10a49df0142b37328cd987f33.png +0 -0
  422. /data/tools/{docs → staticdocs}/assets/images/ignored-1e20d4ffe7fd88ffab610340957b1176294269f985e8fdb20a9af07d7a78215f.png +0 -0
  423. /data/tools/{docs → staticdocs}/assets/images/inst_clear-5ecb859f06f14d91d2ebba27e5a7848d6393db5ad2357f95c12e776c45f6bc64.png +0 -0
  424. /data/tools/{docs → staticdocs}/assets/images/inst_collect-4f4e453a6521b779e10c4d2be6a8b1acf15fcb083af0164b0df1de27ca250132.png +0 -0
  425. /data/tools/{docs → staticdocs}/assets/images/inst_collect_hazardous-3aeabedb96bf114b4eb56b6b2ee7bcc601302ec8905a82a16c47ae7870f97978.png +0 -0
  426. /data/tools/{docs → staticdocs}/assets/images/inst_collect_hazardous_history-952a6e6ff2fb1b5fdf2c6b3d84a3ccf9e303eeb310f35514dc4a6e95f2a7420e.png +0 -0
  427. /data/tools/{docs → staticdocs}/assets/images/inst_collect_sent-0de429f724264ce8c52a6cb22d4bbb96f14e22b559c091ff4375bb59f124a7a2.png +0 -0
  428. /data/tools/{docs → staticdocs}/assets/images/inst_collect_sent_3-91cf4e053d246917964330ab93534a0a5eb878b652e7ea879effca7c4eaefbea.png +0 -0
  429. /data/tools/{docs → staticdocs}/assets/images/interface_read_logic-0deef27c1d2fec9de2a3720a3c9ecedb21a00dca7aabd13da0b8815c037e4c26.png +0 -0
  430. /data/tools/{docs → staticdocs}/assets/images/interface_write_logic-3360afe1b4af20b10dafba848a21e09baccaacc06e2ec8b6c132ac7a3c99e994.png +0 -0
  431. /data/tools/{docs → staticdocs}/assets/images/interfaces-5622abf50e3df63980661a48216bf71187f38cb636bd512f48917ca4a425f083.png +0 -0
  432. /data/tools/{docs → staticdocs}/assets/images/items_table-2fc1bb4d03a2348c4af7df442e13cee2f310cf455228005d76cbfda7a706aa53.png +0 -0
  433. /data/tools/{docs → staticdocs}/assets/images/items_table_raw-c4d454679c4503ec35710dcee6be5cd1940984595145b333d8604bc505dfe291.png +0 -0
  434. /data/tools/{docs → staticdocs}/assets/images/items_table_temp1-ea091eaf8005cea839800f4514f72f94e9664993111b935f33e7c5aa3061ca64.png +0 -0
  435. /data/tools/{docs → staticdocs}/assets/images/limits_monitor-c58d70daea7586b93d5069b9df068a90cea5f7cf2e51a445f3162bf3f66db3d0.png +0 -0
  436. /data/tools/{docs → staticdocs}/assets/images/list_view-926f42bc1e43283c61616b0cd8fd630cad8e15c9b7298acd98536842472e673b.png +0 -0
  437. /data/tools/{docs → staticdocs}/assets/images/log-ba64fd307e53adafae55fcea7eb31829ee1aacdf4aafe8b40b270b793be3aa27.png +0 -0
  438. /data/tools/{docs → staticdocs}/assets/images/log_messages-19c3ce9c7ff86e43d459cb6591df8c05d25e1390d857728cb462a57b9d3ccc69.png +0 -0
  439. /data/tools/{docs → staticdocs}/assets/images/log_messages-2cfad0fd6f6f980f69b5564a4b7ecfecf3331c6256c78bcfb2b084970db305ca.png +0 -0
  440. /data/tools/{docs → staticdocs}/assets/images/minimized-59d0d8d8a179ff0475787e87237b77b24d59d78826d43dbc1a554a51380eb37f.png +0 -0
  441. /data/tools/{docs → staticdocs}/assets/images/minimized-a658bd8f2115d3f9a386844e886de770b23bbf9c0c8c55a4ca587cea67ec320e.png +0 -0
  442. /data/tools/{docs → staticdocs}/assets/images/minio-150460ac77a50711835de6f0150d019000e5515afae0f3adfcdda8e891484f47.png +0 -0
  443. /data/tools/{docs → staticdocs}/assets/images/mouseover-95b774047b3c2ca23a3bc645caf75d90511c378729dd9cfb781510a1452e09fe.png +0 -0
  444. /data/tools/{docs → staticdocs}/assets/images/new_screen-295720ec60219194c8c8dd64c755e8a188cc4a68c2b6cf66197b54514644d52a.png +0 -0
  445. /data/tools/{docs → staticdocs}/assets/images/notifications-5b32d6619542431027ddd67491eb445469fa2d16fa8352a2b0917b9298b7bbb2.png +0 -0
  446. /data/tools/{docs → staticdocs}/assets/images/open_config-2e61415a3c2d7a4ce427cf325f3708dd4a761092b7dd0c869279c4354dc34ae4.png +0 -0
  447. /data/tools/{docs → staticdocs}/assets/images/open_config-3cd3be1ce4560d9e72bb37b83dc830149091dec9a088c36187e0e72660c6ec34.png +0 -0
  448. /data/tools/{docs → staticdocs}/assets/images/open_config-55ef2f241d02047b252bb8201742f99cffed5680d0e9eb46b3cb53a644ca3dc9.png +0 -0
  449. /data/tools/{docs → staticdocs}/assets/images/open_config-f848a8b371ae0ec31776834148e9f978d9be94efef03534e5ca3a59c0ae3847f.png +0 -0
  450. /data/tools/{docs → staticdocs}/assets/images/packet_viewer-19c1015cc704a98d1f6d90dd0dadc13188d25f1d5d2e838b7cfb226e8c173c7b.png +0 -0
  451. /data/tools/{docs → staticdocs}/assets/images/plugin-variables-5bc00c744182c9a9591e84cb3bbb1c4deb53ff22e05f62ce1b807c26bed782e5.png +0 -0
  452. /data/tools/{docs → staticdocs}/assets/images/processing-b0c50908284739a76e1bbcfcb3eb34dc9446f8716117cb0e9089ad9df53ebed6.png +0 -0
  453. /data/tools/{docs → staticdocs}/assets/images/project-fe7ac90f3e45971fca8f1be94be9dbabe494bafe705e7f8f485676e9d96e47ea.png +0 -0
  454. /data/tools/{docs → staticdocs}/assets/images/project_update-8e7de3b0658b95d4d9931eb52ff8bf339d633cbdc273ce096eb11ceb357c009e.png +0 -0
  455. /data/tools/{docs → staticdocs}/assets/images/raw_command-759d93759a73a6a3dd7e30f89fc4d1a544dfb6f7355abfed03897d404279161d.png +0 -0
  456. /data/tools/{docs → staticdocs}/assets/images/raw_telemetry-ffeb6b603f9a9abbe0cb77afaaeb4b4f07dfee479682a5c9661f85589a679049.png +0 -0
  457. /data/tools/{docs → staticdocs}/assets/images/raw_tlm_logs-8dcba4f020b36f8efbb793271b70d40d9cad627196afaeb5bf6f3931ed53fa52.png +0 -0
  458. /data/tools/{docs → staticdocs}/assets/images/reactions-dd4a8ebf22eed921a82a5478d23178c62e2cf944d295c2b9e3f4d7ce555b0fcc.png +0 -0
  459. /data/tools/{docs → staticdocs}/assets/images/reload_file-8e26cd3e1bc1eab7bb6c046d9a6a8231fcd76e56682d819b1e549182890c6486.png +0 -0
  460. /data/tools/{docs → staticdocs}/assets/images/reloaded-9effa15527244928ee503eb0c3a48cc5e82c07cfb5d5c4300eacfcab913069d1.png +0 -0
  461. /data/tools/{docs → staticdocs}/assets/images/running_scripts-78bfd36a6c8c7167234e03bd188e974927c2beea1f730498583169a81639e7a3.png +0 -0
  462. /data/tools/{docs → staticdocs}/assets/images/save_config-0ae36ac1f8114665f2558e936ba3b30e5cba2a16cc01d3494e14ed689b4637f7.png +0 -0
  463. /data/tools/{docs → staticdocs}/assets/images/save_config-8b028134b07c70d6de019825cbb328623fc485d72aad9ba5b1980246b316fec2.png +0 -0
  464. /data/tools/{docs → staticdocs}/assets/images/save_config-e4ed80276ebdc2c4eaf9aaeb859cff8aecb380b22da8c659741c31ca66914098.png +0 -0
  465. /data/tools/{docs → staticdocs}/assets/images/save_config-e748a338526ffd8f9e49def5c0d15f8a80cd987f40d210ff6c6d4b61b713555c.png +0 -0
  466. /data/tools/{docs → staticdocs}/assets/images/script_error-ce060b3086e7b466e51a276fb6b27245b4d042f07a60fe121b0071dd65a42075.png +0 -0
  467. /data/tools/{docs → staticdocs}/assets/images/script_runner-7d7f01b90be962b4de46c20568727c55488eec5d9844823b53a262c9cfc470fa.png +0 -0
  468. /data/tools/{docs → staticdocs}/assets/images/script_suite-42832d936f91417740b76a39841996c8e4a7cf5391dbb19abe9d7b31ab07dd7d.png +0 -0
  469. /data/tools/{docs → staticdocs}/assets/images/select_item-f063106a8d836656496ba81e7e7428f51bd8ab95aebab0aa4eb6ad41ed42e026.png +0 -0
  470. /data/tools/{docs → staticdocs}/assets/images/select_packet-0b6d5a2b012445ab2bf0fd3e1545f015cd7787280d05d2bccb0a9c9220102529.png +0 -0
  471. /data/tools/{docs → staticdocs}/assets/images/select_packet-be9d63c49f898cccb73f9e4b2b39c4b5879cead34a8ab2ede0bb08e953498e95.png +0 -0
  472. /data/tools/{docs → staticdocs}/assets/images/select_target-71ebcab6cbefafd8958939130861a75f7544e99a043d90fa0734ec2f983d835f.png +0 -0
  473. /data/tools/{docs → staticdocs}/assets/images/simple_screen-3c9d6d2366c716c03a301396a4ce0ea418532890f349d9bc9ebb8be90983a6e6.png +0 -0
  474. /data/tools/{docs → staticdocs}/assets/images/status-80010882300d2f1c453fbc4cb35bdb1f06d3db578266dda95c56ea7ec230ac72.png +0 -0
  475. /data/tools/{docs → staticdocs}/assets/images/table_manager-9a5357ce536102bc1bb0c859be552f4ac82f62e538935a3c45a8e76d4f9744db.png +0 -0
  476. /data/tools/{docs → staticdocs}/assets/images/targets-d15296b133787be4997c3d5e7d43eec9030831f1758508a8f6a71d40d04478ce.png +0 -0
  477. /data/tools/{docs → staticdocs}/assets/images/telemetry-3f1169fc67b3d2427047ba66a9b2f3ddf71f61edf498ee70d14e78f0ef3c1e3c.png +0 -0
  478. /data/tools/{docs → staticdocs}/assets/images/telemetry_grapher-a96b7e0101f5e377a73a186683e967e79d748c5dff2dfed6ec0afcea5694d7c8.png +0 -0
  479. /data/tools/{docs → staticdocs}/assets/images/telemetry_viewer-be6ee576f1efceb39c2f744889deb4c18f571c4922c69d5d0e5f49a653776a46.png +0 -0
  480. /data/tools/{docs → staticdocs}/assets/images/temp1_details-f0b6e62bc28da18febacc936112735e1dbd5718ef675668f04d8b3e060d7f87a.png +0 -0
  481. /data/tools/{docs → staticdocs}/assets/images/time_chooser-e4ca0705d5b97c3056b0de3ab7f71f8091482b9b2e8904e69866a43ce4e616f2.png +0 -0
  482. /data/tools/{docs → staticdocs}/assets/images/timeline_lifecycle-0bd916dee06bf67936b043abfdbc4d5fdec7cc5a32a889ee6c05e9faf74f4c6a.png +0 -0
  483. /data/tools/{docs → staticdocs}/assets/images/triggers-0b0b3f9cc2850c1b83b9a7aab6f8a936626fd847c3158e993e4baa0e64b38096.png +0 -0
  484. /data/tools/{docs → staticdocs}/assets/images/two_full_height-7cf9d0bbdf0269ad85e312f6dcb77930e1e3c4319f9750968a9347fafcf26084.png +0 -0
  485. /data/tools/{docs → staticdocs}/assets/images/two_full_width-db2d88c0e2e6fc417016f47e3bac0bf68374957d8fc014220f53870429ea1ef3.png +0 -0
  486. /data/tools/{docs → staticdocs}/assets/images/view_portal-b2e5fef00be80f1551b965d170fc3cd8ed95597f0a1e475a8177ab2d306215f5.png +0 -0
  487. /data/tools/{docs → staticdocs}/assets/images/view_portal_add-56f06135fc56f1fa85cbc22ea3b7ad52f311641aad25df08b6f4a6f979b30e3f.png +0 -0
  488. /data/tools/{docs → staticdocs}/assets/js/1131.f9e1547d.js +0 -0
  489. /data/tools/{docs → staticdocs}/assets/js/2923e883.0cbdcbc5.js +0 -0
  490. /data/tools/{docs/assets/js/3477.783e2e37.js.LICENSE.txt → staticdocs/assets/js/4657.9492019f.js.LICENSE.txt} +0 -0
  491. /data/tools/{docs → staticdocs}/assets/js/d797a795.9243eac2.js +0 -0
  492. /data/tools/{docs → staticdocs}/img/BCT.png +0 -0
  493. /data/tools/{docs → staticdocs}/img/OpenC3.png +0 -0
  494. /data/tools/{docs → staticdocs}/img/article-footer.png +0 -0
  495. /data/tools/{docs → staticdocs}/img/ball.jpg +0 -0
  496. /data/tools/{docs → staticdocs}/img/black_logo.svg +0 -0
  497. /data/tools/{docs → staticdocs}/img/captech.gif +0 -0
  498. /data/tools/{docs → staticdocs}/img/docusaurus-social-card.jpg +0 -0
  499. /data/tools/{docs → staticdocs}/img/docusaurus.png +0 -0
  500. /data/tools/{docs → staticdocs}/img/favicon.png +0 -0
  501. /data/tools/{docs → staticdocs}/img/footer-logo.png +0 -0
  502. /data/tools/{docs → staticdocs}/img/interface_read_logic.png +0 -0
  503. /data/tools/{docs → staticdocs}/img/interface_write_logic.png +0 -0
  504. /data/tools/{docs → staticdocs}/img/johnh.gif +0 -0
  505. /data/tools/{docs → staticdocs}/img/lockheed.png +0 -0
  506. /data/tools/{docs → staticdocs}/img/logo.svg +0 -0
  507. /data/tools/{docs → staticdocs}/img/nasa.gif +0 -0
  508. /data/tools/{docs → staticdocs}/img/sdlusu.gif +0 -0
  509. /data/tools/{docs → staticdocs}/img/v5/architecture.png +0 -0
  510. /data/tools/{docs → staticdocs}/img/v5/autonomic/autonomic.png +0 -0
  511. /data/tools/{docs → staticdocs}/img/v5/autonomic/reactions.png +0 -0
  512. /data/tools/{docs → staticdocs}/img/v5/autonomic/triggers.png +0 -0
  513. /data/tools/{docs → staticdocs}/img/v5/bucket_explorer/bucket_explorer.png +0 -0
  514. /data/tools/{docs → staticdocs}/img/v5/calendar/calendar.png +0 -0
  515. /data/tools/{docs → staticdocs}/img/v5/calendar/list_view.png +0 -0
  516. /data/tools/{docs → staticdocs}/img/v5/calendar/timeline_lifecycle.png +0 -0
  517. /data/tools/{docs → staticdocs}/img/v5/cmd_tlm_server/cmd_tlm_server.png +0 -0
  518. /data/tools/{docs → staticdocs}/img/v5/cmd_tlm_server/commands.png +0 -0
  519. /data/tools/{docs → staticdocs}/img/v5/cmd_tlm_server/file_menu.png +0 -0
  520. /data/tools/{docs → staticdocs}/img/v5/cmd_tlm_server/interfaces.png +0 -0
  521. /data/tools/{docs → staticdocs}/img/v5/cmd_tlm_server/log_messages.png +0 -0
  522. /data/tools/{docs → staticdocs}/img/v5/cmd_tlm_server/raw_command.png +0 -0
  523. /data/tools/{docs → staticdocs}/img/v5/cmd_tlm_server/raw_telemetry.png +0 -0
  524. /data/tools/{docs → staticdocs}/img/v5/cmd_tlm_server/routers.png +0 -0
  525. /data/tools/{docs → staticdocs}/img/v5/cmd_tlm_server/status.png +0 -0
  526. /data/tools/{docs → staticdocs}/img/v5/cmd_tlm_server/targets.png +0 -0
  527. /data/tools/{docs → staticdocs}/img/v5/cmd_tlm_server/telemetry.png +0 -0
  528. /data/tools/{docs → staticdocs}/img/v5/command_sender/command_sender.png +0 -0
  529. /data/tools/{docs → staticdocs}/img/v5/command_sender/inst_clear.png +0 -0
  530. /data/tools/{docs → staticdocs}/img/v5/command_sender/inst_collect.png +0 -0
  531. /data/tools/{docs → staticdocs}/img/v5/command_sender/inst_collect_hazardous.png +0 -0
  532. /data/tools/{docs → staticdocs}/img/v5/command_sender/inst_collect_hazardous_history.png +0 -0
  533. /data/tools/{docs → staticdocs}/img/v5/command_sender/inst_collect_sent.png +0 -0
  534. /data/tools/{docs → staticdocs}/img/v5/command_sender/inst_collect_sent_3.png +0 -0
  535. /data/tools/{docs → staticdocs}/img/v5/command_sender/mode_menu.png +0 -0
  536. /data/tools/{docs → staticdocs}/img/v5/contact/jason.png +0 -0
  537. /data/tools/{docs → staticdocs}/img/v5/contact/ryan.jpeg +0 -0
  538. /data/tools/{docs → staticdocs}/img/v5/data_extractor/data_extractor.png +0 -0
  539. /data/tools/{docs → staticdocs}/img/v5/data_extractor/date_chooser.png +0 -0
  540. /data/tools/{docs → staticdocs}/img/v5/data_extractor/delete_all_mouseover.png +0 -0
  541. /data/tools/{docs → staticdocs}/img/v5/data_extractor/download.png +0 -0
  542. /data/tools/{docs → staticdocs}/img/v5/data_extractor/edit_all_items.png +0 -0
  543. /data/tools/{docs → staticdocs}/img/v5/data_extractor/edit_all_mouseover.png +0 -0
  544. /data/tools/{docs → staticdocs}/img/v5/data_extractor/edit_temp1.png +0 -0
  545. /data/tools/{docs → staticdocs}/img/v5/data_extractor/file_menu.png +0 -0
  546. /data/tools/{docs → staticdocs}/img/v5/data_extractor/items_table.png +0 -0
  547. /data/tools/{docs → staticdocs}/img/v5/data_extractor/items_table_raw.png +0 -0
  548. /data/tools/{docs → staticdocs}/img/v5/data_extractor/items_table_temp1.png +0 -0
  549. /data/tools/{docs → staticdocs}/img/v5/data_extractor/mode_menu.png +0 -0
  550. /data/tools/{docs → staticdocs}/img/v5/data_extractor/open_config.png +0 -0
  551. /data/tools/{docs → staticdocs}/img/v5/data_extractor/processing.png +0 -0
  552. /data/tools/{docs → staticdocs}/img/v5/data_extractor/save_config.png +0 -0
  553. /data/tools/{docs → staticdocs}/img/v5/data_extractor/select_item.png +0 -0
  554. /data/tools/{docs → staticdocs}/img/v5/data_extractor/select_packet.png +0 -0
  555. /data/tools/{docs → staticdocs}/img/v5/data_extractor/select_target.png +0 -0
  556. /data/tools/{docs → staticdocs}/img/v5/data_extractor/time_chooser.png +0 -0
  557. /data/tools/{docs → staticdocs}/img/v5/data_viewer/add_packet.png +0 -0
  558. /data/tools/{docs → staticdocs}/img/v5/data_viewer/data_viewer.png +0 -0
  559. /data/tools/{docs → staticdocs}/img/v5/data_viewer/file_menu.png +0 -0
  560. /data/tools/{docs → staticdocs}/img/v5/data_viewer/open_config.png +0 -0
  561. /data/tools/{docs → staticdocs}/img/v5/data_viewer/rename_tab.png +0 -0
  562. /data/tools/{docs → staticdocs}/img/v5/data_viewer/save_config.png +0 -0
  563. /data/tools/{docs → staticdocs}/img/v5/data_viewer/tab_right_click.png +0 -0
  564. /data/tools/{docs → staticdocs}/img/v5/data_viewer/view_portal.png +0 -0
  565. /data/tools/{docs → staticdocs}/img/v5/data_viewer/view_portal_add.png +0 -0
  566. /data/tools/{docs → staticdocs}/img/v5/guides/local_mode/delete_modified.png +0 -0
  567. /data/tools/{docs → staticdocs}/img/v5/guides/local_mode/minio.png +0 -0
  568. /data/tools/{docs → staticdocs}/img/v5/guides/local_mode/project.png +0 -0
  569. /data/tools/{docs → staticdocs}/img/v5/guides/local_mode/project_update.png +0 -0
  570. /data/tools/{docs → staticdocs}/img/v5/guides/local_mode/reload_file.png +0 -0
  571. /data/tools/{docs → staticdocs}/img/v5/guides/local_mode/reloaded.png +0 -0
  572. /data/tools/{docs → staticdocs}/img/v5/guides/logging/browser.png +0 -0
  573. /data/tools/{docs → staticdocs}/img/v5/guides/logging/log_messages.png +0 -0
  574. /data/tools/{docs → staticdocs}/img/v5/guides/logging/notifications.png +0 -0
  575. /data/tools/{docs → staticdocs}/img/v5/guides/logging/raw_tlm_logs.png +0 -0
  576. /data/tools/{docs → staticdocs}/img/v5/guides/plugin-variables.png +0 -0
  577. /data/tools/{docs → staticdocs}/img/v5/guides/simple_screen.png +0 -0
  578. /data/tools/{docs → staticdocs}/img/v5/handbooks/handbooks.png +0 -0
  579. /data/tools/{docs → staticdocs}/img/v5/limits_monitor/ignored.png +0 -0
  580. /data/tools/{docs → staticdocs}/img/v5/limits_monitor/limits_monitor.png +0 -0
  581. /data/tools/{docs → staticdocs}/img/v5/limits_monitor/log.png +0 -0
  582. /data/tools/{docs → staticdocs}/img/v5/limits_monitor/mouseover.png +0 -0
  583. /data/tools/{docs → staticdocs}/img/v5/navigation.png +0 -0
  584. /data/tools/{docs → staticdocs}/img/v5/packet_viewer/file_menu.png +0 -0
  585. /data/tools/{docs → staticdocs}/img/v5/packet_viewer/packet_viewer.png +0 -0
  586. /data/tools/{docs → staticdocs}/img/v5/packet_viewer/select_packet.png +0 -0
  587. /data/tools/{docs → staticdocs}/img/v5/packet_viewer/temp1_details.png +0 -0
  588. /data/tools/{docs → staticdocs}/img/v5/packet_viewer/view_menu.png +0 -0
  589. /data/tools/{docs → staticdocs}/img/v5/script_runner/checks_rb.png +0 -0
  590. /data/tools/{docs → staticdocs}/img/v5/script_runner/connecting.png +0 -0
  591. /data/tools/{docs → staticdocs}/img/v5/script_runner/debug.png +0 -0
  592. /data/tools/{docs → staticdocs}/img/v5/script_runner/file_menu.png +0 -0
  593. /data/tools/{docs → staticdocs}/img/v5/script_runner/file_open.png +0 -0
  594. /data/tools/{docs → staticdocs}/img/v5/script_runner/file_save_as.png +0 -0
  595. /data/tools/{docs → staticdocs}/img/v5/script_runner/running_scripts.png +0 -0
  596. /data/tools/{docs → staticdocs}/img/v5/script_runner/script_error.png +0 -0
  597. /data/tools/{docs → staticdocs}/img/v5/script_runner/script_menu.png +0 -0
  598. /data/tools/{docs → staticdocs}/img/v5/script_runner/script_runner.png +0 -0
  599. /data/tools/{docs → staticdocs}/img/v5/script_runner/script_suite.png +0 -0
  600. /data/tools/{docs → staticdocs}/img/v5/table_manager/file_menu.png +0 -0
  601. /data/tools/{docs → staticdocs}/img/v5/table_manager/table_manager.png +0 -0
  602. /data/tools/{docs → staticdocs}/img/v5/telemetry_grapher/edit_graph.png +0 -0
  603. /data/tools/{docs → staticdocs}/img/v5/telemetry_grapher/file_menu.png +0 -0
  604. /data/tools/{docs → staticdocs}/img/v5/telemetry_grapher/four_graphs.png +0 -0
  605. /data/tools/{docs → staticdocs}/img/v5/telemetry_grapher/graph_menu.png +0 -0
  606. /data/tools/{docs → staticdocs}/img/v5/telemetry_grapher/graph_min_max.png +0 -0
  607. /data/tools/{docs → staticdocs}/img/v5/telemetry_grapher/graph_temp1.png +0 -0
  608. /data/tools/{docs → staticdocs}/img/v5/telemetry_grapher/graph_temp1_temp2.png +0 -0
  609. /data/tools/{docs → staticdocs}/img/v5/telemetry_grapher/graph_temp1_time.png +0 -0
  610. /data/tools/{docs → staticdocs}/img/v5/telemetry_grapher/grapher_controls.png +0 -0
  611. /data/tools/{docs → staticdocs}/img/v5/telemetry_grapher/minimized.png +0 -0
  612. /data/tools/{docs → staticdocs}/img/v5/telemetry_grapher/open_config.png +0 -0
  613. /data/tools/{docs → staticdocs}/img/v5/telemetry_grapher/save_config.png +0 -0
  614. /data/tools/{docs → staticdocs}/img/v5/telemetry_grapher/stop_start.png +0 -0
  615. /data/tools/{docs → staticdocs}/img/v5/telemetry_grapher/telemetry_grapher.png +0 -0
  616. /data/tools/{docs → staticdocs}/img/v5/telemetry_grapher/two_full_height.png +0 -0
  617. /data/tools/{docs → staticdocs}/img/v5/telemetry_grapher/two_full_width.png +0 -0
  618. /data/tools/{docs → staticdocs}/img/v5/telemetry_viewer/edit_screen.png +0 -0
  619. /data/tools/{docs → staticdocs}/img/v5/telemetry_viewer/file_menu.png +0 -0
  620. /data/tools/{docs → staticdocs}/img/v5/telemetry_viewer/minimized.png +0 -0
  621. /data/tools/{docs → staticdocs}/img/v5/telemetry_viewer/new_screen.png +0 -0
  622. /data/tools/{docs → staticdocs}/img/v5/telemetry_viewer/open_config.png +0 -0
  623. /data/tools/{docs → staticdocs}/img/v5/telemetry_viewer/save_config.png +0 -0
  624. /data/tools/{docs → staticdocs}/img/v5/telemetry_viewer/telemetry_viewer.png +0 -0
@@ -0,0 +1,115 @@
1
+ <!doctype html>
2
+ <html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-guides/cfs" data-has-hydrated="false">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="generator" content="Docusaurus v3.0.0">
6
+ <title data-rh="true">COSMOS and NASA cFS | OpenC3 Docs</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://docs.openc3.com/tools/staticdocs/docs/guides/cfs"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="COSMOS and NASA cFS | OpenC3 Docs"><meta data-rh="true" name="description" content="Working configuration"><meta data-rh="true" property="og:description" content="Working configuration"><link data-rh="true" rel="icon" href="/tools/staticdocs/img/favicon.png"><link data-rh="true" rel="canonical" href="https://docs.openc3.com/tools/staticdocs/docs/guides/cfs"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/guides/cfs" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/guides/cfs" hreflang="x-default"><link rel="stylesheet" href="/tools/staticdocs/assets/css/styles.6e885bef.css">
7
+ <script src="/tools/staticdocs/assets/js/runtime~main.6ca622b3.js" defer="defer"></script>
8
+ <script src="/tools/staticdocs/assets/js/main.1b3209ca.js" defer="defer"></script>
9
+ </head>
10
+ <body class="navigation-with-keyboard">
11
+ <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"dark")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_G6ar" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/tools/staticdocs/"><div class="navbar__logo"><img src="/tools/staticdocs/img/logo.svg" alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--light_DIHH"><img src="/tools/staticdocs/img/logo.svg" alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--dark_Bv2M"></div><b class="navbar__title text--truncate">OpenC3 Docs</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/tools/staticdocs/docs">Documentation</a><a href="https://openc3.com/enterprise/" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Enterprise</a></div><div class="navbar__items navbar__items--right"><div class="navbarSearchContainer_bmvg"><div class="navbar__search"><span aria-label="expand searchbar" role="button" class="search-icon" tabindex="0"></span><input id="search_input_react" type="search" placeholder="Loading..." aria-label="Search" class="navbar__search-input search-bar" disabled=""></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_UyTV"><div class="docsWrapper_XLvK"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_z1FD" type="button"></button><div class="docRoot_HciC"><aside class="theme-doc-sidebar-container docSidebarContainer_e5ai"><div class="sidebarViewport_N8x0"><div class="sidebar_vJCc"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_qiME"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/tools/staticdocs/docs">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/getting-started">Getting Started</a><button aria-label="Expand sidebar category &#x27;Getting Started&#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/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"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/tools/staticdocs/docs/guides">Guides</a><button aria-label="Collapse sidebar category &#x27;Guides&#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/guides/bridges">Bridges</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/tools/staticdocs/docs/guides/cfs">COSMOS and NASA cFS</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/custom-widgets">Custom Widgets</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/little-endian-bitfields">Little Endian Bitfields</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/local-mode">Local Mode</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/logging">Logging</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/monitoring">Monitoring</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/performance">Performance</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/raspberrypi">Raspberry Pi</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/script-writing">Script Writing Guide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/scripting-api">Scripting API Guide</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/development">Development</a><button aria-label="Expand sidebar category &#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/guides"><span itemprop="name">Guides</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">COSMOS and NASA cFS</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_O_Qc theme-doc-toc-mobile tocMobile_tjDr"><button type="button" class="clean-btn tocCollapsibleButton_htYj">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>COSMOS and NASA cFS</h1></header><h2 class="anchor anchorWithStickyNavbar_fF9Z" id="working-configuration">Working configuration<a href="#working-configuration" class="hash-link" aria-label="Direct link to Working configuration" title="Direct link to Working configuration">​</a></h2>
12
+ <p>This tutorial has been tested using the following components:</p>
13
+ <ul>
14
+ <li>COSMOS v5 release <a href="https://github.com/OpenC3/cosmos/releases/tag/v5.0.6" target="_blank" rel="noopener noreferrer">5.0.6</a></li>
15
+ <li>cFS master-branch commit: 561b128 (June 1, 2022)</li>
16
+ <li>Docker Desktop 4.9.0 on Windows</li>
17
+ </ul>
18
+ <p>Replace all <code>&lt;xxxxxx&gt;</code> with your matching paths and names. Example: <code>&lt;USERNAME&gt;</code>.</p>
19
+ <h2 class="anchor anchorWithStickyNavbar_fF9Z" id="setting-up-cosmos">Setting up COSMOS<a href="#setting-up-cosmos" class="hash-link" aria-label="Direct link to Setting up COSMOS" title="Direct link to Setting up COSMOS">​</a></h2>
20
+ <p>Install COSMOS according to the official <a href="/tools/staticdocs/docs/getting-started/installation">installation</a> instructions.</p>
21
+ <h3 class="anchor anchorWithStickyNavbar_fF9Z" id="configuring-cosmos">Configuring COSMOS<a href="#configuring-cosmos" class="hash-link" aria-label="Direct link to Configuring COSMOS" title="Direct link to Configuring COSMOS">​</a></h3>
22
+ <p>Change the Docker configuration for the interoperability with NASA cFS. For
23
+ subscribing to the telemetry, you have to append a port binding in the file
24
+ <code>compose.yaml</code> under the section <code>openc3-operator</code>. The port number has to
25
+ match with the port number cFS is sending the telemetry on.</p>
26
+ <div class="language-yaml codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-yaml codeBlock_TAPP thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_AdAo"><span class="token-line" style="color:#d6deeb"><span class="token key atrule">openc3-operator</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token key atrule">ports</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">-</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">&quot;1235:1235/udp&quot;</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
+ <p>Run COSMOS, the first run takes a while (~15 min).</p>
28
+ <div class="language-bash codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-bash 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.sh start</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>
29
+ <p>When started, connect with a browser to <a href="http://localhost:2900" target="_blank" rel="noopener noreferrer">http://localhost:2900</a>.</p>
30
+ <p>For shutting down COSMOS:</p>
31
+ <div class="language-bash codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-bash 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.sh 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>
32
+ <h2 class="anchor anchorWithStickyNavbar_fF9Z" id="setting-up-cfs">Setting up cFS<a href="#setting-up-cfs" class="hash-link" aria-label="Direct link to Setting up cFS" title="Direct link to Setting up cFS">​</a></h2>
33
+ <p>To run <a href="https://github.com/nasa/cFS" target="_blank" rel="noopener noreferrer">NASA cFS</a> as a Docker container do the following:</p>
34
+ <h3 class="anchor anchorWithStickyNavbar_fF9Z" id="clone-cfs">Clone cFS<a href="#clone-cfs" class="hash-link" aria-label="Direct link to Clone cFS" title="Direct link to Clone cFS">​</a></h3>
35
+ <div class="language-bash codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-bash codeBlock_TAPP thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_AdAo"><span class="token-line" style="color:#d6deeb"><span class="token function" style="color:rgb(130, 170, 255)">git</span><span class="token plain"> clone --recurse-submodules https://github.com/nasa/cFS.git</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>
36
+ <h3 class="anchor anchorWithStickyNavbar_fF9Z" id="create-dockerfile-in-cfs-dir">Create Dockerfile in cFS dir<a href="#create-dockerfile-in-cfs-dir" class="hash-link" aria-label="Direct link to Create Dockerfile in cFS dir" title="Direct link to Create Dockerfile in cFS dir">​</a></h3>
37
+ <div class="language-docker codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-docker 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">FROM ubuntu:22.10 AS builder</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">ARG DEBIAN_FRONTEND=noninteractive</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">ARG SIMULATION=native</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">ENV SIMULATION=${SIMULATION}</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">ARG BUILDTYPE=debug</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">ENV BUILDTYPE=${BUILDTYPE}</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">ARG OMIT_DEPRECATED=true</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">ENV OMIT_DEPRECATED=${OMIT_DEPRECATED}</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">RUN \</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> apt-get update &amp;&amp; \</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> apt-get -y upgrade &amp;&amp; \</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> apt-get install -y build-essential git cmake &amp;&amp; \</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> rm -rf /var/lib/apt/lists/*</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">WORKDIR /cFS</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">COPY . .</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">RUN git submodule init \</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> &amp;&amp; git submodule update \</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> &amp;&amp; cp cfe/cmake/Makefile.sample Makefile \</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> &amp;&amp; cp -r cfe/cmake/sample_defs .</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">RUN make prep</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">RUN make</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">RUN make install</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">FROM ubuntu:22.10</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">COPY --from=builder /cFS/build /cFS/build</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">WORKDIR /cFS/build/exe/cpu1</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">ENTRYPOINT [ &quot;./core-cpu1&quot; ]</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>
38
+ <h3 class="anchor anchorWithStickyNavbar_fF9Z" id="build-and-run-cfs">Build and run cFS<a href="#build-and-run-cfs" class="hash-link" aria-label="Direct link to Build and run cFS" title="Direct link to Build and run cFS">​</a></h3>
39
+ <p>Note we&#x27;re connecting to the COSMOS network (<code>docker network ls</code>) and exposing the cFS ports.</p>
40
+ <div class="language-bash codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-bash codeBlock_TAPP thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_AdAo"><span class="token-line" style="color:#d6deeb"><span class="token function" style="color:rgb(130, 170, 255)">docker</span><span class="token plain"> build </span><span class="token parameter variable" style="color:rgb(214, 222, 235)">-t</span><span class="token plain"> cfs </span><span class="token builtin class-name" style="color:rgb(255, 203, 139)">.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">docker</span><span class="token plain"> run --cap-add CAP_SYS_RESOURCE </span><span class="token parameter variable" style="color:rgb(214, 222, 235)">--net</span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain">openc3-cosmos-network </span><span class="token parameter variable" style="color:rgb(214, 222, 235)">--name</span><span class="token plain"> cfs -p1234:1234/udp </span><span class="token parameter variable" style="color:rgb(214, 222, 235)">-p1235:1235</span><span class="token plain"> cfs</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>
41
+ <h2 class="anchor anchorWithStickyNavbar_fF9Z" id="creating-a-cosmos-plugin-for-tmtc-interface-with-cfs">Creating a COSMOS plugin for TM/TC interface with cFS<a href="#creating-a-cosmos-plugin-for-tmtc-interface-with-cfs" class="hash-link" aria-label="Direct link to Creating a COSMOS plugin for TM/TC interface with cFS" title="Direct link to Creating a COSMOS plugin for TM/TC interface with cFS">​</a></h2>
42
+ <p>The detailed instructions how to create a plugin, can be found
43
+ <a href="/tools/staticdocs/docs/getting-started/gettingstarted">here</a>, in the chapter &quot;Interfacing with Your Hardware&quot;.</p>
44
+ <p>Create a new plugin with the name <code>CFS</code>. <code>CFS</code> is the name of the plugin and
45
+ must be in capital letters according to the COSMOS documentation. This command
46
+ should create the plugin structure.</p>
47
+ <div class="language-bash codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-bash codeBlock_TAPP thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_AdAo"><span class="token-line" style="color:#d6deeb"><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># cd .. to the location of the cfs dir</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token variable" style="color:rgb(214, 222, 235)">$PATH_TO_OPENC3</span><span class="token plain">/openc3.sh cli generate plugin CFS</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>
48
+ <p>If you&#x27;re on Linux, change the rights of this newly created plugin, because the COSMOS script
49
+ creates the plugin to be owned by the root user.</p>
50
+ <div class="language-bash codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-bash codeBlock_TAPP thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_AdAo"><span class="token-line" style="color:#d6deeb"><span class="token function" style="color:rgb(130, 170, 255)">sudo</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">chown</span><span class="token plain"> </span><span class="token parameter variable" style="color:rgb(214, 222, 235)">-R</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">&lt;</span><span class="token plain">USERNAME</span><span class="token operator" style="color:rgb(127, 219, 202)">&gt;</span><span class="token plain">:</span><span class="token operator" style="color:rgb(127, 219, 202)">&lt;</span><span class="token plain">USERGROUP</span><span class="token operator" style="color:rgb(127, 219, 202)">&gt;</span><span class="token plain"> openc3-cfs</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>
51
+ <p>In this newly created plugin, change the <code>plugin.txt</code> file, so that the
52
+ communication happens over UDP. <code>port_tm</code> is the port number on which cFS
53
+ sends the telemetry messages. <code>port_tc</code> indicates the port on which cFS listens to the
54
+ telecommands.</p>
55
+ <div class="language-ruby codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-ruby codeBlock_TAPP thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_AdAo"><span class="token-line" style="color:#d6deeb"><span class="token constant" style="color:rgb(130, 170, 255)">VARIABLE</span><span class="token plain"> ip </span><span class="token number" style="color:rgb(247, 140, 108)">127.0</span><span class="token number" style="color:rgb(247, 140, 108)">.0</span><span class="token number" style="color:rgb(247, 140, 108)">.1</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token constant" style="color:rgb(130, 170, 255)">VARIABLE</span><span class="token plain"> port_tm </span><span class="token number" style="color:rgb(247, 140, 108)">1235</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token constant" style="color:rgb(130, 170, 255)">VARIABLE</span><span class="token plain"> port_tc </span><span class="token number" style="color:rgb(247, 140, 108)">1234</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token constant" style="color:rgb(130, 170, 255)">VARIABLE</span><span class="token plain"> cfs_target_name </span><span class="token constant" style="color:rgb(130, 170, 255)">CFS</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token constant" style="color:rgb(130, 170, 255)">TARGET</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">CFS</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">&lt;</span><span class="token operator" style="color:rgb(127, 219, 202)">%=</span><span class="token plain"> cfs_target_name </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">%&gt;</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token string-literal string" style="color:rgb(173, 219, 103)"># hostname write_dest_port read_port write_src_port interface_address ttl write_timeout read_timeout bind_address</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token string-literal string" style="color:rgb(173, 219, 103)">INTERFACE &lt;%= cfs_target_name %&gt;</span><span class="token plain">_INT udp_interface</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">rb </span><span class="token operator" style="color:rgb(127, 219, 202)">&lt;</span><span class="token operator" style="color:rgb(127, 219, 202)">%=</span><span class="token plain"> ip </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">%&gt; &lt;%= port_tc %&gt;</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">&lt;</span><span class="token operator" style="color:rgb(127, 219, 202)">%=</span><span class="token plain"> port_tm </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">%&gt; nil nil 128 nil nil</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token string-literal string" style="color:rgb(173, 219, 103)"> MAP_TARGET &lt;%= cfs_target_name %&gt;</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>
56
+ <p>Note that the two arguments to the <code>TARGET</code> parameter are:</p>
57
+ <ol>
58
+ <li>
59
+ <p>the physical target name that should match the name of the plugin, i.e. <code>CFS</code>.
60
+ This name must match the folder name in the <code>targets</code> folder. Example: for the
61
+ <code>CFS</code> plugin, the target specifications must be under
62
+ <code>openc3-cfs/targets/CFS</code>. If you don&#x27;t follow this
63
+ convention, the server will refuse to install your plugin at the following steps.</p>
64
+ </li>
65
+ <li>
66
+ <p>the name of your target and how it is shown in the user interface.</p>
67
+ </li>
68
+ </ol>
69
+ <p>In this example, we keep both names to be <code>CFS</code>.</p>
70
+ <h2 class="anchor anchorWithStickyNavbar_fF9Z" id="creating-tmtc-definitions">Creating TM/TC definitions<a href="#creating-tmtc-definitions" class="hash-link" aria-label="Direct link to Creating TM/TC definitions" title="Direct link to Creating TM/TC definitions">​</a></h2>
71
+ <p>Change to the target folder and remove the existing files and create own files.</p>
72
+ <div class="language-bash codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-bash codeBlock_TAPP thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_AdAo"><span class="token-line" style="color:#d6deeb"><span class="token builtin class-name" style="color:rgb(255, 203, 139)">cd</span><span class="token plain"> openc3-cfs/targets/CFS/cmd_tlm</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">rm</span><span class="token plain"> *</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">touch</span><span class="token plain"> cfs_cmds.txt</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">touch</span><span class="token plain"> cfs_tlm.txt</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">touch</span><span class="token plain"> to_lab_cmds.txt</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>
73
+ <p>Open these newly created files in a text editor and fill them with following
74
+ content.</p>
75
+ <p><code>to_lab_cmds.txt</code>:</p>
76
+ <div class="language-ruby codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-ruby codeBlock_TAPP thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_AdAo"><span class="token-line" style="color:#d6deeb"><span class="token constant" style="color:rgb(130, 170, 255)">COMMAND</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">CFS</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">TO_LAB_ENABLE</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">BIG_ENDIAN</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;Enable telemetry&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># NAME BITS TYPE min VAL max VAL init VAL DESCRIPTION</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_ID_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">STREAM_ID</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x1880</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x1880</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x1880</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;Stream ID&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">FORMAT_STRING</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;0x%04X&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">SEQUENCE</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0xC000</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MAX_UINT16</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0xC000</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">FORMAT_STRING</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;0x%04X&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">PKT_LEN</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x0001</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0xFFFF</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x0012</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;length of the packet&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">CMD_ID</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">6</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">6</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">6</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">CHECKSUM</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MIN_UINT8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MAX_UINT8</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x98</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">FORMAT_STRING</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;0x%2X&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">DEST_IP</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">144</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">STRING</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;127.0.0.1&quot;</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;Destination IP, i.e. 172.16.9.112, pc-57&quot;</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>
77
+ <div class="theme-admonition theme-admonition-info admonition_IZjC alert alert--info"><div class="admonitionHeading_uVvU"><span class="admonitionIcon_HiR3"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Enabling Telemetry</div><div class="admonitionContent_bl22"><p>The command <code>0x1880</code> is needed to enable telemetry. When the cFS receives
78
+ this command, it starts sending telemetry to the IP address provided via the
79
+ <code>DEST_IP</code> field.</p></div></div>
80
+ <p><code>cfs_cmds.txt</code>:</p>
81
+ <div class="language-ruby codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-ruby codeBlock_TAPP thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_AdAo"><span class="token-line" style="color:#d6deeb"><span class="token constant" style="color:rgb(130, 170, 255)">COMMAND</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">CFS</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">NOOP</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">BIG_ENDIAN</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;NOOP Command&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># cFS primary header</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_ID_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">STREAM_ID</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x1882</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x1882</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x1882</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;Packet Identification&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">FORMAT_STRING</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;0x%04X&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">SEQUENCE</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MIN_UINT16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MAX_UINT16</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0xC000</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">FORMAT_STRING</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;0x%04X&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">PKT_LEN</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x0001</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x0001</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x0001</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;Packet length&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># cFS CMD secondary header</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">CMD_ID</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">CHECKSUM</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MIN_UINT8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MAX_UINT8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MIN_UINT8</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token constant" style="color:rgb(130, 170, 255)">COMMAND</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">CFS</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">RESET</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">BIG_ENDIAN</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;Reset Counters Command&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_ID_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">STREAM_ID</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x1882</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x1882</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x1882</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;Packet Identification&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">FORMAT_STRING</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;0x%04X&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">SEQUENCE</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MIN_UINT16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MAX_UINT16</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0xC000</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">FORMAT_STRING</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;0x%04X&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">PKT_LEN</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x0001</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x0001</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x0001</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;Packet length&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">CMD_ID</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">1</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">1</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">1</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">CHECKSUM</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MIN_UINT8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MAX_UINT8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MIN_UINT8</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token constant" style="color:rgb(130, 170, 255)">COMMAND</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">CFS</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">PROCESS</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">BIG_ENDIAN</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;Process Command&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_ID_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">STREAM_ID</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x1882</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x1882</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x1882</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;Packet Identification&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">FORMAT_STRING</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;0x%04X&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">SEQUENCE</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MIN_UINT16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MAX_UINT16</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0xC000</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">FORMAT_STRING</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;0x%04X&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">PKT_LEN</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x0001</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x0001</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x0001</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;Packet length&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">CMD_ID</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">2</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">2</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">2</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_PARAMETER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">CHECKSUM</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MIN_UINT8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MAX_UINT8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">MIN_UINT8</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;&quot;</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>
82
+ <p><code>cfs_tlm.txt</code>:</p>
83
+ <div class="language-ruby codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-ruby codeBlock_TAPP thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_AdAo"><span class="token-line" style="color:#d6deeb"><span class="token constant" style="color:rgb(130, 170, 255)">TELEMETRY</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">CFS</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">HK</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">BIG_ENDIAN</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;housekeeping telemetry&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># NAME BITS TYPE ID DESCRIPTION</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_ID_ITEM</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">STREAM_ID</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0x0883</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;Stream ID&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">FORMAT_STRING</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;0x%04X&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_ITEM</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">SEQUENCE</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;Packet Sequence&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">FORMAT_STRING</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;0x%04X&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_ITEM</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">PKT_LEN</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;Length of the packet&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># telemetry secondary header</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_ITEM</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">SECONDS</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">32</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UNITS</span><span class="token plain"> Seconds sec</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_ITEM</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">SUBSECS</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UNITS</span><span class="token plain"> Milliseconds ms</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># some bytes not known for what</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_ITEM</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">SPARE2ALIGN</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">32</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;Spares&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># payload</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_ITEM</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">CMD_ERRS</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;Command Error Counter&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_ITEM</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">CMD_CNT</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">8</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;Command Counter&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># spare / alignment</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">APPEND_ITEM</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">SPARE</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">UINT</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">&quot;Spares&quot;</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>
84
+ <p>Build the plugin from the base of your plugin folder:</p>
85
+ <div class="language-bash codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-bash codeBlock_TAPP thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_AdAo"><span class="token-line" style="color:#d6deeb"><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># cd openc3-cfs</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token variable" style="color:rgb(214, 222, 235)">$PATH_TO_OPENC3</span><span class="token plain">/openc3.sh cli rake build </span><span class="token assign-left variable" style="color:rgb(214, 222, 235)">VERSION</span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token number" style="color:rgb(247, 140, 108)">1.0</span><span class="token plain">.0</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>
86
+ <div class="theme-admonition theme-admonition-info admonition_IZjC alert alert--info"><div class="admonitionHeading_uVvU"><span class="admonitionIcon_HiR3"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Plugin versioning</div><div class="admonitionContent_bl22"><p>Do not forget to change the version number with every build if you want to
87
+ better distinguish between the versions of the plugin. When the version is
88
+ seen in the plugin&#x27;s .gem file name, it is easier to visualize the existing
89
+ versions and the newly uploaded versions.</p></div></div>
90
+ <div class="theme-admonition theme-admonition-info admonition_IZjC alert alert--info"><div class="admonitionHeading_uVvU"><span class="admonitionIcon_HiR3"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Plugin parameters</div><div class="admonitionContent_bl22"><p>Multiple parameters are available for the plugin configuration. See the <a href="/tools/staticdocs/docs/configuration/plugins">plugin</a> page.</p></div></div>
91
+ <h2 class="anchor anchorWithStickyNavbar_fF9Z" id="uploading-the-plugin">Uploading the plugin<a href="#uploading-the-plugin" class="hash-link" aria-label="Direct link to Uploading the plugin" title="Direct link to Uploading the plugin">​</a></h2>
92
+ <p>After the plugin has been built, you can import the plugin in the admin area of
93
+ the page.</p>
94
+ <p>Connect with a browser to
95
+ <a href="http://localhost:2900/tools/admin" target="_blank" rel="noopener noreferrer">http://localhost:2900/tools/admin</a>.</p>
96
+ <p>Click on the clip icon and navigate to where your plugin is stored and select
97
+ the <code>openc3-cfs-1.0.0.xxx.gem</code> file. Right of the selection line click on <code>UPLOAD</code>.</p>
98
+ <p>Determine the IP address the cFS container and COSMOS operator container are running at:</p>
99
+ <div class="language-bash codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-bash codeBlock_TAPP thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_AdAo"><span class="token-line" style="color:#d6deeb"><span class="token function" style="color:rgb(130, 170, 255)">docker</span><span class="token plain"> network </span><span class="token function" style="color:rgb(130, 170, 255)">ls</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">NETWORK ID NAME DRIVER SCOPE</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">d842f813f1c7 openc3-cosmos-network bridge </span><span class="token builtin class-name" style="color:rgb(255, 203, 139)">local</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">docker</span><span class="token plain"> network inspect openc3-cosmos-network</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">&quot;Name&quot;</span><span class="token builtin class-name" style="color:rgb(255, 203, 139)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">&quot;openc3-cosmos-network&quot;</span><span class="token plain">,</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">.</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">&quot;Containers&quot;</span><span class="token builtin class-name" style="color:rgb(255, 203, 139)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">&quot;03cb6bf1b27c631fad1366e9342aeaa5b80f458a437195e4a95e674bb5f5983d&quot;</span><span class="token builtin class-name" style="color:rgb(255, 203, 139)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">&quot;Name&quot;</span><span class="token builtin class-name" style="color:rgb(255, 203, 139)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">&quot;cfs&quot;</span><span class="token plain">,</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">&quot;IPv4Address&quot;</span><span class="token builtin class-name" style="color:rgb(255, 203, 139)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">&quot;172.20.0.9/16&quot;</span><span class="token plain">,</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain">,</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">&quot;ceb9ea99b00849fd8867dcd1646838fef3471f7d64b69014703dbedbcc8147fc&quot;</span><span class="token builtin class-name" style="color:rgb(255, 203, 139)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">&quot;Name&quot;</span><span class="token builtin class-name" style="color:rgb(255, 203, 139)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">&quot;openc3_openc3-operator_1&quot;</span><span class="token plain">,</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">&quot;IPv4Address&quot;</span><span class="token builtin class-name" style="color:rgb(255, 203, 139)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">&quot;172.20.0.8/16&quot;</span><span class="token plain">,</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">.</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</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>
100
+ <p>When using this plugin, make sure to change the <code>ip</code> variable during uploading
101
+ to match where cFS is running. In the example above you would set it to 172.20.0.9.
102
+ <code>port_tm</code> is the port number on which cFS is sending the telemetry messages.
103
+ <code>port_tc</code> indicates the port on cFS is listening for telecommands.</p>
104
+ <p>Under <code>cfs_target_name</code> you can change the target name of this plugin. This
105
+ step is optional as long as you are fine with your plugin showing up as <code>CFS</code>.</p>
106
+ <p><img loading="lazy" alt="Plugin Variable Settings" src="/tools/staticdocs/assets/images/plugin-variables-5bc00c744182c9a9591e84cb3bbb1c4deb53ff22e05f62ce1b807c26bed782e5.png" width="392" height="500" class="img__Ss2"></p>
107
+ <div class="theme-admonition theme-admonition-warning admonition_IZjC alert alert--warning"><div class="admonitionHeading_uVvU"><span class="admonitionIcon_HiR3"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Port subscription</div><div class="admonitionContent_bl22"><p>The last uploaded plugin on COSMOS will subscribe to TM on port 1235.
108
+ Other plugins will not receive any TM anymore.</p></div></div>
109
+ <div class="theme-admonition theme-admonition-info admonition_IZjC alert alert--info"><div class="admonitionHeading_uVvU"><span class="admonitionIcon_HiR3"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Typo errors</div><div class="admonitionContent_bl22"><p>Presence of typos in one of the plugin files can cause problems when uploading and installing
110
+ the plugin&#x27;s .gem file. Make sure your configuration is typo-free.</p></div></div>
111
+ <p>In the example above, the operator image is running at 172.20.0.8. To enable telemetry, go to the browser and connect to
112
+ <a href="http://localhost:2900/tools/cmdsender/CFS/TO_LAB_ENABLE" target="_blank" rel="noopener noreferrer">http://localhost:2900/tools/cmdsender/CFS/TO_LAB_ENABLE</a>. Change the <code>DEST_IP</code> to the IP address of the operator image (172.20.0.8) and send the command.</p>
113
+ <p>Under <a href="http://localhost:2900/tools/cmdtlmserver/tlm-packets" target="_blank" rel="noopener noreferrer">http://localhost:2900/tools/cmdtlmserver/tlm-packets</a>, you should see the incoming packets. Note in the CmdTlmServer you will also see CFS_INT UNKNOWN packets because we did not define the full cFS packet set. That exercise is left to the reader.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/OpenC3/cosmos/tree/main/docs.openc3.com/docs/guides/cfs.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_UohW" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_T23F"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/tools/staticdocs/docs/guides/bridges"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Bridges</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/tools/staticdocs/docs/guides/custom-widgets"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Custom Widgets</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_TN1Q thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#working-configuration" class="table-of-contents__link toc-highlight">Working configuration</a></li><li><a href="#setting-up-cosmos" class="table-of-contents__link toc-highlight">Setting up COSMOS</a><ul><li><a href="#configuring-cosmos" class="table-of-contents__link toc-highlight">Configuring COSMOS</a></li></ul></li><li><a href="#setting-up-cfs" class="table-of-contents__link toc-highlight">Setting up cFS</a><ul><li><a href="#clone-cfs" class="table-of-contents__link toc-highlight">Clone cFS</a></li><li><a href="#create-dockerfile-in-cfs-dir" class="table-of-contents__link toc-highlight">Create Dockerfile in cFS dir</a></li><li><a href="#build-and-run-cfs" class="table-of-contents__link toc-highlight">Build and run cFS</a></li></ul></li><li><a href="#creating-a-cosmos-plugin-for-tmtc-interface-with-cfs" class="table-of-contents__link toc-highlight">Creating a COSMOS plugin for TM/TC interface with cFS</a></li><li><a href="#creating-tmtc-definitions" class="table-of-contents__link toc-highlight">Creating TM/TC definitions</a></li><li><a href="#uploading-the-plugin" class="table-of-contents__link toc-highlight">Uploading the plugin</a></li></ul></div></div></div></div></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Homepage</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://openc3.com" target="_blank" rel="noopener noreferrer" class="footer__link-item">Home</a></li></ul></div><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/tools/staticdocs/docs">Documentation</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/company/openc3" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_awgD"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/OpenC3/cosmos" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_awgD"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a class="footer__link-item" href="/tools/staticdocs/docs/privacy">Privacy</a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2023 OpenC3, Inc.</div></div></div></footer></div>
114
+ </body>
115
+ </html>
@@ -0,0 +1,30 @@
1
+ <!doctype html>
2
+ <html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-guides/custom-widgets" data-has-hydrated="false">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="generator" content="Docusaurus v3.0.0">
6
+ <title data-rh="true">Custom Widgets | OpenC3 Docs</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://docs.openc3.com/tools/staticdocs/docs/guides/custom-widgets"><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="Custom Widgets | OpenC3 Docs"><meta data-rh="true" name="description" content="COSMOS allows you to build custom widgets which can be deployed with your plugin and used in Telemetry Viewer. Building custom widgets can utilitize any javascript frameworks but since COSMOS is written with Vue.js, we will use that framework in this tutorial."><meta data-rh="true" property="og:description" content="COSMOS allows you to build custom widgets which can be deployed with your plugin and used in Telemetry Viewer. Building custom widgets can utilitize any javascript frameworks but since COSMOS is written with Vue.js, we will use that framework in this tutorial."><link data-rh="true" rel="icon" href="/tools/staticdocs/img/favicon.png"><link data-rh="true" rel="canonical" href="https://docs.openc3.com/tools/staticdocs/docs/guides/custom-widgets"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/guides/custom-widgets" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/guides/custom-widgets" hreflang="x-default"><link rel="stylesheet" href="/tools/staticdocs/assets/css/styles.6e885bef.css">
7
+ <script src="/tools/staticdocs/assets/js/runtime~main.6ca622b3.js" defer="defer"></script>
8
+ <script src="/tools/staticdocs/assets/js/main.1b3209ca.js" defer="defer"></script>
9
+ </head>
10
+ <body class="navigation-with-keyboard">
11
+ <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"dark")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_G6ar" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/tools/staticdocs/"><div class="navbar__logo"><img src="/tools/staticdocs/img/logo.svg" alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--light_DIHH"><img src="/tools/staticdocs/img/logo.svg" alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--dark_Bv2M"></div><b class="navbar__title text--truncate">OpenC3 Docs</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/tools/staticdocs/docs">Documentation</a><a href="https://openc3.com/enterprise/" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Enterprise</a></div><div class="navbar__items navbar__items--right"><div class="navbarSearchContainer_bmvg"><div class="navbar__search"><span aria-label="expand searchbar" role="button" class="search-icon" tabindex="0"></span><input id="search_input_react" type="search" placeholder="Loading..." aria-label="Search" class="navbar__search-input search-bar" disabled=""></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_UyTV"><div class="docsWrapper_XLvK"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_z1FD" type="button"></button><div class="docRoot_HciC"><aside class="theme-doc-sidebar-container docSidebarContainer_e5ai"><div class="sidebarViewport_N8x0"><div class="sidebar_vJCc"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_qiME"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/tools/staticdocs/docs">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/getting-started">Getting Started</a><button aria-label="Expand sidebar category &#x27;Getting Started&#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/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"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/tools/staticdocs/docs/guides">Guides</a><button aria-label="Collapse sidebar category &#x27;Guides&#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/guides/bridges">Bridges</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/cfs">COSMOS and NASA cFS</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/tools/staticdocs/docs/guides/custom-widgets">Custom Widgets</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/little-endian-bitfields">Little Endian Bitfields</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/local-mode">Local Mode</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/logging">Logging</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/monitoring">Monitoring</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/performance">Performance</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/raspberrypi">Raspberry Pi</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/script-writing">Script Writing Guide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/scripting-api">Scripting API Guide</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/development">Development</a><button aria-label="Expand sidebar category &#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/guides"><span itemprop="name">Guides</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Custom Widgets</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>Custom Widgets</h1></header><p>COSMOS allows you to build custom widgets which can be deployed with your <a href="/tools/staticdocs/docs/configuration/plugins">plugin</a> and used in <a href="/tools/staticdocs/docs/tools/tlm-viewer">Telemetry Viewer</a>. Building custom widgets can utilitize any javascript frameworks but since COSMOS is written with Vue.js, we will use that framework in this tutorial.</p>
12
+ <h2 class="anchor anchorWithStickyNavbar_fF9Z" id="custom-widgets">Custom Widgets<a href="#custom-widgets" class="hash-link" aria-label="Direct link to Custom Widgets" title="Direct link to Custom Widgets">​</a></h2>
13
+ <p>We&#x27;re basically going to follow the COSMOS <a href="https://github.com/OpenC3/cosmos/tree/main/openc3-cosmos-init/plugins/packages/openc3-cosmos-demo" target="_blank" rel="noopener noreferrer">Demo</a> and explain how that custom widget was created.</p>
14
+ <p>If you look at the bottom of the Demo&#x27;s <a href="https://github.com/OpenC3/cosmos/blob/main/openc3-cosmos-init/plugins/packages/openc3-cosmos-demo/plugin.txt" target="_blank" rel="noopener noreferrer">plugin.txt</a> file you&#x27;ll see we declare the widgets:</p>
15
+ <div class="language-ruby codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-ruby codeBlock_TAPP thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_AdAo"><span class="token-line" style="color:#d6deeb"><span class="token constant" style="color:rgb(130, 170, 255)">WIDGET</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">BIG</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token constant" style="color:rgb(130, 170, 255)">WIDGET</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">HELLOWORLD</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>
16
+ <p>When the plugin is deployed this causes COSMOS to look for the as-built widgets. For the BIG widget it will look for the widget at <code>tools/widgets/BigWidget/BigWidget.umd.min.js</code>. Similarly it looks for HELLOWORLD at <code>tools/widgets/HelloworldWidget/HelloworldWidget.umd.min.js</code>. These directories and file names may seem mysterious but it&#x27;s all about how the widgets get built.</p>
17
+ <h3 class="anchor anchorWithStickyNavbar_fF9Z" id="helloworld-widget">Helloworld Widget<a href="#helloworld-widget" class="hash-link" aria-label="Direct link to Helloworld Widget" title="Direct link to Helloworld Widget">​</a></h3>
18
+ <p>The Helloworld Widget source code is found in the plugin&#x27;s src directory and is called <a href="https://github.com/OpenC3/cosmos/blob/main/openc3-cosmos-init/plugins/packages/openc3-cosmos-demo/src/HelloworldWidget.vue" target="_blank" rel="noopener noreferrer">HelloworldWidget.vue</a>. The basic structure is as follows:</p>
19
+ <div class="language-vue codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-vue 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">&lt;template&gt;</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> &lt;!-- Implement widget here --&gt;</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">&lt;/template&gt;</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">&lt;script&gt;</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">import Widget from &quot;@openc3/tool-common/src/components/widgets/Widget&quot;;</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">export default {</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> mixins: [Widget],</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> data() {</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> return {</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> // Reactive data items</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> };</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> },</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">};</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">&lt;/script&gt;</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">&lt;style scoped&gt;</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">/* widget specific style */</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">&lt;/style&gt;</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>
20
+ <div class="theme-admonition theme-admonition-info admonition_IZjC alert alert--info"><div class="admonitionHeading_uVvU"><span class="admonitionIcon_HiR3"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Vue &amp; Vuetify</div><div class="admonitionContent_bl22"><p>For more information about how the COSMOS frontend is built (including all the Widgets) please check out <a href="https://vuejs.org" target="_blank" rel="noopener noreferrer">Vue.js</a> and <a href="https://vuetifyjs.com" target="_blank" rel="noopener noreferrer">Vuetify</a>.</p></div></div>
21
+ <p>To build this custom widget we changed the Demo <a href="https://github.com/OpenC3/cosmos/blob/main/openc3-cosmos-init/plugins/packages/openc3-cosmos-demo/Rakefile" target="_blank" rel="noopener noreferrer">Rakefile</a> to call <code>yarn run build</code> when the plugin is built. <code>yarn run XXX</code> looks for &#x27;scripts&#x27; to run in the <a href="https://github.com/OpenC3/cosmos/blob/main/openc3-cosmos-init/plugins/packages/openc3-cosmos-demo/package.json" target="_blank" rel="noopener noreferrer">package.json</a> file. If we open package.json we find the following:</p>
22
+ <div class="language-json codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-json 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"> </span><span class="token property" style="color:rgb(128, 203, 196)">&quot;scripts&quot;</span><span class="token operator" style="color:rgb(127, 219, 202)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token property" style="color:rgb(128, 203, 196)">&quot;build&quot;</span><span class="token operator" style="color:rgb(127, 219, 202)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">&quot;vue-cli-service build --target lib --dest tools/widgets/HelloworldWidget --formats umd-min src/HelloworldWidget.vue --name HelloworldWidget &amp;&amp; vue-cli-service build --target lib --dest tools/widgets/BigWidget --formats umd-min src/BigWidget.vue --name BigWidget&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</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>
23
+ <p>This uses the <code>vue-cli-service</code> to build the code found at <code>src/HelloworldWidget.vue</code> and formats as <code>umd-min</code> and puts it in the <code>tools/widgets/HelloworldWidget</code> directory. So this is why the plugin looks for the plugin at <code>tools/widgets/HelloworldWidget/HelloworldWidget.umd.min.js</code>. Click <a href="https://cli.vuejs.org/guide/cli-service.html#vue-cli-service-build" target="_blank" rel="noopener noreferrer">here</a> for the <code>vue-cli-service build</code> documentation.</p>
24
+ <p>If you look at the Demo plugin&#x27;s <a href="https://github.com/OpenC3/cosmos/blob/main/openc3-cosmos-init/plugins/packages/openc3-cosmos-demo/targets/INST/screens/simple.txt" target="_blank" rel="noopener noreferrer">simple.txt</a> screen you&#x27;ll see we&#x27;re using the widgets:</p>
25
+ <div class="language-ruby codeBlockContainer_ZGJx theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_qZBB"><pre tabindex="0" class="prism-code language-ruby codeBlock_TAPP thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_AdAo"><span class="token-line" style="color:#d6deeb"><span class="token constant" style="color:rgb(130, 170, 255)">SCREEN</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">AUTO</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">AUTO</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token constant" style="color:rgb(130, 170, 255)">LABELVALUE</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">&lt;</span><span class="token operator" style="color:rgb(127, 219, 202)">%=</span><span class="token plain"> target_name </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">%&gt; HEALTH_STATUS CCSDSSEQCNT</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token string-literal string" style="color:rgb(173, 219, 103)">HELLOWORLD</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token string-literal string" style="color:rgb(173, 219, 103)">BIG &lt;%= target_name %&gt;</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">HEALTH_STATUS</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">TEMP1</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>
26
+ <p>Opening this screen in Telemetry Viewer results in the following:</p>
27
+ <p><img loading="lazy" alt="Simple Screen" src="/tools/staticdocs/assets/images/simple_screen-3c9d6d2366c716c03a301396a4ce0ea418532890f349d9bc9ebb8be90983a6e6.png" width="734" height="212" class="img__Ss2"></p>
28
+ <p>While this is a simple example the possibilities with custom widgets are limitless!</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/OpenC3/cosmos/tree/main/docs.openc3.com/docs/guides/custom-widgets.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_UohW" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_T23F"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/tools/staticdocs/docs/guides/cfs"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">COSMOS and NASA cFS</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/tools/staticdocs/docs/guides/little-endian-bitfields"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Little Endian Bitfields</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="#custom-widgets" class="table-of-contents__link toc-highlight">Custom Widgets</a><ul><li><a href="#helloworld-widget" class="table-of-contents__link toc-highlight">Helloworld Widget</a></li></ul></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 © 2023 OpenC3, Inc.</div></div></div></footer></div>
29
+ </body>
30
+ </html>