RTXI / rtxi

Tutorials, FAQs, and more at http://rtxi.org/docs
GNU General Public License v3.0
53 stars 15 forks source link

System modules aren't loaded from saved workspaces #66

Closed sudorook closed 9 years ago

sudorook commented 9 years ago

System module UIs for everything other than the Data Recorder and the Oscilloscope are not loaded when loading workspaces from *.set files.

There's also some interesting behaviour.

1. Open a blank RTXI session and load all system modules.

I opened the modules in descending order based on the way they're listed in the drop-down menu. I then saved the workspace into a *.set file. Below is a screenshot of the modules (the module ID numbers will be of interest). step1

2. Close and re-open RTXI and load the settings file.

The UIs are missing for the modules that don't have IDs displayed. The settings themselves are saved (i.e, which channels are open, the RT frequency, etc.). Below is a screenshot made after the setting file is loaded.
step 2

One interesting thing is that the IDs for the Oscilloscope and Data Recorder are different. They're also in single digits, which is odd considering that when opening modules, the numbering starts at 11. Also, the IDs assigned in both screenshots don't match what's in the *.set file.

<RTXI version="2.0" class="settings">
 <OBJECT component="rt" id="0">
  <PARAM name="Period">1000000</PARAM>
 </OBJECT>
 <OBJECT component="io" id="1">
  <PARAM name="Num Links">0</PARAM>
 </OBJECT>
 <OBJECT component="plugin" id="2" library="analogy_driver.so">
  <PARAM name="0">analogy0</PARAM>
  <PARAM name="Num Devices">1</PARAM>
  <OBJECT id="13" name="0">
   <PARAM name="0 AI Active">0</PARAM>
   <PARAM name="0 AI Gain">1</PARAM>
   <PARAM name="0 AI Range">0</PARAM>
   <PARAM name="0 AI Reference">0</PARAM>
   <PARAM name="0 AI Units">0</PARAM>
   <PARAM name="0 AI Zero Offset">0</PARAM>
   <PARAM name="0 AO Active">0</PARAM>
   <PARAM name="0 AO Gain">1</PARAM>
   <PARAM name="0 AO Range">0</PARAM>
   <PARAM name="0 AO Reference">0</PARAM>
   <PARAM name="0 AO Units">0</PARAM>
   <PARAM name="0 AO Zero Offset">0</PARAM>
   <PARAM name="0 DIO Active">0</PARAM>
   <PARAM name="0 DIO Direction">0</PARAM>
   <PARAM name="1 AI Active">0</PARAM>
   <PARAM name="1 AI Gain">1</PARAM>
   <PARAM name="1 AI Range">0</PARAM>
   <PARAM name="1 AI Reference">0</PARAM>
   <PARAM name="1 AI Units">0</PARAM>
   <PARAM name="1 AI Zero Offset">0</PARAM>
   <PARAM name="1 AO Active">0</PARAM>
   <PARAM name="1 AO Gain">1</PARAM>
   <PARAM name="1 AO Range">0</PARAM>
   <PARAM name="1 AO Reference">0</PARAM>
   <PARAM name="1 AO Units">0</PARAM>
   <PARAM name="1 AO Zero Offset">0</PARAM>
   <PARAM name="1 DIO Active">0</PARAM>
   <PARAM name="1 DIO Direction">0</PARAM>
   <PARAM name="10 AI Active">0</PARAM>
   <PARAM name="10 AI Gain">1</PARAM>
   <PARAM name="10 AI Range">0</PARAM>
   <PARAM name="10 AI Reference">0</PARAM>
   <PARAM name="10 AI Units">0</PARAM>
   <PARAM name="10 AI Zero Offset">0</PARAM>
   <PARAM name="11 AI Active">0</PARAM>
   <PARAM name="11 AI Gain">1</PARAM>
   <PARAM name="11 AI Range">0</PARAM>
   <PARAM name="11 AI Reference">0</PARAM>
   <PARAM name="11 AI Units">0</PARAM>
   <PARAM name="11 AI Zero Offset">0</PARAM>
   <PARAM name="12 AI Active">0</PARAM>
   <PARAM name="12 AI Gain">1</PARAM>
   <PARAM name="12 AI Range">0</PARAM>
   <PARAM name="12 AI Reference">0</PARAM>
   <PARAM name="12 AI Units">0</PARAM>
   <PARAM name="12 AI Zero Offset">0</PARAM>
   <PARAM name="13 AI Active">0</PARAM>
   <PARAM name="13 AI Gain">1</PARAM>
   <PARAM name="13 AI Range">0</PARAM>
   <PARAM name="13 AI Reference">0</PARAM>
   <PARAM name="13 AI Units">0</PARAM>
   <PARAM name="13 AI Zero Offset">0</PARAM>
   <PARAM name="14 AI Active">0</PARAM>
   <PARAM name="14 AI Gain">1</PARAM>
   <PARAM name="14 AI Range">0</PARAM>
   <PARAM name="14 AI Reference">0</PARAM>
   <PARAM name="14 AI Units">0</PARAM>
   <PARAM name="14 AI Zero Offset">0</PARAM>
   <PARAM name="15 AI Active">0</PARAM>
   <PARAM name="15 AI Gain">1</PARAM>
   <PARAM name="15 AI Range">0</PARAM>
   <PARAM name="15 AI Reference">0</PARAM>
   <PARAM name="15 AI Units">0</PARAM>
   <PARAM name="15 AI Zero Offset">0</PARAM>
   <PARAM name="2 AI Active">0</PARAM>
   <PARAM name="2 AI Gain">1</PARAM>
   <PARAM name="2 AI Range">0</PARAM>
   <PARAM name="2 AI Reference">0</PARAM>
   <PARAM name="2 AI Units">0</PARAM>
   <PARAM name="2 AI Zero Offset">0</PARAM>
   <PARAM name="2 DIO Active">0</PARAM>
   <PARAM name="2 DIO Direction">0</PARAM>
   <PARAM name="3 AI Active">0</PARAM>
   <PARAM name="3 AI Gain">1</PARAM>
   <PARAM name="3 AI Range">0</PARAM>
   <PARAM name="3 AI Reference">0</PARAM>
   <PARAM name="3 AI Units">0</PARAM>
   <PARAM name="3 AI Zero Offset">0</PARAM>
   <PARAM name="3 DIO Active">0</PARAM>
   <PARAM name="3 DIO Direction">0</PARAM>
   <PARAM name="4 AI Active">0</PARAM>
   <PARAM name="4 AI Gain">1</PARAM>
   <PARAM name="4 AI Range">0</PARAM>
   <PARAM name="4 AI Reference">0</PARAM>
   <PARAM name="4 AI Units">0</PARAM>
   <PARAM name="4 AI Zero Offset">0</PARAM>
   <PARAM name="4 DIO Active">0</PARAM>
   <PARAM name="4 DIO Direction">0</PARAM>
   <PARAM name="5 AI Active">0</PARAM>
   <PARAM name="5 AI Gain">1</PARAM>
   <PARAM name="5 AI Range">0</PARAM>
   <PARAM name="5 AI Reference">0</PARAM>
   <PARAM name="5 AI Units">0</PARAM>
   <PARAM name="5 AI Zero Offset">0</PARAM>
   <PARAM name="5 DIO Active">0</PARAM>
   <PARAM name="5 DIO Direction">0</PARAM>
   <PARAM name="6 AI Active">0</PARAM>
   <PARAM name="6 AI Gain">1</PARAM>
   <PARAM name="6 AI Range">0</PARAM>
   <PARAM name="6 AI Reference">0</PARAM>
   <PARAM name="6 AI Units">0</PARAM>
   <PARAM name="6 AI Zero Offset">0</PARAM>
   <PARAM name="6 DIO Active">0</PARAM>
   <PARAM name="6 DIO Direction">0</PARAM>
   <PARAM name="7 AI Active">0</PARAM>
   <PARAM name="7 AI Gain">1</PARAM>
   <PARAM name="7 AI Range">0</PARAM>
   <PARAM name="7 AI Reference">0</PARAM>
   <PARAM name="7 AI Units">0</PARAM>
   <PARAM name="7 AI Zero Offset">0</PARAM>
   <PARAM name="7 DIO Active">0</PARAM>
   <PARAM name="7 DIO Direction">0</PARAM>
   <PARAM name="8 AI Active">0</PARAM>
   <PARAM name="8 AI Gain">1</PARAM>
   <PARAM name="8 AI Range">0</PARAM>
   <PARAM name="8 AI Reference">0</PARAM>
   <PARAM name="8 AI Units">0</PARAM>
   <PARAM name="8 AI Zero Offset">0</PARAM>
   <PARAM name="9 AI Active">0</PARAM>
   <PARAM name="9 AI Gain">1</PARAM>
   <PARAM name="9 AI Range">0</PARAM>
   <PARAM name="9 AI Reference">0</PARAM>
   <PARAM name="9 AI Units">0</PARAM>
   <PARAM name="9 AI Zero Offset">0</PARAM>
   <PARAM name="AI Count">16</PARAM>
   <PARAM name="AO Count">2</PARAM>
   <PARAM name="DIO Count">8</PARAM>
  </OBJECT>
 </OBJECT>
 <OBJECT component="plugin" id="3" library="model_loader.so"/>
 <OBJECT component="plugin" id="4" library="dynamo_model_loader.so"/>
 <OBJECT component="plugin" id="5" library="system_control.so"/>
 <OBJECT component="plugin" id="6" library="oscilloscope.so">
  <PARAM name="Num Panels">1</PARAM>
  <OBJECT id="11" name="0">
   <PARAM name="DivT">1</PARAM>
   <PARAM name="DivX">10</PARAM>
   <PARAM name="DivY">10</PARAM>
   <PARAM name="H">597</PARAM>
   <PARAM name="Num Channels">0</PARAM>
   <PARAM name="Paused">0</PARAM>
   <PARAM name="Refresh">250</PARAM>
   <PARAM name="Size">11</PARAM>
   <PARAM name="W">840</PARAM>
   <PARAM name="X">400</PARAM>
   <PARAM name="Y">0</PARAM>
  </OBJECT>
 </OBJECT>
 <OBJECT component="plugin" id="7" library="data_recorder.so">
  <PARAM name="Num Panels">1</PARAM>
  <OBJECT id="12" name="0">
   <PARAM name="Downsample">1</PARAM>
   <PARAM name="H">422</PARAM>
   <PARAM name="Num Channels">0</PARAM>
   <PARAM name="W">492</PARAM>
   <PARAM name="X">1248</PARAM>
   <PARAM name="Y">0</PARAM>
  </OBJECT>
 </OBJECT>
 <OBJECT component="plugin" id="8" library="connector.so"/>
 <OBJECT component="plugin" id="9" library="performance_measurement.so"/>
 <OBJECT component="plugin" id="10" library="userprefs.so"/>
</RTXI>