openc3-cosmos-tool-docs 5.16.1 → 5.17.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (175) hide show
  1. checksums.yaml +4 -4
  2. data/tools/staticdocs/404.html +5 -5
  3. data/tools/staticdocs/assets/css/styles.8a0f1b26.css +1 -0
  4. data/tools/staticdocs/assets/js/{019369f3.3a124fd7.js → 019369f3.34291acc.js} +1 -1
  5. data/tools/staticdocs/assets/js/{058ffc22.c85ad785.js → 058ffc22.8d9049f4.js} +1 -1
  6. data/tools/staticdocs/assets/js/{0686a885.4d6b8154.js → 0686a885.dde7b18b.js} +1 -1
  7. data/tools/staticdocs/assets/js/{078dbab0.45ea4593.js → 078dbab0.b275e04c.js} +1 -1
  8. data/tools/staticdocs/assets/js/{0f5d161c.dda04dbb.js → 0f5d161c.ca02c5b2.js} +1 -1
  9. data/tools/staticdocs/assets/js/{0ff569c9.317b47d0.js → 0ff569c9.ad025a56.js} +1 -1
  10. data/tools/staticdocs/assets/js/103cc3be.6b6cd0fa.js +1 -0
  11. data/tools/staticdocs/assets/js/{13196248.d8f8ef9f.js → 13196248.9e7794e3.js} +1 -1
  12. data/tools/staticdocs/assets/js/13c1b4e4.cec67b9c.js +1 -0
  13. data/tools/staticdocs/assets/js/1e02e6a3.e6ef8665.js +1 -0
  14. data/tools/staticdocs/assets/js/{2047b354.75fe47dd.js → 2047b354.bdd2586a.js} +1 -1
  15. data/tools/staticdocs/assets/js/{22b3ac48.299bf4d6.js → 22b3ac48.0f4fbe9d.js} +1 -1
  16. data/tools/staticdocs/assets/js/{2bb7bf90.c642620c.js → 2bb7bf90.043455de.js} +1 -1
  17. data/tools/staticdocs/assets/js/{3dd7ef3b.f84c6956.js → 3dd7ef3b.c7c1d93f.js} +1 -1
  18. data/tools/staticdocs/assets/js/{40365d27.c318f801.js → 40365d27.7eb3f7b1.js} +1 -1
  19. data/tools/staticdocs/assets/js/{411898ad.f103f64b.js → 411898ad.d5f62a27.js} +1 -1
  20. data/tools/staticdocs/assets/js/{42170351.15f2f1e3.js → 42170351.69a8ed02.js} +1 -1
  21. data/tools/staticdocs/assets/js/{43652efd.4e7d6a97.js → 43652efd.be2c1d02.js} +1 -1
  22. data/tools/staticdocs/assets/js/4650.292aca67.js +1 -0
  23. data/tools/staticdocs/assets/js/{54d0d530.769f5473.js → 54d0d530.28ba5be7.js} +1 -1
  24. data/tools/staticdocs/assets/js/5b233ba7.9c621552.js +1 -0
  25. data/tools/staticdocs/assets/js/{5bc719f6.84f6ce9e.js → 5bc719f6.7fa17221.js} +1 -1
  26. data/tools/staticdocs/assets/js/{5c6ce5ec.8667906a.js → 5c6ce5ec.5e6ca46b.js} +1 -1
  27. data/tools/staticdocs/assets/js/5e3ed378.77db7b87.js +1 -0
  28. data/tools/staticdocs/assets/js/{5fe211ef.1d991947.js → 5fe211ef.71dc8326.js} +1 -1
  29. data/tools/staticdocs/assets/js/62df909c.906d9999.js +1 -0
  30. data/tools/staticdocs/assets/js/630e5448.6fea087c.js +1 -0
  31. data/tools/staticdocs/assets/js/{6831b732.bbf2813b.js → 6831b732.5714d508.js} +1 -1
  32. data/tools/staticdocs/assets/js/696b4199.0335bd94.js +1 -0
  33. data/tools/staticdocs/assets/js/{6b210247.074332a1.js → 6b210247.2cbd59e6.js} +1 -1
  34. data/tools/staticdocs/assets/js/{6b65133b.109a6bef.js → 6b65133b.87dc7da6.js} +1 -1
  35. data/tools/staticdocs/assets/js/6f92e431.300a9857.js +1 -0
  36. data/tools/staticdocs/assets/js/{72c6d8a8.5fca8d68.js → 72c6d8a8.cfccace6.js} +1 -1
  37. data/tools/staticdocs/assets/js/{2923e883.ed90d0a7.js → 75897369.7b31b03e.js} +1 -1
  38. data/tools/staticdocs/assets/js/75e64983.932fbc0e.js +1 -0
  39. data/tools/staticdocs/assets/js/7f5b2696.60735273.js +1 -0
  40. data/tools/staticdocs/assets/js/{867640d5.a8f59357.js → 867640d5.ffd4cf4c.js} +1 -1
  41. data/tools/staticdocs/assets/js/89e76475.97389cc5.js +1 -0
  42. data/tools/staticdocs/assets/js/{8f7843ee.0f25fdc3.js → 8f7843ee.d1ffd5ee.js} +1 -1
  43. data/tools/staticdocs/assets/js/9424f0b3.29299bde.js +1 -0
  44. data/tools/staticdocs/assets/js/{97535711.ddc0f5af.js → 97535711.fc45ced1.js} +1 -1
  45. data/tools/staticdocs/assets/js/{99581c43.0767018a.js → 99581c43.8e571df8.js} +1 -1
  46. data/tools/staticdocs/assets/js/{9fb6059a.30085d79.js → 9fb6059a.42881e94.js} +1 -1
  47. data/tools/staticdocs/assets/js/a507c363.04b98d2c.js +1 -0
  48. data/tools/staticdocs/assets/js/{a677c089.48b6c791.js → a677c089.b2928bac.js} +1 -1
  49. data/tools/staticdocs/assets/js/{a9987364.cfb3492e.js → a9987364.8f065f19.js} +1 -1
  50. data/tools/staticdocs/assets/js/{aa6b6c1b.a13cb467.js → aa6b6c1b.d78e5212.js} +1 -1
  51. data/tools/staticdocs/assets/js/{b4596165.b4c6c1b8.js → b4596165.6806d46b.js} +1 -1
  52. data/tools/staticdocs/assets/js/b6d70f94.f5514e8b.js +1 -0
  53. data/tools/staticdocs/assets/js/{b9f60ba6.655a4097.js → b9f60ba6.c3b3046d.js} +1 -1
  54. data/tools/staticdocs/assets/js/{bd0034eb.ff7f6265.js → bd0034eb.b4e3d6c1.js} +1 -1
  55. data/tools/staticdocs/assets/js/{c24eae19.98857ebf.js → c24eae19.6b084c7c.js} +1 -1
  56. data/tools/staticdocs/assets/js/c2598f55.c5a1bac3.js +1 -0
  57. data/tools/staticdocs/assets/js/{d797a795.5725bf2b.js → c5388ca4.f526bb0c.js} +1 -1
  58. data/tools/staticdocs/assets/js/{cb8c3f08.f669adda.js → cb8c3f08.a0ef4b5f.js} +1 -1
  59. data/tools/staticdocs/assets/js/{cd879be4.6ee752c7.js → cd879be4.6f19050a.js} +1 -1
  60. data/tools/staticdocs/assets/js/ce89ef36.aa518a52.js +1 -0
  61. data/tools/staticdocs/assets/js/d1b923aa.3f3e186d.js +1 -0
  62. data/tools/staticdocs/assets/js/d1bfc316.2d823a88.js +1 -0
  63. data/tools/staticdocs/assets/js/{d24bf9b6.31d82456.js → d24bf9b6.53eca5e8.js} +1 -1
  64. data/tools/staticdocs/assets/js/{d57a4b5d.905988ec.js → d57a4b5d.aaa48891.js} +1 -1
  65. data/tools/staticdocs/assets/js/d5d77c37.be6fe7b6.js +1 -0
  66. data/tools/staticdocs/assets/js/{d8ca4191.56c22a69.js → d8ca4191.c6632184.js} +1 -1
  67. data/tools/staticdocs/assets/js/{d9b92eba.16d983a0.js → d9b92eba.c6a2c7e5.js} +1 -1
  68. data/tools/staticdocs/assets/js/{db8fa1d0.c35b153c.js → db8fa1d0.f078bc02.js} +1 -1
  69. data/tools/staticdocs/assets/js/dc5f7beb.a4afe7cd.js +1 -0
  70. data/tools/staticdocs/assets/js/dfbae5fd.d1484e14.js +1 -0
  71. data/tools/staticdocs/assets/js/{e501b0d1.3aa571ae.js → e501b0d1.d108a8a9.js} +1 -1
  72. data/tools/staticdocs/assets/js/{ebec1ccb.a801549e.js → ebec1ccb.1ded1149.js} +1 -1
  73. data/tools/staticdocs/assets/js/{f15615f1.0a240e68.js → f15615f1.f9b655a6.js} +1 -1
  74. data/tools/staticdocs/assets/js/fd886806.a21dd400.js +1 -0
  75. data/tools/staticdocs/assets/js/main.67ed58e2.js +2 -0
  76. data/tools/staticdocs/assets/js/runtime~main.2bb31799.js +1 -0
  77. data/tools/staticdocs/docs/configuration/command.html +7 -7
  78. data/tools/staticdocs/docs/configuration/format.html +6 -6
  79. data/tools/staticdocs/docs/configuration/interfaces.html +6 -6
  80. data/tools/staticdocs/docs/configuration/plugins.html +6 -6
  81. data/tools/staticdocs/docs/configuration/protocols.html +6 -6
  82. data/tools/staticdocs/docs/configuration/ssl-tls.html +6 -6
  83. data/tools/staticdocs/docs/configuration/table.html +6 -6
  84. data/tools/staticdocs/docs/configuration/target.html +6 -6
  85. data/tools/staticdocs/docs/configuration/telemetry-screens.html +19 -6
  86. data/tools/staticdocs/docs/configuration/telemetry.html +6 -6
  87. data/tools/staticdocs/docs/configuration.html +5 -5
  88. data/tools/staticdocs/docs/development/curl.html +6 -6
  89. data/tools/staticdocs/docs/development/developing.html +6 -6
  90. data/tools/staticdocs/docs/development/host-install.html +6 -6
  91. data/tools/staticdocs/docs/development/json-api.html +6 -6
  92. data/tools/staticdocs/docs/development/log-structure.html +6 -6
  93. data/tools/staticdocs/docs/development/roadmap.html +6 -6
  94. data/tools/staticdocs/docs/development/streaming-api.html +6 -6
  95. data/tools/staticdocs/docs/development/testing.html +6 -6
  96. data/tools/staticdocs/docs/development.html +5 -5
  97. data/tools/staticdocs/docs/getting-started/generators.html +6 -6
  98. data/tools/staticdocs/docs/getting-started/gettingstarted.html +6 -6
  99. data/tools/staticdocs/docs/getting-started/installation.html +7 -7
  100. data/tools/staticdocs/docs/getting-started/key_concepts.html +6 -6
  101. data/tools/staticdocs/docs/getting-started/podman.html +6 -6
  102. data/tools/staticdocs/docs/getting-started/requirements.html +6 -6
  103. data/tools/staticdocs/docs/getting-started/upgrading.html +6 -6
  104. data/tools/staticdocs/docs/getting-started.html +5 -5
  105. data/tools/staticdocs/docs/guides/bridges.html +6 -6
  106. data/tools/staticdocs/docs/guides/cfs.html +6 -6
  107. data/tools/staticdocs/docs/guides/custom-widgets.html +6 -6
  108. data/tools/staticdocs/docs/guides/little-endian-bitfields.html +6 -6
  109. data/tools/staticdocs/docs/guides/local-mode.html +6 -6
  110. data/tools/staticdocs/docs/guides/logging.html +6 -6
  111. data/tools/staticdocs/docs/guides/monitoring.html +6 -6
  112. data/tools/staticdocs/docs/guides/performance.html +7 -6
  113. data/tools/staticdocs/docs/guides/raspberrypi.html +6 -6
  114. data/tools/staticdocs/docs/guides/script-writing.html +19 -16
  115. data/tools/staticdocs/docs/guides/scripting-api.html +6 -6
  116. data/tools/staticdocs/docs/guides.html +5 -5
  117. data/tools/staticdocs/docs/meta/contributing.html +6 -6
  118. data/tools/staticdocs/docs/meta/licenses.html +6 -6
  119. data/tools/staticdocs/docs/meta/philosophy.html +6 -6
  120. data/tools/staticdocs/docs/meta/xtce.html +6 -6
  121. data/tools/staticdocs/docs/meta.html +5 -5
  122. data/tools/staticdocs/docs/privacy.html +6 -6
  123. data/tools/staticdocs/docs/tools/autonomic.html +6 -6
  124. data/tools/staticdocs/docs/tools/bucket-explorer.html +6 -6
  125. data/tools/staticdocs/docs/tools/calendar.html +6 -6
  126. data/tools/staticdocs/docs/tools/cmd-sender.html +6 -6
  127. data/tools/staticdocs/docs/tools/cmd-tlm-server.html +6 -6
  128. data/tools/staticdocs/docs/tools/data-extractor.html +6 -6
  129. data/tools/staticdocs/docs/tools/data-viewer.html +6 -6
  130. data/tools/staticdocs/docs/tools/handbooks.html +6 -6
  131. data/tools/staticdocs/docs/tools/limits-monitor.html +6 -6
  132. data/tools/staticdocs/docs/tools/packet-viewer.html +6 -6
  133. data/tools/staticdocs/docs/tools/script-runner.html +9 -9
  134. data/tools/staticdocs/docs/tools/table-manager.html +6 -6
  135. data/tools/staticdocs/docs/tools/tlm-grapher.html +6 -6
  136. data/tools/staticdocs/docs/tools/tlm-viewer.html +6 -6
  137. data/tools/staticdocs/docs/tools.html +5 -5
  138. data/tools/staticdocs/docs.html +6 -6
  139. data/tools/staticdocs/index.html +5 -5
  140. data/tools/staticdocs/lunr-index-1719382003776.json +1 -0
  141. data/tools/staticdocs/lunr-index.json +1 -1
  142. data/tools/staticdocs/markdown-page.html +5 -5
  143. data/tools/staticdocs/search-doc-1719382003776.json +1 -0
  144. data/tools/staticdocs/search-doc.json +1 -1
  145. metadata +79 -79
  146. data/tools/staticdocs/assets/css/styles.a9c55efa.css +0 -1
  147. data/tools/staticdocs/assets/js/07876b9c.b8d12431.js +0 -1
  148. data/tools/staticdocs/assets/js/103cc3be.a946540f.js +0 -1
  149. data/tools/staticdocs/assets/js/13c1b4e4.50ee3d02.js +0 -1
  150. data/tools/staticdocs/assets/js/1b2b4b61.2556cd65.js +0 -1
  151. data/tools/staticdocs/assets/js/3df159b4.ff98bfab.js +0 -1
  152. data/tools/staticdocs/assets/js/55cdbca5.695875ea.js +0 -1
  153. data/tools/staticdocs/assets/js/5b233ba7.0029b2f5.js +0 -1
  154. data/tools/staticdocs/assets/js/5e3ed378.91d6735f.js +0 -1
  155. data/tools/staticdocs/assets/js/64630c4f.a229ae1d.js +0 -1
  156. data/tools/staticdocs/assets/js/696b4199.2700ad91.js +0 -1
  157. data/tools/staticdocs/assets/js/6f92e431.67f5a7a4.js +0 -1
  158. data/tools/staticdocs/assets/js/75373ac0.6a0a4fa2.js +0 -1
  159. data/tools/staticdocs/assets/js/75e64983.e31793e1.js +0 -1
  160. data/tools/staticdocs/assets/js/7918.25ec42db.js +0 -1
  161. data/tools/staticdocs/assets/js/89e76475.de702714.js +0 -1
  162. data/tools/staticdocs/assets/js/9424f0b3.b24d0393.js +0 -1
  163. data/tools/staticdocs/assets/js/99b59eea.d4dd9989.js +0 -1
  164. data/tools/staticdocs/assets/js/a507c363.198e9246.js +0 -1
  165. data/tools/staticdocs/assets/js/b6d70f94.20a403bf.js +0 -1
  166. data/tools/staticdocs/assets/js/d1b923aa.e7ee188a.js +0 -1
  167. data/tools/staticdocs/assets/js/d1bfc316.963c2477.js +0 -1
  168. data/tools/staticdocs/assets/js/d5d77c37.80e1a28b.js +0 -1
  169. data/tools/staticdocs/assets/js/dc5f7beb.88b0f00b.js +0 -1
  170. data/tools/staticdocs/assets/js/fd886806.57eeb84b.js +0 -1
  171. data/tools/staticdocs/assets/js/main.1b0c8317.js +0 -2
  172. data/tools/staticdocs/assets/js/runtime~main.49989116.js +0 -1
  173. data/tools/staticdocs/lunr-index-1715219995308.json +0 -1
  174. data/tools/staticdocs/search-doc-1715219995308.json +0 -1
  175. /data/tools/staticdocs/assets/js/{main.1b0c8317.js.LICENSE.txt → main.67ed58e2.js.LICENSE.txt} +0 -0
@@ -2,13 +2,13 @@
2
2
  <html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-guides/script-writing" data-has-hydrated="false">
3
3
  <head>
4
4
  <meta charset="UTF-8">
5
- <meta name="generator" content="Docusaurus v3.1.0">
6
- <title data-rh="true">Script Writing Guide | OpenC3 Docs</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://docs.openc3.com/tools/staticdocs/docs/guides/script-writing"><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="Script Writing Guide | OpenC3 Docs"><meta data-rh="true" name="description" content="Introduction"><meta data-rh="true" property="og:description" content="Introduction"><link data-rh="true" rel="icon" href="/tools/staticdocs/img/favicon.png"><link data-rh="true" rel="canonical" href="https://docs.openc3.com/tools/staticdocs/docs/guides/script-writing"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/guides/script-writing" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/guides/script-writing" hreflang="x-default"><link rel="stylesheet" href="/tools/staticdocs/assets/css/styles.a9c55efa.css">
7
- <script src="/tools/staticdocs/assets/js/runtime~main.49989116.js" defer="defer"></script>
8
- <script src="/tools/staticdocs/assets/js/main.1b0c8317.js" defer="defer"></script>
5
+ <meta name="generator" content="Docusaurus v3.4.0">
6
+ <title data-rh="true">Script Writing Guide | OpenC3 Docs</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://docs.openc3.com/tools/staticdocs/docs/guides/script-writing"><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="Script Writing Guide | OpenC3 Docs"><meta data-rh="true" name="description" content="Introduction"><meta data-rh="true" property="og:description" content="Introduction"><link data-rh="true" rel="icon" href="/tools/staticdocs/img/favicon.png"><link data-rh="true" rel="canonical" href="https://docs.openc3.com/tools/staticdocs/docs/guides/script-writing"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/guides/script-writing" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/guides/script-writing" hreflang="x-default"><link rel="stylesheet" href="/tools/staticdocs/assets/css/styles.8a0f1b26.css">
7
+ <script src="/tools/staticdocs/assets/js/runtime~main.2bb31799.js" defer="defer"></script>
8
+ <script src="/tools/staticdocs/assets/js/main.67ed58e2.js" defer="defer"></script>
9
9
  </head>
10
10
  <body class="navigation-with-keyboard">
11
- <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"dark")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_G6ar" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/tools/staticdocs/"><div class="navbar__logo"><img src="/tools/staticdocs/img/logo.svg" alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--light_DIHH"><img src="/tools/staticdocs/img/logo.svg" alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--dark_Bv2M"></div><b class="navbar__title text--truncate">OpenC3 Docs</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/tools/staticdocs/docs">Documentation</a><a href="https://openc3.com/enterprise/" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Enterprise</a></div><div class="navbar__items navbar__items--right"><div class="navbarSearchContainer_bmvg"><div class="navbar__search"><span aria-label="expand searchbar" role="button" class="search-icon" tabindex="0"></span><input id="search_input_react" type="search" placeholder="Loading..." aria-label="Search" class="navbar__search-input search-bar" disabled=""></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_UyTV"><div class="docsWrapper_XLvK"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_z1FD" type="button"></button><div class="docRoot_HciC"><aside class="theme-doc-sidebar-container docSidebarContainer_e5ai"><div class="sidebarViewport_N8x0"><div class="sidebar_vJCc"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_qiME"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/tools/staticdocs/docs">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/getting-started">Getting Started</a><button aria-label="Expand sidebar category &#x27;Getting Started&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/configuration">Configuration</a><button aria-label="Expand sidebar category &#x27;Configuration&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/tools">Tools</a><button aria-label="Expand sidebar category &#x27;Tools&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/tools/staticdocs/docs/guides">Guides</a><button aria-label="Collapse sidebar category &#x27;Guides&#x27;" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/bridges">Bridges</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/cfs">COSMOS and NASA cFS</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/custom-widgets">Custom Widgets</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/little-endian-bitfields">Little Endian Bitfields</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/local-mode">Local Mode</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/logging">Logging</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/monitoring">Monitoring</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/performance">Performance</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/raspberrypi">Raspberry Pi</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/tools/staticdocs/docs/guides/script-writing">Script Writing Guide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/scripting-api">Scripting API Guide</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/development">Development</a><button aria-label="Expand sidebar category &#x27;Development&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/meta">Meta</a><button aria-label="Expand sidebar category &#x27;Meta&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/tools/staticdocs/docs/privacy">OpenC3, Inc. Privacy Policy</a></li></ul></nav></div></div></aside><main class="docMainContainer_namt"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_YAwJ"><div class="docItemContainer_Rv5Z"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_zCmv" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/tools/staticdocs/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_JFrk"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/tools/staticdocs/docs/guides"><span itemprop="name">Guides</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Script Writing Guide</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_O_Qc theme-doc-toc-mobile tocMobile_tjDr"><button type="button" class="clean-btn tocCollapsibleButton_htYj">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Script Writing Guide</h1></header><h2 id="introduction">Introduction</h2>
11
+ <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"dark")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_G6ar" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/tools/staticdocs/"><div class="navbar__logo"><img src="/tools/staticdocs/img/logo.svg" alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--light_DIHH"><img src="/tools/staticdocs/img/logo.svg" alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--dark_Bv2M"></div><b class="navbar__title text--truncate">OpenC3 Docs</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/tools/staticdocs/docs">Documentation</a><a href="https://openc3.com/enterprise/" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Enterprise</a></div><div class="navbar__items navbar__items--right"><div class="navbarSearchContainer_bmvg"><div class="navbar__search"><span aria-label="expand searchbar" role="button" class="search-icon" tabindex="0"></span><input id="search_input_react" type="search" placeholder="Loading..." aria-label="Search" class="navbar__search-input search-bar" disabled=""></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_UyTV"><div class="docsWrapper_XLvK"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_z1FD" type="button"></button><div class="docRoot_HciC"><aside class="theme-doc-sidebar-container docSidebarContainer_e5ai"><div class="sidebarViewport_N8x0"><div class="sidebar_vJCc"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_qiME"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/tools/staticdocs/docs">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/tools/staticdocs/docs/getting-started">Getting Started</a><button aria-label="Expand sidebar category &#x27;Getting Started&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/tools/staticdocs/docs/configuration">Configuration</a><button aria-label="Expand sidebar category &#x27;Configuration&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/tools/staticdocs/docs/tools">Tools</a><button aria-label="Expand sidebar category &#x27;Tools&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" href="/tools/staticdocs/docs/guides">Guides</a><button aria-label="Collapse sidebar category &#x27;Guides&#x27;" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/bridges">Bridges</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/cfs">COSMOS and NASA cFS</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/custom-widgets">Custom Widgets</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/little-endian-bitfields">Little Endian Bitfields</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/local-mode">Local Mode</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/logging">Logging</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/monitoring">Monitoring</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/performance">Performance</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/raspberrypi">Raspberry Pi</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/tools/staticdocs/docs/guides/script-writing">Script Writing Guide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/scripting-api">Scripting API Guide</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/tools/staticdocs/docs/development">Development</a><button aria-label="Expand sidebar category &#x27;Development&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/tools/staticdocs/docs/meta">Meta</a><button aria-label="Expand sidebar category &#x27;Meta&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/tools/staticdocs/docs/privacy">OpenC3, Inc. Privacy Policy</a></li></ul></nav></div></div></aside><main class="docMainContainer_namt"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_YAwJ"><div class="docItemContainer_Rv5Z"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_zCmv" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/tools/staticdocs/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_JFrk"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/tools/staticdocs/docs/guides"><span itemprop="name">Guides</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Script Writing Guide</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_O_Qc theme-doc-toc-mobile tocMobile_tjDr"><button type="button" class="clean-btn tocCollapsibleButton_htYj">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Script Writing Guide</h1></header><h2 id="introduction">Introduction</h2>
12
12
  <p>This guide aims to provide the best practices for using the scripting capabilities provided by COSMOS. Scripts are used to automate a series of activities for operations or testing. The goal of this document is to ensure scripts are written that are simple, easy to understand, maintainable, and correct. Guidance on some of the key details of using the COSMOS Script Runner is also provided.</p>
13
13
  <h2 id="concepts">Concepts</h2>
14
14
  <p>COSMOS supports both Ruby and Python for writing scripts. Ruby and Python are very similar scripting languages and most of this guide applies directly to both. Where examples are used, both a Ruby and Python example are given.</p>
@@ -372,16 +372,9 @@ while temp &lt; 10.0 or temp &gt; 50.0:
372
372
  <p>When possible, always use one of the other user input methods that has a constrained list of choices for your users (message_box, vertical_message_box, combo_box).</p>
373
373
  <p>Note that all these user input methods provide the user the option to “Cancel”. When cancel is clicked, the script is paused but remains at the user input line. When hitting “Go” to the continue, the user will be re-prompted to enter the value.</p>
374
374
  <h3 id="conditionally-require-manual-user-input-steps">Conditionally Require Manual User Input Steps</h3>
375
- <p>When possible, a useful design pattern is to write your scripts such that they can run without prompting for any user input. This allows the scripts to be more easily tested and provides a documented default value for any user input choices or values. To implement this pattern, all manual steps such as ask(), prompt(), and infinite wait() statements need to be wrapped with an if statement that checks the value of the $manual variable. If $manual is set, then the manual steps should be executed. If not, then a default value should be used.</p>
376
- <p>Ruby Only:</p>
377
- <pre><code class="language-ruby"># Set the $manual variable – Only needed outside of suites
378
- answer = ask(&quot;Prompt for manual entry (Y/n)?&quot;)
379
- if answer == &#x27;n&#x27; or answer == &#x27;N&#x27;
380
- $manual = false
381
- else
382
- $manual = true
383
- end
384
- if $manual
375
+ <p>When possible, a useful design pattern is to write your scripts such that they can run without prompting for any user input. This allows the scripts to be more easily tested and provides a documented default value for any user input choices or values. To implement this pattern, all manual steps such as ask(), prompt(), and infinite wait() statements need to be wrapped with an if statement that checks the value of $manual in Ruby or RunningScript.manual in Python. If the variable is set, then the manual steps should be executed. If not, then a default value should be used.</p>
376
+ <p>Ruby Example:</p>
377
+ <pre><code class="language-ruby">if $manual
385
378
  temp = ask(&quot;Please enter the temperature&quot;)
386
379
  else
387
380
  temp = 20.0
@@ -392,6 +385,16 @@ else
392
385
  wait
393
386
  end
394
387
  </code></pre>
388
+ <p>Python Example:</p>
389
+ <pre><code class="language-python">if RunningScript.manual:
390
+ temp = ask(&quot;Please enter the temperature&quot;)
391
+ else:
392
+ temp = 20.0
393
+ if not RunningScript.manual:
394
+ print(&quot;Skipping infinite wait in auto mode&quot;)
395
+ else:
396
+ wait()
397
+ </code></pre>
395
398
  <p>When running suites, there is a checkbox at the top of the tool called “Manual” that affects this $manual variable directly.</p>
396
399
  <h3 id="outputing-extra-information-to-a-report">Outputing Extra Information to a Report</h3>
397
400
  <p>COSMOS Script Runner operating on a script suite automatically generates a report that shows the PASS/FAILED/SKIPPED state for each script. You can also inject arbitrary text into this report using the example as follows. Alternatively, you can simply use print text into the Script Runner message log.</p>
@@ -558,6 +561,6 @@ class MyTest &lt; OpenC3::Group
558
561
  module_method()
559
562
  end
560
563
  end
561
- </code></pre></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/OpenC3/cosmos/tree/main/docs.openc3.com/docs/guides/script-writing.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_UohW" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_T23F"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/tools/staticdocs/docs/guides/raspberrypi"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Raspberry Pi</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/tools/staticdocs/docs/guides/scripting-api"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Scripting API Guide</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="#introduction" class="table-of-contents__link toc-highlight">Introduction</a></li><li><a href="#concepts" class="table-of-contents__link toc-highlight">Concepts</a><ul><li><a href="#ruby-vs-python-in-cosmos" class="table-of-contents__link toc-highlight">Ruby vs Python in COSMOS</a></li></ul></li><li><a href="#scripting-philosophy" class="table-of-contents__link toc-highlight">Scripting Philosophy</a><ul><li><a href="#a-super-basic-script-example" class="table-of-contents__link toc-highlight">A Super Basic Script Example</a></li><li><a href="#kiss-keep-it-simple-stupid" class="table-of-contents__link toc-highlight">KISS (Keep It Simple Stupid)</a></li><li><a href="#keep-things-dry-dont-repeat-yourself" class="table-of-contents__link toc-highlight">Keep things DRY (Don&#39;t Repeat Yourself)</a></li><li><a href="#use-comments-appropriately" class="table-of-contents__link toc-highlight">Use Comments Appropriately</a></li><li><a href="#script-runner" class="table-of-contents__link toc-highlight">Script Runner</a></li><li><a href="#looping-vs-unrolled-loops" class="table-of-contents__link toc-highlight">Looping vs Unrolled Loops</a></li></ul></li><li><a href="#script-organization" class="table-of-contents__link toc-highlight">Script Organization</a><ul><li><a href="#organizing-your-scripts-into-a-plugin" class="table-of-contents__link toc-highlight">Organizing Your Scripts into a Plugin</a></li><li><a href="#organize-scripts-into-methods" class="table-of-contents__link toc-highlight">Organize Scripts into Methods</a></li><li><a href="#using-classes-vs-unscoped-methods" class="table-of-contents__link toc-highlight">Using Classes vs Unscoped Methods</a></li><li><a href="#instrumented-vs-uninstrumented-lines-require-vs-load" class="table-of-contents__link toc-highlight">Instrumented vs Uninstrumented Lines (require vs load)</a></li></ul></li><li><a href="#debugging-and-auditing" class="table-of-contents__link toc-highlight">Debugging and Auditing</a><ul><li><a href="#built-in-debugging-capabilities" class="table-of-contents__link toc-highlight">Built-In Debugging Capabilities</a></li><li><a href="#breakpoints" class="table-of-contents__link toc-highlight">Breakpoints</a></li><li><a href="#using-disconnect-mode" class="table-of-contents__link toc-highlight">Using Disconnect Mode</a></li><li><a href="#auditing-your-scripts" class="table-of-contents__link toc-highlight">Auditing your Scripts</a><ul><li><a href="#ruby-syntax-check" class="table-of-contents__link toc-highlight">Ruby Syntax Check</a></li></ul></li></ul></li><li><a href="#common-scenarios" class="table-of-contents__link toc-highlight">Common Scenarios</a><ul><li><a href="#user-input-best-practices" class="table-of-contents__link toc-highlight">User Input Best Practices</a></li><li><a href="#conditionally-require-manual-user-input-steps" class="table-of-contents__link toc-highlight">Conditionally Require Manual User Input Steps</a></li><li><a href="#outputing-extra-information-to-a-report" class="table-of-contents__link toc-highlight">Outputing Extra Information to a Report</a></li><li><a href="#getting-the-most-recent-value-of-a-telemetry-point-from-multiple-packets" class="table-of-contents__link toc-highlight">Getting the Most Recent Value of a Telemetry Point from Multiple Packets</a></li><li><a href="#checking-every-single-sample-of-a-telemetry-point" class="table-of-contents__link toc-highlight">Checking Every Single Sample of a Telemetry Point</a></li><li><a href="#using-variables-in-mnemonics" class="table-of-contents__link toc-highlight">Using Variables in Mnemonics</a></li><li><a href="#using-custom-wait_check_expression" class="table-of-contents__link toc-highlight">Using Custom wait_check_expression</a></li><li><a href="#cosmos-scripting-differences-from-regular-ruby-scripting" class="table-of-contents__link toc-highlight">COSMOS Scripting Differences from Regular Ruby Scripting</a><ul><li><a href="#do-not-use-single-line-if-statements" class="table-of-contents__link toc-highlight">Do not use single line if statements</a></li></ul></li></ul></li><li><a href="#when-things-go-wrong" class="table-of-contents__link toc-highlight">When Things Go Wrong</a><ul><li><a href="#common-reasons-checks-fail" class="table-of-contents__link toc-highlight">Common Reasons Checks Fail</a></li><li><a href="#how-to-recover-from-anomalies" class="table-of-contents__link toc-highlight">How to Recover from Anomalies</a></li></ul></li><li><a href="#advanced-topics" class="table-of-contents__link toc-highlight">Advanced Topics</a><ul><li><a href="#advanced-script-configuration-with-csv-or-excel" class="table-of-contents__link toc-highlight">Advanced Script Configuration with CSV or Excel</a></li><li><a href="#when-to-use-ruby-modules" class="table-of-contents__link toc-highlight">When to use Ruby Modules</a></li></ul></li></ul></div></div></div></div></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Homepage</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://openc3.com" target="_blank" rel="noopener noreferrer" class="footer__link-item">Home</a></li></ul></div><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/tools/staticdocs/docs">Documentation</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/company/openc3" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_awgD"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/OpenC3/cosmos" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_awgD"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a class="footer__link-item" href="/tools/staticdocs/docs/privacy">Privacy</a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2024 OpenC3, Inc.</div></div></div></footer></div>
564
+ </code></pre></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/guides/script-writing.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_UohW" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_g62E"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/tools/staticdocs/docs/guides/raspberrypi"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Raspberry Pi</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/tools/staticdocs/docs/guides/scripting-api"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Scripting API Guide</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 class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#introduction">Introduction</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#concepts">Concepts</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#ruby-vs-python-in-cosmos">Ruby vs Python in COSMOS</a></li></ul></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#scripting-philosophy">Scripting Philosophy</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#a-super-basic-script-example">A Super Basic Script Example</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#kiss-keep-it-simple-stupid">KISS (Keep It Simple Stupid)</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#keep-things-dry-dont-repeat-yourself">Keep things DRY (Don&#39;t Repeat Yourself)</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#use-comments-appropriately">Use Comments Appropriately</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#script-runner">Script Runner</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#looping-vs-unrolled-loops">Looping vs Unrolled Loops</a></li></ul></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#script-organization">Script Organization</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#organizing-your-scripts-into-a-plugin">Organizing Your Scripts into a Plugin</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#organize-scripts-into-methods">Organize Scripts into Methods</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#using-classes-vs-unscoped-methods">Using Classes vs Unscoped Methods</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#instrumented-vs-uninstrumented-lines-require-vs-load">Instrumented vs Uninstrumented Lines (require vs load)</a></li></ul></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#debugging-and-auditing">Debugging and Auditing</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#built-in-debugging-capabilities">Built-In Debugging Capabilities</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#breakpoints">Breakpoints</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#using-disconnect-mode">Using Disconnect Mode</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#auditing-your-scripts">Auditing your Scripts</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#ruby-syntax-check">Ruby Syntax Check</a></li></ul></li></ul></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#common-scenarios">Common Scenarios</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#user-input-best-practices">User Input Best Practices</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#conditionally-require-manual-user-input-steps">Conditionally Require Manual User Input Steps</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#outputing-extra-information-to-a-report">Outputing Extra Information to a Report</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#getting-the-most-recent-value-of-a-telemetry-point-from-multiple-packets">Getting the Most Recent Value of a Telemetry Point from Multiple Packets</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#checking-every-single-sample-of-a-telemetry-point">Checking Every Single Sample of a Telemetry Point</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#using-variables-in-mnemonics">Using Variables in Mnemonics</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#using-custom-wait_check_expression">Using Custom wait_check_expression</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#cosmos-scripting-differences-from-regular-ruby-scripting">COSMOS Scripting Differences from Regular Ruby Scripting</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#do-not-use-single-line-if-statements">Do not use single line if statements</a></li></ul></li></ul></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#when-things-go-wrong">When Things Go Wrong</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#common-reasons-checks-fail">Common Reasons Checks Fail</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#how-to-recover-from-anomalies">How to Recover from Anomalies</a></li></ul></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#advanced-topics">Advanced Topics</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#advanced-script-configuration-with-csv-or-excel">Advanced Script Configuration with CSV or Excel</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/script-writing#when-to-use-ruby-modules">When to use Ruby Modules</a></li></ul></li></ul></div></div></div></div></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Homepage</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://openc3.com" target="_blank" rel="noopener noreferrer" class="footer__link-item">Home</a></li></ul></div><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/tools/staticdocs/docs">Documentation</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/company/openc3" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_awgD"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/OpenC3/cosmos" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_awgD"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a class="footer__link-item" href="/tools/staticdocs/docs/privacy">Privacy</a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2024 OpenC3, Inc.</div></div></div></footer></div>
562
565
  </body>
563
566
  </html>
@@ -2,13 +2,13 @@
2
2
  <html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-guides/scripting-api" data-has-hydrated="false">
3
3
  <head>
4
4
  <meta charset="UTF-8">
5
- <meta name="generator" content="Docusaurus v3.1.0">
6
- <title data-rh="true">Scripting API Guide | OpenC3 Docs</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://docs.openc3.com/tools/staticdocs/docs/guides/scripting-api"><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="Scripting API Guide | OpenC3 Docs"><meta data-rh="true" name="description" content="This document provides the information necessary to write test procedures using the COSMOS scripting API. Scripting in COSMOS is designed to be simple and intuitive. The code completion ability for command and telemetry mnemonics makes Script Runner the ideal place to write your procedures, however any text editor will do. If there is functionality that you don&#x27;t see here or perhaps an easier syntax for doing something, please submit a ticket."><meta data-rh="true" property="og:description" content="This document provides the information necessary to write test procedures using the COSMOS scripting API. Scripting in COSMOS is designed to be simple and intuitive. The code completion ability for command and telemetry mnemonics makes Script Runner the ideal place to write your procedures, however any text editor will do. If there is functionality that you don&#x27;t see here or perhaps an easier syntax for doing something, please submit a ticket."><link data-rh="true" rel="icon" href="/tools/staticdocs/img/favicon.png"><link data-rh="true" rel="canonical" href="https://docs.openc3.com/tools/staticdocs/docs/guides/scripting-api"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/guides/scripting-api" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/guides/scripting-api" hreflang="x-default"><link rel="stylesheet" href="/tools/staticdocs/assets/css/styles.a9c55efa.css">
7
- <script src="/tools/staticdocs/assets/js/runtime~main.49989116.js" defer="defer"></script>
8
- <script src="/tools/staticdocs/assets/js/main.1b0c8317.js" defer="defer"></script>
5
+ <meta name="generator" content="Docusaurus v3.4.0">
6
+ <title data-rh="true">Scripting API Guide | OpenC3 Docs</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://docs.openc3.com/tools/staticdocs/docs/guides/scripting-api"><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="Scripting API Guide | OpenC3 Docs"><meta data-rh="true" name="description" content="This document provides the information necessary to write test procedures using the COSMOS scripting API. Scripting in COSMOS is designed to be simple and intuitive. The code completion ability for command and telemetry mnemonics makes Script Runner the ideal place to write your procedures, however any text editor will do. If there is functionality that you don&#x27;t see here or perhaps an easier syntax for doing something, please submit a ticket."><meta data-rh="true" property="og:description" content="This document provides the information necessary to write test procedures using the COSMOS scripting API. Scripting in COSMOS is designed to be simple and intuitive. The code completion ability for command and telemetry mnemonics makes Script Runner the ideal place to write your procedures, however any text editor will do. If there is functionality that you don&#x27;t see here or perhaps an easier syntax for doing something, please submit a ticket."><link data-rh="true" rel="icon" href="/tools/staticdocs/img/favicon.png"><link data-rh="true" rel="canonical" href="https://docs.openc3.com/tools/staticdocs/docs/guides/scripting-api"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/guides/scripting-api" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.openc3.com/tools/staticdocs/docs/guides/scripting-api" hreflang="x-default"><link rel="stylesheet" href="/tools/staticdocs/assets/css/styles.8a0f1b26.css">
7
+ <script src="/tools/staticdocs/assets/js/runtime~main.2bb31799.js" defer="defer"></script>
8
+ <script src="/tools/staticdocs/assets/js/main.67ed58e2.js" defer="defer"></script>
9
9
  </head>
10
10
  <body class="navigation-with-keyboard">
11
- <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"dark")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_G6ar" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/tools/staticdocs/"><div class="navbar__logo"><img src="/tools/staticdocs/img/logo.svg" alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--light_DIHH"><img src="/tools/staticdocs/img/logo.svg" alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--dark_Bv2M"></div><b class="navbar__title text--truncate">OpenC3 Docs</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/tools/staticdocs/docs">Documentation</a><a href="https://openc3.com/enterprise/" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Enterprise</a></div><div class="navbar__items navbar__items--right"><div class="navbarSearchContainer_bmvg"><div class="navbar__search"><span aria-label="expand searchbar" role="button" class="search-icon" tabindex="0"></span><input id="search_input_react" type="search" placeholder="Loading..." aria-label="Search" class="navbar__search-input search-bar" disabled=""></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_UyTV"><div class="docsWrapper_XLvK"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_z1FD" type="button"></button><div class="docRoot_HciC"><aside class="theme-doc-sidebar-container docSidebarContainer_e5ai"><div class="sidebarViewport_N8x0"><div class="sidebar_vJCc"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_qiME"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/tools/staticdocs/docs">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/getting-started">Getting Started</a><button aria-label="Expand sidebar category &#x27;Getting Started&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/configuration">Configuration</a><button aria-label="Expand sidebar category &#x27;Configuration&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/tools">Tools</a><button aria-label="Expand sidebar category &#x27;Tools&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/tools/staticdocs/docs/guides">Guides</a><button aria-label="Collapse sidebar category &#x27;Guides&#x27;" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/bridges">Bridges</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/cfs">COSMOS and NASA cFS</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/custom-widgets">Custom Widgets</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/little-endian-bitfields">Little Endian Bitfields</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/local-mode">Local Mode</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/logging">Logging</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/monitoring">Monitoring</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/performance">Performance</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/raspberrypi">Raspberry Pi</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/script-writing">Script Writing Guide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/tools/staticdocs/docs/guides/scripting-api">Scripting API Guide</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/development">Development</a><button aria-label="Expand sidebar category &#x27;Development&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/tools/staticdocs/docs/meta">Meta</a><button aria-label="Expand sidebar category &#x27;Meta&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/tools/staticdocs/docs/privacy">OpenC3, Inc. Privacy Policy</a></li></ul></nav></div></div></aside><main class="docMainContainer_namt"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_YAwJ"><div class="docItemContainer_Rv5Z"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_zCmv" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/tools/staticdocs/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_JFrk"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/tools/staticdocs/docs/guides"><span itemprop="name">Guides</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Scripting API Guide</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_O_Qc theme-doc-toc-mobile tocMobile_tjDr"><button type="button" class="clean-btn tocCollapsibleButton_htYj">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Scripting API Guide</h1></header><p>This document provides the information necessary to write test procedures using the COSMOS scripting API. Scripting in COSMOS is designed to be simple and intuitive. The code completion ability for command and telemetry mnemonics makes Script Runner the ideal place to write your procedures, however any text editor will do. If there is functionality that you don&#x27;t see here or perhaps an easier syntax for doing something, please submit a ticket.</p>
11
+ <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"dark")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_G6ar" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/tools/staticdocs/"><div class="navbar__logo"><img src="/tools/staticdocs/img/logo.svg" alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--light_DIHH"><img src="/tools/staticdocs/img/logo.svg" alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--dark_Bv2M"></div><b class="navbar__title text--truncate">OpenC3 Docs</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/tools/staticdocs/docs">Documentation</a><a href="https://openc3.com/enterprise/" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Enterprise</a></div><div class="navbar__items navbar__items--right"><div class="navbarSearchContainer_bmvg"><div class="navbar__search"><span aria-label="expand searchbar" role="button" class="search-icon" tabindex="0"></span><input id="search_input_react" type="search" placeholder="Loading..." aria-label="Search" class="navbar__search-input search-bar" disabled=""></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_UyTV"><div class="docsWrapper_XLvK"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_z1FD" type="button"></button><div class="docRoot_HciC"><aside class="theme-doc-sidebar-container docSidebarContainer_e5ai"><div class="sidebarViewport_N8x0"><div class="sidebar_vJCc"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_qiME"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/tools/staticdocs/docs">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/tools/staticdocs/docs/getting-started">Getting Started</a><button aria-label="Expand sidebar category &#x27;Getting Started&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/tools/staticdocs/docs/configuration">Configuration</a><button aria-label="Expand sidebar category &#x27;Configuration&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/tools/staticdocs/docs/tools">Tools</a><button aria-label="Expand sidebar category &#x27;Tools&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" href="/tools/staticdocs/docs/guides">Guides</a><button aria-label="Collapse sidebar category &#x27;Guides&#x27;" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/bridges">Bridges</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/cfs">COSMOS and NASA cFS</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/custom-widgets">Custom Widgets</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/little-endian-bitfields">Little Endian Bitfields</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/local-mode">Local Mode</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/logging">Logging</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/monitoring">Monitoring</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/performance">Performance</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/raspberrypi">Raspberry Pi</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tools/staticdocs/docs/guides/script-writing">Script Writing Guide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/tools/staticdocs/docs/guides/scripting-api">Scripting API Guide</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/tools/staticdocs/docs/development">Development</a><button aria-label="Expand sidebar category &#x27;Development&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/tools/staticdocs/docs/meta">Meta</a><button aria-label="Expand sidebar category &#x27;Meta&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/tools/staticdocs/docs/privacy">OpenC3, Inc. Privacy Policy</a></li></ul></nav></div></div></aside><main class="docMainContainer_namt"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_YAwJ"><div class="docItemContainer_Rv5Z"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_zCmv" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/tools/staticdocs/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_JFrk"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/tools/staticdocs/docs/guides"><span itemprop="name">Guides</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Scripting API Guide</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_O_Qc theme-doc-toc-mobile tocMobile_tjDr"><button type="button" class="clean-btn tocCollapsibleButton_htYj">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Scripting API Guide</h1></header><p>This document provides the information necessary to write test procedures using the COSMOS scripting API. Scripting in COSMOS is designed to be simple and intuitive. The code completion ability for command and telemetry mnemonics makes Script Runner the ideal place to write your procedures, however any text editor will do. If there is functionality that you don&#x27;t see here or perhaps an easier syntax for doing something, please submit a ticket.</p>
12
12
  <h2 id="concepts">Concepts</h2>
13
13
  <h3 id="programming-languages">Programming Languages</h3>
14
14
  <p>COSMOS scripting is implemented using either Ruby or Python. Ruby and Python are very similar scripting languages and in many cases the COSMOS APIs are identical between the two. This guide is written to support both with additional language specific information found in the <a href="/tools/staticdocs/docs/guides/script-writing">Script Writing Guide</a>.</p>
@@ -1939,6 +1939,6 @@ print(config) #=&gt;
1939
1939
  <table><thead><tr><th>Parameter</th><th>Description</th></tr></thead><tbody><tr><td>Tool Name</td><td>Name of the tool</td></tr><tr><td>Configuration Name</td><td>Name of the configuration</td></tr><tr><td>local_mode</td><td>Whether to delete the configuration in local mode</td></tr></tbody></table>
1940
1940
  <p>Ruby / Python Example:</p>
1941
1941
  <pre><code class="language-ruby">delete_config(&#x27;telemetry_grapher&#x27;, &#x27;adcs&#x27;)
1942
- </code></pre></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/OpenC3/cosmos/tree/main/docs.openc3.com/docs/guides/scripting-api.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_UohW" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_T23F"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/tools/staticdocs/docs/guides/script-writing"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Script Writing Guide</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/tools/staticdocs/docs/development"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Development</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="#concepts" class="table-of-contents__link toc-highlight">Concepts</a><ul><li><a href="#programming-languages" class="table-of-contents__link toc-highlight">Programming Languages</a></li><li><a href="#using-script-runner" class="table-of-contents__link toc-highlight">Using Script Runner</a></li><li><a href="#telemetry-types" class="table-of-contents__link toc-highlight">Telemetry Types</a></li></ul></li><li><a href="#script-runner-api" class="table-of-contents__link toc-highlight">Script Runner API</a><ul><li><a href="#migration-from-cosmos-v4" class="table-of-contents__link toc-highlight">Migration from COSMOS v4</a></li></ul></li><li><a href="#retrieving-user-input" class="table-of-contents__link toc-highlight">Retrieving User Input</a><ul><li><a href="#ask" class="table-of-contents__link toc-highlight">ask</a></li><li><a href="#ask_string" class="table-of-contents__link toc-highlight">ask_string</a></li><li><a href="#message_box" class="table-of-contents__link toc-highlight">message_box</a></li><li><a href="#vertical_message_box" class="table-of-contents__link toc-highlight">vertical_message_box</a></li><li><a href="#combo_box" class="table-of-contents__link toc-highlight">combo_box</a></li><li><a href="#get_target_file" class="table-of-contents__link toc-highlight">get_target_file</a></li><li><a href="#put_target_file" class="table-of-contents__link toc-highlight">put_target_file</a></li><li><a href="#delete_target_file" class="table-of-contents__link toc-highlight">delete_target_file</a></li><li><a href="#open_file_dialog" class="table-of-contents__link toc-highlight">open_file_dialog</a></li><li><a href="#open_files_dialog" class="table-of-contents__link toc-highlight">open_files_dialog</a></li></ul></li><li><a href="#providing-information-to-the-user" class="table-of-contents__link toc-highlight">Providing information to the user</a><ul><li><a href="#prompt" class="table-of-contents__link toc-highlight">prompt</a></li></ul></li><li><a href="#commands" class="table-of-contents__link toc-highlight">Commands</a><ul><li><a href="#cmd" class="table-of-contents__link toc-highlight">cmd</a></li><li><a href="#cmd_no_range_check" class="table-of-contents__link toc-highlight">cmd_no_range_check</a></li><li><a href="#cmd_no_hazardous_check" class="table-of-contents__link toc-highlight">cmd_no_hazardous_check</a></li><li><a href="#cmd_no_checks" class="table-of-contents__link toc-highlight">cmd_no_checks</a></li><li><a href="#cmd_raw" class="table-of-contents__link toc-highlight">cmd_raw</a></li><li><a href="#cmd_raw_no_range_check" class="table-of-contents__link toc-highlight">cmd_raw_no_range_check</a></li><li><a href="#cmd_raw_no_hazardous_check" class="table-of-contents__link toc-highlight">cmd_raw_no_hazardous_check</a></li><li><a href="#cmd_raw_no_checks" class="table-of-contents__link toc-highlight">cmd_raw_no_checks</a></li><li><a href="#build_cmd-since-5130-since-580-as-build_command" class="table-of-contents__link toc-highlight">build_cmd (since 5.13.0, since 5.8.0 as build_command)</a></li><li><a href="#send_raw" class="table-of-contents__link toc-highlight">send_raw</a></li><li><a href="#get_all_cmds-since-5130-since-500-as-get_all_commands" class="table-of-contents__link toc-highlight">get_all_cmds (since 5.13.0, since 5.0.0 as get_all_commands)</a></li><li><a href="#get_all_cmd_names-since-5130-since-506-as-get_all_command_names" class="table-of-contents__link toc-highlight">get_all_cmd_names (since 5.13.0, since 5.0.6 as get_all_command_names)</a></li><li><a href="#get_cmd-since-5130-since-500-as-get_command" class="table-of-contents__link toc-highlight">get_cmd (since 5.13.0, since 5.0.0 as get_command)</a></li><li><a href="#get_param-since-5130-since-500-as-get_parameter" class="table-of-contents__link toc-highlight">get_param (since 5.13.0, since 5.0.0 as get_parameter)</a></li><li><a href="#get_cmd_buffer" class="table-of-contents__link toc-highlight">get_cmd_buffer</a></li><li><a href="#get_cmd_hazardous" class="table-of-contents__link toc-highlight">get_cmd_hazardous</a></li><li><a href="#get_cmd_value" class="table-of-contents__link toc-highlight">get_cmd_value</a></li><li><a href="#get_cmd_time" class="table-of-contents__link toc-highlight">get_cmd_time</a></li><li><a href="#get_cmd_cnt" class="table-of-contents__link toc-highlight">get_cmd_cnt</a></li></ul></li><li><a href="#handling-telemetry" class="table-of-contents__link toc-highlight">Handling Telemetry</a><ul><li><a href="#check-check_raw-check_formatted-check_with_units" class="table-of-contents__link toc-highlight">check, check_raw, check_formatted, check_with_units</a></li><li><a href="#check_tolerance" class="table-of-contents__link toc-highlight">check_tolerance</a></li><li><a href="#check_expression" class="table-of-contents__link toc-highlight">check_expression</a></li><li><a href="#check_exception" class="table-of-contents__link toc-highlight">check_exception</a></li><li><a href="#tlm-tlm_raw-tlm_formatted-tlm_with_units" class="table-of-contents__link toc-highlight">tlm, tlm_raw, tlm_formatted, tlm_with_units</a></li><li><a href="#get_tlm_buffer" class="table-of-contents__link toc-highlight">get_tlm_buffer</a></li><li><a href="#get_tlm_packet" class="table-of-contents__link toc-highlight">get_tlm_packet</a></li><li><a href="#get_tlm_values-modified-in-500" class="table-of-contents__link toc-highlight">get_tlm_values (modified in 5.0.0)</a></li><li><a href="#get_all_tlm-since-5130-since-500-as-get_all_telemetry" class="table-of-contents__link toc-highlight">get_all_tlm (since 5.13.0, since 5.0.0 as get_all_telemetry)</a></li><li><a href="#get_all_tlm_names-since-5130-since-506-as-get_all_telemetry_names" class="table-of-contents__link toc-highlight">get_all_tlm_names (since 5.13.0, since 5.0.6 as get_all_telemetry_names)</a></li><li><a href="#get_tlm-since-5130-since-500-as-get_telemetry" class="table-of-contents__link toc-highlight">get_tlm (since 5.13.0, since 5.0.0 as get_telemetry)</a></li><li><a href="#get_item-since-500" class="table-of-contents__link toc-highlight">get_item (since 5.0.0)</a></li><li><a href="#get_tlm_cnt" class="table-of-contents__link toc-highlight">get_tlm_cnt</a></li><li><a href="#set_tlm" class="table-of-contents__link toc-highlight">set_tlm</a></li><li><a href="#inject_tlm" class="table-of-contents__link toc-highlight">inject_tlm</a></li><li><a href="#override_tlm" class="table-of-contents__link toc-highlight">override_tlm</a></li><li><a href="#normalize_tlm" class="table-of-contents__link toc-highlight">normalize_tlm</a></li><li><a href="#get_overrides" class="table-of-contents__link toc-highlight">get_overrides</a></li></ul></li><li><a href="#packet-data-subscriptions" class="table-of-contents__link toc-highlight">Packet Data Subscriptions</a><ul><li><a href="#subscribe_packets-since-503" class="table-of-contents__link toc-highlight">subscribe_packets (since 5.0.3)</a></li><li><a href="#get_packets-since-503" class="table-of-contents__link toc-highlight">get_packets (since 5.0.3)</a></li><li><a href="#get_tlm_cnt-1" class="table-of-contents__link toc-highlight">get_tlm_cnt</a></li><li><a href="#get_tlm_cnts" class="table-of-contents__link toc-highlight">get_tlm_cnts</a></li><li><a href="#get_packet_derived_items" class="table-of-contents__link toc-highlight">get_packet_derived_items</a></li></ul></li><li><a href="#delays" class="table-of-contents__link toc-highlight">Delays</a><ul><li><a href="#wait" class="table-of-contents__link toc-highlight">wait</a></li><li><a href="#wait_tolerance" class="table-of-contents__link toc-highlight">wait_tolerance</a></li><li><a href="#wait_expression" class="table-of-contents__link toc-highlight">wait_expression</a></li><li><a href="#wait_packet" class="table-of-contents__link toc-highlight">wait_packet</a></li><li><a href="#wait_check" class="table-of-contents__link toc-highlight">wait_check</a></li><li><a href="#wait_check_tolerance" class="table-of-contents__link toc-highlight">wait_check_tolerance</a></li><li><a href="#wait_check_expression" class="table-of-contents__link toc-highlight">wait_check_expression</a></li><li><a href="#wait_check_packet" class="table-of-contents__link toc-highlight">wait_check_packet</a></li></ul></li><li><a href="#limits" class="table-of-contents__link toc-highlight">Limits</a><ul><li><a href="#limits_enabled-limits_enabled" class="table-of-contents__link toc-highlight">limits_enabled?, limits_enabled</a></li><li><a href="#enable_limits" class="table-of-contents__link toc-highlight">enable_limits</a></li><li><a href="#disable_limits" class="table-of-contents__link toc-highlight">disable_limits</a></li><li><a href="#enable_limits_group" class="table-of-contents__link toc-highlight">enable_limits_group</a></li><li><a href="#disable_limits_group" class="table-of-contents__link toc-highlight">disable_limits_group</a></li><li><a href="#get_limits_groups" class="table-of-contents__link toc-highlight">get_limits_groups</a></li><li><a href="#set_limits_set" class="table-of-contents__link toc-highlight">set_limits_set</a></li><li><a href="#get_limits_set" class="table-of-contents__link toc-highlight">get_limits_set</a></li><li><a href="#get_limits_sets" class="table-of-contents__link toc-highlight">get_limits_sets</a></li><li><a href="#get_limits" class="table-of-contents__link toc-highlight">get_limits</a></li><li><a href="#set_limits" class="table-of-contents__link toc-highlight">set_limits</a></li><li><a href="#get_out_of_limits" class="table-of-contents__link toc-highlight">get_out_of_limits</a></li><li><a href="#get_overall_limits_state" class="table-of-contents__link toc-highlight">get_overall_limits_state</a></li><li><a href="#get_limits_events" class="table-of-contents__link toc-highlight">get_limits_events</a></li></ul></li><li><a href="#targets" class="table-of-contents__link toc-highlight">Targets</a><ul><li><a href="#get_target_names" class="table-of-contents__link toc-highlight">get_target_names</a></li><li><a href="#get_target" class="table-of-contents__link toc-highlight">get_target</a></li><li><a href="#get_target_interfaces" class="table-of-contents__link toc-highlight">get_target_interfaces</a></li></ul></li><li><a href="#interfaces" class="table-of-contents__link toc-highlight">Interfaces</a><ul><li><a href="#get_interface-since-500" class="table-of-contents__link toc-highlight">get_interface (since 5.0.0)</a></li><li><a href="#get_interface_names" class="table-of-contents__link toc-highlight">get_interface_names</a></li><li><a href="#connect_interface" class="table-of-contents__link toc-highlight">connect_interface</a></li><li><a href="#disconnect_interface" class="table-of-contents__link toc-highlight">disconnect_interface</a></li><li><a href="#start_raw_logging_interface" class="table-of-contents__link toc-highlight">start_raw_logging_interface</a></li><li><a href="#stop_raw_logging_interface" class="table-of-contents__link toc-highlight">stop_raw_logging_interface</a></li><li><a href="#get_all_interface_info" class="table-of-contents__link toc-highlight">get_all_interface_info</a></li><li><a href="#map_target_to_interface" class="table-of-contents__link toc-highlight">map_target_to_interface</a></li><li><a href="#interface_cmd" class="table-of-contents__link toc-highlight">interface_cmd</a></li><li><a href="#interface_protocol_cmd" class="table-of-contents__link toc-highlight">interface_protocol_cmd</a></li></ul></li><li><a href="#routers" class="table-of-contents__link toc-highlight">Routers</a><ul><li><a href="#connect_router" class="table-of-contents__link toc-highlight">connect_router</a></li><li><a href="#disconnect_router" class="table-of-contents__link toc-highlight">disconnect_router</a></li><li><a href="#get_router_names" class="table-of-contents__link toc-highlight">get_router_names</a></li><li><a href="#get_router-since-500" class="table-of-contents__link toc-highlight">get_router (since 5.0.0)</a></li><li><a href="#get_all_router_info" class="table-of-contents__link toc-highlight">get_all_router_info</a></li><li><a href="#start_raw_logging_router" class="table-of-contents__link toc-highlight">start_raw_logging_router</a></li><li><a href="#stop_raw_logging_router" class="table-of-contents__link toc-highlight">stop_raw_logging_router</a></li><li><a href="#router_cmd" class="table-of-contents__link toc-highlight">router_cmd</a></li><li><a href="#router_protocol_cmd" class="table-of-contents__link toc-highlight">router_protocol_cmd</a></li></ul></li><li><a href="#stashing-data" class="table-of-contents__link toc-highlight">Stashing Data</a><ul><li><a href="#stash_set" class="table-of-contents__link toc-highlight">stash_set</a></li><li><a href="#stash_get" class="table-of-contents__link toc-highlight">stash_get</a></li><li><a href="#stash_all" class="table-of-contents__link toc-highlight">stash_all</a></li><li><a href="#stash_keys" class="table-of-contents__link toc-highlight">stash_keys</a></li><li><a href="#stash_delete" class="table-of-contents__link toc-highlight">stash_delete</a></li></ul></li><li><a href="#executing-other-procedures" class="table-of-contents__link toc-highlight">Executing Other Procedures</a><ul><li><a href="#start" class="table-of-contents__link toc-highlight">start</a></li><li><a href="#load_utility" class="table-of-contents__link toc-highlight">load_utility</a></li></ul></li><li><a href="#opening-closing--creating-telemetry-screens" class="table-of-contents__link toc-highlight">Opening, Closing &amp; Creating Telemetry Screens</a><ul><li><a href="#display_screen" class="table-of-contents__link toc-highlight">display_screen</a></li><li><a href="#clear_screen" class="table-of-contents__link toc-highlight">clear_screen</a></li><li><a href="#clear_all_screens" class="table-of-contents__link toc-highlight">clear_all_screens</a></li><li><a href="#delete_screen" class="table-of-contents__link toc-highlight">delete_screen</a></li><li><a href="#get_screen_list" class="table-of-contents__link toc-highlight">get_screen_list</a></li><li><a href="#get_screen_definition" class="table-of-contents__link toc-highlight">get_screen_definition</a></li><li><a href="#create_screen" class="table-of-contents__link toc-highlight">create_screen</a></li><li><a href="#local_screen" class="table-of-contents__link toc-highlight">local_screen</a></li></ul></li><li><a href="#script-runner-settings" class="table-of-contents__link toc-highlight">Script Runner Settings</a><ul><li><a href="#set_line_delay" class="table-of-contents__link toc-highlight">set_line_delay</a></li><li><a href="#get_line_delay" class="table-of-contents__link toc-highlight">get_line_delay</a></li><li><a href="#set_max_output" class="table-of-contents__link toc-highlight">set_max_output</a></li><li><a href="#get_max_output" class="table-of-contents__link toc-highlight">get_max_output</a></li><li><a href="#disable_instrumentation" class="table-of-contents__link toc-highlight">disable_instrumentation</a></li></ul></li><li><a href="#script-runner-suites" class="table-of-contents__link toc-highlight">Script Runner Suites</a><ul><li><a href="#add_group-add_group_setup-add_group_teardown-add_script" class="table-of-contents__link toc-highlight">add_group, add_group_setup, add_group_teardown, add_script</a></li></ul></li><li><a href="#script-runner-debugging" class="table-of-contents__link toc-highlight">Script Runner Debugging</a><ul><li><a href="#step_mode" class="table-of-contents__link toc-highlight">step_mode</a></li><li><a href="#run_mode" class="table-of-contents__link toc-highlight">run_mode</a></li><li><a href="#disconnect_script" class="table-of-contents__link toc-highlight">disconnect_script</a></li></ul></li><li><a href="#metadata" class="table-of-contents__link toc-highlight">Metadata</a><ul><li><a href="#metadata_all" class="table-of-contents__link toc-highlight">metadata_all</a></li><li><a href="#metadata_get" class="table-of-contents__link toc-highlight">metadata_get</a></li><li><a href="#metadata_set" class="table-of-contents__link toc-highlight">metadata_set</a></li><li><a href="#metadata_update" class="table-of-contents__link toc-highlight">metadata_update</a></li><li><a href="#metadata_input" class="table-of-contents__link toc-highlight">metadata_input</a></li></ul></li><li><a href="#settings" class="table-of-contents__link toc-highlight">Settings</a><ul><li><a href="#list_settings" class="table-of-contents__link toc-highlight">list_settings</a></li><li><a href="#get_all_settings" class="table-of-contents__link toc-highlight">get_all_settings</a></li><li><a href="#get_setting-get_settings" class="table-of-contents__link toc-highlight">get_setting, get_settings</a></li><li><a href="#set_setting" class="table-of-contents__link toc-highlight">set_setting</a></li></ul></li><li><a href="#configuration" class="table-of-contents__link toc-highlight">Configuration</a><ul><li><a href="#config_tool_names" class="table-of-contents__link toc-highlight">config_tool_names</a></li><li><a href="#list_configs" class="table-of-contents__link toc-highlight">list_configs</a></li><li><a href="#load_config" class="table-of-contents__link toc-highlight">load_config</a></li><li><a href="#save_config" class="table-of-contents__link toc-highlight">save_config</a></li><li><a href="#delete_config" class="table-of-contents__link toc-highlight">delete_config</a></li></ul></li></ul></div></div></div></div></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Homepage</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://openc3.com" target="_blank" rel="noopener noreferrer" class="footer__link-item">Home</a></li></ul></div><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/tools/staticdocs/docs">Documentation</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/company/openc3" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_awgD"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/OpenC3/cosmos" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_awgD"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a class="footer__link-item" href="/tools/staticdocs/docs/privacy">Privacy</a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2024 OpenC3, Inc.</div></div></div></footer></div>
1942
+ </code></pre></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/guides/scripting-api.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_UohW" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_g62E"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/tools/staticdocs/docs/guides/script-writing"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Script Writing Guide</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/tools/staticdocs/docs/development"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Development</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 class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#concepts">Concepts</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#programming-languages">Programming Languages</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#using-script-runner">Using Script Runner</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#telemetry-types">Telemetry Types</a></li></ul></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#script-runner-api">Script Runner API</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#migration-from-cosmos-v4">Migration from COSMOS v4</a></li></ul></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#retrieving-user-input">Retrieving User Input</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#ask">ask</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#ask_string">ask_string</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#message_box">message_box</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#vertical_message_box">vertical_message_box</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#combo_box">combo_box</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_target_file">get_target_file</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#put_target_file">put_target_file</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#delete_target_file">delete_target_file</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#open_file_dialog">open_file_dialog</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#open_files_dialog">open_files_dialog</a></li></ul></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#providing-information-to-the-user">Providing information to the user</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#prompt">prompt</a></li></ul></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#commands">Commands</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#cmd">cmd</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#cmd_no_range_check">cmd_no_range_check</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#cmd_no_hazardous_check">cmd_no_hazardous_check</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#cmd_no_checks">cmd_no_checks</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#cmd_raw">cmd_raw</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#cmd_raw_no_range_check">cmd_raw_no_range_check</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#cmd_raw_no_hazardous_check">cmd_raw_no_hazardous_check</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#cmd_raw_no_checks">cmd_raw_no_checks</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#build_cmd-since-5130-since-580-as-build_command">build_cmd (since 5.13.0, since 5.8.0 as build_command)</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#send_raw">send_raw</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_all_cmds-since-5130-since-500-as-get_all_commands">get_all_cmds (since 5.13.0, since 5.0.0 as get_all_commands)</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_all_cmd_names-since-5130-since-506-as-get_all_command_names">get_all_cmd_names (since 5.13.0, since 5.0.6 as get_all_command_names)</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_cmd-since-5130-since-500-as-get_command">get_cmd (since 5.13.0, since 5.0.0 as get_command)</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_param-since-5130-since-500-as-get_parameter">get_param (since 5.13.0, since 5.0.0 as get_parameter)</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_cmd_buffer">get_cmd_buffer</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_cmd_hazardous">get_cmd_hazardous</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_cmd_value">get_cmd_value</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_cmd_time">get_cmd_time</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_cmd_cnt">get_cmd_cnt</a></li></ul></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#handling-telemetry">Handling Telemetry</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#check-check_raw-check_formatted-check_with_units">check, check_raw, check_formatted, check_with_units</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#check_tolerance">check_tolerance</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#check_expression">check_expression</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#check_exception">check_exception</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#tlm-tlm_raw-tlm_formatted-tlm_with_units">tlm, tlm_raw, tlm_formatted, tlm_with_units</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_tlm_buffer">get_tlm_buffer</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_tlm_packet">get_tlm_packet</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_tlm_values-modified-in-500">get_tlm_values (modified in 5.0.0)</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_all_tlm-since-5130-since-500-as-get_all_telemetry">get_all_tlm (since 5.13.0, since 5.0.0 as get_all_telemetry)</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_all_tlm_names-since-5130-since-506-as-get_all_telemetry_names">get_all_tlm_names (since 5.13.0, since 5.0.6 as get_all_telemetry_names)</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_tlm-since-5130-since-500-as-get_telemetry">get_tlm (since 5.13.0, since 5.0.0 as get_telemetry)</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_item-since-500">get_item (since 5.0.0)</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_tlm_cnt">get_tlm_cnt</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#set_tlm">set_tlm</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#inject_tlm">inject_tlm</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#override_tlm">override_tlm</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#normalize_tlm">normalize_tlm</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_overrides">get_overrides</a></li></ul></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#packet-data-subscriptions">Packet Data Subscriptions</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#subscribe_packets-since-503">subscribe_packets (since 5.0.3)</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_packets-since-503">get_packets (since 5.0.3)</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_tlm_cnt-1">get_tlm_cnt</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_tlm_cnts">get_tlm_cnts</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_packet_derived_items">get_packet_derived_items</a></li></ul></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#delays">Delays</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#wait">wait</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#wait_tolerance">wait_tolerance</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#wait_expression">wait_expression</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#wait_packet">wait_packet</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#wait_check">wait_check</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#wait_check_tolerance">wait_check_tolerance</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#wait_check_expression">wait_check_expression</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#wait_check_packet">wait_check_packet</a></li></ul></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#limits">Limits</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#limits_enabled-limits_enabled">limits_enabled?, limits_enabled</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#enable_limits">enable_limits</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#disable_limits">disable_limits</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#enable_limits_group">enable_limits_group</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#disable_limits_group">disable_limits_group</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_limits_groups">get_limits_groups</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#set_limits_set">set_limits_set</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_limits_set">get_limits_set</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_limits_sets">get_limits_sets</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_limits">get_limits</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#set_limits">set_limits</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_out_of_limits">get_out_of_limits</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_overall_limits_state">get_overall_limits_state</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_limits_events">get_limits_events</a></li></ul></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#targets">Targets</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_target_names">get_target_names</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_target">get_target</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_target_interfaces">get_target_interfaces</a></li></ul></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#interfaces">Interfaces</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_interface-since-500">get_interface (since 5.0.0)</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_interface_names">get_interface_names</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#connect_interface">connect_interface</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#disconnect_interface">disconnect_interface</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#start_raw_logging_interface">start_raw_logging_interface</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#stop_raw_logging_interface">stop_raw_logging_interface</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_all_interface_info">get_all_interface_info</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#map_target_to_interface">map_target_to_interface</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#interface_cmd">interface_cmd</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#interface_protocol_cmd">interface_protocol_cmd</a></li></ul></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#routers">Routers</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#connect_router">connect_router</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#disconnect_router">disconnect_router</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_router_names">get_router_names</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_router-since-500">get_router (since 5.0.0)</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_all_router_info">get_all_router_info</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#start_raw_logging_router">start_raw_logging_router</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#stop_raw_logging_router">stop_raw_logging_router</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#router_cmd">router_cmd</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#router_protocol_cmd">router_protocol_cmd</a></li></ul></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#stashing-data">Stashing Data</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#stash_set">stash_set</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#stash_get">stash_get</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#stash_all">stash_all</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#stash_keys">stash_keys</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#stash_delete">stash_delete</a></li></ul></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#executing-other-procedures">Executing Other Procedures</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#start">start</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#load_utility">load_utility</a></li></ul></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#opening-closing--creating-telemetry-screens">Opening, Closing &amp; Creating Telemetry Screens</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#display_screen">display_screen</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#clear_screen">clear_screen</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#clear_all_screens">clear_all_screens</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#delete_screen">delete_screen</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_screen_list">get_screen_list</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_screen_definition">get_screen_definition</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#create_screen">create_screen</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#local_screen">local_screen</a></li></ul></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#script-runner-settings">Script Runner Settings</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#set_line_delay">set_line_delay</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_line_delay">get_line_delay</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#set_max_output">set_max_output</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_max_output">get_max_output</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#disable_instrumentation">disable_instrumentation</a></li></ul></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#script-runner-suites">Script Runner Suites</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#add_group-add_group_setup-add_group_teardown-add_script">add_group, add_group_setup, add_group_teardown, add_script</a></li></ul></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#script-runner-debugging">Script Runner Debugging</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#step_mode">step_mode</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#run_mode">run_mode</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#disconnect_script">disconnect_script</a></li></ul></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#metadata">Metadata</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#metadata_all">metadata_all</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#metadata_get">metadata_get</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#metadata_set">metadata_set</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#metadata_update">metadata_update</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#metadata_input">metadata_input</a></li></ul></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#settings">Settings</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#list_settings">list_settings</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_all_settings">get_all_settings</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#get_setting-get_settings">get_setting, get_settings</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#set_setting">set_setting</a></li></ul></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#configuration">Configuration</a><ul><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#config_tool_names">config_tool_names</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#list_configs">list_configs</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#load_config">load_config</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#save_config">save_config</a></li><li><a class="table-of-contents__link toc-highlight" href="/tools/staticdocs/docs/guides/scripting-api#delete_config">delete_config</a></li></ul></li></ul></div></div></div></div></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Homepage</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://openc3.com" target="_blank" rel="noopener noreferrer" class="footer__link-item">Home</a></li></ul></div><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/tools/staticdocs/docs">Documentation</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/company/openc3" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_awgD"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/OpenC3/cosmos" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_awgD"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a class="footer__link-item" href="/tools/staticdocs/docs/privacy">Privacy</a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2024 OpenC3, Inc.</div></div></div></footer></div>
1943
1943
  </body>
1944
1944
  </html>