openc3-cosmos-tool-docs 5.17.1 → 5.18.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/tools/staticdocs/404.html +4 -4
- data/tools/staticdocs/assets/css/{styles.8a0f1b26.css → styles.80ddca08.css} +1 -1
- data/tools/staticdocs/assets/js/{019369f3.34291acc.js → 019369f3.727d87f1.js} +1 -1
- data/tools/staticdocs/assets/js/{058ffc22.8d9049f4.js → 058ffc22.f2d69d72.js} +1 -1
- data/tools/staticdocs/assets/js/{0686a885.dde7b18b.js → 0686a885.83641127.js} +1 -1
- data/tools/staticdocs/assets/js/078dbab0.945c9f59.js +1 -0
- data/tools/staticdocs/assets/js/{0f5d161c.ca02c5b2.js → 0f5d161c.e26d88b8.js} +1 -1
- data/tools/staticdocs/assets/js/{0ff569c9.ad025a56.js → 0ff569c9.aa4daee5.js} +1 -1
- data/tools/staticdocs/assets/js/{103cc3be.6b6cd0fa.js → 103cc3be.78f97eb1.js} +1 -1
- data/tools/staticdocs/assets/js/{13196248.9e7794e3.js → 13196248.ca2e8950.js} +1 -1
- data/tools/staticdocs/assets/js/{13c1b4e4.cec67b9c.js → 13c1b4e4.22a0b1d4.js} +1 -1
- data/tools/staticdocs/assets/js/{2047b354.bdd2586a.js → 2047b354.25d11993.js} +1 -1
- data/tools/staticdocs/assets/js/22b3ac48.7a5ea984.js +1 -0
- data/tools/staticdocs/assets/js/{2bb7bf90.043455de.js → 2bb7bf90.fa05d998.js} +1 -1
- data/tools/staticdocs/assets/js/3917.1ec7d126.js +1 -0
- data/tools/staticdocs/assets/js/{3dd7ef3b.c7c1d93f.js → 3dd7ef3b.d55880a8.js} +1 -1
- data/tools/staticdocs/assets/js/{40365d27.7eb3f7b1.js → 40365d27.4b4b2ccd.js} +1 -1
- data/tools/staticdocs/assets/js/{411898ad.d5f62a27.js → 411898ad.1d6a609d.js} +1 -1
- data/tools/staticdocs/assets/js/{42170351.69a8ed02.js → 42170351.c68b85e1.js} +1 -1
- data/tools/staticdocs/assets/js/43652efd.d1e1add3.js +1 -0
- data/tools/staticdocs/assets/js/53ca7c5b.c3111020.js +1 -0
- data/tools/staticdocs/assets/js/{54d0d530.28ba5be7.js → 54d0d530.d3f9a4ac.js} +1 -1
- data/tools/staticdocs/assets/js/{5b233ba7.9c621552.js → 5b233ba7.6fdd6b6c.js} +1 -1
- data/tools/staticdocs/assets/js/{5bc719f6.7fa17221.js → 5bc719f6.daa2a049.js} +1 -1
- data/tools/staticdocs/assets/js/{5c6ce5ec.5e6ca46b.js → 5c6ce5ec.61a9cae2.js} +1 -1
- data/tools/staticdocs/assets/js/5e3ed378.2bee863a.js +1 -0
- data/tools/staticdocs/assets/js/5fe211ef.a9f21277.js +1 -0
- data/tools/staticdocs/assets/js/6831b732.185eb427.js +1 -0
- data/tools/staticdocs/assets/js/{696b4199.0335bd94.js → 696b4199.a5ae3d65.js} +1 -1
- data/tools/staticdocs/assets/js/{6b210247.2cbd59e6.js → 6b210247.e96f3982.js} +1 -1
- data/tools/staticdocs/assets/js/{6b65133b.87dc7da6.js → 6b65133b.4e84b1c2.js} +1 -1
- data/tools/staticdocs/assets/js/6f92e431.65aa0240.js +1 -0
- data/tools/staticdocs/assets/js/72c6d8a8.98daa27a.js +1 -0
- data/tools/staticdocs/assets/js/{75e64983.932fbc0e.js → 75e64983.6ef0928b.js} +1 -1
- data/tools/staticdocs/assets/js/{867640d5.ffd4cf4c.js → 867640d5.48133ad5.js} +1 -1
- data/tools/staticdocs/assets/js/{89e76475.97389cc5.js → 89e76475.13ce283b.js} +1 -1
- data/tools/staticdocs/assets/js/{8f7843ee.d1ffd5ee.js → 8f7843ee.7a68246a.js} +1 -1
- data/tools/staticdocs/assets/js/9424f0b3.61c6bd97.js +1 -0
- data/tools/staticdocs/assets/js/{97535711.fc45ced1.js → 97535711.5311ddd9.js} +1 -1
- data/tools/staticdocs/assets/js/{99581c43.8e571df8.js → 99581c43.527aab44.js} +1 -1
- data/tools/staticdocs/assets/js/{9fb6059a.42881e94.js → 9fb6059a.a5107afb.js} +1 -1
- data/tools/staticdocs/assets/js/{a507c363.04b98d2c.js → a507c363.d2cc5d72.js} +1 -1
- data/tools/staticdocs/assets/js/{a677c089.b2928bac.js → a677c089.abc52ace.js} +1 -1
- data/tools/staticdocs/assets/js/{a9987364.8f065f19.js → a9987364.5ef1644f.js} +1 -1
- data/tools/staticdocs/assets/js/{aa6b6c1b.d78e5212.js → aa6b6c1b.c51c044d.js} +1 -1
- data/tools/staticdocs/assets/js/{b4596165.6806d46b.js → b4596165.daa24b72.js} +1 -1
- data/tools/staticdocs/assets/js/b6d70f94.4923c793.js +1 -0
- data/tools/staticdocs/assets/js/b9f60ba6.e55cd937.js +1 -0
- data/tools/staticdocs/assets/js/{bd0034eb.b4e3d6c1.js → bd0034eb.6691ccc4.js} +1 -1
- data/tools/staticdocs/assets/js/c24eae19.251e0038.js +1 -0
- data/tools/staticdocs/assets/js/{cb8c3f08.a0ef4b5f.js → cb8c3f08.b82ad06f.js} +1 -1
- data/tools/staticdocs/assets/js/cd879be4.f956406f.js +1 -0
- data/tools/staticdocs/assets/js/d1b923aa.d6bafb72.js +1 -0
- data/tools/staticdocs/assets/js/{d1bfc316.2d823a88.js → d1bfc316.0a5ff560.js} +1 -1
- data/tools/staticdocs/assets/js/{d24bf9b6.53eca5e8.js → d24bf9b6.6c422113.js} +1 -1
- data/tools/staticdocs/assets/js/{d57a4b5d.aaa48891.js → d57a4b5d.8f23a506.js} +1 -1
- data/tools/staticdocs/assets/js/{d5d77c37.be6fe7b6.js → d5d77c37.70fdbbc6.js} +1 -1
- data/tools/staticdocs/assets/js/{d8ca4191.c6632184.js → d8ca4191.2349d796.js} +1 -1
- data/tools/staticdocs/assets/js/{d9b92eba.c6a2c7e5.js → d9b92eba.8f82360d.js} +1 -1
- data/tools/staticdocs/assets/js/{db8fa1d0.f078bc02.js → db8fa1d0.8f1b2c9f.js} +1 -1
- data/tools/staticdocs/assets/js/{dc5f7beb.a4afe7cd.js → dc5f7beb.e3a82d1e.js} +1 -1
- data/tools/staticdocs/assets/js/{e501b0d1.d108a8a9.js → e501b0d1.0b407477.js} +1 -1
- data/tools/staticdocs/assets/js/ebec1ccb.9bea92b0.js +1 -0
- data/tools/staticdocs/assets/js/f15615f1.5c433923.js +1 -0
- data/tools/staticdocs/assets/js/{fd886806.a21dd400.js → fd886806.4a41fa80.js} +1 -1
- data/tools/staticdocs/assets/js/main.b5390098.js +2 -0
- data/tools/staticdocs/assets/js/runtime~main.12d1e41d.js +1 -0
- data/tools/staticdocs/docs/configuration/command.html +96 -180
- data/tools/staticdocs/docs/configuration/format.html +25 -54
- data/tools/staticdocs/docs/configuration/interfaces.html +25 -80
- data/tools/staticdocs/docs/configuration/plugins.html +138 -178
- data/tools/staticdocs/docs/configuration/protocols.html +91 -110
- data/tools/staticdocs/docs/configuration/ssl-tls.html +33 -104
- data/tools/staticdocs/docs/configuration/table.html +67 -125
- data/tools/staticdocs/docs/configuration/target.html +23 -31
- data/tools/staticdocs/docs/configuration/telemetry-screens.html +194 -455
- data/tools/staticdocs/docs/configuration/telemetry.html +104 -187
- data/tools/staticdocs/docs/configuration.html +4 -4
- data/tools/staticdocs/docs/development/curl.html +17 -126
- data/tools/staticdocs/docs/development/developing.html +29 -80
- data/tools/staticdocs/docs/development/host-install.html +10 -23
- data/tools/staticdocs/docs/development/json-api.html +20 -32
- data/tools/staticdocs/docs/development/log-structure.html +14 -14
- data/tools/staticdocs/docs/development/roadmap.html +15 -15
- data/tools/staticdocs/docs/development/streaming-api.html +11 -83
- data/tools/staticdocs/docs/development/testing.html +17 -26
- data/tools/staticdocs/docs/development.html +4 -4
- data/tools/staticdocs/docs/getting-started/generators.html +35 -109
- data/tools/staticdocs/docs/getting-started/gettingstarted.html +26 -74
- data/tools/staticdocs/docs/getting-started/installation.html +24 -35
- data/tools/staticdocs/docs/getting-started/key_concepts.html +35 -35
- data/tools/staticdocs/docs/getting-started/podman.html +26 -57
- data/tools/staticdocs/docs/getting-started/requirements.html +21 -21
- data/tools/staticdocs/docs/getting-started/upgrading.html +12 -17
- data/tools/staticdocs/docs/getting-started.html +4 -4
- data/tools/staticdocs/docs/guides/bridges.html +19 -63
- data/tools/staticdocs/docs/guides/cfs.html +44 -184
- data/tools/staticdocs/docs/guides/custom-widgets.html +20 -47
- data/tools/staticdocs/docs/guides/little-endian-bitfields.html +5 -14
- data/tools/staticdocs/docs/guides/local-mode.html +16 -21
- data/tools/staticdocs/docs/guides/logging.html +12 -12
- data/tools/staticdocs/docs/guides/monitoring.html +22 -137
- data/tools/staticdocs/docs/guides/performance.html +18 -27
- data/tools/staticdocs/docs/guides/raspberrypi.html +10 -23
- data/tools/staticdocs/docs/guides/script-writing.html +85 -391
- data/tools/staticdocs/docs/guides/scripting-api.html +482 -1353
- data/tools/staticdocs/docs/guides.html +4 -4
- data/tools/staticdocs/docs/meta/contributing.html +14 -19
- data/tools/staticdocs/docs/meta/licenses.html +13 -31
- data/tools/staticdocs/docs/meta/philosophy.html +4 -4
- data/tools/staticdocs/docs/meta/xtce.html +15 -17
- data/tools/staticdocs/docs/meta.html +4 -4
- data/tools/staticdocs/docs/privacy.html +20 -20
- data/tools/staticdocs/docs/tools/autonomic.html +22 -22
- data/tools/staticdocs/docs/tools/bucket-explorer.html +13 -13
- data/tools/staticdocs/docs/tools/calendar.html +21 -21
- data/tools/staticdocs/docs/tools/cmd-sender.html +16 -16
- data/tools/staticdocs/docs/tools/cmd-tlm-server.html +23 -23
- data/tools/staticdocs/docs/tools/data-extractor.html +27 -27
- data/tools/staticdocs/docs/tools/data-viewer.html +13 -13
- data/tools/staticdocs/docs/tools/handbooks.html +7 -7
- data/tools/staticdocs/docs/tools/limits-monitor.html +19 -19
- data/tools/staticdocs/docs/tools/packet-viewer.html +16 -16
- data/tools/staticdocs/docs/tools/script-runner.html +36 -75
- data/tools/staticdocs/docs/tools/table-manager.html +13 -48
- data/tools/staticdocs/docs/tools/tlm-grapher.html +23 -23
- data/tools/staticdocs/docs/tools/tlm-viewer.html +18 -18
- data/tools/staticdocs/docs/tools.html +4 -4
- data/tools/staticdocs/docs.html +14 -14
- data/tools/staticdocs/index.html +4 -4
- data/tools/staticdocs/lunr-index-1724101625047.json +1 -0
- data/tools/staticdocs/lunr-index.json +1 -1
- data/tools/staticdocs/markdown-page.html +5 -5
- data/tools/staticdocs/search-doc-1724101625047.json +1 -0
- data/tools/staticdocs/search-doc.json +1 -1
- metadata +71 -71
- data/tools/staticdocs/assets/js/078dbab0.b275e04c.js +0 -1
- data/tools/staticdocs/assets/js/22b3ac48.0f4fbe9d.js +0 -1
- data/tools/staticdocs/assets/js/43652efd.be2c1d02.js +0 -1
- data/tools/staticdocs/assets/js/4650.292aca67.js +0 -1
- data/tools/staticdocs/assets/js/53ca7c5b.3f1245d5.js +0 -1
- data/tools/staticdocs/assets/js/5e3ed378.77db7b87.js +0 -1
- data/tools/staticdocs/assets/js/5fe211ef.71dc8326.js +0 -1
- data/tools/staticdocs/assets/js/6831b732.5714d508.js +0 -1
- data/tools/staticdocs/assets/js/6f92e431.300a9857.js +0 -1
- data/tools/staticdocs/assets/js/72c6d8a8.cfccace6.js +0 -1
- data/tools/staticdocs/assets/js/9424f0b3.29299bde.js +0 -1
- data/tools/staticdocs/assets/js/b6d70f94.f5514e8b.js +0 -1
- data/tools/staticdocs/assets/js/b9f60ba6.c3b3046d.js +0 -1
- data/tools/staticdocs/assets/js/c24eae19.6b084c7c.js +0 -1
- data/tools/staticdocs/assets/js/cd879be4.6f19050a.js +0 -1
- data/tools/staticdocs/assets/js/d1b923aa.3f3e186d.js +0 -1
- data/tools/staticdocs/assets/js/ebec1ccb.1ded1149.js +0 -1
- data/tools/staticdocs/assets/js/f15615f1.f9b655a6.js +0 -1
- data/tools/staticdocs/assets/js/main.c2e2b617.js +0 -2
- data/tools/staticdocs/assets/js/runtime~main.2bb31799.js +0 -1
- data/tools/staticdocs/lunr-index-1719505302032.json +0 -1
- data/tools/staticdocs/search-doc-1719505302032.json +0 -1
- /data/tools/staticdocs/assets/js/{main.c2e2b617.js.LICENSE.txt → main.b5390098.js.LICENSE.txt} +0 -0
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openc3-cosmos-tool-docs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.18.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Melton
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2024-
|
12
|
+
date: 2024-08-19 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: " This plugin makes the OpenC3 documentation website available as
|
15
15
|
a tool\n"
|
@@ -26,7 +26,7 @@ files:
|
|
26
26
|
- plugin.txt
|
27
27
|
- tools/staticdocs/404.html
|
28
28
|
- tools/staticdocs/CNAME
|
29
|
-
- tools/staticdocs/assets/css/styles.
|
29
|
+
- tools/staticdocs/assets/css/styles.80ddca08.css
|
30
30
|
- tools/staticdocs/assets/images/add_component-883814db1de410921a1d46247be60a87a51f1c51eb98d4a7f499875c83225294.png
|
31
31
|
- tools/staticdocs/assets/images/add_item-4e7c51e0d6a7304260097ccfe8a64d7f2d2b428dba9758070a618ca0dcc89457.png
|
32
32
|
- tools/staticdocs/assets/images/add_packet-74322c89982856286103da2c91c4246a4a8aa319c216bc1c169515ab28381cd6.png
|
@@ -134,88 +134,88 @@ files:
|
|
134
134
|
- tools/staticdocs/assets/images/two_full_height-ccba2940b80345f3569ea47b7ddd3390c08195de91559f5586f85e36e411afd6.png
|
135
135
|
- tools/staticdocs/assets/images/two_full_width-0116adbf994500a24d4717e002d32098f8d6197bcece510b84b90400f23feade.png
|
136
136
|
- tools/staticdocs/assets/images/view_menu-a02cfbd5e6fafa5d3b4f1ae76bfbd63f49388939b4732bf91709f48e44498d19.png
|
137
|
-
- tools/staticdocs/assets/js/019369f3.
|
138
|
-
- tools/staticdocs/assets/js/058ffc22.
|
139
|
-
- tools/staticdocs/assets/js/0686a885.
|
140
|
-
- tools/staticdocs/assets/js/078dbab0.
|
141
|
-
- tools/staticdocs/assets/js/0f5d161c.
|
142
|
-
- tools/staticdocs/assets/js/0ff569c9.
|
143
|
-
- tools/staticdocs/assets/js/103cc3be.
|
144
|
-
- tools/staticdocs/assets/js/13196248.
|
145
|
-
- tools/staticdocs/assets/js/13c1b4e4.
|
137
|
+
- tools/staticdocs/assets/js/019369f3.727d87f1.js
|
138
|
+
- tools/staticdocs/assets/js/058ffc22.f2d69d72.js
|
139
|
+
- tools/staticdocs/assets/js/0686a885.83641127.js
|
140
|
+
- tools/staticdocs/assets/js/078dbab0.945c9f59.js
|
141
|
+
- tools/staticdocs/assets/js/0f5d161c.e26d88b8.js
|
142
|
+
- tools/staticdocs/assets/js/0ff569c9.aa4daee5.js
|
143
|
+
- tools/staticdocs/assets/js/103cc3be.78f97eb1.js
|
144
|
+
- tools/staticdocs/assets/js/13196248.ca2e8950.js
|
145
|
+
- tools/staticdocs/assets/js/13c1b4e4.22a0b1d4.js
|
146
146
|
- tools/staticdocs/assets/js/1e02e6a3.e6ef8665.js
|
147
|
-
- tools/staticdocs/assets/js/2047b354.
|
148
|
-
- tools/staticdocs/assets/js/22b3ac48.
|
147
|
+
- tools/staticdocs/assets/js/2047b354.25d11993.js
|
148
|
+
- tools/staticdocs/assets/js/22b3ac48.7a5ea984.js
|
149
149
|
- tools/staticdocs/assets/js/2601.ca992ab9.js
|
150
150
|
- tools/staticdocs/assets/js/26b8abb2.dcdf815e.js
|
151
|
-
- tools/staticdocs/assets/js/2bb7bf90.
|
152
|
-
- tools/staticdocs/assets/js/
|
153
|
-
- tools/staticdocs/assets/js/
|
154
|
-
- tools/staticdocs/assets/js/
|
155
|
-
- tools/staticdocs/assets/js/
|
156
|
-
- tools/staticdocs/assets/js/
|
157
|
-
- tools/staticdocs/assets/js/
|
158
|
-
- tools/staticdocs/assets/js/53ca7c5b.
|
159
|
-
- tools/staticdocs/assets/js/54d0d530.
|
151
|
+
- tools/staticdocs/assets/js/2bb7bf90.fa05d998.js
|
152
|
+
- tools/staticdocs/assets/js/3917.1ec7d126.js
|
153
|
+
- tools/staticdocs/assets/js/3dd7ef3b.d55880a8.js
|
154
|
+
- tools/staticdocs/assets/js/40365d27.4b4b2ccd.js
|
155
|
+
- tools/staticdocs/assets/js/411898ad.1d6a609d.js
|
156
|
+
- tools/staticdocs/assets/js/42170351.c68b85e1.js
|
157
|
+
- tools/staticdocs/assets/js/43652efd.d1e1add3.js
|
158
|
+
- tools/staticdocs/assets/js/53ca7c5b.c3111020.js
|
159
|
+
- tools/staticdocs/assets/js/54d0d530.d3f9a4ac.js
|
160
160
|
- tools/staticdocs/assets/js/5723.f6123e37.js
|
161
161
|
- tools/staticdocs/assets/js/5778.7d36f1c2.js
|
162
|
-
- tools/staticdocs/assets/js/5b233ba7.
|
163
|
-
- tools/staticdocs/assets/js/5bc719f6.
|
164
|
-
- tools/staticdocs/assets/js/5c6ce5ec.
|
165
|
-
- tools/staticdocs/assets/js/5e3ed378.
|
166
|
-
- tools/staticdocs/assets/js/5fe211ef.
|
162
|
+
- tools/staticdocs/assets/js/5b233ba7.6fdd6b6c.js
|
163
|
+
- tools/staticdocs/assets/js/5bc719f6.daa2a049.js
|
164
|
+
- tools/staticdocs/assets/js/5c6ce5ec.61a9cae2.js
|
165
|
+
- tools/staticdocs/assets/js/5e3ed378.2bee863a.js
|
166
|
+
- tools/staticdocs/assets/js/5fe211ef.a9f21277.js
|
167
167
|
- tools/staticdocs/assets/js/62df909c.906d9999.js
|
168
168
|
- tools/staticdocs/assets/js/630e5448.6fea087c.js
|
169
|
-
- tools/staticdocs/assets/js/6831b732.
|
170
|
-
- tools/staticdocs/assets/js/696b4199.
|
171
|
-
- tools/staticdocs/assets/js/6b210247.
|
172
|
-
- tools/staticdocs/assets/js/6b65133b.
|
173
|
-
- tools/staticdocs/assets/js/6f92e431.
|
174
|
-
- tools/staticdocs/assets/js/72c6d8a8.
|
169
|
+
- tools/staticdocs/assets/js/6831b732.185eb427.js
|
170
|
+
- tools/staticdocs/assets/js/696b4199.a5ae3d65.js
|
171
|
+
- tools/staticdocs/assets/js/6b210247.e96f3982.js
|
172
|
+
- tools/staticdocs/assets/js/6b65133b.4e84b1c2.js
|
173
|
+
- tools/staticdocs/assets/js/6f92e431.65aa0240.js
|
174
|
+
- tools/staticdocs/assets/js/72c6d8a8.98daa27a.js
|
175
175
|
- tools/staticdocs/assets/js/75897369.7b31b03e.js
|
176
|
-
- tools/staticdocs/assets/js/75e64983.
|
176
|
+
- tools/staticdocs/assets/js/75e64983.6ef0928b.js
|
177
177
|
- tools/staticdocs/assets/js/7760.7f593c4f.js
|
178
178
|
- tools/staticdocs/assets/js/7760.7f593c4f.js.LICENSE.txt
|
179
179
|
- tools/staticdocs/assets/js/7f5b2696.60735273.js
|
180
|
-
- tools/staticdocs/assets/js/867640d5.
|
181
|
-
- tools/staticdocs/assets/js/89e76475.
|
182
|
-
- tools/staticdocs/assets/js/8f7843ee.
|
183
|
-
- tools/staticdocs/assets/js/9424f0b3.
|
184
|
-
- tools/staticdocs/assets/js/97535711.
|
185
|
-
- tools/staticdocs/assets/js/99581c43.
|
180
|
+
- tools/staticdocs/assets/js/867640d5.48133ad5.js
|
181
|
+
- tools/staticdocs/assets/js/89e76475.13ce283b.js
|
182
|
+
- tools/staticdocs/assets/js/8f7843ee.7a68246a.js
|
183
|
+
- tools/staticdocs/assets/js/9424f0b3.61c6bd97.js
|
184
|
+
- tools/staticdocs/assets/js/97535711.5311ddd9.js
|
185
|
+
- tools/staticdocs/assets/js/99581c43.527aab44.js
|
186
186
|
- tools/staticdocs/assets/js/9d6e81d0.c31feabc.js
|
187
|
-
- tools/staticdocs/assets/js/9fb6059a.
|
188
|
-
- tools/staticdocs/assets/js/a507c363.
|
189
|
-
- tools/staticdocs/assets/js/a677c089.
|
190
|
-
- tools/staticdocs/assets/js/a9987364.
|
191
|
-
- tools/staticdocs/assets/js/aa6b6c1b.
|
192
|
-
- tools/staticdocs/assets/js/b4596165.
|
193
|
-
- tools/staticdocs/assets/js/b6d70f94.
|
194
|
-
- tools/staticdocs/assets/js/b9f60ba6.
|
195
|
-
- tools/staticdocs/assets/js/bd0034eb.
|
196
|
-
- tools/staticdocs/assets/js/c24eae19.
|
187
|
+
- tools/staticdocs/assets/js/9fb6059a.a5107afb.js
|
188
|
+
- tools/staticdocs/assets/js/a507c363.d2cc5d72.js
|
189
|
+
- tools/staticdocs/assets/js/a677c089.abc52ace.js
|
190
|
+
- tools/staticdocs/assets/js/a9987364.5ef1644f.js
|
191
|
+
- tools/staticdocs/assets/js/aa6b6c1b.c51c044d.js
|
192
|
+
- tools/staticdocs/assets/js/b4596165.daa24b72.js
|
193
|
+
- tools/staticdocs/assets/js/b6d70f94.4923c793.js
|
194
|
+
- tools/staticdocs/assets/js/b9f60ba6.e55cd937.js
|
195
|
+
- tools/staticdocs/assets/js/bd0034eb.6691ccc4.js
|
196
|
+
- tools/staticdocs/assets/js/c24eae19.251e0038.js
|
197
197
|
- tools/staticdocs/assets/js/c2598f55.c5a1bac3.js
|
198
198
|
- tools/staticdocs/assets/js/c5388ca4.f526bb0c.js
|
199
|
-
- tools/staticdocs/assets/js/cb8c3f08.
|
200
|
-
- tools/staticdocs/assets/js/cd879be4.
|
199
|
+
- tools/staticdocs/assets/js/cb8c3f08.b82ad06f.js
|
200
|
+
- tools/staticdocs/assets/js/cd879be4.f956406f.js
|
201
201
|
- tools/staticdocs/assets/js/ce89ef36.aa518a52.js
|
202
|
-
- tools/staticdocs/assets/js/d1b923aa.
|
203
|
-
- tools/staticdocs/assets/js/d1bfc316.
|
204
|
-
- tools/staticdocs/assets/js/d24bf9b6.
|
205
|
-
- tools/staticdocs/assets/js/d57a4b5d.
|
206
|
-
- tools/staticdocs/assets/js/d5d77c37.
|
207
|
-
- tools/staticdocs/assets/js/d8ca4191.
|
208
|
-
- tools/staticdocs/assets/js/d9b92eba.
|
209
|
-
- tools/staticdocs/assets/js/db8fa1d0.
|
210
|
-
- tools/staticdocs/assets/js/dc5f7beb.
|
202
|
+
- tools/staticdocs/assets/js/d1b923aa.d6bafb72.js
|
203
|
+
- tools/staticdocs/assets/js/d1bfc316.0a5ff560.js
|
204
|
+
- tools/staticdocs/assets/js/d24bf9b6.6c422113.js
|
205
|
+
- tools/staticdocs/assets/js/d57a4b5d.8f23a506.js
|
206
|
+
- tools/staticdocs/assets/js/d5d77c37.70fdbbc6.js
|
207
|
+
- tools/staticdocs/assets/js/d8ca4191.2349d796.js
|
208
|
+
- tools/staticdocs/assets/js/d9b92eba.8f82360d.js
|
209
|
+
- tools/staticdocs/assets/js/db8fa1d0.8f1b2c9f.js
|
210
|
+
- tools/staticdocs/assets/js/dc5f7beb.e3a82d1e.js
|
211
211
|
- tools/staticdocs/assets/js/dfbae5fd.d1484e14.js
|
212
|
-
- tools/staticdocs/assets/js/e501b0d1.
|
213
|
-
- tools/staticdocs/assets/js/ebec1ccb.
|
214
|
-
- tools/staticdocs/assets/js/f15615f1.
|
215
|
-
- tools/staticdocs/assets/js/fd886806.
|
216
|
-
- tools/staticdocs/assets/js/main.
|
217
|
-
- tools/staticdocs/assets/js/main.
|
218
|
-
- tools/staticdocs/assets/js/runtime~main.
|
212
|
+
- tools/staticdocs/assets/js/e501b0d1.0b407477.js
|
213
|
+
- tools/staticdocs/assets/js/ebec1ccb.9bea92b0.js
|
214
|
+
- tools/staticdocs/assets/js/f15615f1.5c433923.js
|
215
|
+
- tools/staticdocs/assets/js/fd886806.4a41fa80.js
|
216
|
+
- tools/staticdocs/assets/js/main.b5390098.js
|
217
|
+
- tools/staticdocs/assets/js/main.b5390098.js.LICENSE.txt
|
218
|
+
- tools/staticdocs/assets/js/runtime~main.12d1e41d.js
|
219
219
|
- tools/staticdocs/docs.html
|
220
220
|
- tools/staticdocs/docs/configuration.html
|
221
221
|
- tools/staticdocs/docs/configuration/command.html
|
@@ -464,10 +464,10 @@ files:
|
|
464
464
|
- tools/staticdocs/img/telemetry_viewer/new_screen.png
|
465
465
|
- tools/staticdocs/img/telemetry_viewer/telemetry_viewer.png
|
466
466
|
- tools/staticdocs/index.html
|
467
|
-
- tools/staticdocs/lunr-index-
|
467
|
+
- tools/staticdocs/lunr-index-1724101625047.json
|
468
468
|
- tools/staticdocs/lunr-index.json
|
469
469
|
- tools/staticdocs/markdown-page.html
|
470
|
-
- tools/staticdocs/search-doc-
|
470
|
+
- tools/staticdocs/search-doc-1724101625047.json
|
471
471
|
- tools/staticdocs/search-doc.json
|
472
472
|
- tools/staticdocs/sitemap.xml
|
473
473
|
homepage: https://github.com/OpenC3/cosmos
|
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";(self.webpackChunkdocs_openc3_com=self.webpackChunkdocs_openc3_com||[]).push([[5425],{8154:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>r,default:()=>l,frontMatter:()=>s,metadata:()=>c,toc:()=>d});var o=n(1085),a=n(1184);const s={title:"Markdown page example"},r="Markdown page example",c={type:"mdx",permalink:"/tools/staticdocs/markdown-page",source:"@site/src/pages/markdown-page.md",title:"Markdown page example",description:"You don't need React to write simple standalone pages.",frontMatter:{title:"Markdown page example"},unlisted:!1},p={},d=[];function i(e){const t={h1:"h1",p:"p",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h1,{id:"markdown-page-example",children:"Markdown page example"}),"\n",(0,o.jsx)(t.p,{children:"You don't need React to write simple standalone pages."})]})}function l(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(i,{...e})}):i(e)}},1184:(e,t,n)=>{n.d(t,{R:()=>r});var o=n(4041);const a={},s=o.createContext(a);function r(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}}}]);
|
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";(self.webpackChunkdocs_openc3_com=self.webpackChunkdocs_openc3_com||[]).push([[8150],{5716:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>t,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>a});var r=s(1085),i=s(1184);const o={title:"Raspberry Pi"},t=void 0,l={id:"guides/raspberrypi",title:"Raspberry Pi",description:"COSMOS Running on Raspberry Pi 4",source:"@site/docs/guides/raspberrypi.md",sourceDirName:"guides",slug:"/guides/raspberrypi",permalink:"/tools/staticdocs/docs/guides/raspberrypi",draft:!1,unlisted:!1,editUrl:"https://github.com/OpenC3/cosmos/tree/main/docs.openc3.com/docs/guides/raspberrypi.md",tags:[],version:"current",frontMatter:{title:"Raspberry Pi"},sidebar:"defaultSidebar",previous:{title:"Performance",permalink:"/tools/staticdocs/docs/guides/performance"},next:{title:"Script Writing Guide",permalink:"/tools/staticdocs/docs/guides/script-writing"}},c={},a=[{value:"COSMOS Running on Raspberry Pi 4",id:"cosmos-running-on-raspberry-pi-4",level:3}];function d(e){const n={a:"a",code:"code",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h3,{id:"cosmos-running-on-raspberry-pi-4",children:"COSMOS Running on Raspberry Pi 4"}),"\n",(0,r.jsx)(n.p,{children:"The Raspberry Pi 4 is a low-cost powerful ARM-based minicomputer that runs linux. And because it runs modern linux, it can also run COSMOS! These directions will get you up and running."}),"\n",(0,r.jsx)(n.p,{children:"What you'll need:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Raspberry Pi 4 board (tested with 8GB RAM)"}),"\n",(0,r.jsx)(n.li,{children:"A Pi Case but Optional"}),"\n",(0,r.jsx)(n.li,{children:"Raspbeerry Pi Power Supply"}),"\n",(0,r.jsx)(n.li,{children:"32GB or Larger SD Card - Also faster the better"}),"\n",(0,r.jsx)(n.li,{children:"A Laptop with a way to write SD Cards"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Let's get started!"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Setup 64-bit Raspian OS Lite on the SD Card"}),"\n",(0,r.jsxs)(n.p,{children:["Make sure you have the Raspberry Pi Imager app from: ",(0,r.jsx)(n.a,{href:"https://www.raspberrypi.com/software/",children:"https://www.raspberrypi.com/software/"})]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"Insert the SD Card into your computer (Note this process will erase all data on the SD card!)"}),"\n",(0,r.jsx)(n.li,{children:"Open the Raspberry Pi Imager App"}),"\n",(0,r.jsx)(n.li,{children:'Click the "Choose Device" Button'}),"\n",(0,r.jsx)(n.li,{children:"Pick Your Raspberry Pi Model"}),"\n",(0,r.jsx)(n.li,{children:'Click the "Choose OS" Button'}),"\n",(0,r.jsx)(n.li,{children:'Select "Raspberry Pi OS (other)"'}),"\n",(0,r.jsx)(n.li,{children:'Select "Raspberry Pi OS Lite (64-bit)"'}),"\n",(0,r.jsx)(n.li,{children:'Click the "Choose Storage" Button'}),"\n",(0,r.jsx)(n.li,{children:"Select Your SD Card"}),"\n",(0,r.jsx)(n.li,{children:"Click Edit Settings"}),"\n",(0,r.jsx)(n.li,{children:"If prompted if you would like to prefill the Wifi information, select OK"}),"\n",(0,r.jsx)(n.li,{children:"Set the hostname to: cosmos.local"}),"\n",(0,r.jsx)(n.li,{children:"Set the username and password. The default username is your username, you should also set a password to make the system secure"}),"\n",(0,r.jsx)(n.li,{children:"Fill in your Wifi info, and set the country appropriately (ie. US)"}),"\n",(0,r.jsx)(n.li,{children:"Set the correct time zone"}),"\n",(0,r.jsx)(n.li,{children:"Goto the Services Tab and Enable SSH"}),"\n",(0,r.jsx)(n.li,{children:"You can either use Password auth, or public-key only if your computer is already setup for passwordless SSH"}),"\n",(0,r.jsx)(n.li,{children:'Goto the Options tab and make sure "Enable Telemetry" is not checked'}),"\n",(0,r.jsx)(n.li,{children:'Click "Save" when everything is filled out'}),"\n",(0,r.jsx)(n.li,{children:'Click "Yes" to apply OS Customization Settings, Yes to Are You Sure, and Wait for it to complete'}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Make sure the Raspberry Pi is NOT powered on"}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Remove the SD Card from your computer and insert into the Raspberry Pi"}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Apply power to the Raspberry Pi and wait approximately 1 minute for it to boot"}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"SSH to your raspberry Pi"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Open a terminal window and use ssh to connect to your Pi"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["On Mac / Linux: ssh ",(0,r.jsx)(n.a,{href:"mailto:yourusername@cosmos.local",children:"yourusername@cosmos.local"})]}),"\n",(0,r.jsx)(n.li,{children:"On Windows, use Putty to connect. You will probably have to install Bonjour for Windows for .local addresses to work as well."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"From SSH, Enter the following commands"}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:" sudo sysctl -w vm.max_map_count=262144\n sudo sysctl -w vm.overcommit_memory=1\n sudo apt update\n sudo apt upgrade\n sudo apt install git -y\n curl -fsSL https://get.docker.com -o get-docker.sh\n sudo sh get-docker.sh\n sudo usermod -aG docker $USER\n newgrp docker\n git clone https://github.com/OpenC3/cosmos-project.git cosmos\n cd cosmos\n # Edit compose.yaml and remove 127.0.0.1: from the ports section of the openc3-traefik service\n ./openc3.sh run\n"})}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["After about 2 minutes, open a web browser on your computer, and goto: ",(0,r.jsx)(n.a,{href:"http://cosmos.local:2900",children:"http://cosmos.local:2900"})]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Congratulations! You now have COSMOS running on a Raspberry Pi!"}),"\n"]}),"\n"]})]})}function p(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},1184:(e,n,s)=>{s.d(n,{R:()=>t});var r=s(4041);const i={},o=r.createContext(i);function t(e){const n=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}}}]);
|
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";(self.webpackChunkdocs_openc3_com=self.webpackChunkdocs_openc3_com||[]).push([[5750],{2793:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>d,default:()=>A,frontMatter:()=>s,metadata:()=>o,toc:()=>c});var n=i(1085),a=i(1184);const s={title:"Data Extractor"},d=void 0,o={id:"tools/data-extractor",title:"Data Extractor",description:"Introduction",source:"@site/docs/tools/data-extractor.md",sourceDirName:"tools",slug:"/tools/data-extractor",permalink:"/tools/staticdocs/docs/tools/data-extractor",draft:!1,unlisted:!1,editUrl:"https://github.com/OpenC3/cosmos/tree/main/docs.openc3.com/docs/tools/data-extractor.md",tags:[],version:"current",frontMatter:{title:"Data Extractor"},sidebar:"defaultSidebar",previous:{title:"Command and Telemetry Server",permalink:"/tools/staticdocs/docs/tools/cmd-tlm-server"},next:{title:"Data Viewer",permalink:"/tools/staticdocs/docs/tools/data-viewer"}},l={},c=[{value:"Introduction",id:"introduction",level:2},{value:"Data Extractor Menus",id:"data-extractor-menus",level:2},{value:"File Menu Items",id:"file-menu-items",level:3},{value:"Open Configuration",id:"open-configuration",level:4},{value:"Save Configuration",id:"save-configuration",level:4},{value:"Mode Menu Items",id:"mode-menu-items",level:3},{value:"Selecting Items for Output",id:"selecting-items-for-output",level:2},{value:"Start/End Date/Time",id:"startend-datetime",level:3},{value:"Adding Target(s) Packet(s) Item(s)",id:"adding-targets-packets-items",level:3},{value:"Removing Items",id:"removing-items",level:3},{value:"Editing Items",id:"editing-items",level:3},{value:"Processing Items",id:"processing-items",level:2}];function r(e){const t={h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",ul:"ul",...(0,a.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"introduction",children:"Introduction"}),"\n",(0,n.jsx)(t.p,{children:"Data Extractor extracts command and telemetry items into comma or tab separated files. Individual items or entire packets can be processed over any time period. Data Extractor also has a number of options to control the output for post processing in Excel or Matlab, for example."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Data Extractor",src:i(2994).A+"",width:"1271",height:"728"})}),"\n",(0,n.jsx)(t.h2,{id:"data-extractor-menus",children:"Data Extractor Menus"}),"\n",(0,n.jsx)(t.h3,{id:"file-menu-items",children:"File Menu Items"}),"\n",(0,n.jsx)("img",{src:i(8441).A,alt:"File Menu",style:{float:"left","margin-right":"50px",height:"150px"}}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Opens a saved configuration"}),"\n",(0,n.jsx)(t.li,{children:"Save the current configuration (item list)"}),"\n",(0,n.jsx)(t.li,{children:"Reset the configuration (default settings)"}),"\n",(0,n.jsx)(t.li,{children:"Delimit output with commas"}),"\n",(0,n.jsx)(t.li,{children:"Delimit output with tabs"}),"\n"]}),"\n",(0,n.jsx)(t.h4,{id:"open-configuration",children:"Open Configuration"}),"\n",(0,n.jsx)(t.p,{children:"The Open Configuration dialog displays a list of all saved configurations. You select a configuration and then click Ok to load it. You can delete existing configurations by clicking the Trash icon next to a configuration name."}),"\n",(0,n.jsx)(t.h4,{id:"save-configuration",children:"Save Configuration"}),"\n",(0,n.jsx)(t.p,{children:"The Save Configuration dialog also displays a list of all saved configurations. You click the Configuration Name text field, enter the name of your new configuration, and click Ok to save. You can delete existing configurations by clicking the Trash icon next to a configuration name."}),"\n",(0,n.jsx)(t.h3,{id:"mode-menu-items",children:"Mode Menu Items"}),"\n",(0,n.jsx)("img",{src:i(2132).A,alt:"Mode Menu",style:{float:"left","margin-right":"50px",height:"150px"}}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Fill empty cells with the previous value"}),"\n",(0,n.jsx)(t.li,{children:"Add a Matlab comment ('%') to the header"}),"\n",(0,n.jsx)(t.li,{children:"Only output changed values"}),"\n",(0,n.jsx)(t.li,{children:"Only list item name as column header"}),"\n",(0,n.jsx)(t.li,{children:"List full Target Packet Item as header"}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"selecting-items-for-output",children:"Selecting Items for Output"}),"\n",(0,n.jsx)(t.h3,{id:"startend-datetime",children:"Start/End Date/Time"}),"\n",(0,n.jsx)(t.p,{children:"Data Extractor provides text fields where you specify the time range to extract items. Clicking the Start Date and End Date text fields opens a Date Chooser dialog. Note you can also manually type in the date. Clicking the Start Time and End Time icon opens up a Time Chooser dialog. Note you can also manually type in the time."}),"\n",(0,n.jsx)(t.h3,{id:"adding-targets-packets-items",children:"Adding Target(s) Packet(s) Item(s)"}),"\n",(0,n.jsx)(t.p,{children:'Data Extractor provides Target, Packet, Item drop downs to select the items you want to export. When you select a Target the Packet drop down defaults to [All] which sets the button to "Add Target". This would add EVERY item defined in EVERY packet in the target. Note: This can be a LOT of telemetry points but any added point can be removed.'}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Select Target",src:i(9780).A+"",width:"1276",height:"630"})}),"\n",(0,n.jsx)(t.p,{children:'When you select a Packet the Item drop down defaults to [All] which sets the button to "Add Packet". This would add EVERY item defined in the specified packet. Note: This can be a LOT of telemetry points but any added point can be removed.'}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Select Packet",src:i(8375).A+"",width:"1276",height:"629"})}),"\n",(0,n.jsx)(t.p,{children:'When you select an individual Item the button changes to "Add Item" and the Description field updates with the item\'s description.'}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Select Item",src:i(8898).A+"",width:"1276",height:"601"})}),"\n",(0,n.jsx)(t.h3,{id:"removing-items",children:"Removing Items"}),"\n",(0,n.jsx)(t.p,{children:"Once you've added items the Items table will have a list of items. Items can be removed by clicking the Trash icon next to the item. ALL items can be removed by clicking the Trash icon in the header."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Delete All Mouseover",src:i(920).A+"",width:"391",height:"129"})}),"\n",(0,n.jsx)(t.h3,{id:"editing-items",children:"Editing Items"}),"\n",(0,n.jsx)(t.p,{children:"Items can be edited by clicking the Pencil icon next to the item. ALL items can be edited by clicking the pencil icon in the header."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Edit All Mouseover",src:i(3857).A+"",width:"375",height:"124"})}),"\n",(0,n.jsx)(t.p,{children:"Clicking the Edit All brings up the Edit All Items dialog."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Edit All",src:i(7670).A+"",width:"599",height:"382"})}),"\n",(0,n.jsx)(t.p,{children:"This allows you to change the data type of all items in the list. Clicking the pencil next to an individual item brings up a similar dialog to edit the individual item."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Edit TEMP1",src:i(4049).A+"",width:"599",height:"382"})}),"\n",(0,n.jsx)(t.h2,{id:"processing-items",children:"Processing Items"}),"\n",(0,n.jsx)(t.p,{children:"Clicking the Process button starts the processing of the items list. A progress wheel is shown on the left side of the table and the Process button changes to Cancel to allow cancelling the process."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Processing",src:i(4106).A+"",width:"1273",height:"630"})}),"\n",(0,n.jsx)(t.p,{children:"When the processing is complete, the browser shows a file download link. Note this varies by browser. This example is from Chrome."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Processing Done",src:i(3367).A+"",width:"1273",height:"630"})})]})}function A(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(r,{...e})}):r(e)}},8441:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/file_menu-7880f656c65d1c95d94f11d85f83f1fb2cf1e743397022902485e1330467bdb4.png"},2132:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/mode_menu-9ff9a2c1b2cae1eb15a7bd95c0d2bd939cf8f183a083edfcb2b70748dd1bbfe1.png"},8898:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/add_item-4e7c51e0d6a7304260097ccfe8a64d7f2d2b428dba9758070a618ca0dcc89457.png"},8375:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/add_packet-74322c89982856286103da2c91c4246a4a8aa319c216bc1c169515ab28381cd6.png"},9780:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/add_target-f1f0d16faf5f3c1ecdfe3daa90d44d082053845d5f7a59e988d90ff0b5ba00ff.png"},2994:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/data_extractor-e0cd7006244f50f7d1811ee3f287b300aa3ccfb09f4716e1dd9990d1cc38a510.png"},920:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/delete_all_mouseover-e45ea88fcc088c18c88e03ddad5ad6fa9fa3869f67c1548bdfb3da447eceb228.png"},7670:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/edit_all_items-1de8be31edb8443427b834f03efea4ac5bceb722e5da0c0b38b2d006ff4364a7.png"},3857:(e,t,i)=>{i.d(t,{A:()=>n});const n="data:image/png;base64,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"},4049:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/edit_temp1-545919bb22c6882d3b02cd4a4d8b9410b69e410c958b4472b8a643f48889f434.png"},4106:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/processing-25c56ec1beef6f8df3db085378c31d2dd44289280414497d87ce8d12b4beebb9.png"},3367:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/processing_done-1d74097c066b6067e07a73735626dbff19f3102599c548b3874eb4f52ad5335d.png"},1184:(e,t,i)=>{i.d(t,{R:()=>d});var n=i(4041);const a={},s=n.createContext(a);function d(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}}}]);
|
@@ -1 +0,0 @@
|
|
1
|
-
(self.webpackChunkdocs_openc3_com=self.webpackChunkdocs_openc3_com||[]).push([[4650],{1167:(e,t,n)=>{"use strict";n.d(t,{A:()=>E});var s=n(4041),o=n(1085);function a(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=s.Children.toArray(e),n=t.find((e=>s.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),a=t.filter((e=>e!==n)),c=n?.props.children;return{mdxAdmonitionTitle:c,rest:a.length>0?(0,o.jsx)(o.Fragment,{children:a}):null}}(e.children),a=e.title??t;return{...e,...a&&{title:a},children:n}}var c=n(4357),i=n(9082),r=n(7473);const l={admonition:"admonition_IZjC",admonitionHeading:"admonitionHeading_uVvU",admonitionIcon:"admonitionIcon_HiR3",admonitionContent:"admonitionContent_bl22"};function d(e){let{type:t,className:n,children:s}=e;return(0,o.jsx)("div",{className:(0,c.A)(r.G.common.admonition,r.G.common.admonitionType(t),l.admonition,n),children:s})}function u(e){let{icon:t,title:n}=e;return(0,o.jsxs)("div",{className:l.admonitionHeading,children:[(0,o.jsx)("span",{className:l.admonitionIcon,children:t}),n]})}function m(e){let{children:t}=e;return t?(0,o.jsx)("div",{className:l.admonitionContent,children:t}):null}function h(e){const{type:t,icon:n,title:s,children:a,className:c}=e;return(0,o.jsxs)(d,{type:t,className:c,children:[s||n?(0,o.jsx)(u,{title:s,icon:n}):null,(0,o.jsx)(m,{children:a})]})}function f(e){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const p={icon:(0,o.jsx)(f,{}),title:(0,o.jsx)(i.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function x(e){return(0,o.jsx)(h,{...p,...e,className:(0,c.A)("alert alert--secondary",e.className),children:e.children})}function g(e){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const v={icon:(0,o.jsx)(g,{}),title:(0,o.jsx)(i.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function j(e){return(0,o.jsx)(h,{...v,...e,className:(0,c.A)("alert alert--success",e.className),children:e.children})}function b(e){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const N={icon:(0,o.jsx)(b,{}),title:(0,o.jsx)(i.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function y(e){return(0,o.jsx)(h,{...N,...e,className:(0,c.A)("alert alert--info",e.className),children:e.children})}function A(e){return(0,o.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const C={icon:(0,o.jsx)(A,{}),title:(0,o.jsx)(i.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function k(e){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const B={icon:(0,o.jsx)(k,{}),title:(0,o.jsx)(i.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const w={icon:(0,o.jsx)(A,{}),title:(0,o.jsx)(i.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const L={...{note:x,tip:j,info:y,warning:function(e){return(0,o.jsx)(h,{...C,...e,className:(0,c.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,o.jsx)(h,{...B,...e,className:(0,c.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,o.jsx)(x,{title:"secondary",...e}),important:e=>(0,o.jsx)(y,{title:"important",...e}),success:e=>(0,o.jsx)(j,{title:"success",...e}),caution:function(e){return(0,o.jsx)(h,{...w,...e,className:(0,c.A)("alert alert--warning",e.className),children:e.children})}}};function E(e){const t=a(e),n=(s=t.type,L[s]||(console.warn(`No admonition component found for admonition type "${s}". Using Info as fallback.`),L.info));var s;return(0,o.jsx)(n,{...t})}},3412:(e,t,n)=>{"use strict";n.d(t,{A:()=>g});n(4041);var s=n(4357),o=n(9082),a=n(7473),c=n(2436);const i={iconEdit:"iconEdit_UohW"};var r=n(1085);function l(e){let{className:t,...n}=e;return(0,r.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,s.A)(i.iconEdit,t),"aria-hidden":"true",...n,children:(0,r.jsx)("g",{children:(0,r.jsx)("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"})})})}function d(e){let{editUrl:t}=e;return(0,r.jsxs)(c.A,{to:t,className:a.G.common.editThisPage,children:[(0,r.jsx)(l,{}),(0,r.jsx)(o.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}var u=n(396);function m(e){void 0===e&&(e={});const{i18n:{currentLocale:t}}=(0,u.A)(),n=function(){const{i18n:{currentLocale:e,localeConfigs:t}}=(0,u.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,{calendar:n,...e})}function h(e){let{lastUpdatedAt:t}=e;const n=new Date(t),s=m({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(n);return(0,r.jsx)(o.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,r.jsx)("b",{children:(0,r.jsx)("time",{dateTime:n.toISOString(),itemProp:"dateModified",children:s})})},children:" on {date}"})}function f(e){let{lastUpdatedBy:t}=e;return(0,r.jsx)(o.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,r.jsx)("b",{children:t})},children:" by {user}"})}function p(e){let{lastUpdatedAt:t,lastUpdatedBy:n}=e;return(0,r.jsxs)("span",{className:a.G.common.lastUpdated,children:[(0,r.jsx)(o.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t?(0,r.jsx)(h,{lastUpdatedAt:t}):"",byUser:n?(0,r.jsx)(f,{lastUpdatedBy:n}):""},children:"Last updated{atDate}{byUser}"}),!1]})}const x={lastUpdated:"lastUpdated_g62E"};function g(e){let{className:t,editUrl:n,lastUpdatedAt:o,lastUpdatedBy:a}=e;return(0,r.jsxs)("div",{className:(0,s.A)("row",t),children:[(0,r.jsx)("div",{className:"col",children:n&&(0,r.jsx)(d,{editUrl:n})}),(0,r.jsx)("div",{className:(0,s.A)("col",x.lastUpdated),children:(o||a)&&(0,r.jsx)(p,{lastUpdatedAt:o,lastUpdatedBy:a})})]})}},5604:(e,t,n)=>{"use strict";n.d(t,{A:()=>le});var s=n(4041);const o={},a=s.createContext(o);function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:function(e){const t=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}(e.components),s.createElement(a.Provider,{value:t},e.children)}var i=n(9058),r=n(213),l=n(4357),d=n(2727),u=n(2520);function m(){const{prism:e}=(0,u.p)(),{colorMode:t}=(0,d.G)(),n=e.theme,s=e.darkTheme||n;return"dark"===t?s:n}var h=n(7473),f=n(1431),p=n.n(f);const x=/title=(?<quote>["'])(?<title>.*?)\1/,g=/\{(?<range>[\d,-]+)\}/,v={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}},j={...v,lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},b=Object.keys(v);function N(e,t){const n=e.map((e=>{const{start:n,end:s}=j[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${s})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function y(e,t){let n=e.replace(/\n$/,"");const{language:s,magicComments:o,metastring:a}=t;if(a&&g.test(a)){const e=a.match(g).groups.range;if(0===o.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${a}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=o[0].className,s=p()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(s),code:n}}if(void 0===s)return{lineClassNames:{},code:n};const c=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return N(["js","jsBlock"],t);case"jsx":case"tsx":return N(["js","jsBlock","jsx"],t);case"html":return N(["js","jsBlock","html"],t);case"python":case"py":case"bash":return N(["bash"],t);case"markdown":case"md":return N(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return N(["tex"],t);case"lua":case"haskell":case"sql":return N(["lua"],t);case"wasm":return N(["wasm"],t);case"vb":case"vba":case"visual-basic":return N(["vb","rem"],t);case"vbnet":return N(["vbnet","rem"],t);case"batch":return N(["rem"],t);case"basic":return N(["rem","f90"],t);case"fsharp":return N(["js","ml"],t);case"ocaml":case"sml":return N(["ml"],t);case"fortran":return N(["f90"],t);case"cobol":return N(["cobol"],t);default:return N(b,t)}}(s,o),i=n.split("\n"),r=Object.fromEntries(o.map((e=>[e.className,{start:0,range:""}]))),l=Object.fromEntries(o.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),u=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let h=0;h<i.length;){const e=i[h].match(c);if(!e){h+=1;continue}const t=e.slice(1).find((e=>void 0!==e));l[t]?r[l[t]].range+=`${h},`:d[t]?r[d[t]].start=h:u[t]&&(r[u[t]].range+=`${r[u[t]].start}-${h-1},`),i.splice(h,1)}n=i.join("\n");const m={};return Object.entries(r).forEach((e=>{let[t,{range:n}]=e;p()(n).forEach((e=>{m[e]??=[],m[e].push(t)}))})),{lineClassNames:m,code:n}}const A={codeBlockContainer:"codeBlockContainer_ZGJx"};var C=n(1085);function k(e){let{as:t,...n}=e;const s=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[s,o]=e;const a=t[s];a&&"string"==typeof o&&(n[a]=o)})),n}(m());return(0,C.jsx)(t,{...n,style:s,className:(0,l.A)(n.className,A.codeBlockContainer,h.G.common.codeBlock)})}const B={codeBlockContent:"codeBlockContent_qZBB",codeBlockTitle:"codeBlockTitle_zAEH",codeBlock:"codeBlock_TAPP",codeBlockStandalone:"codeBlockStandalone_K9VJ",codeBlockLines:"codeBlockLines_AdAo",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_p5De",buttonGroup:"buttonGroup_TNwR"};function w(e){let{children:t,className:n}=e;return(0,C.jsx)(k,{as:"pre",tabIndex:0,className:(0,l.A)(B.codeBlockStandalone,"thin-scrollbar",n),children:(0,C.jsx)("code",{className:B.codeBlockLines,children:t})})}var L=n(1786);const E={attributes:!0,characterData:!0,childList:!0,subtree:!0};function T(e,t){const[n,o]=(0,s.useState)(),a=(0,s.useCallback)((()=>{o(e.current?.closest("[role=tabpanel][hidden]"))}),[e,o]);(0,s.useEffect)((()=>{a()}),[a]),function(e,t,n){void 0===n&&(n=E);const o=(0,L._q)(t),a=(0,L.Be)(n);(0,s.useEffect)((()=>{const t=new MutationObserver(o);return e&&t.observe(e,a),()=>t.disconnect()}),[e,o,a])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),a())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}var H=n(4370);const _={codeLine:"codeLine_DPDv",codeLineNumber:"codeLineNumber_YxQB",codeLineContent:"codeLineContent_SOIp"};function S(e){let{line:t,classNames:n,showLineNumbers:s,getLineProps:o,getTokenProps:a}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const c=o({line:t,className:(0,l.A)(n,s&&_.codeLine)}),i=t.map(((e,t)=>(0,C.jsx)("span",{...a({token:e})},t)));return(0,C.jsxs)("span",{...c,children:[s?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)("span",{className:_.codeLineNumber}),(0,C.jsx)("span",{className:_.codeLineContent,children:i})]}):i,(0,C.jsx)("br",{})]})}var I=n(9082);function M(e){return(0,C.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,C.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})})}function U(e){return(0,C.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,C.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}const z={copyButtonCopied:"copyButtonCopied_Mzdr",copyButtonIcons:"copyButtonIcons_MVhB",copyButtonIcon:"copyButtonIcon_yxgH",copyButtonSuccessIcon:"copyButtonSuccessIcon_QJLJ"};function R(e){let{code:t,className:n}=e;const[o,a]=(0,s.useState)(!1),c=(0,s.useRef)(void 0),i=(0,s.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const s=document.createElement("textarea"),o=document.activeElement;s.value=e,s.setAttribute("readonly",""),s.style.contain="strict",s.style.position="absolute",s.style.left="-9999px",s.style.fontSize="12pt";const a=document.getSelection(),c=a.rangeCount>0&&a.getRangeAt(0);n.append(s),s.select(),s.selectionStart=0,s.selectionEnd=e.length;let i=!1;try{i=document.execCommand("copy")}catch{}s.remove(),c&&(a.removeAllRanges(),a.addRange(c)),o&&o.focus()}(t),a(!0),c.current=window.setTimeout((()=>{a(!1)}),1e3)}),[t]);return(0,s.useEffect)((()=>()=>window.clearTimeout(c.current)),[]),(0,C.jsx)("button",{type:"button","aria-label":o?(0,I.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,I.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,I.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,l.A)("clean-btn",n,z.copyButton,o&&z.copyButtonCopied),onClick:i,children:(0,C.jsxs)("span",{className:z.copyButtonIcons,"aria-hidden":"true",children:[(0,C.jsx)(M,{className:z.copyButtonIcon}),(0,C.jsx)(U,{className:z.copyButtonSuccessIcon})]})})}function O(e){return(0,C.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,C.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})})}const V={wordWrapButtonIcon:"wordWrapButtonIcon_SMj9",wordWrapButtonEnabled:"wordWrapButtonEnabled_vR9E"};function $(e){let{className:t,onClick:n,isEnabled:s}=e;const o=(0,I.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,C.jsx)("button",{type:"button",onClick:n,className:(0,l.A)("clean-btn",t,s&&V.wordWrapButtonEnabled),"aria-label":o,title:o,children:(0,C.jsx)(O,{className:V.wordWrapButtonIcon,"aria-hidden":"true"})})}function D(e){let{children:t,className:n="",metastring:o,title:a,showLineNumbers:c,language:i}=e;const{prism:{defaultLanguage:r,magicComments:d}}=(0,u.p)(),h=function(e){return e?.toLowerCase()}(i??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??r),f=m(),p=function(){const[e,t]=(0,s.useState)(!1),[n,o]=(0,s.useState)(!1),a=(0,s.useRef)(null),c=(0,s.useCallback)((()=>{const n=a.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[a,e]),i=(0,s.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=a.current,n=e>t||a.current.querySelector("code").hasAttribute("style");o(n)}),[a]);return T(a,i),(0,s.useEffect)((()=>{i()}),[e,i]),(0,s.useEffect)((()=>(window.addEventListener("resize",i,{passive:!0}),()=>{window.removeEventListener("resize",i)})),[i]),{codeBlockRef:a,isEnabled:e,isCodeScrollable:n,toggle:c}}(),g=function(e){return e?.match(x)?.groups.title??""}(o)||a,{lineClassNames:v,code:j}=y(t,{metastring:o,language:h,magicComments:d}),b=c??function(e){return Boolean(e?.includes("showLineNumbers"))}(o);return(0,C.jsxs)(k,{as:"div",className:(0,l.A)(n,h&&!n.includes(`language-${h}`)&&`language-${h}`),children:[g&&(0,C.jsx)("div",{className:B.codeBlockTitle,children:g}),(0,C.jsxs)("div",{className:B.codeBlockContent,children:[(0,C.jsx)(H.f4,{theme:f,code:j,language:h??"text",children:e=>{let{className:t,style:n,tokens:s,getLineProps:o,getTokenProps:a}=e;return(0,C.jsx)("pre",{tabIndex:0,ref:p.codeBlockRef,className:(0,l.A)(t,B.codeBlock,"thin-scrollbar"),style:n,children:(0,C.jsx)("code",{className:(0,l.A)(B.codeBlockLines,b&&B.codeBlockLinesWithNumbering),children:s.map(((e,t)=>(0,C.jsx)(S,{line:e,getLineProps:o,getTokenProps:a,classNames:v[t],showLineNumbers:b},t)))})})}}),(0,C.jsxs)("div",{className:B.buttonGroup,children:[(p.isEnabled||p.isCodeScrollable)&&(0,C.jsx)($,{className:B.codeButton,onClick:()=>p.toggle(),isEnabled:p.isEnabled}),(0,C.jsx)(R,{className:B.codeButton,code:j})]})]})]})}function W(e){let{children:t,...n}=e;const o=(0,r.A)(),a=function(e){return s.Children.toArray(e).some((e=>(0,s.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),c="string"==typeof a?D:w;return(0,C.jsx)(c,{...n,children:a},String(o))}function P(e){return(0,C.jsx)("code",{...e})}var G=n(2436);var q=n(6357),F=n(6476);const J={details:"details_B4FW",isBrowser:"isBrowser_Cof9",collapsibleContent:"collapsibleContent_VYua"};function Z(e){return!!e&&("SUMMARY"===e.tagName||Z(e.parentElement))}function Y(e,t){return!!e&&(e===t||Y(e.parentElement,t))}function Q(e){let{summary:t,children:n,...o}=e;(0,q.A)().collectAnchor(o.id);const a=(0,r.A)(),c=(0,s.useRef)(null),{collapsed:i,setCollapsed:d}=(0,F.u)({initialState:!o.open}),[u,m]=(0,s.useState)(o.open),h=s.isValidElement(t)?t:(0,C.jsx)("summary",{children:t??"Details"});return(0,C.jsxs)("details",{...o,ref:c,open:u,"data-collapsed":i,className:(0,l.A)(J.details,a&&J.isBrowser,o.className),onMouseDown:e=>{Z(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;Z(t)&&Y(t,c.current)&&(e.preventDefault(),i?(d(!1),m(!0)):d(!0))},children:[h,(0,C.jsx)(F.N,{lazy:!1,collapsed:i,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{d(e),m(!e)},children:(0,C.jsx)("div",{className:J.collapsibleContent,children:n})})]})}const K={details:"details_SZgV"},X="alert alert--info";function ee(e){let{...t}=e;return(0,C.jsx)(Q,{...t,className:(0,l.A)(X,K.details,t.className)})}function te(e){const t=s.Children.toArray(e.children),n=t.find((e=>s.isValidElement(e)&&"summary"===e.type)),o=(0,C.jsx)(C.Fragment,{children:t.filter((e=>e!==n))});return(0,C.jsx)(ee,{...e,summary:n,children:o})}var ne=n(4775);function se(e){return(0,C.jsx)(ne.A,{...e})}const oe={containsTaskList:"containsTaskList__YnT"};function ae(e){if(void 0!==e)return(0,l.A)(e,e?.includes("contains-task-list")&&oe.containsTaskList)}const ce={img:"img__Ss2"};var ie=n(1167);const re={Head:i.A,details:te,Details:te,code:function(e){return function(e){return void 0!==e.children&&s.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")))}(e)?(0,C.jsx)(P,{...e}):(0,C.jsx)(W,{...e})},a:function(e){return(0,C.jsx)(G.A,{...e})},pre:function(e){return(0,C.jsx)(C.Fragment,{children:e.children})},ul:function(e){return(0,C.jsx)("ul",{...e,className:ae(e.className)})},li:function(e){return(0,q.A)().collectAnchor(e.id),(0,C.jsx)("li",{...e})},img:function(e){return(0,C.jsx)("img",{decoding:"async",loading:"lazy",...e,className:(t=e.className,(0,l.A)(t,ce.img))});var t},h1:e=>(0,C.jsx)(se,{as:"h1",...e}),h2:e=>(0,C.jsx)(se,{as:"h2",...e}),h3:e=>(0,C.jsx)(se,{as:"h3",...e}),h4:e=>(0,C.jsx)(se,{as:"h4",...e}),h5:e=>(0,C.jsx)(se,{as:"h5",...e}),h6:e=>(0,C.jsx)(se,{as:"h6",...e}),admonition:ie.A,mermaid:()=>null};function le(e){let{children:t}=e;return(0,C.jsx)(c,{components:re,children:t})}},7703:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});n(4041);var s=n(4357),o=n(9969);const a={tableOfContents:"tableOfContents_TN1Q",docItemContainer:"docItemContainer_JtJJ"};var c=n(1085);const i="table-of-contents__link toc-highlight",r="table-of-contents__link--active";function l(e){let{className:t,...n}=e;return(0,c.jsx)("div",{className:(0,s.A)(a.tableOfContents,"thin-scrollbar",t),children:(0,c.jsx)(o.A,{...n,linkClassName:i,linkActiveClassName:r})})}},9969:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});var s=n(4041),o=n(2520);function a(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const s=n.slice(2,e.level);e.parentIndex=Math.max(...s),n[e.level]=t}));const s=[];return t.forEach((e=>{const{parentIndex:n,...o}=e;n>=0?t[n].children.push(o):s.push(o)})),s}function c(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:s}=e;return t.flatMap((e=>{const t=c({toc:e.children,minHeadingLevel:n,maxHeadingLevel:s});return function(e){return e.level>=n&&e.level<=s}(e)?[{...e,children:t}]:t}))}function i(e){const t=e.getBoundingClientRect();return t.top===t.bottom?i(e.parentNode):t}function r(e,t){let{anchorTopOffset:n}=t;const s=e.find((e=>i(e).top>=n));if(s){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(i(s))?s:e[e.indexOf(s)-1]??null}return e[e.length-1]??null}function l(){const e=(0,s.useRef)(0),{navbar:{hideOnScroll:t}}=(0,o.p)();return(0,s.useEffect)((()=>{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function d(e){const t=(0,s.useRef)(void 0),n=l();(0,s.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:s,linkActiveClassName:o,minHeadingLevel:a,maxHeadingLevel:c}=e;function i(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(s),i=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const s=[];for(let o=t;o<=n;o+=1)s.push(`h${o}.anchor`);return Array.from(document.querySelectorAll(s.join()))}({minHeadingLevel:a,maxHeadingLevel:c}),l=r(i,{anchorTopOffset:n.current}),d=e.find((e=>l&&l.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(o),e.classList.add(o),t.current=e):e.classList.remove(o)}(e,e===d)}))}return document.addEventListener("scroll",i),document.addEventListener("resize",i),i(),()=>{document.removeEventListener("scroll",i),document.removeEventListener("resize",i)}}),[e,n])}var u=n(2436),m=n(1085);function h(e){let{toc:t,className:n,linkClassName:s,isChild:o}=e;return t.length?(0,m.jsx)("ul",{className:o?void 0:n,children:t.map((e=>(0,m.jsxs)("li",{children:[(0,m.jsx)(u.A,{to:`#${e.id}`,className:s??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,m.jsx)(h,{isChild:!0,toc:e.children,className:n,linkClassName:s})]},e.id)))}):null}const f=s.memo(h);function p(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:i="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:l,maxHeadingLevel:u,...h}=e;const p=(0,o.p)(),x=l??p.tableOfContents.minHeadingLevel,g=u??p.tableOfContents.maxHeadingLevel,v=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:o}=e;return(0,s.useMemo)((()=>c({toc:a(t),minHeadingLevel:n,maxHeadingLevel:o})),[t,n,o])}({toc:t,minHeadingLevel:x,maxHeadingLevel:g});return d((0,s.useMemo)((()=>{if(i&&r)return{linkClassName:i,linkActiveClassName:r,minHeadingLevel:x,maxHeadingLevel:g}}),[i,r,x,g])),(0,m.jsx)(f,{toc:v,className:n,linkClassName:i,...h})}},7262:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});n(4041);var s=n(4357),o=n(9082),a=n(9058),c=n(1085);function i(){return(0,c.jsx)(o.A,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function r(){return(0,c.jsx)(o.A,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function l(){return(0,c.jsx)(a.A,{children:(0,c.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=n(7473),u=n(1167);function m(e){let{className:t}=e;return(0,c.jsx)(u.A,{type:"caution",title:(0,c.jsx)(i,{}),className:(0,s.A)(t,d.G.common.unlistedBanner),children:(0,c.jsx)(r,{})})}function h(e){return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(l,{}),(0,c.jsx)(m,{...e})]})}},1431:(e,t)=>{function n(e){let t,n=[];for(let s of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(s))n.push(parseInt(s,10));else if(t=s.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,s,o,a]=t;if(s&&a){s=parseInt(s),a=parseInt(a);const e=s<a?1:-1;"-"!==o&&".."!==o&&"\u2025"!==o||(a+=e);for(let t=s;t!==a;t+=e)n.push(t)}}return n}t.default=n,e.exports=n}}]);
|
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";(self.webpackChunkdocs_openc3_com=self.webpackChunkdocs_openc3_com||[]).push([[2932],{3118:(n,e,s)=>{s.r(e),s.d(e,{default:()=>d});s(4041);var o=s(145),r=s(7789),c=s(6738),t=s(8150),i=s(6613),u=s(1085);function a(n){const{version:e}=n;return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(i.A,{version:e.version,tag:(0,r.tU)(e.pluginId,e.version)}),(0,u.jsx)(o.be,{children:e.noIndex&&(0,u.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function l(n){const{version:e,route:s}=n;return(0,u.jsx)(o.e3,{className:e.className,children:(0,u.jsx)(c.n,{version:e,children:(0,t.v)(s.routes)})})}function d(n){return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(a,{...n}),(0,u.jsx)(l,{...n})]})}}}]);
|
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";(self.webpackChunkdocs_openc3_com=self.webpackChunkdocs_openc3_com||[]).push([[3135],{3465:(e,a,s)=>{s.r(a),s.d(a,{default:()=>x});s(4041);var t=s(4357),d=s(145),c=s(7473),l=s(2665),i=s(5604),r=s(7703),n=s(7262),o=s(3412);const m={mdxPageWrapper:"mdxPageWrapper_SLvB"};var p=s(1085);function x(e){const{content:a}=e,{metadata:{title:s,editUrl:x,description:g,frontMatter:h,unlisted:_,lastUpdatedBy:j,lastUpdatedAt:v},assets:A}=a,{keywords:u,wrapperClassName:w,hide_table_of_contents:f}=h,N=A.image??h.image,k=!!(x||v||j);return(0,p.jsx)(d.e3,{className:(0,t.A)(w??c.G.wrapper.mdxPages,c.G.page.mdxPage),children:(0,p.jsxs)(l.A,{children:[(0,p.jsx)(d.be,{title:s,description:g,keywords:u,image:N}),(0,p.jsx)("main",{className:"container container--fluid margin-vert--lg",children:(0,p.jsxs)("div",{className:(0,t.A)("row",m.mdxPageWrapper),children:[(0,p.jsxs)("div",{className:(0,t.A)("col",!f&&"col--8"),children:[_&&(0,p.jsx)(n.A,{}),(0,p.jsx)("article",{children:(0,p.jsx)(i.A,{children:(0,p.jsx)(a,{})})}),k&&(0,p.jsx)(o.A,{className:(0,t.A)("margin-top--sm",c.G.pages.pageFooterEditMetaRow),editUrl:x,lastUpdatedAt:v,lastUpdatedBy:j})]}),!f&&a.toc.length>0&&(0,p.jsx)("div",{className:"col col--2",children:(0,p.jsx)(r.A,{toc:a.toc,minHeadingLevel:h.toc_min_heading_level,maxHeadingLevel:h.toc_max_heading_level})})]})})]})})}}}]);
|
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";(self.webpackChunkdocs_openc3_com=self.webpackChunkdocs_openc3_com||[]).push([[864],{7975:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>a,contentTitle:()=>d,default:()=>o,frontMatter:()=>t,metadata:()=>l,toc:()=>h});var r=n(1085),s=n(1184);const t={sidebar_position:8,title:"Tables"},d=void 0,l={id:"configuration/table",title:"Tables",description:"Table Definition Files",source:"@site/docs/configuration/table.md",sourceDirName:"configuration",slug:"/configuration/table",permalink:"/tools/staticdocs/docs/configuration/table",draft:!1,unlisted:!1,editUrl:"https://github.com/OpenC3/cosmos/tree/main/docs.openc3.com/docs/configuration/table.md",tags:[],version:"current",sidebarPosition:8,frontMatter:{sidebar_position:8,title:"Tables"},sidebar:"defaultSidebar",previous:{title:"Protocols",permalink:"/tools/staticdocs/docs/configuration/protocols"},next:{title:"Screens",permalink:"/tools/staticdocs/docs/configuration/telemetry-screens"}},a={},h=[{value:"Table Definition Files",id:"table-definition-files",level:2},{value:"TABLEFILE",id:"tablefile",level:2},{value:"TABLE",id:"table",level:2},{value:"TABLE Modifiers",id:"table-modifiers",level:2},{value:"PARAMETER",id:"parameter",level:3},{value:"PARAMETER Modifiers",id:"parameter-modifiers",level:3},{value:"FORMAT_STRING",id:"format_string",level:4},{value:"UNITS",id:"units",level:4},{value:"DESCRIPTION",id:"description",level:4},{value:"META",id:"meta",level:4},{value:"OVERLAP",id:"overlap",level:4},{value:"KEY",id:"key",level:4},{value:"REQUIRED",id:"required",level:4},{value:"MINIMUM_VALUE",id:"minimum_value",level:4},{value:"MAXIMUM_VALUE",id:"maximum_value",level:4},{value:"DEFAULT_VALUE",id:"default_value",level:4},{value:"STATE",id:"state",level:4},{value:"WRITE_CONVERSION",id:"write_conversion",level:4},{value:"POLY_WRITE_CONVERSION",id:"poly_write_conversion",level:4},{value:"SEG_POLY_WRITE_CONVERSION",id:"seg_poly_write_conversion",level:4},{value:"GENERIC_WRITE_CONVERSION_START",id:"generic_write_conversion_start",level:4},{value:"GENERIC_WRITE_CONVERSION_END",id:"generic_write_conversion_end",level:4},{value:"OVERFLOW",id:"overflow",level:4},{value:"HIDDEN",id:"hidden",level:4},{value:"UNEDITABLE",id:"uneditable",level:4},{value:"APPEND_PARAMETER",id:"append_parameter",level:3},{value:"SELECT_TABLE",id:"select_table",level:2},{value:"DEFAULT",id:"default",level:2},{value:"Example File",id:"example-file",level:2}];function c(e){const i={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.h2,{id:"table-definition-files",children:"Table Definition Files"}),"\n",(0,r.jsxs)(i.p,{children:["Table definition files define the binary tables that can be displayed in COSMOS ",(0,r.jsx)(i.a,{href:"/tools/staticdocs/docs/tools/table-manager",children:"Table Manager"}),"\n. Table definitions are defined in the target's tables/config directory and are typically named after the table such as ",(0,r.jsx)(i.code,{children:"PPSSelectionTable_def.txt"}),". The ",(0,r.jsx)(i.code,{children:"_def.txt"})," extention helps to identify the file as a table definition. Table definitions can be combined using the ",(0,r.jsx)(i.code,{children:"TABLEFILE"})," keyword. This allows you to build individual table components into a larger binary."]}),"\n",(0,r.jsxs)(i.p,{children:["The Table definition files share a lot of similarity with the ",(0,r.jsx)(i.a,{href:"/tools/staticdocs/docs/configuration/command",children:"Command Configuration"}),". You have the same data types: INT, UINT, FLOAT, STRING, BLOCK. These correspond to integers, unsigned integers, floating point numbers, strings and binary blocks of data."]}),"\n",(0,r.jsx)("div",{style:{clear:"both"}}),"\n",(0,r.jsx)(i.h1,{id:"table-keywords",children:"Table Keywords"}),"\n",(0,r.jsx)(i.h2,{id:"tablefile",children:"TABLEFILE"}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.strong,{children:"Specify another file to open and process for table definitions"})}),"\n",(0,r.jsxs)(i.table,{children:[(0,r.jsx)(i.thead,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.th,{children:"Parameter"}),(0,r.jsx)(i.th,{children:"Description"}),(0,r.jsx)(i.th,{children:"Required"})]})}),(0,r.jsx)(i.tbody,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"File Name"}),(0,r.jsx)(i.td,{children:"Name of the file. The file will be looked for in the directory of the current definition file."}),(0,r.jsx)(i.td,{children:"True"})]})})]}),"\n",(0,r.jsx)(i.h2,{id:"table",children:"TABLE"}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.strong,{children:"Start a new table definition"})}),"\n",(0,r.jsxs)(i.table,{children:[(0,r.jsx)(i.thead,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.th,{children:"Parameter"}),(0,r.jsx)(i.th,{children:"Description"}),(0,r.jsx)(i.th,{children:"Required"})]})}),(0,r.jsxs)(i.tbody,{children:[(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Name"}),(0,r.jsx)(i.td,{children:"Name of the table in quotes. The name will appear on the GUI tab."}),(0,r.jsx)(i.td,{children:"True"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Endianness"}),(0,r.jsxs)(i.td,{children:["Indicates if the data in this table is in Big Endian or Little Endian format",(0,r.jsx)("br",{}),(0,r.jsx)("br",{}),"Valid Values: ",(0,r.jsx)("span",{class:"values",children:"BIG_ENDIAN, LITTLE_ENDIAN"})]}),(0,r.jsx)(i.td,{children:"True"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Display"}),(0,r.jsxs)(i.td,{children:["Indicates the table contains KEY_VALUE rows (e.g. each row is unique), or a ROW_COLUMN table with identical rows containing different values.",(0,r.jsx)("br",{}),(0,r.jsx)("br",{}),"Valid Values: ",(0,r.jsx)("span",{class:"values",children:"KEY_VALUE, ROW_COLUMN"})]}),(0,r.jsx)(i.td,{children:"False"})]})]})]}),"\n",(0,r.jsx)(i.p,{children:"When Display is KEY_VALUE the remaining parameters are:"}),"\n",(0,r.jsxs)(i.table,{children:[(0,r.jsx)(i.thead,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.th,{children:"Parameter"}),(0,r.jsx)(i.th,{children:"Description"}),(0,r.jsx)(i.th,{children:"Required"})]})}),(0,r.jsx)(i.tbody,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Description"}),(0,r.jsx)(i.td,{children:"Description of the table in quotes. The description is used in mouseover popups and status line information."}),(0,r.jsx)(i.td,{children:"False"})]})})]}),"\n",(0,r.jsx)(i.p,{children:"When Display is ROW_COLUMN the remaining parameters are:"}),"\n",(0,r.jsxs)(i.table,{children:[(0,r.jsx)(i.thead,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.th,{children:"Parameter"}),(0,r.jsx)(i.th,{children:"Description"}),(0,r.jsx)(i.th,{children:"Required"})]})}),(0,r.jsxs)(i.tbody,{children:[(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Rows"}),(0,r.jsx)(i.td,{children:"The number of rows in the table"}),(0,r.jsx)(i.td,{children:"False"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Description"}),(0,r.jsx)(i.td,{children:"Description of the table in quotes. The description is used in mouseover popups and status line information."}),(0,r.jsx)(i.td,{children:"False"})]})]})]}),"\n",(0,r.jsx)(i.h2,{id:"table-modifiers",children:"TABLE Modifiers"}),"\n",(0,r.jsx)(i.p,{children:"The following keywords must follow a TABLE keyword."}),"\n",(0,r.jsx)(i.h3,{id:"parameter",children:"PARAMETER"}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.strong,{children:"Defines a parameter in the current table"})}),"\n",(0,r.jsxs)(i.table,{children:[(0,r.jsx)(i.thead,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.th,{children:"Parameter"}),(0,r.jsx)(i.th,{children:"Description"}),(0,r.jsx)(i.th,{children:"Required"})]})}),(0,r.jsxs)(i.tbody,{children:[(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Name"}),(0,r.jsx)(i.td,{children:"Name of the parameter. Must be unique within the table."}),(0,r.jsx)(i.td,{children:"True"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Bit Offset"}),(0,r.jsx)(i.td,{children:"Bit offset into the table of the Most Significant Bit of this parameter. May be negative to indicate on offset from the end of the table. Always use a bit offset of 0 for derived parameters."}),(0,r.jsx)(i.td,{children:"True"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Bit Size"}),(0,r.jsx)(i.td,{children:"Bit size of this parameter. Zero or Negative values may be used to indicate that a string fills the packet up to the offset from the end of the packet specified by this value. If Bit Offset is 0 and Bit Size is 0 then this is a derived parameter and the Data Type must be set to 'DERIVED'."}),(0,r.jsx)(i.td,{children:"True"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Data Type"}),(0,r.jsxs)(i.td,{children:["Data Type of this parameter",(0,r.jsx)("br",{}),(0,r.jsx)("br",{}),"Valid Values: ",(0,r.jsx)("span",{class:"values",children:"INT, UINT, FLOAT, DERIVED, STRING, BLOCK"})]}),(0,r.jsx)(i.td,{children:"True"})]})]})]}),"\n",(0,r.jsx)(i.p,{children:"When Data Type is INT, UINT, FLOAT, DERIVED the remaining parameters are:"}),"\n",(0,r.jsxs)(i.table,{children:[(0,r.jsx)(i.thead,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.th,{children:"Parameter"}),(0,r.jsx)(i.th,{children:"Description"}),(0,r.jsx)(i.th,{children:"Required"})]})}),(0,r.jsxs)(i.tbody,{children:[(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Minimum Value"}),(0,r.jsx)(i.td,{children:"Minimum allowed value for this parameter"}),(0,r.jsx)(i.td,{children:"True"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Maximum Value"}),(0,r.jsx)(i.td,{children:"Maximum allowed value for this parameter"}),(0,r.jsx)(i.td,{children:"True"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Default Value"}),(0,r.jsx)(i.td,{children:"Default value for this parameter. You must provide a default but if you mark the parameter REQUIRED then scripts will be forced to specify a value."}),(0,r.jsx)(i.td,{children:"True"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Description"}),(0,r.jsx)(i.td,{children:"Description for this parameter which must be enclosed with quotes"}),(0,r.jsx)(i.td,{children:"False"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Endianness"}),(0,r.jsxs)(i.td,{children:["Indicates if the data in this command is to be sent in Big Endian or Little Endian format. See guide on ",(0,r.jsx)(i.a,{href:"/tools/staticdocs/docs/guides/little-endian-bitfields",children:"Little Endian Bitfields"}),".",(0,r.jsx)("br",{}),(0,r.jsx)("br",{}),"Valid Values: ",(0,r.jsx)("span",{class:"values",children:"BIG_ENDIAN, LITTLE_ENDIAN"})]}),(0,r.jsx)(i.td,{children:"False"})]})]})]}),"\n",(0,r.jsx)(i.p,{children:"When Data Type is STRING, BLOCK the remaining parameters are:"}),"\n",(0,r.jsxs)(i.table,{children:[(0,r.jsx)(i.thead,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.th,{children:"Parameter"}),(0,r.jsx)(i.th,{children:"Description"}),(0,r.jsx)(i.th,{children:"Required"})]})}),(0,r.jsxs)(i.tbody,{children:[(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Default Value"}),(0,r.jsx)(i.td,{children:"Default value for this parameter. You must provide a default but if you mark the parameter REQUIRED then scripts will be forced to specify a value."}),(0,r.jsx)(i.td,{children:"True"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Description"}),(0,r.jsx)(i.td,{children:"Description for this parameter which must be enclosed with quotes"}),(0,r.jsx)(i.td,{children:"False"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Endianness"}),(0,r.jsxs)(i.td,{children:["Indicates if the data in this command is to be sent in Big Endian or Little Endian format",(0,r.jsx)("br",{}),(0,r.jsx)("br",{}),"Valid Values: ",(0,r.jsx)("span",{class:"values",children:"BIG_ENDIAN, LITTLE_ENDIAN"})]}),(0,r.jsx)(i.td,{children:"False"})]})]})]}),"\n",(0,r.jsx)(i.h3,{id:"parameter-modifiers",children:"PARAMETER Modifiers"}),"\n",(0,r.jsx)(i.p,{children:"The following keywords must follow a PARAMETER keyword."}),"\n",(0,r.jsx)(i.h4,{id:"format_string",children:"FORMAT_STRING"}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.strong,{children:"Adds printf style formatting"})}),"\n",(0,r.jsxs)(i.table,{children:[(0,r.jsx)(i.thead,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.th,{children:"Parameter"}),(0,r.jsx)(i.th,{children:"Description"}),(0,r.jsx)(i.th,{children:"Required"})]})}),(0,r.jsx)(i.tbody,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Format"}),(0,r.jsx)(i.td,{children:"How to format using printf syntax. For example, '0x%0X' will display the value in hex."}),(0,r.jsx)(i.td,{children:"True"})]})})]}),"\n",(0,r.jsx)(i.p,{children:"Example Usage:"}),"\n",(0,r.jsx)(i.pre,{children:(0,r.jsx)(i.code,{className:"language-ruby",children:'FORMAT_STRING "0x%0X"\n'})}),"\n",(0,r.jsx)(i.h4,{id:"units",children:"UNITS"}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.strong,{children:"Add displayed units"})}),"\n",(0,r.jsxs)(i.table,{children:[(0,r.jsx)(i.thead,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.th,{children:"Parameter"}),(0,r.jsx)(i.th,{children:"Description"}),(0,r.jsx)(i.th,{children:"Required"})]})}),(0,r.jsxs)(i.tbody,{children:[(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Full Name"}),(0,r.jsx)(i.td,{children:"Full name of the units type, e.g. Celsius"}),(0,r.jsx)(i.td,{children:"True"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Abbreviated"}),(0,r.jsx)(i.td,{children:"Abbreviation for the units, e.g. C"}),(0,r.jsx)(i.td,{children:"True"})]})]})]}),"\n",(0,r.jsx)(i.p,{children:"Example Usage:"}),"\n",(0,r.jsx)(i.pre,{children:(0,r.jsx)(i.code,{className:"language-ruby",children:"UNITS Celsius C\nUNITS Kilometers KM\n"})}),"\n",(0,r.jsx)(i.h4,{id:"description",children:"DESCRIPTION"}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.strong,{children:"Override the defined description"})}),"\n",(0,r.jsxs)(i.table,{children:[(0,r.jsx)(i.thead,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.th,{children:"Parameter"}),(0,r.jsx)(i.th,{children:"Description"}),(0,r.jsx)(i.th,{children:"Required"})]})}),(0,r.jsx)(i.tbody,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Value"}),(0,r.jsx)(i.td,{children:"The new description"}),(0,r.jsx)(i.td,{children:"True"})]})})]}),"\n",(0,r.jsx)(i.h4,{id:"meta",children:"META"}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.strong,{children:"Stores custom user metadata"})}),"\n",(0,r.jsx)(i.p,{children:"Meta data is user specific data that can be used by custom tools for various purposes. One example is to store additional information needed to generate source code header files."}),"\n",(0,r.jsxs)(i.table,{children:[(0,r.jsx)(i.thead,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.th,{children:"Parameter"}),(0,r.jsx)(i.th,{children:"Description"}),(0,r.jsx)(i.th,{children:"Required"})]})}),(0,r.jsxs)(i.tbody,{children:[(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Meta Name"}),(0,r.jsx)(i.td,{children:"Name of the metadata to store"}),(0,r.jsx)(i.td,{children:"True"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Meta Values"}),(0,r.jsx)(i.td,{children:"One or more values to be stored for this Meta Name"}),(0,r.jsx)(i.td,{children:"False"})]})]})]}),"\n",(0,r.jsx)(i.p,{children:"Example Usage:"}),"\n",(0,r.jsx)(i.pre,{children:(0,r.jsx)(i.code,{className:"language-ruby",children:'META TEST "This parameter is for test purposes only"\n'})}),"\n",(0,r.jsx)(i.h4,{id:"overlap",children:"OVERLAP"}),"\n",(0,r.jsxs)(i.p,{children:[(0,r.jsx)("div",{class:"right",children:"(Since 4.4.1)"}),(0,r.jsx)(i.strong,{children:"This item is allowed to overlap other items in the packet"})]}),"\n",(0,r.jsx)(i.p,{children:"If an item's bit offset overlaps another item, OpenC3 issues a warning. This keyword explicitly allows an item to overlap another and supresses the warning message."}),"\n",(0,r.jsx)(i.h4,{id:"key",children:"KEY"}),"\n",(0,r.jsxs)(i.p,{children:[(0,r.jsx)("div",{class:"right",children:"(Since 5.0.10)"}),(0,r.jsx)(i.strong,{children:"Defines the key used to access this raw value in the packet."})]}),"\n",(0,r.jsx)(i.p,{children:"Keys are often JsonPath or XPath strings"}),"\n",(0,r.jsxs)(i.table,{children:[(0,r.jsx)(i.thead,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.th,{children:"Parameter"}),(0,r.jsx)(i.th,{children:"Description"}),(0,r.jsx)(i.th,{children:"Required"})]})}),(0,r.jsx)(i.tbody,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Key string"}),(0,r.jsx)(i.td,{children:"The key to access this item"}),(0,r.jsx)(i.td,{children:"True"})]})})]}),"\n",(0,r.jsx)(i.p,{children:"Example Usage:"}),"\n",(0,r.jsx)(i.pre,{children:(0,r.jsx)(i.code,{className:"language-ruby",children:"KEY $.book.title\n"})}),"\n",(0,r.jsx)(i.h4,{id:"required",children:"REQUIRED"}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.strong,{children:"Parameter is required to be populated in scripts"})}),"\n",(0,r.jsx)(i.p,{children:"When sending the command via Script Runner a value must always be given for the current command parameter. This prevents the user from relying on a default value. Note that this does not affect Command Sender which will still populate the field with the default value provided in the PARAMETER definition."}),"\n",(0,r.jsx)(i.h4,{id:"minimum_value",children:"MINIMUM_VALUE"}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.strong,{children:"Override the defined minimum value"})}),"\n",(0,r.jsxs)(i.table,{children:[(0,r.jsx)(i.thead,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.th,{children:"Parameter"}),(0,r.jsx)(i.th,{children:"Description"}),(0,r.jsx)(i.th,{children:"Required"})]})}),(0,r.jsx)(i.tbody,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Value"}),(0,r.jsx)(i.td,{children:"The new minimum value for the parameter"}),(0,r.jsx)(i.td,{children:"True"})]})})]}),"\n",(0,r.jsx)(i.h4,{id:"maximum_value",children:"MAXIMUM_VALUE"}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.strong,{children:"Override the defined maximum value"})}),"\n",(0,r.jsxs)(i.table,{children:[(0,r.jsx)(i.thead,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.th,{children:"Parameter"}),(0,r.jsx)(i.th,{children:"Description"}),(0,r.jsx)(i.th,{children:"Required"})]})}),(0,r.jsx)(i.tbody,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Value"}),(0,r.jsx)(i.td,{children:"The new maximum value for the parameter"}),(0,r.jsx)(i.td,{children:"True"})]})})]}),"\n",(0,r.jsx)(i.h4,{id:"default_value",children:"DEFAULT_VALUE"}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.strong,{children:"Override the defined default value"})}),"\n",(0,r.jsxs)(i.table,{children:[(0,r.jsx)(i.thead,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.th,{children:"Parameter"}),(0,r.jsx)(i.th,{children:"Description"}),(0,r.jsx)(i.th,{children:"Required"})]})}),(0,r.jsx)(i.tbody,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Value"}),(0,r.jsx)(i.td,{children:"The new default value for the parameter"}),(0,r.jsx)(i.td,{children:"True"})]})})]}),"\n",(0,r.jsx)(i.h4,{id:"state",children:"STATE"}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.strong,{children:"Defines a key/value pair for the current command parameter"})}),"\n",(0,r.jsx)(i.p,{children:"Key value pairs allow for user friendly strings. For example, you might define states for ON = 1 and OFF = 0. This allows the word ON to be used rather than the number 1 when sending the command parameter and allows for much greater clarity and less chance for user error."}),"\n",(0,r.jsxs)(i.table,{children:[(0,r.jsx)(i.thead,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.th,{children:"Parameter"}),(0,r.jsx)(i.th,{children:"Description"}),(0,r.jsx)(i.th,{children:"Required"})]})}),(0,r.jsxs)(i.tbody,{children:[(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Key"}),(0,r.jsx)(i.td,{children:"The string state name"}),(0,r.jsx)(i.td,{children:"True"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Value"}),(0,r.jsx)(i.td,{children:"The numerical state value"}),(0,r.jsx)(i.td,{children:"True"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Hazardous / Disable Messages"}),(0,r.jsxs)(i.td,{children:["Indicates the state is hazardous. This will cause a popup to ask for user confirmation when sending this command. For non-hazardous states you can also set DISABLE_MESSAGES which will not print the command when using that state.",(0,r.jsx)("br",{}),(0,r.jsx)("br",{}),"Valid Values: ",(0,r.jsx)("span",{class:"values",children:"HAZARDOUS"})]}),(0,r.jsx)(i.td,{children:"False"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Hazardous Description"}),(0,r.jsx)(i.td,{children:"String describing why this state is hazardous"}),(0,r.jsx)(i.td,{children:"False"})]})]})]}),"\n",(0,r.jsx)(i.p,{children:"Example Usage:"}),"\n",(0,r.jsx)(i.pre,{children:(0,r.jsx)(i.code,{className:"language-ruby",children:'APPEND_PARAMETER ENABLE 32 UINT 0 1 0 "Enable setting"\n STATE FALSE 0\n STATE TRUE 1\nAPPEND_PARAMETER STRING 1024 STRING "NOOP" "String parameter"\n STATE "NOOP" "NOOP" DISABLE_MESSAGES\n STATE "ARM LASER" "ARM LASER" HAZARDOUS "Arming the laser is an eye safety hazard"\n STATE "FIRE LASER" "FIRE LASER" HAZARDOUS "WARNING! Laser will be fired!"\n'})}),"\n",(0,r.jsx)(i.h4,{id:"write_conversion",children:"WRITE_CONVERSION"}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.strong,{children:"Applies a conversion when writing the current command parameter"})}),"\n",(0,r.jsx)(i.p,{children:"Conversions are implemented in a custom Ruby file which should be\nlocated in the target's lib folder. The class must require 'openc3/conversions/conversion'\nand inherit from Conversion. It must implement the initialize method if it\ntakes extra parameters and must always implement the call method. The conversion\nfactor is applied to the value entered by the user before it is written into\nthe binary command packet and sent."}),"\n",(0,r.jsx)(i.admonition,{title:"Multiple write conversions on command parameters",type:"info",children:(0,r.jsx)(i.p,{children:"When a command is built, each item gets written (and write conversions are run)\nto set the default value. Then items are written (again write conversions are run)\nwith user provided values. Thus write conversions can be run twice. Also there are\nno guarantees which parameters have already been written. The packet itself has a\ngiven_values() method which can be used to retrieve a hash of the user provided\nvalues to the command. That can be used to check parameter values passed in."})}),"\n",(0,r.jsxs)(i.table,{children:[(0,r.jsx)(i.thead,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.th,{children:"Parameter"}),(0,r.jsx)(i.th,{children:"Description"}),(0,r.jsx)(i.th,{children:"Required"})]})}),(0,r.jsxs)(i.tbody,{children:[(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Class Filename"}),(0,r.jsx)(i.td,{children:"The filename which contains the Ruby class. The filename must be named after the class such that the class is a CamelCase version of the underscored filename. For example, 'the_great_conversion.rb' should contain 'class TheGreatConversion'."}),(0,r.jsx)(i.td,{children:"True"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Parameter"}),(0,r.jsx)(i.td,{children:"Additional parameter values for the conversion which are passed to the class constructor."}),(0,r.jsx)(i.td,{children:"False"})]})]})]}),"\n",(0,r.jsx)(i.p,{children:"Example Usage:"}),"\n",(0,r.jsx)(i.pre,{children:(0,r.jsx)(i.code,{className:"language-ruby",children:"WRITE_CONVERSION the_great_conversion.rb 1000\n\nDefined in the_great_conversion.rb:\n\nrequire 'openc3/conversions/conversion'\nmodule OpenC3\n class TheGreatConversion < Conversion\n def initialize(multiplier)\n super()\n @multiplier = multiplier.to_f\n end\n def call(value, packet, buffer)\n return value * multiplier\n end\n end\nend\n"})}),"\n",(0,r.jsx)(i.h4,{id:"poly_write_conversion",children:"POLY_WRITE_CONVERSION"}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.strong,{children:"Adds a polynomial conversion factor to the current command parameter"})}),"\n",(0,r.jsx)(i.p,{children:"The conversion factor is applied to the value entered by the user before it is written into the binary command packet and sent."}),"\n",(0,r.jsxs)(i.table,{children:[(0,r.jsx)(i.thead,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.th,{children:"Parameter"}),(0,r.jsx)(i.th,{children:"Description"}),(0,r.jsx)(i.th,{children:"Required"})]})}),(0,r.jsxs)(i.tbody,{children:[(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"C0"}),(0,r.jsx)(i.td,{children:"Coefficient"}),(0,r.jsx)(i.td,{children:"True"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Cx"}),(0,r.jsx)(i.td,{children:"Additional coefficient values for the conversion. Any order polynomial conversion may be used so the value of 'x' will vary with the order of the polynomial. Note that larger order polynomials take longer to process than shorter order polynomials, but are sometimes more accurate."}),(0,r.jsx)(i.td,{children:"False"})]})]})]}),"\n",(0,r.jsx)(i.p,{children:"Example Usage:"}),"\n",(0,r.jsx)(i.pre,{children:(0,r.jsx)(i.code,{className:"language-ruby",children:"POLY_WRITE_CONVERSION 10 0.5 0.25\n"})}),"\n",(0,r.jsx)(i.h4,{id:"seg_poly_write_conversion",children:"SEG_POLY_WRITE_CONVERSION"}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.strong,{children:"Adds a segmented polynomial conversion factor to the current command parameter"})}),"\n",(0,r.jsx)(i.p,{children:"This conversion factor is applied to the value entered by the user before it is written into the binary command packet and sent."}),"\n",(0,r.jsxs)(i.table,{children:[(0,r.jsx)(i.thead,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.th,{children:"Parameter"}),(0,r.jsx)(i.th,{children:"Description"}),(0,r.jsx)(i.th,{children:"Required"})]})}),(0,r.jsxs)(i.tbody,{children:[(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Lower Bound"}),(0,r.jsx)(i.td,{children:"Defines the lower bound of the range of values that this segmented polynomial applies to. Is ignored for the segment with the smallest lower bound."}),(0,r.jsx)(i.td,{children:"True"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"C0"}),(0,r.jsx)(i.td,{children:"Coefficient"}),(0,r.jsx)(i.td,{children:"True"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Cx"}),(0,r.jsx)(i.td,{children:"Additional coefficient values for the conversion. Any order polynomial conversion may be used so the value of 'x' will vary with the order of the polynomial. Note that larger order polynomials take longer to process than shorter order polynomials, but are sometimes more accurate."}),(0,r.jsx)(i.td,{children:"False"})]})]})]}),"\n",(0,r.jsx)(i.p,{children:"Example Usage:"}),"\n",(0,r.jsx)(i.pre,{children:(0,r.jsx)(i.code,{className:"language-ruby",children:"SEG_POLY_WRITE_CONVERSION 0 10 0.5 0.25 # Apply the conversion to all values < 50\nSEG_POLY_WRITE_CONVERSION 50 11 0.5 0.275 # Apply the conversion to all values >= 50 and < 100\nSEG_POLY_WRITE_CONVERSION 100 12 0.5 0.3 # Apply the conversion to all values >= 100\n"})}),"\n",(0,r.jsx)(i.h4,{id:"generic_write_conversion_start",children:"GENERIC_WRITE_CONVERSION_START"}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.strong,{children:"Start a generic write conversion"})}),"\n",(0,r.jsx)(i.p,{children:"Adds a generic conversion function to the current command parameter.\nThis conversion factor is applied to the value entered by the user before it\nis written into the binary command packet and sent. The conversion is specified\nas ruby code that receives two implied parameters. 'value' which is the raw\nvalue being written and 'packet' which is a reference to the command packet\nclass (Note, referencing the packet as 'myself' is still supported for backwards\ncompatibility). The last line of ruby code given should return the converted\nvalue. The GENERIC_WRITE_CONVERSION_END keyword specifies that all lines of\nruby code for the conversion have been given."}),"\n",(0,r.jsx)(i.admonition,{title:"Multiple write conversions on command parameters",type:"info",children:(0,r.jsx)(i.p,{children:"When a command is built, each item gets written (and write conversions are run)\nto set the default value. Then items are written (again write conversions are run)\nwith user provided values. Thus write conversions can be run twice. Also there are\nno guarantees which parameters have already been written. The packet itself has a\ngiven_values() method which can be used to retrieve a hash of the user provided\nvalues to the command. That can be used to check parameter values passed in."})}),"\n",(0,r.jsx)(i.admonition,{type:"warning",children:(0,r.jsx)(i.p,{children:"Generic conversions are not a good long term solution. Consider creating a conversion class and using WRITE_CONVERSION instead. WRITE_CONVERSION is easier to debug and higher performance."})}),"\n",(0,r.jsx)(i.p,{children:"Example Usage:"}),"\n",(0,r.jsx)(i.pre,{children:(0,r.jsx)(i.code,{className:"language-ruby",children:"APPEND_PARAMETER ITEM1 32 UINT 0 0xFFFFFFFF 0\n GENERIC_WRITE_CONVERSION_START\n (value * 1.5).to_i # Convert the value by a scale factor\n GENERIC_WRITE_CONVERSION_END\n"})}),"\n",(0,r.jsx)(i.h4,{id:"generic_write_conversion_end",children:"GENERIC_WRITE_CONVERSION_END"}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.strong,{children:"Complete a generic write conversion"})}),"\n",(0,r.jsx)(i.h4,{id:"overflow",children:"OVERFLOW"}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.strong,{children:"Set the behavior when writing a value overflows the type"})}),"\n",(0,r.jsx)(i.p,{children:"By default OpenC3 throws an error if you try to write a value which overflows its specified type, e.g. writing 255 to a 8 bit signed value. Setting the overflow behavior also allows for OpenC3 to 'TRUNCATE' the value by eliminating any high order bits. You can also set 'SATURATE' which causes OpenC3 to replace the value with the maximum or minimum allowable value for that type. Finally you can specify 'ERROR_ALLOW_HEX' which will allow for a maximum hex value to be writen, e.g. you can successfully write 255 to a 8 bit signed value."}),"\n",(0,r.jsxs)(i.table,{children:[(0,r.jsx)(i.thead,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.th,{children:"Parameter"}),(0,r.jsx)(i.th,{children:"Description"}),(0,r.jsx)(i.th,{children:"Required"})]})}),(0,r.jsx)(i.tbody,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Behavior"}),(0,r.jsxs)(i.td,{children:["How OpenC3 treats an overflow value. Only applies to signed and unsigned integer data types.",(0,r.jsx)("br",{}),(0,r.jsx)("br",{}),"Valid Values: ",(0,r.jsx)("span",{class:"values",children:"ERROR, ERROR_ALLOW_HEX, TRUNCATE, SATURATE"})]}),(0,r.jsx)(i.td,{children:"True"})]})})]}),"\n",(0,r.jsx)(i.p,{children:"Example Usage:"}),"\n",(0,r.jsx)(i.pre,{children:(0,r.jsx)(i.code,{className:"language-ruby",children:"OVERFLOW TRUNCATE\n"})}),"\n",(0,r.jsx)(i.h4,{id:"hidden",children:"HIDDEN"}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.strong,{children:"Indicates that the parameter should not be shown to the user in the Table Manager GUI"})}),"\n",(0,r.jsx)(i.p,{children:"Hidden parameters still exist and will be saved to the resulting binary. This is useful for padding and other essential but non-user editable fields."}),"\n",(0,r.jsx)(i.h4,{id:"uneditable",children:"UNEDITABLE"}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.strong,{children:"Indicates that the parameter should be shown to the user but not editable."})}),"\n",(0,r.jsx)(i.p,{children:"Uneditable parameters are useful for control fields which the user may be interested in but should not be able to edit."}),"\n",(0,r.jsx)(i.h3,{id:"append_parameter",children:"APPEND_PARAMETER"}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.strong,{children:"Defines a parameter in the current table"})}),"\n",(0,r.jsxs)(i.table,{children:[(0,r.jsx)(i.thead,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.th,{children:"Parameter"}),(0,r.jsx)(i.th,{children:"Description"}),(0,r.jsx)(i.th,{children:"Required"})]})}),(0,r.jsxs)(i.tbody,{children:[(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Name"}),(0,r.jsx)(i.td,{children:"Name of the parameter. Must be unique within the table."}),(0,r.jsx)(i.td,{children:"True"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Bit Size"}),(0,r.jsx)(i.td,{children:"Bit size of this parameter. Zero or Negative values may be used to indicate that a string fills the packet up to the offset from the end of the packet specified by this value. If Bit Offset is 0 and Bit Size is 0 then this is a derived parameter and the Data Type must be set to 'DERIVED'."}),(0,r.jsx)(i.td,{children:"True"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Data Type"}),(0,r.jsxs)(i.td,{children:["Data Type of this parameter",(0,r.jsx)("br",{}),(0,r.jsx)("br",{}),"Valid Values: ",(0,r.jsx)("span",{class:"values",children:"INT, UINT, FLOAT, DERIVED, STRING, BLOCK"})]}),(0,r.jsx)(i.td,{children:"True"})]})]})]}),"\n",(0,r.jsx)(i.p,{children:"When Data Type is INT, UINT, FLOAT, DERIVED the remaining parameters are:"}),"\n",(0,r.jsxs)(i.table,{children:[(0,r.jsx)(i.thead,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.th,{children:"Parameter"}),(0,r.jsx)(i.th,{children:"Description"}),(0,r.jsx)(i.th,{children:"Required"})]})}),(0,r.jsxs)(i.tbody,{children:[(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Minimum Value"}),(0,r.jsx)(i.td,{children:"Minimum allowed value for this parameter"}),(0,r.jsx)(i.td,{children:"True"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Maximum Value"}),(0,r.jsx)(i.td,{children:"Maximum allowed value for this parameter"}),(0,r.jsx)(i.td,{children:"True"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Default Value"}),(0,r.jsx)(i.td,{children:"Default value for this parameter. You must provide a default but if you mark the parameter REQUIRED then scripts will be forced to specify a value."}),(0,r.jsx)(i.td,{children:"True"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Description"}),(0,r.jsx)(i.td,{children:"Description for this parameter which must be enclosed with quotes"}),(0,r.jsx)(i.td,{children:"False"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Endianness"}),(0,r.jsxs)(i.td,{children:["Indicates if the data in this command is to be sent in Big Endian or Little Endian format. See guide on ",(0,r.jsx)(i.a,{href:"/tools/staticdocs/docs/guides/little-endian-bitfields",children:"Little Endian Bitfields"}),".",(0,r.jsx)("br",{}),(0,r.jsx)("br",{}),"Valid Values: ",(0,r.jsx)("span",{class:"values",children:"BIG_ENDIAN, LITTLE_ENDIAN"})]}),(0,r.jsx)(i.td,{children:"False"})]})]})]}),"\n",(0,r.jsx)(i.p,{children:"When Data Type is STRING, BLOCK the remaining parameters are:"}),"\n",(0,r.jsxs)(i.table,{children:[(0,r.jsx)(i.thead,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.th,{children:"Parameter"}),(0,r.jsx)(i.th,{children:"Description"}),(0,r.jsx)(i.th,{children:"Required"})]})}),(0,r.jsxs)(i.tbody,{children:[(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Default Value"}),(0,r.jsx)(i.td,{children:"Default value for this parameter. You must provide a default but if you mark the parameter REQUIRED then scripts will be forced to specify a value."}),(0,r.jsx)(i.td,{children:"True"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Description"}),(0,r.jsx)(i.td,{children:"Description for this parameter which must be enclosed with quotes"}),(0,r.jsx)(i.td,{children:"False"})]}),(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Endianness"}),(0,r.jsxs)(i.td,{children:["Indicates if the data in this command is to be sent in Big Endian or Little Endian format",(0,r.jsx)("br",{}),(0,r.jsx)("br",{}),"Valid Values: ",(0,r.jsx)("span",{class:"values",children:"BIG_ENDIAN, LITTLE_ENDIAN"})]}),(0,r.jsx)(i.td,{children:"False"})]})]})]}),"\n",(0,r.jsx)(i.h2,{id:"select_table",children:"SELECT_TABLE"}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.strong,{children:"Select an existing table for editing, typically done to override an existing definition"})}),"\n",(0,r.jsxs)(i.table,{children:[(0,r.jsx)(i.thead,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.th,{children:"Parameter"}),(0,r.jsx)(i.th,{children:"Description"}),(0,r.jsx)(i.th,{children:"Required"})]})}),(0,r.jsx)(i.tbody,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Table"}),(0,r.jsx)(i.td,{children:"The name of the existin table"}),(0,r.jsx)(i.td,{children:"True"})]})})]}),"\n",(0,r.jsx)(i.h2,{id:"default",children:"DEFAULT"}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.strong,{children:"Specify default values for a SINGLE row in a multi-column table"})}),"\n",(0,r.jsx)(i.p,{children:"If you have multiple rows you need a DEFAULT line for each row. If all your rows are identical consider using ERB as shown in the OpenC3 demo."}),"\n",(0,r.jsxs)(i.table,{children:[(0,r.jsx)(i.thead,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.th,{children:"Parameter"}),(0,r.jsx)(i.th,{children:"Description"}),(0,r.jsx)(i.th,{children:"Required"})]})}),(0,r.jsx)(i.tbody,{children:(0,r.jsxs)(i.tr,{children:[(0,r.jsx)(i.td,{children:"Default values"}),(0,r.jsx)(i.td,{children:"A STATE value or data value corresponding to the data type"}),(0,r.jsx)(i.td,{children:"False"})]})})]}),"\n",(0,r.jsx)(i.h2,{id:"example-file",children:"Example File"}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.strong,{children:"Example File: TARGET/tables/config/MCConfigurationTable_def.txt"})}),"\n",(0,r.jsx)(i.pre,{children:(0,r.jsx)(i.code,{className:"language-ruby",children:'TABLE "MC_Configuration" BIG_ENDIAN KEY_VALUE "Memory Control Configuration Table"\n APPEND_PARAMETER "Scrub_Region_1_Start_Addr" 32 UINT 0 0x03FFFFFB 0\n FORMAT_STRING "0x%0X"\n APPEND_PARAMETER "Scrub_Region_1_End_Addr" 32 UINT 0 0x03FFFFFF 0x03FFFFFF\n FORMAT_STRING "0x%0X"\n APPEND_PARAMETER "Scrub_Region_2_Start_Addr" 32 UINT 0 0x03FFFFB 0\n FORMAT_STRING "0x%0X"\n APPEND_PARAMETER "Scrub_Region_2_End_Addr" 32 UINT 0 0x03FFFFF 0x03FFFFF\n FORMAT_STRING "0x%0X"\n APPEND_PARAMETER "Dump_Packet_Throttle_(sec)" 32 UINT 0 0x0FFFFFFFF 2 "Number of seconds to wait between dumping large packets"\n APPEND_PARAMETER "Memory_Scrubbing" 8 UINT 0 1 1\n STATE DISABLE 0\n STATE ENABLE 1\n APPEND_PARAMETER "SIOC_Memory_Config" 8 UINT 1 3 3\n APPEND_PARAMETER "Uneditable_Text" 32 UINT MIN MAX 0xDEADBEEF "Uneditable field"\n FORMAT_STRING "0x%0X"\n UNEDITABLE\n APPEND_PARAMETER "Uneditable_State" 16 UINT MIN MAX 0 "Uneditable field"\n STATE DISABLE 0\n STATE ENABLE 1\n UNEDITABLE\n APPEND_PARAMETER "Uneditable_Check" 16 UINT MIN MAX 1 "Uneditable field"\n STATE UNCHECKED 0\n STATE CHECKED 1\n UNEDITABLE\n APPEND_PARAMETER "Binary" 32 STRING 0xDEADBEEF "Binary string"\n APPEND_PARAMETER "Pad" 16 UINT 0 0 0\n HIDDEN\n'})})]})}function o(e={}){const{wrapper:i}={...(0,s.R)(),...e.components};return i?(0,r.jsx)(i,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},1184:(e,i,n)=>{n.d(i,{R:()=>d});var r=n(4041);const s={},t=r.createContext(s);function d(e){const i=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}}}]);
|