<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title> – Exploring parameters</title>
    <link>/docs/motorcortex-io-tools/motorcortex-desk/exploring-parameters/</link>
    <description>Recent content in Exploring parameters on </description>
    <generator>Hugo -- gohugo.io</generator>
    
	  <atom:link href="/docs/motorcortex-io-tools/motorcortex-desk/exploring-parameters/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Docs: Navigating the tree</title>
      <link>/docs/motorcortex-io-tools/motorcortex-desk/exploring-parameters/tree/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/motorcortex-io-tools/motorcortex-desk/exploring-parameters/tree/</guid>
      <description>
        
        
        &lt;figure&gt;&lt;img src=&#34;/docs/motorcortex-io-tools/motorcortex-desk/exploring-parameters/_media/param-tree-overview.png&#34;
         alt=&#34;Parameter tree&#34; width=&#34;800&#34;/&gt;&lt;/a&gt;
&lt;/figure&gt;

&lt;ul&gt;
&lt;li&gt;Click a folder (▶ / ▼) to expand or collapse it.&lt;/li&gt;
&lt;li&gt;Each leaf shows its live value on the right, and a writable leaf also has an inline input.&lt;/li&gt;
&lt;li&gt;Hover a row to see its full path as a tooltip.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Values of the parameters currently on screen refresh twice a second. The tree is a reader, not a recorder. For
anything you want to watch over time, plot it.&lt;/p&gt;
&lt;h4 id=&#34;parameter-types&#34;&gt;Parameter types&lt;/h4&gt;
&lt;p&gt;The colour of the icon in front of a leaf is its role in the control program:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Icon colour&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Blue&lt;/td&gt;
&lt;td&gt;INPUT&lt;/td&gt;
&lt;td&gt;Input of a control block&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Amber&lt;/td&gt;
&lt;td&gt;OUTPUT&lt;/td&gt;
&lt;td&gt;Output of a control block&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Green&lt;/td&gt;
&lt;td&gt;PARAMETER&lt;/td&gt;
&lt;td&gt;Configuration value&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Purple&lt;/td&gt;
&lt;td&gt;PARAMETER_VOLATILE&lt;/td&gt;
&lt;td&gt;Configuration value, not stored on disk&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Teal&lt;/td&gt;
&lt;td&gt;PARAMETER_PERSISTENT&lt;/td&gt;
&lt;td&gt;Configuration value, stored on disk&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Non-numeric parameters (strings, enums, byte arrays) are listed and can be read, but cannot be plotted.&lt;/p&gt;
&lt;h4 id=&#34;array-parameters&#34;&gt;Array parameters&lt;/h4&gt;
&lt;figure&gt;&lt;img src=&#34;/docs/motorcortex-io-tools/motorcortex-desk/exploring-parameters/_media/param-tree-array.png&#34;
         alt=&#34;Array parameter expanded into channels&#34; width=&#34;800&#34;/&gt;&lt;/a&gt;
&lt;/figure&gt;

&lt;p&gt;An array parameter carries an &lt;code&gt;[Nch]&lt;/code&gt; badge. Click its icon or name to expand it into channels &lt;code&gt;ch0 … chN-1&lt;/code&gt;, each
with its own value and input.&lt;/p&gt;
&lt;h4 id=&#34;while-a-custom-signal-editor-is-open&#34;&gt;While a custom-signal editor is open&lt;/h4&gt;
&lt;p&gt;A plain click in the tree inserts a reference into the expression instead of expanding or selecting. See
&lt;a href=&#34;/docs/motorcortex-io-tools/motorcortex-desk/custom-signals/&#34;&gt;Custom signals&lt;/a&gt;.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Searching and filtering</title>
      <link>/docs/motorcortex-io-tools/motorcortex-desk/exploring-parameters/filtering/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/motorcortex-io-tools/motorcortex-desk/exploring-parameters/filtering/</guid>
      <description>
        
        
        &lt;figure&gt;&lt;img src=&#34;/docs/motorcortex-io-tools/motorcortex-desk/exploring-parameters/_media/param-tree-filter.png&#34;
         alt=&#34;Filter applied to the tree&#34; width=&#34;800&#34;/&gt;&lt;/a&gt;
&lt;/figure&gt;

&lt;ul&gt;
&lt;li&gt;Press &lt;strong&gt;Ctrl+F&lt;/strong&gt; (&lt;strong&gt;Cmd+F&lt;/strong&gt;) to jump to the filter box.&lt;/li&gt;
&lt;li&gt;Typing filters by name; only matching leaves and the folders leading to them stay visible, already expanded.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;✕&lt;/strong&gt; to clear the filter.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;the-wildcard-is-what-makes-it-usable&#34;&gt;The wildcard is what makes it usable&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;*&lt;/code&gt; matches across path segments, so you can name a leaf and the branch it lives on without typing what is between
them. On a controller with a left and a right arm:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Filter&lt;/th&gt;
&lt;th&gt;Matches&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;jointPositionsActual&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;every parameter with that name, on both arms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;handcontrollerRight*jointPositionsActual&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;only the right arm&amp;rsquo;s, wherever it sits in the tree&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;01*Enable&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;every &lt;code&gt;Enable&lt;/code&gt; under anything numbered &lt;code&gt;01&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Matching is case-insensitive.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Writing a value</title>
      <link>/docs/motorcortex-io-tools/motorcortex-desk/exploring-parameters/writing/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/motorcortex-io-tools/motorcortex-desk/exploring-parameters/writing/</guid>
      <description>
        
        
        &lt;figure&gt;&lt;img src=&#34;/docs/motorcortex-io-tools/motorcortex-desk/exploring-parameters/_media/param-tree-edit.png&#34;
         alt=&#34;Inline write input on a parameter row&#34; width=&#34;800&#34;/&gt;&lt;/a&gt;
&lt;/figure&gt;

&lt;p&gt;Writable parameters (INPUT, OUTPUT and the PARAMETER variants) reveal an inline input beside the live value when
you hover or focus the row. Its placeholder shows the value the parameter holds now.&lt;/p&gt;



 
 




 



&lt;div class=&#34;alert alert-warning&#34; role=&#34;alert&#34;&gt;&lt;h4 class=&#34;alert-heading&#34;&gt;Warning&lt;/h4&gt;
 &lt;p&gt;A write goes straight to a running machine and can move an axis. Check the path and the value before pressing Enter.&lt;/p&gt;
&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;Click the input.&lt;/li&gt;
&lt;li&gt;Type a value. Math expressions are evaluated: &lt;code&gt;2*pi&lt;/code&gt;, &lt;code&gt;1/60&lt;/code&gt;, &lt;code&gt;0.5+sin(0.3)&lt;/code&gt; all work.&lt;/li&gt;
&lt;li&gt;Press &lt;strong&gt;Enter&lt;/strong&gt; to write. The input flashes green on success, indigo on failure.&lt;/li&gt;
&lt;li&gt;Press &lt;strong&gt;Escape&lt;/strong&gt; to leave the value untouched.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;A plotted signal carries the same input on its row in the &lt;strong&gt;Active&lt;/strong&gt; panel and in the details pane there, so a
parameter you are already watching can be written without finding it in the tree again.&lt;/p&gt;
&lt;h4 id=&#34;whole-arrays-at-once&#34;&gt;Whole arrays at once&lt;/h4&gt;
&lt;p&gt;For an array leaf you can write one channel at a time, or write the whole array in the parent input as a list:
&lt;code&gt;[0, 1.5, 2]&lt;/code&gt; or &lt;code&gt;0 1.5 2&lt;/code&gt;. The list must hold exactly as many values as the array has channels.&lt;/p&gt;
&lt;h4 id=&#34;locking-a-parameter&#34;&gt;Locking a parameter&lt;/h4&gt;
&lt;p&gt;A &lt;strong&gt;lock&lt;/strong&gt; (force overwrite) holds a parameter at the value you wrote, overriding whatever the control program writes
to it. Locked rows are highlighted, and the same lock shows on the signal in the &lt;strong&gt;Active&lt;/strong&gt; panel.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Lock:&lt;/strong&gt; right-click the parameter → &lt;strong&gt;Lock&lt;/strong&gt;, in the tree, in Active or in the plot legend; or use the lock
button in the Active details pane.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Unlock:&lt;/strong&gt; right-click → &lt;strong&gt;Unlock&lt;/strong&gt;, or click the highlighted lock button again.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Locks live in the controller session, so disconnecting releases them. That is a safety net, not a strategy. A lock
you forget about is a parameter the control program has silently lost.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Context menu and saving</title>
      <link>/docs/motorcortex-io-tools/motorcortex-desk/exploring-parameters/menu/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/motorcortex-io-tools/motorcortex-desk/exploring-parameters/menu/</guid>
      <description>
        
        
        &lt;figure&gt;&lt;img src=&#34;/docs/motorcortex-io-tools/motorcortex-desk/exploring-parameters/_media/param-tree-context-menu.png&#34;
         alt=&#34;Parameter context menu&#34; width=&#34;800&#34;/&gt;&lt;/a&gt;
&lt;/figure&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Add to plot&lt;/strong&gt; / &lt;strong&gt;Delete from plot&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Toggle this leaf (or channel) as a trace&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Add to plot&lt;/strong&gt; (array parent)&lt;/td&gt;
&lt;td&gt;Add every channel of the array at once; the label reads &lt;strong&gt;Delete from plot&lt;/strong&gt; once they all are&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Lock&lt;/strong&gt; / &lt;strong&gt;Unlock&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Force the parameter at its current value, or release it&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Copy full path&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Copy the &lt;code&gt;root/…&lt;/code&gt; path to the clipboard&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Copy name&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Copy just the leaf name&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Copy value&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Copy the current value, the whole array for an array parameter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Get info&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Show what the controller reports about the parameter, where it has anything to report&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;persisting-the-parameter-set&#34;&gt;Persisting the parameter set&lt;/h4&gt;
&lt;p&gt;The save button in the Parameters tab header, or &lt;strong&gt;Ctrl+S&lt;/strong&gt;, tells the controller to write its current parameter set
to disk so it survives a restart.&lt;/p&gt;
&lt;p&gt;The button is disabled while disconnected, turns green on success, and red when the controller refuses the save.&lt;/p&gt;



 
 




 



&lt;div class=&#34;alert alert-warning&#34; role=&#34;alert&#34;&gt;&lt;h4 class=&#34;alert-heading&#34;&gt;Warning&lt;/h4&gt;
 &lt;p&gt;This persists every parameter as it stands now, including values you changed while experimenting. Check the tree before saving.&lt;/p&gt;
&lt;/div&gt;



      </description>
    </item>
    
  </channel>
</rss>
