openc3-cosmos-tool-docs 6.4.2 → 6.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) hide show
  1. checksums.yaml +4 -4
  2. data/tools/staticdocs/404.html +1 -1
  3. data/tools/staticdocs/assets/images/alert_logs-8273c6912804a4a16ce15d59cedf266f32d8c0a4ace2ab25fd8d3f149fb7fed2.png +0 -0
  4. data/tools/staticdocs/assets/images/alert_notifications-c68f0ff77eec9c2bc0d31bd6693fce4055d21722f985e418c05533992be71631.png +0 -0
  5. data/tools/staticdocs/assets/images/checks_rb-4e28c3a8422638404e790054f83f6a61592f5cf848ff6d9bd1ce228813622c9a.png +0 -0
  6. data/tools/staticdocs/assets/images/disk_usage-c91c5ef35de6ec1c4ebcf485c6f74c68daeac6215bf185691ed613b7fd2a95cf.png +0 -0
  7. data/tools/staticdocs/assets/images/environment_variables-72bbb71e6f428ec5efa340eb402289b6d42a84d3c5ce724025d32415242dec09.png +0 -0
  8. data/tools/staticdocs/assets/images/process_metrics-534358ca0a064ed4c24ff1a29f48686d1189e331da23e0f7a6625405278b31eb.png +0 -0
  9. data/tools/staticdocs/assets/images/redis_metrics-646d362a7855604a8b6de1b7064f6949914be7b84ad1ab78822990d56d6ebcc1.png +0 -0
  10. data/tools/staticdocs/assets/images/refresh_interval-8673071593ce24cb2bb0adedfd0e7fc4d612496c393c7f3f52ba37db497f9344.png +0 -0
  11. data/tools/staticdocs/assets/images/right_click-81df09085fe9f75805cf35b5876177789eef0d879b54a734a8395e3817f1959d.png +0 -0
  12. data/tools/staticdocs/assets/images/script_suite-0d1f45f9226d3ac0ed12d5ce91220dccf88402fd8582c4512acc8886a3cf2249.png +0 -0
  13. data/tools/staticdocs/assets/images/system_health_configuration-728cde02f1da6b75e606152e113e288b6d949dd1f4183c4691b0f61c4c47b30e.png +0 -0
  14. data/tools/staticdocs/assets/images/system_overview_gauges-3975fb0011287cf4f98af7dfdf9dba681943913c0b47642645cd19b583e35b74.png +0 -0
  15. data/tools/staticdocs/assets/images/systemhealth-fc26a7d9cda6242569255ecd4264d1c91ad47d85a3805b610d3c946e0d10cfbf.png +0 -0
  16. data/tools/staticdocs/assets/js/019369f3.52424baa.js +1 -0
  17. data/tools/staticdocs/assets/js/058ffc22.82c2873e.js +1 -0
  18. data/tools/staticdocs/assets/js/0686a885.f620e3dc.js +1 -0
  19. data/tools/staticdocs/assets/js/{078dbab0.43788fd9.js → 078dbab0.babf69ab.js} +1 -1
  20. data/tools/staticdocs/assets/js/0f5d161c.bc74590c.js +1 -0
  21. data/tools/staticdocs/assets/js/0ff569c9.14ed0a79.js +1 -0
  22. data/tools/staticdocs/assets/js/103cc3be.b15ac140.js +1 -0
  23. data/tools/staticdocs/assets/js/13196248.e1f20841.js +1 -0
  24. data/tools/staticdocs/assets/js/13c1b4e4.58a03be2.js +1 -0
  25. data/tools/staticdocs/assets/js/1602.a7ddd3dc.js +1 -0
  26. data/tools/staticdocs/assets/js/1e02e6a3.68a73184.js +1 -0
  27. data/tools/staticdocs/assets/js/2047b354.58bf5de8.js +1 -0
  28. data/tools/staticdocs/assets/js/22b3ac48.5ab6a17a.js +1 -0
  29. data/tools/staticdocs/assets/js/2368.4443f5c4.js +4 -0
  30. data/tools/staticdocs/assets/js/2bb7bf90.882f03a1.js +1 -0
  31. data/tools/staticdocs/assets/js/2c15ad40.a56e1a40.js +1 -0
  32. data/tools/staticdocs/assets/js/35398c5c.d6cb2a82.js +1 -0
  33. data/tools/staticdocs/assets/js/3687.062fee32.js +101 -0
  34. data/tools/staticdocs/assets/js/3dd7ef3b.4782cafe.js +1 -0
  35. data/tools/staticdocs/assets/js/40365d27.cdd0a061.js +1 -0
  36. data/tools/staticdocs/assets/js/411898ad.63be48ce.js +1 -0
  37. data/tools/staticdocs/assets/js/42170351.49ebb70c.js +1 -0
  38. data/tools/staticdocs/assets/js/43652efd.deefbd37.js +1 -0
  39. data/tools/staticdocs/assets/js/54d0d530.9fccf082.js +1 -0
  40. data/tools/staticdocs/assets/js/59ed27a4.6a4d4905.js +1 -0
  41. data/tools/staticdocs/assets/js/5b233ba7.169a9701.js +1 -0
  42. data/tools/staticdocs/assets/js/5bc719f6.adbdce65.js +1 -0
  43. data/tools/staticdocs/assets/js/5c6ce5ec.1827793d.js +1 -0
  44. data/tools/staticdocs/assets/js/5fe211ef.866de8e9.js +1 -0
  45. data/tools/staticdocs/assets/js/6831b732.d0e1b5a6.js +1 -0
  46. data/tools/staticdocs/assets/js/696b4199.adf3731a.js +1 -0
  47. data/tools/staticdocs/assets/js/6b210247.bb5dedd5.js +1 -0
  48. data/tools/staticdocs/assets/js/6b65133b.c431a22a.js +1 -0
  49. data/tools/staticdocs/assets/js/6f92e431.13b5aeef.js +1 -0
  50. data/tools/staticdocs/assets/js/72c6d8a8.8f66ae6e.js +1 -0
  51. data/tools/staticdocs/assets/js/75e64983.31d1e579.js +1 -0
  52. data/tools/staticdocs/assets/js/7719.d199daa3.js +1 -0
  53. data/tools/staticdocs/assets/js/80c97f38.4f6a5637.js +1 -0
  54. data/tools/staticdocs/assets/js/{867640d5.32ca371f.js → 867640d5.9dd71bf3.js} +1 -1
  55. data/tools/staticdocs/assets/js/89e76475.a0353bb2.js +1 -0
  56. data/tools/staticdocs/assets/js/8b939c74.5fd8e3e8.js +1 -0
  57. data/tools/staticdocs/assets/js/8f7843ee.b3358f6f.js +1 -0
  58. data/tools/staticdocs/assets/js/9424f0b3.b8d6d2bf.js +1 -0
  59. data/tools/staticdocs/assets/js/964eb012.cb76dd8a.js +1 -0
  60. data/tools/staticdocs/assets/js/97535711.c3a1a5a1.js +1 -0
  61. data/tools/staticdocs/assets/js/99581c43.c9f8e384.js +1 -0
  62. data/tools/staticdocs/assets/js/9fb6059a.91edfcba.js +1 -0
  63. data/tools/staticdocs/assets/js/a677c089.d33ab1ca.js +1 -0
  64. data/tools/staticdocs/assets/js/a9987364.530c9592.js +1 -0
  65. data/tools/staticdocs/assets/js/a9b2dc27.50f54e80.js +1 -0
  66. data/tools/staticdocs/assets/js/{aa6b6c1b.bc122746.js → aa6b6c1b.dc1c4a62.js} +1 -1
  67. data/tools/staticdocs/assets/js/{b062d239.4e8142cb.js → b062d239.ff2df9fd.js} +1 -1
  68. data/tools/staticdocs/assets/js/b38a6d74.62bc94a3.js +1 -0
  69. data/tools/staticdocs/assets/js/b4596165.a2357781.js +1 -0
  70. data/tools/staticdocs/assets/js/b6d70f94.22ca3e8a.js +1 -0
  71. data/tools/staticdocs/assets/js/b9f60ba6.677e8e46.js +1 -0
  72. data/tools/staticdocs/assets/js/{bd0034eb.a201a4a7.js → bd0034eb.09d6bbbc.js} +1 -1
  73. data/tools/staticdocs/assets/js/c24eae19.3db158fe.js +1 -0
  74. data/tools/staticdocs/assets/js/cb8c3f08.0de82997.js +1 -0
  75. data/tools/staticdocs/assets/js/cd879be4.d650ab29.js +1 -0
  76. data/tools/staticdocs/assets/js/d1b923aa.240ccf18.js +1 -0
  77. data/tools/staticdocs/assets/js/d1bfc316.5c7b9c2f.js +1 -0
  78. data/tools/staticdocs/assets/js/{d24bf9b6.e348c06d.js → d24bf9b6.ea1e95ab.js} +1 -1
  79. data/tools/staticdocs/assets/js/d57a4b5d.82790d9f.js +1 -0
  80. data/tools/staticdocs/assets/js/d5d77c37.a1299467.js +1 -0
  81. data/tools/staticdocs/assets/js/d66bf9c0.8018f0a0.js +1 -0
  82. data/tools/staticdocs/assets/js/d8ca4191.ca5f5dde.js +1 -0
  83. data/tools/staticdocs/assets/js/d9b92eba.41086b81.js +1 -0
  84. data/tools/staticdocs/assets/js/db8fa1d0.5107d903.js +1 -0
  85. data/tools/staticdocs/assets/js/dbe31111.8f1677f3.js +1 -0
  86. data/tools/staticdocs/assets/js/dc5f7beb.dfbe012c.js +1 -0
  87. data/tools/staticdocs/assets/js/e501b0d1.512e0a0b.js +1 -0
  88. data/tools/staticdocs/assets/js/{f15615f1.a4d98d69.js → f15615f1.d668576a.js} +1 -1
  89. data/tools/staticdocs/assets/js/f75a5f33.d3a97a44.js +1 -0
  90. data/tools/staticdocs/assets/js/main.8c741ee1.js +38 -0
  91. data/tools/staticdocs/assets/js/runtime~main.7674b06d.js +1 -0
  92. data/tools/staticdocs/docs/configuration/accessors.html +2 -2
  93. data/tools/staticdocs/docs/configuration/command.html +2 -2
  94. data/tools/staticdocs/docs/configuration/conversions.html +10 -8
  95. data/tools/staticdocs/docs/configuration/format.html +2 -2
  96. data/tools/staticdocs/docs/configuration/interfaces.html +2 -2
  97. data/tools/staticdocs/docs/configuration/limits-response.html +19 -0
  98. data/tools/staticdocs/docs/configuration/plugins.html +9 -3
  99. data/tools/staticdocs/docs/configuration/processors.html +42 -0
  100. data/tools/staticdocs/docs/configuration/protocols.html +2 -2
  101. data/tools/staticdocs/docs/configuration/ssl-tls.html +2 -2
  102. data/tools/staticdocs/docs/configuration/table.html +3 -3
  103. data/tools/staticdocs/docs/configuration/target.html +2 -2
  104. data/tools/staticdocs/docs/configuration/telemetry-screens.html +9 -9
  105. data/tools/staticdocs/docs/configuration/telemetry.html +4 -2
  106. data/tools/staticdocs/docs/configuration.html +2 -2
  107. data/tools/staticdocs/docs/development/curl.html +1 -1
  108. data/tools/staticdocs/docs/development/developing.html +1 -1
  109. data/tools/staticdocs/docs/development/json-api.html +1 -1
  110. data/tools/staticdocs/docs/development/log-structure.html +1 -1
  111. data/tools/staticdocs/docs/development/roadmap.html +1 -1
  112. data/tools/staticdocs/docs/development/streaming-api.html +1 -1
  113. data/tools/staticdocs/docs/development/testing.html +1 -1
  114. data/tools/staticdocs/docs/development.html +1 -1
  115. data/tools/staticdocs/docs/getting-started/cli.html +16 -5
  116. data/tools/staticdocs/docs/getting-started/generators.html +19 -21
  117. data/tools/staticdocs/docs/getting-started/gettingstarted.html +1 -1
  118. data/tools/staticdocs/docs/getting-started/installation.html +1 -1
  119. data/tools/staticdocs/docs/getting-started/key-concepts.html +1 -1
  120. data/tools/staticdocs/docs/getting-started/podman.html +5 -2
  121. data/tools/staticdocs/docs/getting-started/requirements.html +1 -1
  122. data/tools/staticdocs/docs/getting-started/upgrading.html +2 -2
  123. data/tools/staticdocs/docs/getting-started.html +1 -1
  124. data/tools/staticdocs/docs/guides/bridges.html +1 -1
  125. data/tools/staticdocs/docs/guides/cfs.html +1 -1
  126. data/tools/staticdocs/docs/guides/custom-widgets.html +1 -1
  127. data/tools/staticdocs/docs/guides/dynamic-packets.html +3 -1
  128. data/tools/staticdocs/docs/guides/exposing-microservices.html +1 -1
  129. data/tools/staticdocs/docs/guides/little-endian-bitfields.html +1 -1
  130. data/tools/staticdocs/docs/guides/local-mode.html +1 -1
  131. data/tools/staticdocs/docs/guides/logging.html +1 -1
  132. data/tools/staticdocs/docs/guides/monitoring.html +1 -1
  133. data/tools/staticdocs/docs/guides/performance.html +1 -1
  134. data/tools/staticdocs/docs/guides/raspberrypi.html +1 -1
  135. data/tools/staticdocs/docs/guides/reference-architectures.html +1 -1
  136. data/tools/staticdocs/docs/guides/script-writing.html +1 -1
  137. data/tools/staticdocs/docs/guides/scripting-api.html +2 -2
  138. data/tools/staticdocs/docs/guides.html +1 -1
  139. data/tools/staticdocs/docs/meta/contributing.html +1 -1
  140. data/tools/staticdocs/docs/meta/licenses.html +1 -1
  141. data/tools/staticdocs/docs/meta/philosophy.html +1 -1
  142. data/tools/staticdocs/docs/meta/xtce.html +1 -1
  143. data/tools/staticdocs/docs/meta.html +1 -1
  144. data/tools/staticdocs/docs/privacy.html +1 -1
  145. data/tools/staticdocs/docs/tools/admin.html +2 -2
  146. data/tools/staticdocs/docs/tools/autonomic.html +2 -2
  147. data/tools/staticdocs/docs/tools/bucket-explorer.html +2 -2
  148. data/tools/staticdocs/docs/tools/calendar.html +2 -2
  149. data/tools/staticdocs/docs/tools/cmd-sender.html +2 -2
  150. data/tools/staticdocs/docs/tools/cmd-tlm-server.html +2 -2
  151. data/tools/staticdocs/docs/tools/command_history.html +2 -2
  152. data/tools/staticdocs/docs/tools/data-extractor.html +2 -2
  153. data/tools/staticdocs/docs/tools/data-viewer.html +2 -2
  154. data/tools/staticdocs/docs/tools/handbooks.html +2 -2
  155. data/tools/staticdocs/docs/tools/limits-monitor.html +2 -2
  156. data/tools/staticdocs/docs/tools/packet-viewer.html +2 -2
  157. data/tools/staticdocs/docs/tools/script-runner.html +12 -6
  158. data/tools/staticdocs/docs/tools/systemhealth.html +42 -0
  159. data/tools/staticdocs/docs/tools/table-manager.html +3 -3
  160. data/tools/staticdocs/docs/tools/tlm-grapher.html +2 -2
  161. data/tools/staticdocs/docs/tools/tlm-viewer.html +2 -2
  162. data/tools/staticdocs/docs/tools.html +2 -2
  163. data/tools/staticdocs/docs.html +1 -1
  164. data/tools/staticdocs/img/script_runner/checks_rb.png +0 -0
  165. data/tools/staticdocs/img/script_runner/environment_variables.png +0 -0
  166. data/tools/staticdocs/img/script_runner/right_click.png +0 -0
  167. data/tools/staticdocs/img/script_runner/script_suite.png +0 -0
  168. data/tools/staticdocs/img/systemhealth/alert_logs.png +0 -0
  169. data/tools/staticdocs/img/systemhealth/alert_notifications.png +0 -0
  170. data/tools/staticdocs/img/systemhealth/disk_usage.png +0 -0
  171. data/tools/staticdocs/img/systemhealth/process_metrics.png +0 -0
  172. data/tools/staticdocs/img/systemhealth/redis_metrics.png +0 -0
  173. data/tools/staticdocs/img/systemhealth/refresh_interval.png +0 -0
  174. data/tools/staticdocs/img/systemhealth/system_health_configuration.png +0 -0
  175. data/tools/staticdocs/img/systemhealth/system_overview_gauges.png +0 -0
  176. data/tools/staticdocs/img/systemhealth/systemhealth.png +0 -0
  177. data/tools/staticdocs/index.html +1 -1
  178. data/tools/staticdocs/lunr-index-1749788530521.json +1 -0
  179. data/tools/staticdocs/lunr-index.json +1 -1
  180. data/tools/staticdocs/markdown-page.html +1 -1
  181. data/tools/staticdocs/search-doc-1749788530521.json +1 -0
  182. data/tools/staticdocs/search-doc.json +1 -1
  183. data/tools/staticdocs/sitemap.xml +1 -1
  184. metadata +105 -79
  185. data/tools/staticdocs/assets/images/checks_rb-89f400098ff47774008ea420860c665c15ebf06819c3ee7050bed301ea0a9f46.png +0 -0
  186. data/tools/staticdocs/assets/images/right_click-371e3683026c0bb2b27187277b4e99727c6b52965e0190a5f81335248f40ef9b.png +0 -0
  187. data/tools/staticdocs/assets/images/script_suite-16647c3b3de01a8749f1b5c4ab2f8b452630df8c0470e5be38652acacfc98b5d.png +0 -0
  188. data/tools/staticdocs/assets/js/019369f3.5dd06a57.js +0 -1
  189. data/tools/staticdocs/assets/js/058ffc22.ed3ac5fa.js +0 -1
  190. data/tools/staticdocs/assets/js/0686a885.ef66a55c.js +0 -1
  191. data/tools/staticdocs/assets/js/0f5d161c.7aacaf90.js +0 -1
  192. data/tools/staticdocs/assets/js/0ff569c9.7aa50138.js +0 -1
  193. data/tools/staticdocs/assets/js/103cc3be.ff33b528.js +0 -1
  194. data/tools/staticdocs/assets/js/13196248.14de6ce1.js +0 -1
  195. data/tools/staticdocs/assets/js/13c1b4e4.2dafa283.js +0 -1
  196. data/tools/staticdocs/assets/js/1602.502ef9b1.js +0 -1
  197. data/tools/staticdocs/assets/js/1e02e6a3.d99a363c.js +0 -1
  198. data/tools/staticdocs/assets/js/2047b354.d91543a5.js +0 -1
  199. data/tools/staticdocs/assets/js/22b3ac48.5eb8d876.js +0 -1
  200. data/tools/staticdocs/assets/js/2368.fd1bb46a.js +0 -4
  201. data/tools/staticdocs/assets/js/2bb7bf90.1eee5bcb.js +0 -1
  202. data/tools/staticdocs/assets/js/2c15ad40.7f30b517.js +0 -1
  203. data/tools/staticdocs/assets/js/35398c5c.4f30c5da.js +0 -1
  204. data/tools/staticdocs/assets/js/3687.8bc61ef3.js +0 -101
  205. data/tools/staticdocs/assets/js/3dd7ef3b.dfbe9bb7.js +0 -1
  206. data/tools/staticdocs/assets/js/40365d27.42b05c12.js +0 -1
  207. data/tools/staticdocs/assets/js/411898ad.e55efd5d.js +0 -1
  208. data/tools/staticdocs/assets/js/42170351.2de491d4.js +0 -1
  209. data/tools/staticdocs/assets/js/43652efd.f7c95691.js +0 -1
  210. data/tools/staticdocs/assets/js/54d0d530.7cc2c5cc.js +0 -1
  211. data/tools/staticdocs/assets/js/5b233ba7.29533a03.js +0 -1
  212. data/tools/staticdocs/assets/js/5bc719f6.62d9a8b8.js +0 -1
  213. data/tools/staticdocs/assets/js/5c6ce5ec.40e0caf8.js +0 -1
  214. data/tools/staticdocs/assets/js/5fe211ef.2d29f3fb.js +0 -1
  215. data/tools/staticdocs/assets/js/6831b732.ec0009ac.js +0 -1
  216. data/tools/staticdocs/assets/js/696b4199.1c205c60.js +0 -1
  217. data/tools/staticdocs/assets/js/6b210247.32ded6d5.js +0 -1
  218. data/tools/staticdocs/assets/js/6b65133b.b2a62736.js +0 -1
  219. data/tools/staticdocs/assets/js/6f92e431.7bd2a1f1.js +0 -1
  220. data/tools/staticdocs/assets/js/72c6d8a8.21321ecc.js +0 -1
  221. data/tools/staticdocs/assets/js/75e64983.e0eb7741.js +0 -1
  222. data/tools/staticdocs/assets/js/7719.0d312792.js +0 -1
  223. data/tools/staticdocs/assets/js/80c97f38.a0dfbdf7.js +0 -1
  224. data/tools/staticdocs/assets/js/89e76475.20b3a636.js +0 -1
  225. data/tools/staticdocs/assets/js/8f7843ee.6d7c9cd4.js +0 -1
  226. data/tools/staticdocs/assets/js/9424f0b3.75b12400.js +0 -1
  227. data/tools/staticdocs/assets/js/964eb012.0eee94ba.js +0 -1
  228. data/tools/staticdocs/assets/js/97535711.630cee4d.js +0 -1
  229. data/tools/staticdocs/assets/js/99581c43.73b5cd90.js +0 -1
  230. data/tools/staticdocs/assets/js/9fb6059a.715fc441.js +0 -1
  231. data/tools/staticdocs/assets/js/a677c089.76d13f14.js +0 -1
  232. data/tools/staticdocs/assets/js/a9987364.3b3e7379.js +0 -1
  233. data/tools/staticdocs/assets/js/a9b2dc27.da1da6f1.js +0 -1
  234. data/tools/staticdocs/assets/js/b38a6d74.4a10f506.js +0 -1
  235. data/tools/staticdocs/assets/js/b4596165.08749f15.js +0 -1
  236. data/tools/staticdocs/assets/js/b6d70f94.776bc00f.js +0 -1
  237. data/tools/staticdocs/assets/js/b9f60ba6.ce400445.js +0 -1
  238. data/tools/staticdocs/assets/js/c24eae19.77326c08.js +0 -1
  239. data/tools/staticdocs/assets/js/cb8c3f08.73cefada.js +0 -1
  240. data/tools/staticdocs/assets/js/cd879be4.dc2adfcc.js +0 -1
  241. data/tools/staticdocs/assets/js/d1b923aa.57f5e162.js +0 -1
  242. data/tools/staticdocs/assets/js/d1bfc316.73bb876f.js +0 -1
  243. data/tools/staticdocs/assets/js/d57a4b5d.885590b1.js +0 -1
  244. data/tools/staticdocs/assets/js/d5d77c37.1143a9d4.js +0 -1
  245. data/tools/staticdocs/assets/js/d66bf9c0.0ffb9759.js +0 -1
  246. data/tools/staticdocs/assets/js/d8ca4191.fe602968.js +0 -1
  247. data/tools/staticdocs/assets/js/d9b92eba.a115a366.js +0 -1
  248. data/tools/staticdocs/assets/js/db8fa1d0.1aefa4e7.js +0 -1
  249. data/tools/staticdocs/assets/js/dbe31111.9c957b0c.js +0 -1
  250. data/tools/staticdocs/assets/js/dc5f7beb.ddc630ca.js +0 -1
  251. data/tools/staticdocs/assets/js/e501b0d1.f9c2d1fc.js +0 -1
  252. data/tools/staticdocs/assets/js/main.ba1fa268.js +0 -38
  253. data/tools/staticdocs/assets/js/runtime~main.ca894d1e.js +0 -1
  254. data/tools/staticdocs/lunr-index-1748640055686.json +0 -1
  255. data/tools/staticdocs/search-doc-1748640055686.json +0 -1
@@ -0,0 +1,42 @@
1
+ <!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-configuration/processors" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.1"><title data-rh=true>Processors | OpenC3 Docs</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><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/configuration/processors><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="Processors | OpenC3 Docs"><meta data-rh=true name=description content="Processors execute code every time a packet is received to calculate values"><meta data-rh=true property=og:description content="Processors execute code every time a packet is received to calculate values"><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/configuration/processors><link data-rh=true rel=alternate href=https://docs.openc3.com/tools/staticdocs/docs/configuration/processors hreflang=en><link data-rh=true rel=alternate href=https://docs.openc3.com/tools/staticdocs/docs/configuration/processors hreflang=x-default><script data-rh=true type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://docs.openc3.com/tools/staticdocs/docs/configuration","name":"Configuration","position":1},{"@type":"ListItem","item":"https://docs.openc3.com/tools/staticdocs/docs/configuration/processors","name":"Processors","position":2}]}</script><link rel=stylesheet href=/tools/staticdocs/assets/css/styles.1a361da6.css><script src=/tools/staticdocs/assets/js/runtime~main.7674b06d.js defer></script><script src=/tools/staticdocs/assets/js/main.8c741ee1.js defer></script><body class=navigation-with-keyboard><svg xmlns=http://www.w3.org/2000/svg style="display: none;"><defs>
2
+ <symbol id=theme-svg-external-link viewBox="0 0 24 24"><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"/></symbol>
3
+ </defs></svg>
4
+ <script>!function(){var t="dark",e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",e||t),document.documentElement.setAttribute("data-theme-choice",e||t)}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=__docusaurus><link rel=preload as=image href=/tools/staticdocs/img/logo.svg><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="theme-layout-navbar navbar navbar--fixed-top"><div class=navbar__inner><div class="theme-layout-navbar-left 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"/></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="theme-layout-navbar-right 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="theme-layout-main 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 class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/getting-started>Getting Started</a><button aria-label="Expand sidebar category 'Getting Started'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--active" href=/tools/staticdocs/docs/configuration>Configuration</a><button aria-label="Collapse sidebar category 'Configuration'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul 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/configuration/format>File Format</a><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/configuration/plugins>Plugins</a><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/configuration/target>Targets</a><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/configuration/command>Commands</a><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/configuration/telemetry>Telemetry</a><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/configuration/interfaces>Interfaces</a><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/configuration/protocols>Protocols</a><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/configuration/accessors>Accessors</a><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/configuration/conversions>Conversions</a><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/configuration/processors>Processors</a><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/configuration/limits-response>Limits Response</a><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/configuration/table>Tables</a><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/configuration/telemetry-screens>Screens</a><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/configuration/ssl-tls>SSL-TLS</a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/tools>Tools</a><button aria-label="Expand sidebar category 'Tools'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/guides>Guides</a><button aria-label="Expand sidebar category 'Guides'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/development>Development</a><button aria-label="Expand sidebar category 'Development'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/meta>Meta</a><button aria-label="Expand sidebar category 'Meta'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li 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></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><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 /></svg></a><li class=breadcrumbs__item><a class=breadcrumbs__link href=/tools/staticdocs/docs/configuration><span>Configuration</span></a><li class="breadcrumbs__item breadcrumbs__item--active"><span class=breadcrumbs__link>Processors</span></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>Overview</h1></header>
5
+ <p>Processors execute code every time a packet is received to calculate values that can be retrieved by a <a href=/tools/staticdocs/docs/configuration/conversions#processor_conversion>ProcessorConversion</a>. Processors are applied using the <a href=/tools/staticdocs/docs/configuration/telemetry#processor>PROCESSOR</a> keyword and generate values unique to the processor.</p>
6
+ <p>If you only want to perform calculations using a single packet to modify a telemetry value you probably want to use a <a href=/tools/staticdocs/docs/configuration/conversions>Conversion</a>. Processors are used when you're deriving a number of values from a single telemetry item.</p>
7
+ <h2 class="anchor anchorWithStickyNavbar_fF9Z" id=custom-processors>Custom Processors<a href=#custom-processors class=hash-link aria-label="Direct link to Custom Processors" title="Direct link to Custom Processors">​</a></h2>
8
+ <p>You can easily create your own custom processors by using the <a href=/tools/staticdocs/docs/getting-started/generators#processor-generator>Processor Code Generator</a>. To generate a process you must be inside an existing COSMOS plugin. The generator takes both a target name and the processor name. For example if your plugin is called <code>openc3-cosmos-gse</code> and you have an existing target named <code>GSE</code>:</p>
9
+ <div class="language-bash codeBlockContainer_ZGJx theme-code-block" style=--prism-color:#d6deeb;--prism-background-color:#011627><div class=codeBlockContent_kX1v><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-cosmos-gse % openc3.sh cli generate processor GSE slope </span><span class="token parameter variable" style="color:rgb(214, 222, 235)">--python</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain">Processor targets/GSE/lib/slope_processor.py successfully generated</span><span class="token operator" style="color:rgb(127, 219, 202)">!</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain">To use the processor </span><span class="token function" style="color:rgb(130, 170, 255)">add</span><span class="token plain"> the following to a telemetry packet:</span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> PROCESSOR SLOPE slope_processor.py </span><span class="token operator" style="color:rgb(127, 219, 202)">&lt;</span><span class="token plain">PARAMS</span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">.</span><span class="token operator" style="color:rgb(127, 219, 202)">></span><br></span></code></pre></div></div>
10
+ <p>Note: To create a Ruby processor simply replace <code>--python</code> with <code>--ruby</code>.</p>
11
+ <p>The above command creates a processor called <code>slope_processor.py</code> at <code>targets/GSE/lib/slope_processor.py</code>. The code which is generated looks like the following:</p>
12
+ <div class="language-python codeBlockContainer_ZGJx theme-code-block" style=--prism-color:#d6deeb;--prism-background-color:#011627><div class=codeBlockContent_kX1v><pre tabindex=0 class="prism-code language-python codeBlock_TAPP thin-scrollbar" style=color:#d6deeb;background-color:#011627><code class=codeBlockLines_AdAo><span class=token-line style=color:#d6deeb><span class="token keyword" style="color:rgb(127, 219, 202)">import</span><span class="token plain"> math</span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">from</span><span class="token plain"> openc3</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">processors</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">processor </span><span class="token keyword" style="color:rgb(127, 219, 202)">import</span><span class="token plain"> Processor</span><br></span><span class=token-line style=color:#d6deeb><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"></span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Custom processor class</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"># See https://docs.openc3.com/docs/configuration/processors</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">class</span><span class="token plain"> </span><span class="token class-name" style="color:rgb(255, 203, 139)">SlopeProcessor</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">Processor</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</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 keyword" style="color:rgb(127, 219, 202)">def</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">__init__</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">self</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> item_name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> num_samples</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> value_type</span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token string" style="color:rgb(173, 219, 103)">'CONVERTED'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</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 builtin" style="color:rgb(130, 170, 255)">super</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">__init__</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">value_type</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"> self</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">item_name </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> item_name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">upper</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</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"> self</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">num_samples </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token builtin" style="color:rgb(130, 170, 255)">int</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">num_samples</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"> self</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">reset</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</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" style=display:inline-block></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">def</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">call</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">self</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> value</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> packet</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token builtin" style="color:rgb(130, 170, 255)">buffer</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</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"> value </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> packet</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">read</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">self</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">item_name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> self</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">value_type</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token builtin" style="color:rgb(130, 170, 255)">buffer</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 comment" style="color:rgb(99, 119, 119);font-style:italic"># Don't process NaN or Infinite values</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">if</span><span class="token plain"> math</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">isnan</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">value</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">or</span><span class="token plain"> math</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">isinf</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">value</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</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 keyword" style="color:rgb(127, 219, 202)">return</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"> self</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">samples</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">append</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">value</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 keyword" style="color:rgb(127, 219, 202)">if</span><span class="token plain"> </span><span class="token builtin" style="color:rgb(130, 170, 255)">len</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">self</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">samples</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">></span><span class="token plain"> self</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">num_samples</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"> self</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">samples </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> self</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">samples</span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token operator" style="color:rgb(127, 219, 202)">-</span><span class="token plain">self</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">num_samples </span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</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" style=display:inline-block></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">if</span><span class="token plain"> </span><span class="token builtin" style="color:rgb(130, 170, 255)">len</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">self</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">samples</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">></span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">1</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"> self</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">results</span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token string" style="color:rgb(173, 219, 103)">'RATE_OF_CHANGE'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token plain"> </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">self</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">samples</span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token operator" style="color:rgb(127, 219, 202)">-</span><span class="token number" style="color:rgb(247, 140, 108)">1</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">-</span><span class="token plain"> self</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">samples</span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token number" style="color:rgb(247, 140, 108)">0</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </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 builtin" style="color:rgb(130, 170, 255)">len</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">self</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">samples</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">-</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">1</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 keyword" style="color:rgb(127, 219, 202)">else</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"> self</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">results</span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token string" style="color:rgb(173, 219, 103)">'RATE_OF_CHANGE'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token boolean" style="color:rgb(255, 88, 116)">None</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">def</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">reset</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">self</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</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"> self</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">samples </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 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"> self</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">results</span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token string" style="color:rgb(173, 219, 103)">'RATE_OF_CHANGE'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token boolean" style="color:rgb(255, 88, 116)">None</span><br></span></code></pre></div></div>
13
+ <h3 class="anchor anchorWithStickyNavbar_fF9Z" id=init><strong>init</strong><a href=#init class=hash-link aria-label="Direct link to init" title="Direct link to init">​</a></h3>
14
+ <p>The <strong>init</strong> method is where the processor is initialized. The parameters specified are the parameters given in the configuration file when creating the processor. So for our example, the telemetry configuration file will look like:</p>
15
+ <div class="language-text codeBlockContainer_ZGJx theme-code-block" style=--prism-color:#d6deeb;--prism-background-color:#011627><div class=codeBlockContent_kX1v><pre tabindex=0 class="prism-code language-text codeBlock_TAPP thin-scrollbar" style=color:#d6deeb;background-color:#011627><code class=codeBlockLines_AdAo><span class=token-line style=color:#d6deeb><span class="token plain"># Calculate the slope of TEMP1 over the last 60 samples (1 minute)</span><br></span><span class=token-line style=color:#d6deeb><span class="token plain">PROCESSOR SLOPE slope_processor.py TEMP1 60</span><br></span></code></pre></div></div>
16
+ <h3 class="anchor anchorWithStickyNavbar_fF9Z" id=call>call<a href=#call class=hash-link aria-label="Direct link to call" title="Direct link to call">​</a></h3>
17
+ <p>The call method is where the actual processor logic is implemented. In our case we want to calculate the rate of change from the first sample to the last sample. There are certainly more efficient ways to calculate a single rate of change value (you really only need 2 values) but this example shows how to keep a running list of values. Also note that if you're only performing a single calculation you might be better off using a <a href=/tools/staticdocs/docs/configuration/conversions>Conversion</a>.</p>
18
+ <h3 class="anchor anchorWithStickyNavbar_fF9Z" id=reset>reset<a href=#reset class=hash-link aria-label="Direct link to reset" title="Direct link to reset">​</a></h3>
19
+ <p>The reset method initializes the samples and clears any state by setting the results to <code>None</code>.</p>
20
+ <h3 class="anchor anchorWithStickyNavbar_fF9Z" id=instantiate-processor>Instantiate Processor<a href=#instantiate-processor class=hash-link aria-label="Direct link to Instantiate Processor" title="Direct link to Instantiate Processor">​</a></h3>
21
+ <p>Now that we have implemented the processor logic we need to create the processor by adding it to a telemetry packet with the line <code>PROCESSOR SLOPE slope_processor.py</code> in the <a href=/tools/staticdocs/docs/configuration/telemetry>telemetry</a> definition file. We also need a <a href=/tools/staticdocs/docs/configuration/conversions#processor_conversion>ProcessorConversion</a> to pull the calculated values out of the processor and into a <a href=/tools/staticdocs/docs/configuration/telemetry#derived-items>derived</a> telemetry item. This could look something like this:</p>
22
+ <div class="language-bash codeBlockContainer_ZGJx theme-code-block" style=--prism-color:#d6deeb;--prism-background-color:#011627><div class=codeBlockContent_kX1v><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">TELEMETRY GSE DATA BIG_ENDIAN </span><span class="token string" style="color:rgb(173, 219, 103)">"Data packet"</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 comment" style="color:rgb(99, 119, 119);font-style:italic"># Telemetry items</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> ITEM TEMP1SLOPE </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"> DERIVED </span><span class="token string" style="color:rgb(173, 219, 103)">"Rate of change for the last 60 samples of TEMP1"</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> READ_CONVERSION openc3/conversions/processor_conversion.py SLOPE RATE_OF_CHANGE</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"># Calculate the slope of TEMP1 over the last 60 samples (1 minute)</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> PROCESSOR SLOPE slope_processor.py TEMP1 </span><span class="token number" style="color:rgb(247, 140, 108)">60</span><br></span></code></pre></div></div>
23
+ <p>If you have multiple values you're calculating you simply add additional ITEMs with READ_COVERSIONs and read the various values the processor calculates in the results.</p>
24
+ <h1>Built-in Processors</h1>
25
+ <h2 class="anchor anchorWithStickyNavbar_fF9Z" id=watermark_processor>WATERMARK_PROCESSOR<a href=#watermark_processor class=hash-link aria-label="Direct link to WATERMARK_PROCESSOR" title="Direct link to WATERMARK_PROCESSOR">​</a></h2>
26
+ <p><strong>Calculates high and low values for a given item</strong></p>
27
+ <p>Stores high and low values for a given item as HIGH_WATER and LOW_WATER.
28
+ Values are retrieved using a <a href=/tools/staticdocs/docs/configuration/conversions#processor_conversion>ProcessorConversion</a>.</p>
29
+ <table><thead><tr><th>Parameter<th>Description<th>Required<tbody><tr><td>Item Name<td>The item name to calculate high and low values for<td>True<tr><td>Value Type<td>The type of the value to display. Default is CONVERTED.<br><br>Valid Values: <span class=values>RAW, CONVERTED</span><td>False</table>
30
+ <p>Ruby Example:</p>
31
+ <div class="language-ruby codeBlockContainer_ZGJx theme-code-block" style=--prism-color:#d6deeb;--prism-background-color:#011627><div class=codeBlockContent_kX1v><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)">PROCESSOR</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">TEMP1WATER</span><span class="token plain"> watermark_processor</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">rb </span><span class="token constant" style="color:rgb(130, 170, 255)">TEMP1</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)">ITEM</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">TEMP1HIGH</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 constant" style="color:rgb(130, 170, 255)">DERIVED</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">"High-water mark for TEMP1"</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)">READ_CONVERSION</span><span class="token plain"> processor_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">rb </span><span class="token constant" style="color:rgb(130, 170, 255)">TEMP1WATER</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">HIGH_WATER</span><br></span></code></pre></div></div>
32
+ <p>Python Example:</p>
33
+ <div class="language-python codeBlockContainer_ZGJx theme-code-block" style=--prism-color:#d6deeb;--prism-background-color:#011627><div class=codeBlockContent_kX1v><pre tabindex=0 class="prism-code language-python 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">PROCESSOR TEMP1WATER openc3</span><span class="token operator" style="color:rgb(127, 219, 202)">/</span><span class="token plain">conversions</span><span class="token operator" style="color:rgb(127, 219, 202)">/</span><span class="token plain">watermark_processor</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">py TEMP1</span><br></span><span class=token-line style=color:#d6deeb><span class="token plain">ITEM TEMP1HIGH </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"> DERIVED </span><span class="token string" style="color:rgb(173, 219, 103)">"High-water mark for TEMP1"</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> READ_CONVERSION openc3</span><span class="token operator" style="color:rgb(127, 219, 202)">/</span><span class="token plain">conversions</span><span class="token operator" style="color:rgb(127, 219, 202)">/</span><span class="token plain">processor_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">py TEMP1WATER HIGH_WATER</span><br></span></code></pre></div></div>
34
+ <h2 class="anchor anchorWithStickyNavbar_fF9Z" id=statistics_processor>STATISTICS_PROCESSOR<a href=#statistics_processor class=hash-link aria-label="Direct link to STATISTICS_PROCESSOR" title="Direct link to STATISTICS_PROCESSOR">​</a></h2>
35
+ <p><strong>Calculates statistics for a given item</strong></p>
36
+ <p>This processor calculates statistics for a given item as MIN, MAX, MEAN, and STDDEV
37
+ over a specified number of samples. Values are retrieved using a <a href=/tools/staticdocs/docs/configuration/conversions#processor_conversion>ProcessorConversion</a>.</p>
38
+ <table><thead><tr><th>Parameter<th>Description<th>Required<tbody><tr><td>Item Name<td>The item name to calculate statistics for<td>True<tr><td>Samples to Average<td>The number of samples to average for statistics<td>True<tr><td>Value Type<td>The type of the value to display. Default is CONVERTED.<br><br>Valid Values: <span class=values>RAW, CONVERTED</span><td>False</table>
39
+ <p>Ruby Example:</p>
40
+ <div class="language-ruby codeBlockContainer_ZGJx theme-code-block" style=--prism-color:#d6deeb;--prism-background-color:#011627><div class=codeBlockContent_kX1v><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)">PROCESSOR</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">TEMP1STAT</span><span class="token plain"> statistics_processor</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">rb </span><span class="token constant" style="color:rgb(130, 170, 255)">TEMP1</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">100</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)">ITEM</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">TEMP1STDDEV</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 constant" style="color:rgb(130, 170, 255)">DERIVED</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(173, 219, 103)">"Stddev of most recent 100 samples for TEMP1"</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)">READ_CONVERSION</span><span class="token plain"> processor_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">rb </span><span class="token constant" style="color:rgb(130, 170, 255)">TEMP1STAT</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">STDDEV</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">FLOAT</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">64</span><br></span></code></pre></div></div>
41
+ <p>Python Example:</p>
42
+ <div class="language-python codeBlockContainer_ZGJx theme-code-block" style=--prism-color:#d6deeb;--prism-background-color:#011627><div class=codeBlockContent_kX1v><pre tabindex=0 class="prism-code language-python 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">PROCESSOR TEMP1STAT openc3</span><span class="token operator" style="color:rgb(127, 219, 202)">/</span><span class="token plain">conversions</span><span class="token operator" style="color:rgb(127, 219, 202)">/</span><span class="token plain">statistics_processor</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">py TEMP1 </span><span class="token number" style="color:rgb(247, 140, 108)">100</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain">ITEM TEMP1STDDEV </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"> DERIVED </span><span class="token string" style="color:rgb(173, 219, 103)">"Stddev of most recent 100 samples for TEMP1"</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> READ_CONVERSION openc3</span><span class="token operator" style="color:rgb(127, 219, 202)">/</span><span class="token plain">conversions</span><span class="token operator" style="color:rgb(127, 219, 202)">/</span><span class="token plain">processor_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">py TEMP1STAT STDDEV FLOAT </span><span class="token number" style="color:rgb(247, 140, 108)">64</span><br></span></code></pre></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class=col><a href=https://github.com/OpenC3/cosmos/tree/main/docs.openc3.com/docs/configuration/processors.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"/></g></svg>Edit this page</a></div><div class="col lastUpdated_g62E"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href=/tools/staticdocs/docs/configuration/conversions><div class=pagination-nav__sublabel>Previous</div><div class=pagination-nav__label>Conversions</div></a><a class="pagination-nav__link pagination-nav__link--next" href=/tools/staticdocs/docs/configuration/limits-response><div class=pagination-nav__sublabel>Next</div><div class=pagination-nav__label>Limits Response</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-processors class="table-of-contents__link toc-highlight">Custom Processors</a><ul><li><a href=#init class="table-of-contents__link toc-highlight"><strong>init</strong></a><li><a href=#call class="table-of-contents__link toc-highlight">call</a><li><a href=#reset class="table-of-contents__link toc-highlight">reset</a><li><a href=#instantiate-processor class="table-of-contents__link toc-highlight">Instantiate Processor</a></ul><li><a href=#watermark_processor class="table-of-contents__link toc-highlight">WATERMARK_PROCESSOR</a><li><a href=#statistics_processor class="table-of-contents__link toc-highlight">STATISTICS_PROCESSOR</a></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column 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></ul></div><div class="theme-layout-footer-column 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></ul></div><div class="theme-layout-footer-column 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 class=iconExternalLink_awgD><use href=#theme-svg-external-link /></svg></a></ul></div><div class="theme-layout-footer-column 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 class=iconExternalLink_awgD><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a class=footer__link-item href=/tools/staticdocs/docs/privacy>Privacy</a></ul></div></div><div class="footer__bottom text--center"><div class=footer__copyright>Copyright © 2025 OpenC3, Inc.</div></div></div></footer></div>
@@ -1,7 +1,7 @@
1
- <!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-configuration/protocols" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.0"><title data-rh=true>Protocols | OpenC3 Docs</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><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/configuration/protocols><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="Protocols | OpenC3 Docs"><meta data-rh=true name=description content="Built-in COSMOS protocols including how to create one"><meta data-rh=true property=og:description content="Built-in COSMOS protocols including how to create one"><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/configuration/protocols><link data-rh=true rel=alternate href=https://docs.openc3.com/tools/staticdocs/docs/configuration/protocols hreflang=en><link data-rh=true rel=alternate href=https://docs.openc3.com/tools/staticdocs/docs/configuration/protocols hreflang=x-default><script data-rh=true type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://docs.openc3.com/tools/staticdocs/docs/configuration","name":"Configuration","position":1},{"@type":"ListItem","item":"https://docs.openc3.com/tools/staticdocs/docs/configuration/protocols","name":"Protocols","position":2}]}</script><link rel=stylesheet href=/tools/staticdocs/assets/css/styles.1a361da6.css><script src=/tools/staticdocs/assets/js/runtime~main.ca894d1e.js defer></script><script src=/tools/staticdocs/assets/js/main.ba1fa268.js defer></script><body class=navigation-with-keyboard><svg xmlns=http://www.w3.org/2000/svg style="display: none;"><defs>
1
+ <!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-configuration/protocols" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.1"><title data-rh=true>Protocols | OpenC3 Docs</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><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/configuration/protocols><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="Protocols | OpenC3 Docs"><meta data-rh=true name=description content="Built-in COSMOS protocols including how to create one"><meta data-rh=true property=og:description content="Built-in COSMOS protocols including how to create one"><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/configuration/protocols><link data-rh=true rel=alternate href=https://docs.openc3.com/tools/staticdocs/docs/configuration/protocols hreflang=en><link data-rh=true rel=alternate href=https://docs.openc3.com/tools/staticdocs/docs/configuration/protocols hreflang=x-default><script data-rh=true type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://docs.openc3.com/tools/staticdocs/docs/configuration","name":"Configuration","position":1},{"@type":"ListItem","item":"https://docs.openc3.com/tools/staticdocs/docs/configuration/protocols","name":"Protocols","position":2}]}</script><link rel=stylesheet href=/tools/staticdocs/assets/css/styles.1a361da6.css><script src=/tools/staticdocs/assets/js/runtime~main.7674b06d.js defer></script><script src=/tools/staticdocs/assets/js/main.8c741ee1.js defer></script><body class=navigation-with-keyboard><svg xmlns=http://www.w3.org/2000/svg style="display: none;"><defs>
2
2
  <symbol id=theme-svg-external-link viewBox="0 0 24 24"><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"/></symbol>
3
3
  </defs></svg>
4
- <script>!function(){var t="dark",e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",e||t),document.documentElement.setAttribute("data-theme-choice",e||t)}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=__docusaurus><link rel=preload as=image href=/tools/staticdocs/img/logo.svg><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="theme-layout-navbar navbar navbar--fixed-top"><div class=navbar__inner><div class="theme-layout-navbar-left 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"/></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="theme-layout-navbar-right 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="theme-layout-main 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 class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/getting-started>Getting Started</a><button aria-label="Expand sidebar category 'Getting Started'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--active" href=/tools/staticdocs/docs/configuration>Configuration</a><button aria-label="Collapse sidebar category 'Configuration'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul 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/configuration/format>File Format</a><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/configuration/plugins>Plugins</a><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/configuration/target>Targets</a><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/configuration/command>Commands</a><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/configuration/telemetry>Telemetry</a><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/configuration/interfaces>Interfaces</a><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/configuration/protocols>Protocols</a><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/configuration/accessors>Accessors</a><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/configuration/conversions>Conversions</a><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/configuration/table>Tables</a><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/configuration/telemetry-screens>Screens</a><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/configuration/ssl-tls>SSL-TLS</a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/tools>Tools</a><button aria-label="Expand sidebar category 'Tools'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/guides>Guides</a><button aria-label="Expand sidebar category 'Guides'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/development>Development</a><button aria-label="Expand sidebar category 'Development'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/meta>Meta</a><button aria-label="Expand sidebar category 'Meta'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li 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></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><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 /></svg></a><li class=breadcrumbs__item><a class=breadcrumbs__link href=/tools/staticdocs/docs/configuration><span>Configuration</span></a><li class="breadcrumbs__item breadcrumbs__item--active"><span class=breadcrumbs__link>Protocols</span></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>Protocols</h1></header><p>Protocols process data on behalf of an <a href=/tools/staticdocs/docs/configuration/interfaces>Interface</a>. They can modify the data being written, data being read, or both. Protocols can also mark a packet as stored instead of real-time which means COSMOS will not update the current value table with the packet data. Protocols can be layered and will be processed in order. For example, if you have a low-level encryption layer that must be first removed before processing a higher level buffer length protocol.</p>
4
+ <script>!function(){var t="dark",e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",e||t),document.documentElement.setAttribute("data-theme-choice",e||t)}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=__docusaurus><link rel=preload as=image href=/tools/staticdocs/img/logo.svg><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="theme-layout-navbar navbar navbar--fixed-top"><div class=navbar__inner><div class="theme-layout-navbar-left 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"/></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="theme-layout-navbar-right 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="theme-layout-main 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 class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/getting-started>Getting Started</a><button aria-label="Expand sidebar category 'Getting Started'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--active" href=/tools/staticdocs/docs/configuration>Configuration</a><button aria-label="Collapse sidebar category 'Configuration'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul 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/configuration/format>File Format</a><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/configuration/plugins>Plugins</a><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/configuration/target>Targets</a><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/configuration/command>Commands</a><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/configuration/telemetry>Telemetry</a><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/configuration/interfaces>Interfaces</a><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/configuration/protocols>Protocols</a><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/configuration/accessors>Accessors</a><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/configuration/conversions>Conversions</a><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/configuration/processors>Processors</a><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/configuration/limits-response>Limits Response</a><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/configuration/table>Tables</a><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/configuration/telemetry-screens>Screens</a><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/configuration/ssl-tls>SSL-TLS</a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/tools>Tools</a><button aria-label="Expand sidebar category 'Tools'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/guides>Guides</a><button aria-label="Expand sidebar category 'Guides'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/development>Development</a><button aria-label="Expand sidebar category 'Development'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/meta>Meta</a><button aria-label="Expand sidebar category 'Meta'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li 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></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><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 /></svg></a><li class=breadcrumbs__item><a class=breadcrumbs__link href=/tools/staticdocs/docs/configuration><span>Configuration</span></a><li class="breadcrumbs__item breadcrumbs__item--active"><span class=breadcrumbs__link>Protocols</span></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>Protocols</h1></header><p>Protocols process data on behalf of an <a href=/tools/staticdocs/docs/configuration/interfaces>Interface</a>. They can modify the data being written, data being read, or both. Protocols can also mark a packet as stored instead of real-time which means COSMOS will not update the current value table with the packet data. Protocols can be layered and will be processed in order. For example, if you have a low-level encryption layer that must be first removed before processing a higher level buffer length protocol.</p>
5
5
  <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"/></svg></span>Protocol Run Order</div><div class=admonitionContent_bl22><p>Read protocols execute in the order specified (First specified runs first). Write protocols execute in the reverse order (Last specified executes first).</div></div>
6
6
  <p>Protocols are typically used to define the logic to delineate packets and manipulate data as it written to and read from Interfaces. COSMOS includes Interfaces for TCP/IP Client, TCP/IP Server, Udp Client / Server, and Serial connections. For 99% of use cases these Interfaces should not require any changes as they universally handle the low-level details of reading and writing from these types of connections. All unique behavior should now be defined in Protocols.</p>
7
7
  <p>At a minimum, any byte stream based Interface will require a Protocol to delineate packets. TCP/IP and Serial are examples of byte stream based Interfaces. A byte stream is just a simple stream of bytes and thus you need some way to know where packets begin and end within the stream.</p>
@@ -1,7 +1,7 @@
1
- <!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-configuration/ssl-tls" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.0"><title data-rh=true>SSL-TLS | OpenC3 Docs</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><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/configuration/ssl-tls><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="SSL-TLS | OpenC3 Docs"><meta data-rh=true name=description content="How to configure SSL and TLS"><meta data-rh=true property=og:description content="How to configure SSL and TLS"><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/configuration/ssl-tls><link data-rh=true rel=alternate href=https://docs.openc3.com/tools/staticdocs/docs/configuration/ssl-tls hreflang=en><link data-rh=true rel=alternate href=https://docs.openc3.com/tools/staticdocs/docs/configuration/ssl-tls hreflang=x-default><script data-rh=true type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://docs.openc3.com/tools/staticdocs/docs/configuration","name":"Configuration","position":1},{"@type":"ListItem","item":"https://docs.openc3.com/tools/staticdocs/docs/configuration/ssl-tls","name":"SSL-TLS","position":2}]}</script><link rel=stylesheet href=/tools/staticdocs/assets/css/styles.1a361da6.css><script src=/tools/staticdocs/assets/js/runtime~main.ca894d1e.js defer></script><script src=/tools/staticdocs/assets/js/main.ba1fa268.js defer></script><body class=navigation-with-keyboard><svg xmlns=http://www.w3.org/2000/svg style="display: none;"><defs>
1
+ <!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-configuration/ssl-tls" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.1"><title data-rh=true>SSL-TLS | OpenC3 Docs</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><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/configuration/ssl-tls><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="SSL-TLS | OpenC3 Docs"><meta data-rh=true name=description content="How to configure SSL and TLS"><meta data-rh=true property=og:description content="How to configure SSL and TLS"><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/configuration/ssl-tls><link data-rh=true rel=alternate href=https://docs.openc3.com/tools/staticdocs/docs/configuration/ssl-tls hreflang=en><link data-rh=true rel=alternate href=https://docs.openc3.com/tools/staticdocs/docs/configuration/ssl-tls hreflang=x-default><script data-rh=true type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://docs.openc3.com/tools/staticdocs/docs/configuration","name":"Configuration","position":1},{"@type":"ListItem","item":"https://docs.openc3.com/tools/staticdocs/docs/configuration/ssl-tls","name":"SSL-TLS","position":2}]}</script><link rel=stylesheet href=/tools/staticdocs/assets/css/styles.1a361da6.css><script src=/tools/staticdocs/assets/js/runtime~main.7674b06d.js defer></script><script src=/tools/staticdocs/assets/js/main.8c741ee1.js defer></script><body class=navigation-with-keyboard><svg xmlns=http://www.w3.org/2000/svg style="display: none;"><defs>
2
2
  <symbol id=theme-svg-external-link viewBox="0 0 24 24"><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"/></symbol>
3
3
  </defs></svg>
4
- <script>!function(){var t="dark",e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",e||t),document.documentElement.setAttribute("data-theme-choice",e||t)}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=__docusaurus><link rel=preload as=image href=/tools/staticdocs/img/logo.svg><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="theme-layout-navbar navbar navbar--fixed-top"><div class=navbar__inner><div class="theme-layout-navbar-left 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"/></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="theme-layout-navbar-right 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="theme-layout-main 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 class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/getting-started>Getting Started</a><button aria-label="Expand sidebar category 'Getting Started'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--active" href=/tools/staticdocs/docs/configuration>Configuration</a><button aria-label="Collapse sidebar category 'Configuration'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul 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/configuration/format>File Format</a><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/configuration/plugins>Plugins</a><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/configuration/target>Targets</a><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/configuration/command>Commands</a><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/configuration/telemetry>Telemetry</a><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/configuration/interfaces>Interfaces</a><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/configuration/protocols>Protocols</a><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/configuration/accessors>Accessors</a><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/configuration/conversions>Conversions</a><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/configuration/table>Tables</a><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/configuration/telemetry-screens>Screens</a><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/configuration/ssl-tls>SSL-TLS</a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/tools>Tools</a><button aria-label="Expand sidebar category 'Tools'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/guides>Guides</a><button aria-label="Expand sidebar category 'Guides'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/development>Development</a><button aria-label="Expand sidebar category 'Development'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/meta>Meta</a><button aria-label="Expand sidebar category 'Meta'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li 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></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><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 /></svg></a><li class=breadcrumbs__item><a class=breadcrumbs__link href=/tools/staticdocs/docs/configuration><span>Configuration</span></a><li class="breadcrumbs__item breadcrumbs__item--active"><span class=breadcrumbs__link>SSL-TLS</span></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>SSL-TLS</h1></header><p>OpenC3 COSMOS is a container based service which does not use SSL/TLS out of the box. This guide will help you configure SSL and TLS. Learn more at the Traefik <a href=https://doc.traefik.io/traefik/routing/entrypoints/#tls target=_blank rel="noopener noreferrer">docs</a>.</p>
4
+ <script>!function(){var t="dark",e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",e||t),document.documentElement.setAttribute("data-theme-choice",e||t)}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=__docusaurus><link rel=preload as=image href=/tools/staticdocs/img/logo.svg><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="theme-layout-navbar navbar navbar--fixed-top"><div class=navbar__inner><div class="theme-layout-navbar-left 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"/></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="theme-layout-navbar-right 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="theme-layout-main 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 class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/getting-started>Getting Started</a><button aria-label="Expand sidebar category 'Getting Started'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--active" href=/tools/staticdocs/docs/configuration>Configuration</a><button aria-label="Collapse sidebar category 'Configuration'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul 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/configuration/format>File Format</a><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/configuration/plugins>Plugins</a><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/configuration/target>Targets</a><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/configuration/command>Commands</a><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/configuration/telemetry>Telemetry</a><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/configuration/interfaces>Interfaces</a><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/configuration/protocols>Protocols</a><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/configuration/accessors>Accessors</a><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/configuration/conversions>Conversions</a><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/configuration/processors>Processors</a><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/configuration/limits-response>Limits Response</a><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/configuration/table>Tables</a><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/configuration/telemetry-screens>Screens</a><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/configuration/ssl-tls>SSL-TLS</a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/tools>Tools</a><button aria-label="Expand sidebar category 'Tools'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/guides>Guides</a><button aria-label="Expand sidebar category 'Guides'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/development>Development</a><button aria-label="Expand sidebar category 'Development'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/meta>Meta</a><button aria-label="Expand sidebar category 'Meta'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li 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></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><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 /></svg></a><li class=breadcrumbs__item><a class=breadcrumbs__link href=/tools/staticdocs/docs/configuration><span>Configuration</span></a><li class="breadcrumbs__item breadcrumbs__item--active"><span class=breadcrumbs__link>SSL-TLS</span></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>SSL-TLS</h1></header><p>OpenC3 COSMOS is a container based service which does not use SSL/TLS out of the box. This guide will help you configure SSL and TLS. Learn more at the Traefik <a href=https://doc.traefik.io/traefik/routing/entrypoints/#tls target=_blank rel="noopener noreferrer">docs</a>.</p>
5
5
  <p><img decoding=async loading=lazy alt="Docker Security Diagram" src=/tools/staticdocs/assets/images/docker-security-bb6d4bdd60a5cd7df87a572159c6369b67bee5735be5a501b25786cabdcd4228.png width=803 height=743 class=img__Ss2></p>
6
6
  <h2 class="anchor anchorWithStickyNavbar_fF9Z" id=understanding-ssl-tls-and-public-key-infrastructure-pki>Understanding SSL, TLS, and Public Key Infrastructure (PKI)<a href=#understanding-ssl-tls-and-public-key-infrastructure-pki class=hash-link aria-label="Direct link to Understanding SSL, TLS, and Public Key Infrastructure (PKI)" title="Direct link to Understanding SSL, TLS, and Public Key Infrastructure (PKI)">​</a></h2>
7
7
  <p>Security on the internet is built on the technologies SSL and TLS. SSL (Secure Sockets Layer) was the original version but is now an outdated technology that is no longer used in favor of the more modern TLS (Transport Layer Security). However, the terms SSL and TLS are still used interchangeably in most conversations. Public Key Infrastructure (PKI) is what makes secure sockets like SSL and TLS work - and is built around certificates, certificate authorities, and public key encryption.</p>