openc3-cosmos-tool-docs 6.4.1 → 6.4.2

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 (248) hide show
  1. checksums.yaml +4 -4
  2. data/tools/staticdocs/404.html +4 -1
  3. data/tools/staticdocs/assets/css/styles.1a361da6.css +1 -0
  4. data/tools/staticdocs/assets/images/cmd-processing-f279f2a9798a3000e07540ec5d4eaf095a84b312cd673285b595eebf901f4663.png +0 -0
  5. data/tools/staticdocs/assets/images/docker-security-bb6d4bdd60a5cd7df87a572159c6369b67bee5735be5a501b25786cabdcd4228.png +0 -0
  6. data/tools/staticdocs/assets/images/tlm-processing-ce5d4cc16e4a19d9c4f799cc8af975e93eb1c54ba0d43acbc31cc048667b223d.png +0 -0
  7. data/tools/staticdocs/assets/js/019369f3.5dd06a57.js +1 -0
  8. data/tools/staticdocs/assets/js/058ffc22.ed3ac5fa.js +1 -0
  9. data/tools/staticdocs/assets/js/0686a885.ef66a55c.js +1 -0
  10. data/tools/staticdocs/assets/js/078dbab0.43788fd9.js +1 -0
  11. data/tools/staticdocs/assets/js/0f5d161c.7aacaf90.js +1 -0
  12. data/tools/staticdocs/assets/js/0ff569c9.7aa50138.js +1 -0
  13. data/tools/staticdocs/assets/js/103cc3be.ff33b528.js +1 -0
  14. data/tools/staticdocs/assets/js/13196248.14de6ce1.js +1 -0
  15. data/tools/staticdocs/assets/js/13c1b4e4.2dafa283.js +1 -0
  16. data/tools/staticdocs/assets/js/1602.502ef9b1.js +1 -0
  17. data/tools/staticdocs/assets/js/1e02e6a3.d99a363c.js +1 -0
  18. data/tools/staticdocs/assets/js/2047b354.d91543a5.js +1 -0
  19. data/tools/staticdocs/assets/js/2124.545702e0.js +1 -0
  20. data/tools/staticdocs/assets/js/22b3ac48.5eb8d876.js +1 -0
  21. data/tools/staticdocs/assets/js/2368.fd1bb46a.js +4 -0
  22. data/tools/staticdocs/assets/js/26b8abb2.021651f5.js +1 -0
  23. data/tools/staticdocs/assets/js/2bb7bf90.1eee5bcb.js +1 -0
  24. data/tools/staticdocs/assets/js/2c15ad40.7f30b517.js +1 -0
  25. data/tools/staticdocs/assets/js/35398c5c.4f30c5da.js +1 -0
  26. data/tools/staticdocs/assets/js/3687.8bc61ef3.js +101 -0
  27. data/tools/staticdocs/assets/js/3dd7ef3b.dfbe9bb7.js +1 -0
  28. data/tools/staticdocs/assets/js/40365d27.42b05c12.js +1 -0
  29. data/tools/staticdocs/assets/js/411898ad.e55efd5d.js +1 -0
  30. data/tools/staticdocs/assets/js/42170351.2de491d4.js +1 -0
  31. data/tools/staticdocs/assets/js/43652efd.f7c95691.js +1 -0
  32. data/tools/staticdocs/assets/js/53ca7c5b.2da36c11.js +1 -0
  33. data/tools/staticdocs/assets/js/54d0d530.7cc2c5cc.js +1 -0
  34. data/tools/staticdocs/assets/js/5b233ba7.29533a03.js +1 -0
  35. data/tools/staticdocs/assets/js/5bc719f6.62d9a8b8.js +1 -0
  36. data/tools/staticdocs/assets/js/5c6ce5ec.40e0caf8.js +1 -0
  37. data/tools/staticdocs/assets/js/5e3ed378.64ea5a52.js +1 -0
  38. data/tools/staticdocs/assets/js/5fe211ef.2d29f3fb.js +1 -0
  39. data/tools/staticdocs/assets/js/6831b732.ec0009ac.js +1 -0
  40. data/tools/staticdocs/assets/js/696b4199.1c205c60.js +1 -0
  41. data/tools/staticdocs/assets/js/6b210247.32ded6d5.js +1 -0
  42. data/tools/staticdocs/assets/js/6b65133b.b2a62736.js +1 -0
  43. data/tools/staticdocs/assets/js/6f92e431.7bd2a1f1.js +1 -0
  44. data/tools/staticdocs/assets/js/72c6d8a8.21321ecc.js +1 -0
  45. data/tools/staticdocs/assets/js/75e64983.e0eb7741.js +1 -0
  46. data/tools/staticdocs/assets/js/7690.fc05b8e6.js +1 -0
  47. data/tools/staticdocs/assets/js/7719.0d312792.js +1 -0
  48. data/tools/staticdocs/assets/js/80c97f38.a0dfbdf7.js +1 -0
  49. data/tools/staticdocs/assets/js/867640d5.32ca371f.js +1 -0
  50. data/tools/staticdocs/assets/js/{89e76475.e1b0dbdb.js → 89e76475.20b3a636.js} +1 -1
  51. data/tools/staticdocs/assets/js/8f7843ee.6d7c9cd4.js +1 -0
  52. data/tools/staticdocs/assets/js/9424f0b3.75b12400.js +1 -0
  53. data/tools/staticdocs/assets/js/964eb012.0eee94ba.js +1 -0
  54. data/tools/staticdocs/assets/js/97535711.630cee4d.js +1 -0
  55. data/tools/staticdocs/assets/js/99581c43.73b5cd90.js +1 -0
  56. data/tools/staticdocs/assets/js/9d6e81d0.6b6404ff.js +1 -0
  57. data/tools/staticdocs/assets/js/9fb6059a.715fc441.js +1 -0
  58. data/tools/staticdocs/assets/js/a677c089.76d13f14.js +1 -0
  59. data/tools/staticdocs/assets/js/a9987364.3b3e7379.js +1 -0
  60. data/tools/staticdocs/assets/js/a9b2dc27.da1da6f1.js +1 -0
  61. data/tools/staticdocs/assets/js/aa6b6c1b.bc122746.js +1 -0
  62. data/tools/staticdocs/assets/js/b062d239.4e8142cb.js +1 -0
  63. data/tools/staticdocs/assets/js/b38a6d74.4a10f506.js +1 -0
  64. data/tools/staticdocs/assets/js/b4596165.08749f15.js +1 -0
  65. data/tools/staticdocs/assets/js/b6d70f94.776bc00f.js +1 -0
  66. data/tools/staticdocs/assets/js/b9f60ba6.ce400445.js +1 -0
  67. data/tools/staticdocs/assets/js/bd0034eb.a201a4a7.js +1 -0
  68. data/tools/staticdocs/assets/js/c24eae19.77326c08.js +1 -0
  69. data/tools/staticdocs/assets/js/{c2598f55.812cdcd1.js → c2598f55.85419dc8.js} +1 -1
  70. data/tools/staticdocs/assets/js/cb8c3f08.73cefada.js +1 -0
  71. data/tools/staticdocs/assets/js/cd879be4.dc2adfcc.js +1 -0
  72. data/tools/staticdocs/assets/js/d1b923aa.57f5e162.js +1 -0
  73. data/tools/staticdocs/assets/js/d1bfc316.73bb876f.js +1 -0
  74. data/tools/staticdocs/assets/js/d24bf9b6.e348c06d.js +1 -0
  75. data/tools/staticdocs/assets/js/d57a4b5d.885590b1.js +1 -0
  76. data/tools/staticdocs/assets/js/d5d77c37.1143a9d4.js +1 -0
  77. data/tools/staticdocs/assets/js/d66bf9c0.0ffb9759.js +1 -0
  78. data/tools/staticdocs/assets/js/d8ca4191.fe602968.js +1 -0
  79. data/tools/staticdocs/assets/js/d9b92eba.a115a366.js +1 -0
  80. data/tools/staticdocs/assets/js/db8fa1d0.1aefa4e7.js +1 -0
  81. data/tools/staticdocs/assets/js/dbe31111.9c957b0c.js +1 -0
  82. data/tools/staticdocs/assets/js/dc5f7beb.ddc630ca.js +1 -0
  83. data/tools/staticdocs/assets/js/e501b0d1.f9c2d1fc.js +1 -0
  84. data/tools/staticdocs/assets/js/f15615f1.a4d98d69.js +1 -0
  85. data/tools/staticdocs/assets/js/fd886806.656b4fa3.js +1 -0
  86. data/tools/staticdocs/assets/js/main.ba1fa268.js +38 -0
  87. data/tools/staticdocs/assets/js/runtime~main.ca894d1e.js +1 -0
  88. data/tools/staticdocs/docs/configuration/accessors.html +21 -18
  89. data/tools/staticdocs/docs/configuration/command.html +35 -35
  90. data/tools/staticdocs/docs/configuration/conversions.html +156 -0
  91. data/tools/staticdocs/docs/configuration/format.html +18 -15
  92. data/tools/staticdocs/docs/configuration/interfaces.html +34 -31
  93. data/tools/staticdocs/docs/configuration/plugins.html +39 -36
  94. data/tools/staticdocs/docs/configuration/protocols.html +28 -25
  95. data/tools/staticdocs/docs/configuration/ssl-tls.html +10 -6
  96. data/tools/staticdocs/docs/configuration/table.html +19 -22
  97. data/tools/staticdocs/docs/configuration/target.html +11 -8
  98. data/tools/staticdocs/docs/configuration/telemetry-screens.html +72 -69
  99. data/tools/staticdocs/docs/configuration/telemetry.html +40 -40
  100. data/tools/staticdocs/docs/configuration.html +4 -1
  101. data/tools/staticdocs/docs/development/curl.html +12 -9
  102. data/tools/staticdocs/docs/development/developing.html +15 -12
  103. data/tools/staticdocs/docs/development/json-api.html +8 -5
  104. data/tools/staticdocs/docs/development/log-structure.html +5 -2
  105. data/tools/staticdocs/docs/development/roadmap.html +5 -2
  106. data/tools/staticdocs/docs/development/streaming-api.html +13 -10
  107. data/tools/staticdocs/docs/development/testing.html +15 -12
  108. data/tools/staticdocs/docs/development.html +4 -1
  109. data/tools/staticdocs/docs/getting-started/cli.html +16 -13
  110. data/tools/staticdocs/docs/getting-started/generators.html +19 -16
  111. data/tools/staticdocs/docs/getting-started/gettingstarted.html +15 -12
  112. data/tools/staticdocs/docs/getting-started/installation.html +7 -4
  113. data/tools/staticdocs/docs/getting-started/key-concepts.html +6 -3
  114. data/tools/staticdocs/docs/getting-started/podman.html +19 -16
  115. data/tools/staticdocs/docs/getting-started/requirements.html +7 -4
  116. data/tools/staticdocs/docs/getting-started/upgrading.html +23 -15
  117. data/tools/staticdocs/docs/getting-started.html +4 -1
  118. data/tools/staticdocs/docs/guides/bridges.html +7 -4
  119. data/tools/staticdocs/docs/guides/cfs.html +19 -16
  120. data/tools/staticdocs/docs/guides/custom-widgets.html +54 -16
  121. data/tools/staticdocs/docs/guides/dynamic-packets.html +9 -6
  122. data/tools/staticdocs/docs/guides/exposing-microservices.html +9 -6
  123. data/tools/staticdocs/docs/guides/little-endian-bitfields.html +6 -3
  124. data/tools/staticdocs/docs/guides/local-mode.html +6 -3
  125. data/tools/staticdocs/docs/guides/logging.html +5 -2
  126. data/tools/staticdocs/docs/guides/monitoring.html +11 -8
  127. data/tools/staticdocs/docs/guides/performance.html +6 -3
  128. data/tools/staticdocs/docs/guides/raspberrypi.html +6 -3
  129. data/tools/staticdocs/docs/guides/reference-architectures.html +35 -0
  130. data/tools/staticdocs/docs/guides/script-writing.html +46 -43
  131. data/tools/staticdocs/docs/guides/scripting-api.html +627 -433
  132. data/tools/staticdocs/docs/guides.html +4 -1
  133. data/tools/staticdocs/docs/meta/contributing.html +10 -7
  134. data/tools/staticdocs/docs/meta/licenses.html +6 -3
  135. data/tools/staticdocs/docs/meta/philosophy.html +5 -2
  136. data/tools/staticdocs/docs/meta/xtce.html +7 -4
  137. data/tools/staticdocs/docs/meta.html +4 -1
  138. data/tools/staticdocs/docs/privacy.html +5 -2
  139. data/tools/staticdocs/docs/tools/admin.html +5 -2
  140. data/tools/staticdocs/docs/tools/autonomic.html +5 -2
  141. data/tools/staticdocs/docs/tools/bucket-explorer.html +5 -2
  142. data/tools/staticdocs/docs/tools/calendar.html +5 -2
  143. data/tools/staticdocs/docs/tools/cmd-sender.html +5 -2
  144. data/tools/staticdocs/docs/tools/cmd-tlm-server.html +5 -2
  145. data/tools/staticdocs/docs/tools/command_history.html +5 -2
  146. data/tools/staticdocs/docs/tools/data-extractor.html +5 -2
  147. data/tools/staticdocs/docs/tools/data-viewer.html +5 -2
  148. data/tools/staticdocs/docs/tools/handbooks.html +5 -2
  149. data/tools/staticdocs/docs/tools/limits-monitor.html +5 -2
  150. data/tools/staticdocs/docs/tools/packet-viewer.html +5 -2
  151. data/tools/staticdocs/docs/tools/script-runner.html +9 -6
  152. data/tools/staticdocs/docs/tools/table-manager.html +6 -3
  153. data/tools/staticdocs/docs/tools/tlm-grapher.html +5 -2
  154. data/tools/staticdocs/docs/tools/tlm-viewer.html +5 -2
  155. data/tools/staticdocs/docs/tools.html +4 -1
  156. data/tools/staticdocs/docs.html +6 -8
  157. data/tools/staticdocs/img/cmd-processing.png +0 -0
  158. data/tools/staticdocs/img/docker-local-security.png +0 -0
  159. data/tools/staticdocs/img/docker-security.png +0 -0
  160. data/tools/staticdocs/img/tlm-processing.png +0 -0
  161. data/tools/staticdocs/index.html +4 -1
  162. data/tools/staticdocs/lunr-index-1748640055686.json +1 -0
  163. data/tools/staticdocs/lunr-index.json +1 -1
  164. data/tools/staticdocs/markdown-page.html +5 -2
  165. data/tools/staticdocs/search-doc-1748640055686.json +1 -0
  166. data/tools/staticdocs/search-doc.json +1 -1
  167. data/tools/staticdocs/sitemap.xml +1 -1
  168. metadata +94 -83
  169. data/tools/staticdocs/assets/css/styles.1de6b959.css +0 -1
  170. data/tools/staticdocs/assets/js/019369f3.43fd7635.js +0 -1
  171. data/tools/staticdocs/assets/js/058ffc22.5cfabd67.js +0 -1
  172. data/tools/staticdocs/assets/js/0686a885.0e2ea47d.js +0 -1
  173. data/tools/staticdocs/assets/js/078dbab0.5515d5e3.js +0 -1
  174. data/tools/staticdocs/assets/js/0f5d161c.7697df48.js +0 -1
  175. data/tools/staticdocs/assets/js/0ff569c9.f81b787b.js +0 -1
  176. data/tools/staticdocs/assets/js/103cc3be.e7943c80.js +0 -1
  177. data/tools/staticdocs/assets/js/13196248.ea83002e.js +0 -1
  178. data/tools/staticdocs/assets/js/13c1b4e4.eb5250f4.js +0 -1
  179. data/tools/staticdocs/assets/js/1e02e6a3.12bdc98d.js +0 -1
  180. data/tools/staticdocs/assets/js/2047b354.d91f6c3e.js +0 -1
  181. data/tools/staticdocs/assets/js/22b3ac48.0df9587b.js +0 -1
  182. data/tools/staticdocs/assets/js/26b8abb2.7f8d4cb0.js +0 -1
  183. data/tools/staticdocs/assets/js/2bb7bf90.1772f030.js +0 -1
  184. data/tools/staticdocs/assets/js/35398c5c.fcf47881.js +0 -1
  185. data/tools/staticdocs/assets/js/3969.afdd070b.js +0 -1
  186. data/tools/staticdocs/assets/js/3dd7ef3b.c3455b97.js +0 -1
  187. data/tools/staticdocs/assets/js/40365d27.5ed2e9b5.js +0 -1
  188. data/tools/staticdocs/assets/js/411898ad.f7b3ff17.js +0 -1
  189. data/tools/staticdocs/assets/js/42170351.fbc05869.js +0 -1
  190. data/tools/staticdocs/assets/js/43652efd.60fa883f.js +0 -1
  191. data/tools/staticdocs/assets/js/5205.c6f31e57.js +0 -1
  192. data/tools/staticdocs/assets/js/5328.3e2a53eb.js +0 -1
  193. data/tools/staticdocs/assets/js/53ca7c5b.fe331a71.js +0 -1
  194. data/tools/staticdocs/assets/js/54d0d530.ef91ba12.js +0 -1
  195. data/tools/staticdocs/assets/js/5761.e7fabbc9.js +0 -4
  196. data/tools/staticdocs/assets/js/5b233ba7.9d6ba314.js +0 -1
  197. data/tools/staticdocs/assets/js/5bc719f6.6d27292c.js +0 -1
  198. data/tools/staticdocs/assets/js/5c6ce5ec.652b922b.js +0 -1
  199. data/tools/staticdocs/assets/js/5e3ed378.8b51f7c0.js +0 -1
  200. data/tools/staticdocs/assets/js/5fe211ef.63b46202.js +0 -1
  201. data/tools/staticdocs/assets/js/651.a043d7b1.js +0 -1
  202. data/tools/staticdocs/assets/js/6831b732.1318b398.js +0 -1
  203. data/tools/staticdocs/assets/js/696b4199.1e950fcb.js +0 -1
  204. data/tools/staticdocs/assets/js/6b210247.6a77064a.js +0 -1
  205. data/tools/staticdocs/assets/js/6b65133b.0376a397.js +0 -1
  206. data/tools/staticdocs/assets/js/6f92e431.6439052e.js +0 -1
  207. data/tools/staticdocs/assets/js/72c6d8a8.b6fcfc30.js +0 -1
  208. data/tools/staticdocs/assets/js/75e64983.324643a8.js +0 -1
  209. data/tools/staticdocs/assets/js/80c97f38.607160d3.js +0 -1
  210. data/tools/staticdocs/assets/js/867640d5.27d9d599.js +0 -1
  211. data/tools/staticdocs/assets/js/8f7843ee.abe30983.js +0 -1
  212. data/tools/staticdocs/assets/js/9357.9a7e89b5.js +0 -101
  213. data/tools/staticdocs/assets/js/9424f0b3.3683501c.js +0 -1
  214. data/tools/staticdocs/assets/js/964eb012.0e04c58d.js +0 -1
  215. data/tools/staticdocs/assets/js/97535711.e595488c.js +0 -1
  216. data/tools/staticdocs/assets/js/99581c43.841b4a2e.js +0 -1
  217. data/tools/staticdocs/assets/js/9d6e81d0.36405219.js +0 -1
  218. data/tools/staticdocs/assets/js/9fb6059a.821f7504.js +0 -1
  219. data/tools/staticdocs/assets/js/a677c089.cfa50691.js +0 -1
  220. data/tools/staticdocs/assets/js/a9987364.b418f772.js +0 -1
  221. data/tools/staticdocs/assets/js/a9b2dc27.805dc1ba.js +0 -1
  222. data/tools/staticdocs/assets/js/aa6b6c1b.ef9b0f38.js +0 -1
  223. data/tools/staticdocs/assets/js/b062d239.57d6e194.js +0 -1
  224. data/tools/staticdocs/assets/js/b4596165.c648533a.js +0 -1
  225. data/tools/staticdocs/assets/js/b6d70f94.a9228642.js +0 -1
  226. data/tools/staticdocs/assets/js/b9f60ba6.4c0bb1dd.js +0 -1
  227. data/tools/staticdocs/assets/js/bd0034eb.8ad39448.js +0 -1
  228. data/tools/staticdocs/assets/js/c24eae19.0575c394.js +0 -1
  229. data/tools/staticdocs/assets/js/cb8c3f08.07d1c9e9.js +0 -1
  230. data/tools/staticdocs/assets/js/cd879be4.59af1749.js +0 -1
  231. data/tools/staticdocs/assets/js/d1b923aa.da892cde.js +0 -1
  232. data/tools/staticdocs/assets/js/d1bfc316.a58b9bbd.js +0 -1
  233. data/tools/staticdocs/assets/js/d24bf9b6.9fef8263.js +0 -1
  234. data/tools/staticdocs/assets/js/d57a4b5d.c74b62b1.js +0 -1
  235. data/tools/staticdocs/assets/js/d5d77c37.e812e6e7.js +0 -1
  236. data/tools/staticdocs/assets/js/d66bf9c0.80a50660.js +0 -1
  237. data/tools/staticdocs/assets/js/d8ca4191.8df86c99.js +0 -1
  238. data/tools/staticdocs/assets/js/d9b92eba.5db8667e.js +0 -1
  239. data/tools/staticdocs/assets/js/db8fa1d0.f1eed806.js +0 -1
  240. data/tools/staticdocs/assets/js/dbe31111.75e9fc53.js +0 -1
  241. data/tools/staticdocs/assets/js/dc5f7beb.9e4e6681.js +0 -1
  242. data/tools/staticdocs/assets/js/e501b0d1.d3a1e4bc.js +0 -1
  243. data/tools/staticdocs/assets/js/f15615f1.49804e96.js +0 -1
  244. data/tools/staticdocs/assets/js/fd886806.124ffe26.js +0 -1
  245. data/tools/staticdocs/assets/js/main.b1edeb65.js +0 -36
  246. data/tools/staticdocs/assets/js/runtime~main.3629ffb4.js +0 -1
  247. data/tools/staticdocs/lunr-index-1747245438937.json +0 -1
  248. data/tools/staticdocs/search-doc-1747245438937.json +0 -1
@@ -0,0 +1,156 @@
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/conversions" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.0"><title data-rh=true>Conversions | 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/conversions><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="Conversions | OpenC3 Docs"><meta data-rh=true name=description content="Conversions to apply to command parameters and telemetry items"><meta data-rh=true property=og:description content="Conversions to apply to command parameters and telemetry items"><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/conversions><link data-rh=true rel=alternate href=https://docs.openc3.com/tools/staticdocs/docs/configuration/conversions hreflang=en><link data-rh=true rel=alternate href=https://docs.openc3.com/tools/staticdocs/docs/configuration/conversions 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/conversions","name":"Conversions","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>
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 menu__link--active" aria-current=page 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>Conversions</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>Conversions can be applied to both command parameters and telemetry items to modify the values sent to and received from targets. To apply a conversion to a command you use the <a href=/tools/staticdocs/docs/configuration/command#write_conversion>WRITE_CONVERSION</a> keyword. To apply a conversion to a telemetry item you use the <a href=/tools/staticdocs/docs/configuration/telemetry#read_conversion>READ_CONVERSION</a> keyword.</p>
6
+ <h2 class="anchor anchorWithStickyNavbar_fF9Z" id=custom-conversions>Custom Conversions<a href=#custom-conversions class=hash-link aria-label="Direct link to Custom Conversions" title="Direct link to Custom Conversions">​</a></h2>
7
+ <p>You can easily create your own custom conversions by using the <a href=/tools/staticdocs/docs/getting-started/generators#conversion-generator>Conversion Code Generator</a>. To generate a telemetry conversion you must be inside an existing COSMOS plugin. The generator takes both a target name and the conversion name. For example if your plugin is called <code>openc3-cosmos-gse</code> and you have an existing target named <code>GSE</code>:</p>
8
+ <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 conversion GSE double </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">Conversion targets/GSE/lib/double_conversion.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 conversion </span><span class="token function" style="color:rgb(130, 170, 255)">add</span><span class="token plain"> the following to a telemetry item:</span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> READ_CONVERSION double_conversion.py</span><br></span></code></pre></div></div>
9
+ <p>To create a Ruby conversion simply replace <code>--python</code> with <code>--ruby</code>. This creates a conversion called <code>double_conversion.py</code> at <code>targets/GSE/lib/double_conversion.py</code>. The code which is generated looks like the following:</p>
10
+ <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)">from</span><span class="token plain"> openc3</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">conversions</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">conversion </span><span class="token keyword" style="color:rgb(127, 219, 202)">import</span><span class="token plain"> Conversion</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"># Using tlm() requires the following:</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"># from openc3.api.tlm_api import tlm</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"></span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Custom conversion 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/telemetry#read_conversion</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)">DoubleConversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">Conversion</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 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 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"># Should be one of 'INT', 'UINT', 'FLOAT', 'STRING', 'BLOCK'</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">converted_type </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'STRING'</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"># Size of the converted type in bits</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"># Use 0 for 'STRING' or 'BLOCK' where the size can be variable</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">converted_bit_size </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)">0</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># @param value [Object] Value based on the item definition. This could be</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"># a string, integer, float, or array of values.</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"># @param packet [Packet] The packet object where the conversion is defined</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"># @param buffer [String] The raw packet buffer</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)">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"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Read values from the packet and do a conversion</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"># Used for DERIVED items that don't have a value</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"># item1 = packet.read("ITEM1") # returns CONVERTED value (default)</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"># item2 = packet.read("ITEM2", 'RAW') # returns RAW value</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"># return (item1 + item2) / 2</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">#</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"># Perform conversion logic directly on value</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"># Used when conversion is applied to a regular (not DERIVED) item</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"># NOTE: You can also use packet.read("ITEM") to get additional values</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"># return value / 2 * packet.read("OTHER_ITEM")</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"> value</span><br></span></code></pre></div></div>
11
+ <p>There are a lot of comments to help you know what to do. The primary things to modify are the <code>converted_type</code>, <code>converted_bit_size</code>, and <code>call</code> method.</p>
12
+ <h3 class="anchor anchorWithStickyNavbar_fF9Z" id=converted_type>converted_type<a href=#converted_type class=hash-link aria-label="Direct link to converted_type" title="Direct link to converted_type">​</a></h3>
13
+ <p>The <code>converted_type</code> is the resulting type of the converted value. It lets consumers of the converted value know the resulting type. In our case we're doubling the input value and since this could be applied to an unsigned integer as well as a floating point value we'll choose <code>FLOAT</code>.</p>
14
+ <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"> self</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">converted_type </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'FLOAT'</span><br></span></code></pre></div></div>
15
+ <h3 class="anchor anchorWithStickyNavbar_fF9Z" id=converted_bit_size>converted_bit_size<a href=#converted_bit_size class=hash-link aria-label="Direct link to converted_bit_size" title="Direct link to converted_bit_size">​</a></h3>
16
+ <p>The <code>converted_bit_size</code> is the resulting size of the converted value. It lets consumers of the converted value know the resulting size. Since we chose <code>FLOAT</code> as the type we'll choose <code>32</code> as the bit size. We could have also chosen <code>64</code> bits. Sometimes you know the type and size of the resulting conversion and can simply hard code them. Other times you need to pass them in as parameters and let the user decide.</p>
17
+ <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"> self</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">converted_bit_size </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)">32</span><br></span></code></pre></div></div>
18
+ <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>
19
+ <p>The call method is where the actual conversion logic is implemented. In our case we want to double the input value so we simply return the value multiplied by 2. The final result with comments removed looks like the following:</p>
20
+ <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)">from</span><span class="token plain"> openc3</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">conversions</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">conversion </span><span class="token keyword" style="color:rgb(127, 219, 202)">import</span><span class="token plain"> Conversion</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)">DoubleConversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">Conversion</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 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 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">converted_type </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'FLOAT'</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">converted_bit_size </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)">32</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"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">return</span><span class="token plain"> value </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)">2</span><br></span></code></pre></div></div>
21
+ <h3 class="anchor anchorWithStickyNavbar_fF9Z" id=apply-conversion>Apply Conversion<a href=#apply-conversion class=hash-link aria-label="Direct link to Apply Conversion" title="Direct link to Apply Conversion">​</a></h3>
22
+ <p>Now that we have implemented the conversion logic we need to apply it to a telemetry item by adding the line <code>READ_CONVERSION double_conversion.rb</code> in the <a href=/tools/staticdocs/docs/configuration/telemetry>telemetry</a> definition file. This could look something like this:</p>
23
+ <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"># Header items</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> APPEND_ITEM VALUE </span><span class="token number" style="color:rgb(247, 140, 108)">16</span><span class="token plain"> UINT </span><span class="token string" style="color:rgb(173, 219, 103)">"Value I want to double"</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> READ_CONVERSION double_conversion.rb</span><br></span></code></pre></div></div>
24
+ <h1>Built-in Conversions</h1>
25
+ <h2 class="anchor anchorWithStickyNavbar_fF9Z" id=bit_reverse_conversion>BIT_REVERSE_CONVERSION<a href=#bit_reverse_conversion class=hash-link aria-label="Direct link to BIT_REVERSE_CONVERSION" title="Direct link to BIT_REVERSE_CONVERSION">​</a></h2>
26
+ <p><strong>Reverses the bits of the current telemetry item. Can be used as both a read and write conversion.</strong></p>
27
+ <p>Ruby Example:</p>
28
+ <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)">READ_CONVERSION</span><span class="token plain"> bit_reverse_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">rb</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)">WRITE_CONVERSION</span><span class="token plain"> bit_reverse_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">rb</span><br></span></code></pre></div></div>
29
+ <p>Python Example:</p>
30
+ <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">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">bit_reverse_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">py</span><br></span><span class=token-line style=color:#d6deeb><span class="token plain">WRITE_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">bit_reverse_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">py</span><br></span></code></pre></div></div>
31
+ <h2 class="anchor anchorWithStickyNavbar_fF9Z" id=ip_read_conversion>IP_READ_CONVERSION<a href=#ip_read_conversion class=hash-link aria-label="Direct link to IP_READ_CONVERSION" title="Direct link to IP_READ_CONVERSION">​</a></h2>
32
+ <p><strong>Reads a packed 32 bit integer into an IP address string</strong></p>
33
+ <p>This command reads a packed 32 bit integer into an IP address string.
34
+ For example, 0xFFFF8000 would be converted to '255.255.128.0'.</p>
35
+ <p>Ruby Example:</p>
36
+ <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)">READ_CONVERSION</span><span class="token plain"> ip_read_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">rb</span><br></span></code></pre></div></div>
37
+ <p>Python Example:</p>
38
+ <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">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">ip_read_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">py</span><br></span></code></pre></div></div>
39
+ <h2 class="anchor anchorWithStickyNavbar_fF9Z" id=ip_write_conversion>IP_WRITE_CONVERSION<a href=#ip_write_conversion class=hash-link aria-label="Direct link to IP_WRITE_CONVERSION" title="Direct link to IP_WRITE_CONVERSION">​</a></h2>
40
+ <p><strong>Write an ip address string into a packed 32 bit integer</strong></p>
41
+ <p>This command writes an IP address string into a packed 32 bit integer. The IP address
42
+ string should be in the format 'x.x.x.x' where x is a number between 0 and 255.
43
+ For example, '255.255.128.0' would be converted to 0xFFFF8000.</p>
44
+ <p>Ruby Example:</p>
45
+ <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)">WRITE_CONVERSION</span><span class="token plain"> ip_write_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">rb</span><br></span></code></pre></div></div>
46
+ <p>Python Example:</p>
47
+ <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">WRITE_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">ip_write_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">py</span><br></span></code></pre></div></div>
48
+ <h2 class="anchor anchorWithStickyNavbar_fF9Z" id=object_read_conversion>OBJECT_READ_CONVERSION<a href=#object_read_conversion class=hash-link aria-label="Direct link to OBJECT_READ_CONVERSION" title="Direct link to OBJECT_READ_CONVERSION">​</a></h2>
49
+ <p><strong>Reads values from the given packet object</strong></p>
50
+ <p>This command reads all the values from the given packet object. The values are
51
+ returned as a Ruby hash or Python dict. The packet object must be defined in the target's configuration.</p>
52
+ <table><thead><tr><th>Parameter<th>Description<th>Required<tbody><tr><td>Command or Telemetry<td>Whether the packet is a command or telemetry<br><br>Valid Values: <span class=values>CMD, TLM</span><td>True<tr><td>Target Name<td>Name of the target<td>True<tr><td>Packet Name<td>Name of the packet<td>True</table>
53
+ <p>Ruby Example:</p>
54
+ <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)">READ_CONVERSION</span><span class="token plain"> object_read_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)">CMD</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">INST</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">COLLECT</span><br></span></code></pre></div></div>
55
+ <p>Python Example:</p>
56
+ <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">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">object_read_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">py CMD INST COLLECT</span><br></span></code></pre></div></div>
57
+ <h2 class="anchor anchorWithStickyNavbar_fF9Z" id=object_write_conversion>OBJECT_WRITE_CONVERSION<a href=#object_write_conversion class=hash-link aria-label="Direct link to OBJECT_WRITE_CONVERSION" title="Direct link to OBJECT_WRITE_CONVERSION">​</a></h2>
58
+ <p><strong>Writes values into the given packet object</strong></p>
59
+ <p>This command writes values into the given packet object. The values are specified
60
+ in a hash format where the keys are the field names in the packet and the values
61
+ are the values to write. The packet object must be defined in the target's configuration.</p>
62
+ <table><thead><tr><th>Parameter<th>Description<th>Required<tbody><tr><td>Command or Telemetry<td>Whether the packet is a command or telemetry<br><br>Valid Values: <span class=values>CMD, TLM</span><td>True<tr><td>Target Name<td>Name of the target<td>True<tr><td>Packet Name<td>Name of the packet<td>True</table>
63
+ <p>Ruby Example:</p>
64
+ <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)">WRITE_CONVERSION</span><span class="token plain"> object_write_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)">CMD</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">INST</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">COLLECT</span><br></span></code></pre></div></div>
65
+ <p>Python Example:</p>
66
+ <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">WRITE_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">object_write_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">py CMD INST COLLECT</span><br></span></code></pre></div></div>
67
+ <h2 class="anchor anchorWithStickyNavbar_fF9Z" id=packet_time_formatted_conversion>PACKET_TIME_FORMATTED_CONVERSION<a href=#packet_time_formatted_conversion class=hash-link aria-label="Direct link to PACKET_TIME_FORMATTED_CONVERSION" title="Direct link to PACKET_TIME_FORMATTED_CONVERSION">​</a></h2>
68
+ <p><strong>Converts the packet time to a formatted string like "YYYY/MM/DD HH:MM<!-- -->:SS<!-- -->.US"</strong></p>
69
+ <p>This in an internal conversion which is automatically applied to the
70
+ 'PACKET_TIMEFORMATTED' derived telemetry item. It is typically not explicitly used.
71
+ For more information see the <a href=/tools/staticdocs/docs/configuration/telemetry#received-time-and-packet-time>Received Time and Packet Time</a> documentation.</p>
72
+ <p>Ruby Example:</p>
73
+ <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)">READ_CONVERSION</span><span class="token plain"> packet_time_formatted_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">rb</span><br></span></code></pre></div></div>
74
+ <p>Python Example:</p>
75
+ <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">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">packet_time_formatted_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">py</span><br></span></code></pre></div></div>
76
+ <h2 class="anchor anchorWithStickyNavbar_fF9Z" id=packet_time_seconds_conversion>PACKET_TIME_SECONDS_CONVERSION<a href=#packet_time_seconds_conversion class=hash-link aria-label="Direct link to PACKET_TIME_SECONDS_CONVERSION" title="Direct link to PACKET_TIME_SECONDS_CONVERSION">​</a></h2>
77
+ <p><strong>Converts the packet time to a floating point number of seconds since the epoch</strong></p>
78
+ <p>This in an internal conversion which is automatically applied to the
79
+ 'PACKET_TIMESECONDS' derived telemetry item. It is typically not explicitly used.
80
+ For more information see the <a href=/tools/staticdocs/docs/configuration/telemetry#received-time-and-packet-time>Received Time and Packet Time</a> documentation.</p>
81
+ <p>Ruby Example:</p>
82
+ <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)">READ_CONVERSION</span><span class="token plain"> packet_time_seconds_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">rb</span><br></span></code></pre></div></div>
83
+ <p>Python Example:</p>
84
+ <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">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">packet_time_seconds_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">py</span><br></span></code></pre></div></div>
85
+ <h2 class="anchor anchorWithStickyNavbar_fF9Z" id=polynomial_conversion>POLYNOMIAL_CONVERSION<a href=#polynomial_conversion class=hash-link aria-label="Direct link to POLYNOMIAL_CONVERSION" title="Direct link to POLYNOMIAL_CONVERSION">​</a></h2>
86
+ <p><strong>Adds a polynomial conversion factor to the current item. Can be used as both a read and write conversion.</strong></p>
87
+ <p>For commands, the conversion factor is applied to raw value set by the user (via tool or script) before it is written into the binary command packet and sent. For telemetry, the conversion factor is applied to the raw value in the telemetry packet before it is displayed to the user. The user still has the ability to see the raw unconverted value in a details dialog.</p>
88
+ <table><thead><tr><th>Parameter<th>Description<th>Required<tbody><tr><td>C0<td>Coefficient<td>True<tr><td>Cx<td>Additional coefficient values for the conversion. Any order polynomial conversion may be used so the value of 'x' will vary with the order of the polynomial. Note that larger order polynomials take longer to process than shorter order polynomials, but are sometimes more accurate.<td>False</table>
89
+ <p>Ruby Example:</p>
90
+ <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)">READ_CONVERSION</span><span class="token plain"> polynomial_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">rb </span><span class="token number" style="color:rgb(247, 140, 108)">10</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.25</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"># Since this is a common conversion it has an alias:</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)">POLY_READ_CONVERSION</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">10</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.25</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"></span><span class="token constant" style="color:rgb(130, 170, 255)">WRITE_CONVERSION</span><span class="token plain"> polynomial_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">rb </span><span class="token number" style="color:rgb(247, 140, 108)">10</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.25</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"># Since this is a common conversion it has an alias:</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)">POLY_WRITE_CONVERSION</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">10</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.25</span><br></span></code></pre></div></div>
91
+ <p>Python Example:</p>
92
+ <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">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">polynomial_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">py </span><span class="token number" style="color:rgb(247, 140, 108)">10</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.25</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"># Since this is a common conversion it has an alias:</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain">POLY_READ_CONVERSION </span><span class="token number" style="color:rgb(247, 140, 108)">10</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.25</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">WRITE_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">polynomial_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">py </span><span class="token number" style="color:rgb(247, 140, 108)">10</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.25</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"># Since this is a common conversion it has an alias:</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain">POLY_WRITE_CONVERSION </span><span class="token number" style="color:rgb(247, 140, 108)">10</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.25</span><br></span></code></pre></div></div>
93
+ <h2 class="anchor anchorWithStickyNavbar_fF9Z" id=processor_conversion>PROCESSOR_CONVERSION<a href=#processor_conversion class=hash-link aria-label="Direct link to PROCESSOR_CONVERSION" title="Direct link to PROCESSOR_CONVERSION">​</a></h2>
94
+ <p><strong>Read a value from a processor</strong></p>
95
+ <p>This command reads a value from a processor. The value is read from the
96
+ processor's available values. The processor must be defined in the target's configuration.</p>
97
+ <table><thead><tr><th>Parameter<th>Description<th>Required<tbody><tr><td>Processor Name<td>Name of the processor<td>True<tr><td>Processor Value<td>Published processor value<td>True</table>
98
+ <p>Ruby Example:</p>
99
+ <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>
100
+ <p>Python Example:</p>
101
+ <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 watermark_processor</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">rb 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>
102
+ <h2 class="anchor anchorWithStickyNavbar_fF9Z" id=received_count_conversion>RECEIVED_COUNT_CONVERSION<a href=#received_count_conversion class=hash-link aria-label="Direct link to RECEIVED_COUNT_CONVERSION" title="Direct link to RECEIVED_COUNT_CONVERSION">​</a></h2>
103
+ <p><strong>Converts the packet received count to a UINT 32 value</strong></p>
104
+ <p>This in an internal conversion which is automatically applied to the
105
+ 'RECEIVED_COUNT' derived telemetry item. It is typically not explicitly used.</p>
106
+ <p>Ruby Example:</p>
107
+ <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)">READ_CONVERSION</span><span class="token plain"> received_count_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">rb</span><br></span></code></pre></div></div>
108
+ <p>Python Example:</p>
109
+ <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">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">received_count_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">py</span><br></span></code></pre></div></div>
110
+ <h2 class="anchor anchorWithStickyNavbar_fF9Z" id=received_time_formatted_conversion>RECEIVED_TIME_FORMATTED_CONVERSION<a href=#received_time_formatted_conversion class=hash-link aria-label="Direct link to RECEIVED_TIME_FORMATTED_CONVERSION" title="Direct link to RECEIVED_TIME_FORMATTED_CONVERSION">​</a></h2>
111
+ <p><strong>Converts the packet received time to a formatted string like "YYYY/MM/DD HH:MM<!-- -->:SS<!-- -->.US"</strong></p>
112
+ <p>This in an internal conversion which is automatically applied to the
113
+ 'RECEIVED_TIMEFORMATTED' derived telemetry item. It is typically not explicitly used.
114
+ For more information see the <a href=/tools/staticdocs/docs/configuration/telemetry#received-time-and-packet-time>Received Time and Packet Time</a> documentation.</p>
115
+ <p>Ruby Example:</p>
116
+ <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)">READ_CONVERSION</span><span class="token plain"> received_time_formatted_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">rb</span><br></span></code></pre></div></div>
117
+ <p>Python Example:</p>
118
+ <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">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">received_time_formatted_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">py</span><br></span></code></pre></div></div>
119
+ <h2 class="anchor anchorWithStickyNavbar_fF9Z" id=received_time_seconds_conversion>RECEIVED_TIME_SECONDS_CONVERSION<a href=#received_time_seconds_conversion class=hash-link aria-label="Direct link to RECEIVED_TIME_SECONDS_CONVERSION" title="Direct link to RECEIVED_TIME_SECONDS_CONVERSION">​</a></h2>
120
+ <p><strong>Converts the packet received to a floating point number of seconds since the epoch</strong></p>
121
+ <p>This in an internal conversion which is automatically applied to the
122
+ 'RECEIVED_TIMESECONDS' derived telemetry item. It is typically not explicitly used.
123
+ For more information see the <a href=/tools/staticdocs/docs/configuration/telemetry#received-time-and-packet-time>Received Time and Packet Time</a> documentation.</p>
124
+ <p>Ruby Example:</p>
125
+ <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)">READ_CONVERSION</span><span class="token plain"> received_time_formatted_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">rb</span><br></span></code></pre></div></div>
126
+ <p>Python Example:</p>
127
+ <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">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">received_time_formatted_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">py</span><br></span></code></pre></div></div>
128
+ <h2 class="anchor anchorWithStickyNavbar_fF9Z" id=segmented_polynomial_conversion>SEGMENTED_POLYNOMIAL_CONVERSION<a href=#segmented_polynomial_conversion class=hash-link aria-label="Direct link to SEGMENTED_POLYNOMIAL_CONVERSION" title="Direct link to SEGMENTED_POLYNOMIAL_CONVERSION">​</a></h2>
129
+ <p><strong>Adds a segmented polynomial conversion factor to the current item. Can be used as both a read and write conversion.</strong></p>
130
+ <p>For commands, this conversion factor is applied to the raw value set by the user (via tool or script) before it is written into the binary command packet and sent. For telemetry, the conversion factor is applied to the raw value in the telemetry packet before it is displayed to the user. The user still has the ability to see the raw unconverted value in a details dialog.</p>
131
+ <table><thead><tr><th>Parameter<th>Description<th>Required<tbody><tr><td>Lower Bound<td>Defines the lower bound of the range of values that this segmented polynomial applies to. Is ignored for the segment with the smallest lower bound.<td>True<tr><td>C0<td>Coefficient<td>True<tr><td>Cx<td>Additional coefficient values for the conversion. Any order polynomial conversion may be used so the value of 'x' will vary with the order of the polynomial. Note that larger order polynomials take longer to process than shorter order polynomials, but are sometimes more accurate.<td>False</table>
132
+ <p>Ruby Example:</p>
133
+ <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)">READ_CONVERSION</span><span class="token plain"> segmented_polynomial_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">rb </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)">10</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.25</span><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Apply the conversion to all values &lt; 50</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"># Since this is a common conversion it has an alias:</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)">SEG_POLY_READ_CONVERSION</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">10</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.25</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)">10</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.25</span><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Apply the conversion to all values &lt; 50</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)">SEG_POLY_READ_CONVERSION</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">50</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">11</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.275</span><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Apply the conversion to all values >= 50 and &lt; 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)">SEG_POLY_READ_CONVERSION</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">100</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">12</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.3</span><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Apply the conversion to all values >= 100</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"></span><span class="token constant" style="color:rgb(130, 170, 255)">WRITE_CONVERSION</span><span class="token plain"> segmented_polynomial_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">rb </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)">10</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.25</span><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Apply the conversion to all values &lt; 50</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"># Since this is a common conversion it has an alias:</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)">SEG_POLY_WRITE_CONVERSION</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">10</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.25</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)">10</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.25</span><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Apply the conversion to all values &lt; 50</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)">SEG_POLY_WRITE_CONVERSION</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">50</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">11</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.275</span><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Apply the conversion to all values >= 50 and &lt; 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)">SEG_POLY_WRITE_CONVERSION</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">100</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">12</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.3</span><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Apply the conversion to all values >= 100</span><br></span></code></pre></div></div>
134
+ <p>Python Example:</p>
135
+ <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">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">segmented_polynomial_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">py </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)">10</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.25</span><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Apply the conversion to all values &lt; 50</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"># Since this is a common conversion it has an alias:</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain">SEG_POLY_READ_CONVERSION </span><span class="token number" style="color:rgb(247, 140, 108)">10</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.25</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)">10</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.25</span><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Apply the conversion to all values &lt; 50</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain">SEG_POLY_READ_CONVERSION </span><span class="token number" style="color:rgb(247, 140, 108)">50</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">11</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.275</span><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Apply the conversion to all values >= 50 and &lt; 100</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain">SEG_POLY_READ_CONVERSION </span><span class="token number" style="color:rgb(247, 140, 108)">100</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">12</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.3</span><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Apply the conversion to all values >= 100</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">WRITE_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">segmented_polynomial_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">py </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)">10</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.25</span><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Apply the conversion to all values &lt; 50</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"># Since this is a common conversion it has an alias:</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain">SEG_POLY_WRITE_CONVERSION </span><span class="token number" style="color:rgb(247, 140, 108)">10</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.25</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)">10</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.25</span><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Apply the conversion to all values &lt; 50</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain">SEG_POLY_WRITE_CONVERSION </span><span class="token number" style="color:rgb(247, 140, 108)">50</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">11</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.275</span><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Apply the conversion to all values >= 50 and &lt; 100</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain">SEG_POLY_WRITE_CONVERSION </span><span class="token number" style="color:rgb(247, 140, 108)">100</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">12</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.5</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">0.3</span><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Apply the conversion to all values >= 100</span><br></span></code></pre></div></div>
136
+ <h2 class="anchor anchorWithStickyNavbar_fF9Z" id=unix_time_conversion>UNIX_TIME_CONVERSION<a href=#unix_time_conversion class=hash-link aria-label="Direct link to UNIX_TIME_CONVERSION" title="Direct link to UNIX_TIME_CONVERSION">​</a></h2>
137
+ <p><strong>Converts values to a native Ruby or Python time object</strong></p>
138
+ <table><thead><tr><th>Parameter<th>Description<th>Required<tbody><tr><td>Seconds Item Name<td>The name of the item which contains the seconds since the epoch.<td>True<tr><td>Microseconds Item Name<td>The name of the item which contains the microseconds since the epoch.<td>False<tr><td>Seconds Type<td>How to read the seconds item. Defaults to 'RAW'.<br><br>Valid Values: <span class=values>RAW, CONVERTED</span><td>False<tr><td>Microseconds Type<td>How to read the microseconds item. Defaults to 'RAW'.<br><br>Valid Values: <span class=values>RAW, CONVERTED</span><td>False</table>
139
+ <p>Ruby Example:</p>
140
+ <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)">READ_CONVERSION</span><span class="token plain"> unix_time_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)">TIMESEC</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">TIMEUS</span><br></span></code></pre></div></div>
141
+ <p>Python Example:</p>
142
+ <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">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">unix_time_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">py TIMESEC TIMEUS</span><br></span></code></pre></div></div>
143
+ <h2 class="anchor anchorWithStickyNavbar_fF9Z" id=unix_time_formatted_conversion>UNIX_TIME_FORMATTED_CONVERSION<a href=#unix_time_formatted_conversion class=hash-link aria-label="Direct link to UNIX_TIME_FORMATTED_CONVERSION" title="Direct link to UNIX_TIME_FORMATTED_CONVERSION">​</a></h2>
144
+ <p><strong>Converts values to a formatted time string like "YYYY/MM/DD HH:MM<!-- -->:SS<!-- -->.US"</strong></p>
145
+ <table><thead><tr><th>Parameter<th>Description<th>Required<tbody><tr><td>Seconds Item Name<td>The name of the item which contains the seconds since the epoch.<td>True<tr><td>Microseconds Item Name<td>The name of the item which contains the microseconds since the epoch.<td>False<tr><td>Seconds Type<td>How to read the seconds item. Defaults to 'RAW'.<br><br>Valid Values: <span class=values>RAW, CONVERTED</span><td>False<tr><td>Microseconds Type<td>How to read the microseconds item. Defaults to 'RAW'.<br><br>Valid Values: <span class=values>RAW, CONVERTED</span><td>False</table>
146
+ <p>Ruby Example:</p>
147
+ <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)">READ_CONVERSION</span><span class="token plain"> unix_time_formatted_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)">TIMESEC</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">TIMEUS</span><br></span></code></pre></div></div>
148
+ <p>Python Example:</p>
149
+ <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">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">unix_time_formatted_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">py TIMESEC TIMEUS</span><br></span></code></pre></div></div>
150
+ <h2 class="anchor anchorWithStickyNavbar_fF9Z" id=unix_time_seconds_conversion>UNIX_TIME_SECONDS_CONVERSION<a href=#unix_time_seconds_conversion class=hash-link aria-label="Direct link to UNIX_TIME_SECONDS_CONVERSION" title="Direct link to UNIX_TIME_SECONDS_CONVERSION">​</a></h2>
151
+ <p><strong>Converts values to a floating point number of seconds since the epoch</strong></p>
152
+ <table><thead><tr><th>Parameter<th>Description<th>Required<tbody><tr><td>Seconds Item Name<td>The name of the item which contains the seconds since the epoch.<td>True<tr><td>Microseconds Item Name<td>The name of the item which contains the microseconds since the epoch.<td>False<tr><td>Seconds Type<td>How to read the seconds item. Defaults to 'RAW'.<br><br>Valid Values: <span class=values>RAW, CONVERTED</span><td>False<tr><td>Microseconds Type<td>How to read the microseconds item. Defaults to 'RAW'.<br><br>Valid Values: <span class=values>RAW, CONVERTED</span><td>False</table>
153
+ <p>Ruby Example:</p>
154
+ <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)">READ_CONVERSION</span><span class="token plain"> unix_time_seconds_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)">TIMESEC</span><span class="token plain"> </span><span class="token constant" style="color:rgb(130, 170, 255)">TIMEUS</span><br></span></code></pre></div></div>
155
+ <p>Python Example:</p>
156
+ <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">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">unix_time_seconds_conversion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">py TIMESEC TIMEUS</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/conversions.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/accessors><div class=pagination-nav__sublabel>Previous</div><div class=pagination-nav__label>Accessors</div></a><a class="pagination-nav__link pagination-nav__link--next" href=/tools/staticdocs/docs/configuration/table><div class=pagination-nav__sublabel>Next</div><div class=pagination-nav__label>Tables</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-conversions class="table-of-contents__link toc-highlight">Custom Conversions</a><ul><li><a href=#converted_type class="table-of-contents__link toc-highlight">converted_type</a><li><a href=#converted_bit_size class="table-of-contents__link toc-highlight">converted_bit_size</a><li><a href=#call class="table-of-contents__link toc-highlight">call</a><li><a href=#apply-conversion class="table-of-contents__link toc-highlight">Apply Conversion</a></ul><li><a href=#bit_reverse_conversion class="table-of-contents__link toc-highlight">BIT_REVERSE_CONVERSION</a><li><a href=#ip_read_conversion class="table-of-contents__link toc-highlight">IP_READ_CONVERSION</a><li><a href=#ip_write_conversion class="table-of-contents__link toc-highlight">IP_WRITE_CONVERSION</a><li><a href=#object_read_conversion class="table-of-contents__link toc-highlight">OBJECT_READ_CONVERSION</a><li><a href=#object_write_conversion class="table-of-contents__link toc-highlight">OBJECT_WRITE_CONVERSION</a><li><a href=#packet_time_formatted_conversion class="table-of-contents__link toc-highlight">PACKET_TIME_FORMATTED_CONVERSION</a><li><a href=#packet_time_seconds_conversion class="table-of-contents__link toc-highlight">PACKET_TIME_SECONDS_CONVERSION</a><li><a href=#polynomial_conversion class="table-of-contents__link toc-highlight">POLYNOMIAL_CONVERSION</a><li><a href=#processor_conversion class="table-of-contents__link toc-highlight">PROCESSOR_CONVERSION</a><li><a href=#received_count_conversion class="table-of-contents__link toc-highlight">RECEIVED_COUNT_CONVERSION</a><li><a href=#received_time_formatted_conversion class="table-of-contents__link toc-highlight">RECEIVED_TIME_FORMATTED_CONVERSION</a><li><a href=#received_time_seconds_conversion class="table-of-contents__link toc-highlight">RECEIVED_TIME_SECONDS_CONVERSION</a><li><a href=#segmented_polynomial_conversion class="table-of-contents__link toc-highlight">SEGMENTED_POLYNOMIAL_CONVERSION</a><li><a href=#unix_time_conversion class="table-of-contents__link toc-highlight">UNIX_TIME_CONVERSION</a><li><a href=#unix_time_formatted_conversion class="table-of-contents__link toc-highlight">UNIX_TIME_FORMATTED_CONVERSION</a><li><a href=#unix_time_seconds_conversion class="table-of-contents__link toc-highlight">UNIX_TIME_SECONDS_CONVERSION</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>