<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.simtx.net/index.php?action=history&amp;feed=atom&amp;title=Lua_action_API</id>
	<title>Lua action API - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.simtx.net/index.php?action=history&amp;feed=atom&amp;title=Lua_action_API"/>
	<link rel="alternate" type="text/html" href="https://wiki.simtx.net/index.php?title=Lua_action_API&amp;action=history"/>
	<updated>2026-11-04T21:38:08Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.simtx.net/index.php?title=Lua_action_API&amp;diff=1524&amp;oldid=prev</id>
		<title>Clanker: Rework documentation for new users: illustrated steps, clear navigation, preserved technical references, and current 0.3.6 behavior</title>
		<link rel="alternate" type="text/html" href="https://wiki.simtx.net/index.php?title=Lua_action_API&amp;diff=1524&amp;oldid=prev"/>
		<updated>2026-09-13T21:22:02Z</updated>

		<summary type="html">&lt;p&gt;Rework documentation for new users: illustrated steps, clear navigation, preserved technical references, and current 0.3.6 behavior&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:22, 13 September 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Documentation navigation}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;An &amp;#039;&amp;#039;&amp;#039;action&amp;#039;&amp;#039;&amp;#039; is a tool run explicitly from &amp;#039;&amp;#039;&amp;#039;Extensions&amp;#039;&amp;#039;&amp;#039; &amp;gt; &amp;#039;&amp;#039;&amp;#039;Tools&amp;#039;&amp;#039;&amp;#039;. It can read or change documented transmitter settings, show a status or message, and start or stop transmissions.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;An &amp;#039;&amp;#039;&amp;#039;action&amp;#039;&amp;#039;&amp;#039; is a tool run explicitly from &amp;#039;&amp;#039;&amp;#039;Extensions&amp;#039;&amp;#039;&amp;#039; &amp;gt; &amp;#039;&amp;#039;&amp;#039;Tools&amp;#039;&amp;#039;&amp;#039;. It can read or change documented transmitter settings, show a status or message, and start or stop transmissions.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== How to use this reference ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Use an action for a button-like tool, such as filling in several settings. It runs when the user invokes it, rather than once per audio block. The Quick Tune example below changes the form and reports a status; it does not start transmitting because it does not call app:start().&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Declaration ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Declaration ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l25&quot;&gt;Line 25:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 31:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Action context ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Action context ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&quot;wikitable&quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&quot;wikitable &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mw-collapsible mw-collapsed&lt;/ins&gt;&quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! Method !! Effect or result&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! Method !! Effect or result&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l52&quot;&gt;Line 52:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 58:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Setting keys ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Setting keys ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&quot;wikitable&quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&quot;wikitable &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mw-collapsible mw-collapsed&lt;/ins&gt;&quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! Group !! Keys !! Value&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! Group !! Keys !! Value&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Clanker</name></author>
	</entry>
	<entry>
		<id>https://wiki.simtx.net/index.php?title=Lua_action_API&amp;diff=570&amp;oldid=prev</id>
		<title>Clanker: Add and update user documentation for Lua extensions and the catalog</title>
		<link rel="alternate" type="text/html" href="https://wiki.simtx.net/index.php?title=Lua_action_API&amp;diff=570&amp;oldid=prev"/>
		<updated>2026-08-06T09:12:26Z</updated>

		<summary type="html">&lt;p&gt;Add and update user documentation for Lua extensions and the catalog&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;An &amp;#039;&amp;#039;&amp;#039;action&amp;#039;&amp;#039;&amp;#039; is a tool run explicitly from &amp;#039;&amp;#039;&amp;#039;Extensions&amp;#039;&amp;#039;&amp;#039; &amp;gt; &amp;#039;&amp;#039;&amp;#039;Tools&amp;#039;&amp;#039;&amp;#039;. It can read or change documented transmitter settings, show a status or message, and start or stop transmissions.&lt;br /&gt;
&lt;br /&gt;
== Declaration ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
simtx.action {&lt;br /&gt;
  name = &amp;quot;Quick Tune&amp;quot;,&lt;br /&gt;
  description = &amp;quot;Applies a frequency, power, and modulation.&amp;quot;,&lt;br /&gt;
  controls = {&lt;br /&gt;
    simtx.controls.text(&amp;quot;frequency&amp;quot;, {default = &amp;quot;7100000&amp;quot;}),&lt;br /&gt;
    simtx.controls.slider(&amp;quot;power&amp;quot;, {min = 1, max = 1000, default = 100}),&lt;br /&gt;
  },&lt;br /&gt;
  run = function(app)&lt;br /&gt;
    local values = app:controls()&lt;br /&gt;
    app:apply {&lt;br /&gt;
      [&amp;quot;rf.frequencyHz&amp;quot;] = values.frequency,&lt;br /&gt;
      [&amp;quot;rf.powerWatts&amp;quot;] = values.power,&lt;br /&gt;
      [&amp;quot;rf.modulation&amp;quot;] = &amp;quot;USB&amp;quot;,&lt;br /&gt;
    }&lt;br /&gt;
    app:status(&amp;quot;Quick Tune applied&amp;quot;)&lt;br /&gt;
  end,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;simtx.tool&amp;lt;/code&amp;gt; is an alias of &amp;lt;code&amp;gt;simtx.action&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt; fields are required. &amp;lt;code&amp;gt;action&amp;lt;/code&amp;gt; may be used as an alias of &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;controls&amp;lt;/code&amp;gt; are optional. The application displays the controls before running the callback.&lt;br /&gt;
&lt;br /&gt;
== Action context ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Method !! Effect or result&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;app:control(id)&amp;lt;/code&amp;gt; || Value of one action control, or &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;app:controls()&amp;lt;/code&amp;gt; || Snapshot table of all action controls.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;app:get(key)&amp;lt;/code&amp;gt; || Current value of one documented transmitter setting, or &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt; for an unknown key.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;app:settings()&amp;lt;/code&amp;gt; || Snapshot table containing every documented setting.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;app:set(key, value)&amp;lt;/code&amp;gt; || Changes one documented setting.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;app:apply(table)&amp;lt;/code&amp;gt; || Changes each setting in a table.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;app:status(message)&amp;lt;/code&amp;gt; || Places a message in the transmitter status line.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;app:notify(message)&amp;lt;/code&amp;gt; || Shows an informational dialog.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;app:start()&amp;lt;/code&amp;gt; || Starts a transmission with the current form values.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;app:stopAll()&amp;lt;/code&amp;gt; || Stops all transmitter sessions.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Setting values may be &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt;, Boolean, number, or string. Unknown keys and invalid values produce an error.&lt;br /&gt;
&lt;br /&gt;
== Setting keys ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Group !! Keys !! Value&lt;br /&gt;
|-&lt;br /&gt;
| Station || &amp;lt;code&amp;gt;station.callsign&amp;lt;/code&amp;gt; || String&lt;br /&gt;
|-&lt;br /&gt;
| Station || &amp;lt;code&amp;gt;station.lat&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;station.lon&amp;lt;/code&amp;gt; || Number&lt;br /&gt;
|-&lt;br /&gt;
| RF basics || &amp;lt;code&amp;gt;rf.frequencyHz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rf.powerWatts&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rf.bandwidthHz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rf.lowCutHz&amp;lt;/code&amp;gt; || Number&lt;br /&gt;
|-&lt;br /&gt;
| RF selection || &amp;lt;code&amp;gt;rf.radioPreset&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rf.modulation&amp;lt;/code&amp;gt; || String&lt;br /&gt;
|-&lt;br /&gt;
| RF bandwidth || &amp;lt;code&amp;gt;rf.autoBandwidth&amp;lt;/code&amp;gt; || Boolean&lt;br /&gt;
|-&lt;br /&gt;
| RF character || &amp;lt;code&amp;gt;rf.finalDriveDb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rf.paHeadroomDb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rf.audioCompressionDb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rf.paSoftness&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rf.paAmPmDeg&amp;lt;/code&amp;gt; || Number&lt;br /&gt;
|-&lt;br /&gt;
| RF suppression || &amp;lt;code&amp;gt;rf.carrierLeakDb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rf.sidebandSuppressionDb&amp;lt;/code&amp;gt; || Number&lt;br /&gt;
|-&lt;br /&gt;
| RF oscillator and noise || &amp;lt;code&amp;gt;rf.frequencyOffsetHz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rf.mainsHumDb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rf.mainsHumHz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rf.txNoiseFloorDb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rf.oscillatorPhaseNoiseDb&amp;lt;/code&amp;gt; || Number&lt;br /&gt;
|-&lt;br /&gt;
| Mode-specific RF || &amp;lt;code&amp;gt;rf.amModulationIndex&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rf.paSupplySagDb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rf.cwKeyRiseMs&amp;lt;/code&amp;gt; || Number&lt;br /&gt;
|-&lt;br /&gt;
| Source || &amp;lt;code&amp;gt;source.type&amp;lt;/code&amp;gt; || String&lt;br /&gt;
|-&lt;br /&gt;
| Source || &amp;lt;code&amp;gt;source.gain&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;source.tone&amp;lt;/code&amp;gt; || Number&lt;br /&gt;
|-&lt;br /&gt;
| Source || &amp;lt;code&amp;gt;source.repeat&amp;lt;/code&amp;gt; || Boolean&lt;br /&gt;
|-&lt;br /&gt;
| Antenna || &amp;lt;code&amp;gt;antenna.type&amp;lt;/code&amp;gt; || String&lt;br /&gt;
|-&lt;br /&gt;
| Antenna || &amp;lt;code&amp;gt;antenna.length&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;antenna.height&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;antenna.azimuth&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;antenna.feedlineLossDb&amp;lt;/code&amp;gt; || Number&lt;br /&gt;
|-&lt;br /&gt;
| Appearance || &amp;lt;code&amp;gt;ui.theme&amp;lt;/code&amp;gt; || String&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Built-in modulation values are &amp;lt;code&amp;gt;AM_DSB_FC&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AM_DSB_SC&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;USB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LSB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CW&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NFM&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;WFM&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;IQ&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;WSPR&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;FT8&amp;lt;/code&amp;gt;. A Lua modulation may be selected with &amp;lt;code&amp;gt;lua:&amp;lt;/code&amp;gt; followed by its display name.&lt;br /&gt;
&lt;br /&gt;
Source type values are &amp;lt;code&amp;gt;AUDIO_STREAM&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MICROPHONE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;WHITE_NOISE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PIPEWIRE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PIPEWIRE_STEREO&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;GNU_RADIO_IQ&amp;lt;/code&amp;gt;. Antenna type values are &amp;lt;code&amp;gt;DIPOLE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;VERTICAL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;YAGI_3EL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;YAGI_5EL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LOOP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;BEVERAGE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LONGWIRE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;INVERTED_V&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;EFHW_32M_49_1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Radio preset values accepted by &amp;lt;code&amp;gt;set&amp;lt;/code&amp;gt; are &amp;lt;code&amp;gt;GENERIC_HF&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CLEAN_LAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ICOM_IC_7300&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ICOM_IC_705&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ICOM_IC_7610&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;YAESU_FTDX10&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ELECRAFT_KX3&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;YAESU_FT_817&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;KENWOOD_TS_590&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XIEGU_G90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;USDX_QRP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MIL_MANPACK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;VINTAGE_TUBE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;COLLINS_KWM2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;BOAT_ANCHOR_AM&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CB_EXPORT_AM&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;VHF_HANDHELD_FM&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;HOME_BREW_CLASS_E_AM&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;DIRTY_DRIVER&amp;lt;/code&amp;gt;. Reading &amp;lt;code&amp;gt;rf.radioPreset&amp;lt;/code&amp;gt; returns the display name shown in [[Radio Presets]].&lt;br /&gt;
&lt;br /&gt;
The system theme is named &amp;lt;code&amp;gt;System&amp;lt;/code&amp;gt;. Other theme values are installed Lua theme names.&lt;br /&gt;
&lt;br /&gt;
The aliases &amp;lt;code&amp;gt;station.latitude&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;station.longitude&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rf.frequency&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rf.power&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rf.bandwidth&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;rf.auto_bandwidth&amp;lt;/code&amp;gt; are accepted by &amp;lt;code&amp;gt;get&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;set&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Category:Lua extensions]]&lt;/div&gt;</summary>
		<author><name>Clanker</name></author>
	</entry>
</feed>