<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>AHRSWidget</class>
 <widget class="QWidget" name="AHRSWidget">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>720</width>
    <height>501</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>Form</string>
  </property>
  <layout class="QVBoxLayout" name="verticalLayout">
   <item>
    <widget class="QTabWidget" name="tabWidget">
     <property name="currentIndex">
      <number>0</number>
     </property>
     <widget class="QWidget" name="tab_2">
      <attribute name="title">
       <string>Calibration</string>
      </attribute>
      <layout class="QVBoxLayout" name="verticalLayout_7" stretch="0,0,0">
       <item>
        <layout class="QHBoxLayout" name="sixPointLayout" stretch="1,2">
         <item>
          <widget class="QFrame" name="frame">
           <property name="frameShape">
            <enum>QFrame::Box</enum>
           </property>
           <property name="frameShadow">
            <enum>QFrame::Sunken</enum>
           </property>
           <layout class="QVBoxLayout" name="verticalLayout_9">
            <property name="margin">
             <number>3</number>
            </property>
            <item>
             <layout class="QVBoxLayout" name="verticalLayout_3">
              <item>
               <widget class="QLabel" name="label_3">
                <property name="font">
                 <font>
                  <weight>75</weight>
                  <bold>true</bold>
                 </font>
                </property>
                <property name="text">
                 <string>#1: Multi-Point Calibration</string>
                </property>
               </widget>
              </item>
              <item>
               <widget class="QGraphicsView" name="sixPointsHelp">
                <property name="toolTip">
                 <string>Nice paper plane, eh?</string>
                </property>
               </widget>
              </item>
              <item>
               <layout class="QHBoxLayout" name="horizontalLayout_4">
                <item>
                 <widget class="QPushButton" name="sixPointsStart">
                  <property name="enabled">
                   <bool>false</bool>
                  </property>
                  <property name="toolTip">
                   <string>Launch a sensor range and bias calibration.</string>
                  </property>
                  <property name="text">
                   <string>Start</string>
                  </property>
                 </widget>
                </item>
                <item>
                 <widget class="QPushButton" name="sixPointsSave">
                  <property name="enabled">
                   <bool>false</bool>
                  </property>
                  <property name="toolTip">
                   <string>Save settings (only enabled when calibration is running)</string>
                  </property>
                  <property name="text">
                   <string>Save Position</string>
                  </property>
                 </widget>
                </item>
               </layout>
              </item>
             </layout>
            </item>
           </layout>
           <zorder></zorder>
          </widget>
         </item>
         <item>
          <widget class="QFrame" name="frame_2">
           <property name="frameShape">
            <enum>QFrame::Box</enum>
           </property>
           <property name="frameShadow">
            <enum>QFrame::Sunken</enum>
           </property>
           <layout class="QVBoxLayout" name="verticalLayout_10">
            <property name="margin">
             <number>3</number>
            </property>
            <item>
             <layout class="QVBoxLayout" name="verticalLayout_4">
              <item>
               <widget class="QLabel" name="label">
                <property name="font">
                 <font>
                  <weight>75</weight>
                  <bold>true</bold>
                 </font>
                </property>
                <property name="text">
                 <string>#2: Sensor noise calibration</string>
                </property>
               </widget>
              </item>
              <item>
               <widget class="QGraphicsView" name="ahrsBargraph">
                <property name="toolTip">
                 <string>These are the sensor variance values computed by the AHRS.

Tip: lower is better!</string>
                </property>
                <property name="verticalScrollBarPolicy">
                 <enum>Qt::ScrollBarAlwaysOff</enum>
                </property>
                <property name="horizontalScrollBarPolicy">
                 <enum>Qt::ScrollBarAlwaysOff</enum>
                </property>
               </widget>
              </item>
              <item>
               <layout class="QHBoxLayout" name="horizontalLayout">
                <item>
                 <widget class="QPushButton" name="ahrsCalibStart">
                  <property name="enabled">
                   <bool>false</bool>
                  </property>
                  <property name="toolTip">
                   <string>Press to start a calibration procedure, about 15 seconds.

Hint: run this with engines at cruising speed.</string>
                  </property>
                  <property name="text">
                   <string>Start</string>
                  </property>
                 </widget>
                </item>
                <item>
                 <widget class="QProgressBar" name="calibProgress">
                  <property name="enabled">
                   <bool>true</bool>
                  </property>
                  <property name="maximum">
                   <number>15</number>
                  </property>
                  <property name="value">
                   <number>0</number>
                  </property>
                  <property name="textVisible">
                   <bool>false</bool>
                  </property>
                 </widget>
                </item>
               </layout>
              </item>
             </layout>
            </item>
           </layout>
          </widget>
         </item>
        </layout>
       </item>
       <item>
        <layout class="QHBoxLayout" name="sensorNoiseLayout">
         <item>
          <widget class="QFrame" name="frame_3">
           <property name="frameShape">
            <enum>QFrame::StyledPanel</enum>
           </property>
           <property name="frameShadow">
            <enum>QFrame::Raised</enum>
           </property>
           <layout class="QVBoxLayout" name="verticalLayout_2">
            <property name="margin">
             <number>3</number>
            </property>
            <item>
             <layout class="QVBoxLayout" name="verticalLayout_5">
              <item>
               <widget class="QLabel" name="label_5">
                <property name="font">
                 <font>
                  <weight>75</weight>
                  <bold>true</bold>
                 </font>
                </property>
                <property name="text">
                 <string>#3: Accelerometer Bias calibration</string>
                </property>
               </widget>
              </item>
              <item>
               <layout class="QHBoxLayout" name="horizontalLayout_3">
                <item>
                 <widget class="QPushButton" name="accelBiasStart">
                  <property name="enabled">
                   <bool>false</bool>
                  </property>
                  <property name="text">
                   <string>Start</string>
                  </property>
                 </widget>
                </item>
                <item>
                 <widget class="QProgressBar" name="accelBiasProgress">
                  <property name="value">
                   <number>0</number>
                  </property>
                  <property name="textVisible">
                   <bool>false</bool>
                  </property>
                 </widget>
                </item>
               </layout>
              </item>
             </layout>
            </item>
           </layout>
          </widget>
         </item>
         <item>
          <widget class="QFrame" name="frame_4">
           <property name="frameShape">
            <enum>QFrame::StyledPanel</enum>
           </property>
           <property name="frameShadow">
            <enum>QFrame::Raised</enum>
           </property>
           <layout class="QVBoxLayout" name="verticalLayout_8">
            <property name="margin">
             <number>3</number>
            </property>
            <item>
             <layout class="QVBoxLayout" name="gyroDriftLayout">
              <item>
               <widget class="QLabel" name="label_6">
                <property name="font">
                 <font>
                  <weight>75</weight>
                  <bold>true</bold>
                 </font>
                </property>
                <property name="text">
                 <string>#4 Gyro temperature drift calibration</string>
                </property>
               </widget>
              </item>
              <item>
               <layout class="QHBoxLayout" name="horizontalLayout_5">
                <item>
                 <widget class="QLabel" name="label_7">
                  <property name="text">
                   <string>Temp:</string>
                  </property>
                 </widget>
                </item>
                <item>
                 <widget class="QLabel" name="gyroMinTemp">
                  <property name="font">
                   <font>
                    <pointsize>9</pointsize>
                   </font>
                  </property>
                  <property name="text">
                   <string>Min</string>
                  </property>
                 </widget>
                </item>
                <item>
                 <widget class="QSlider" name="gyroTempSlider">
                  <property name="toolTip">
                   <string>Currently measured temperature on the system. This is actually the
MB temperature, be careful if somehow you know that your INS
temperature is very different from your MB temp...</string>
                  </property>
                  <property name="orientation">
                   <enum>Qt::Horizontal</enum>
                  </property>
                  <property name="tickPosition">
                   <enum>QSlider::TicksBelow</enum>
                  </property>
                 </widget>
                </item>
                <item>
                 <widget class="QLabel" name="gyroMaxTemp">
                  <property name="font">
                   <font>
                    <pointsize>9</pointsize>
                   </font>
                  </property>
                  <property name="text">
                   <string>Max</string>
                  </property>
                 </widget>
                </item>
               </layout>
              </item>
              <item>
               <layout class="QHBoxLayout" name="horizontalLayout_7">
                <item>
                 <widget class="QLabel" name="label_14">
                  <property name="text">
                   <string>Current drift:</string>
                  </property>
                 </widget>
                </item>
               </layout>
              </item>
              <item>
               <layout class="QHBoxLayout" name="horizontalLayout_10">
                <item>
                 <widget class="QLabel" name="label_17">
                  <property name="text">
                   <string>Saved drift:</string>
                  </property>
                 </widget>
                </item>
               </layout>
              </item>
              <item>
               <layout class="QHBoxLayout" name="horizontalLayout_6">
                <item>
                 <widget class="QPushButton" name="startDriftCalib">
                  <property name="enabled">
                   <bool>false</bool>
                  </property>
                  <property name="toolTip">
                   <string>Start gathering data for temperature drift calibration.
Avoid sudden moves once you have started gathering!</string>
                  </property>
                  <property name="text">
                   <string>Start</string>
                  </property>
                 </widget>
                </item>
                <item>
                 <widget class="QPushButton" name="gyroMeasureDrift">
                  <property name="enabled">
                   <bool>false</bool>
                  </property>
                  <property name="toolTip">
                   <string>Launch drift measurement based on gathered data.

TODO: is this necessary? Measurement could be auto updated every second or so, or done when we stop measuring...</string>
                  </property>
                  <property name="text">
                   <string>Measure</string>
                  </property>
                 </widget>
                </item>
                <item>
                 <widget class="QPushButton" name="updateDrift">
                  <property name="enabled">
                   <bool>false</bool>
                  </property>
                  <property name="toolTip">
                   <string>Updates the XYZ drift values into the AHRS (saves to SD)</string>
                  </property>
                  <property name="text">
                   <string>Save</string>
                  </property>
                 </widget>
                </item>
               </layout>
              </item>
             </layout>
            </item>
           </layout>
          </widget>
         </item>
        </layout>
       </item>
       <item>
        <widget class="QTextEdit" name="sixPointCalibInstructions">
         <property name="toolTip">
          <string>Six Point Calibration instructions</string>
         </property>
         <property name="horizontalScrollBarPolicy">
          <enum>Qt::ScrollBarAlwaysOff</enum>
         </property>
         <property name="html">
          <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;table border=&quot;0&quot; style=&quot;-qt-table-type: root; margin-top:4px; margin-bottom:4px; margin-left:4px; margin-right:4px;&quot;&gt;
&lt;tr&gt;
&lt;td style=&quot;border: none;&quot;&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Help&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Step #1 and #2 are really necessary. Steps #3 and #4 will help you achieve the best possible results.&lt;/span&gt;&lt;/p&gt;
&lt;p align=&quot;center&quot; style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;&quot;&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;#1: Multi-Point calibration:&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;This calibration will compute the scale for all sensors on the INS. Press &amp;quot;Start&amp;quot; to begin calibration, and follow the instructions which will be displayed here.  Note that your HomeLocation must be set first, including the local magnetic field vector (Be) and acceleration due to gravity (g_e).&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;#2: Sensor noise calibration:&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;This calibration will compute sensor variance under standard conditions. You can leave your engines running at low to mid throttle to take their vibration into account before pressing &amp;quot;Start&amp;quot;.&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;#3: Accelerometer bias calibration:&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;This step will ensure that accelerometer bias is accurate. Place your airframe as horizontally as possible (use a spirit level if necessary), then press Start below and do not move your airframe at all until the end of the calibration.&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;#4 Gyro temp drift calibration:&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;&quot;&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/body&gt;&lt;/html&gt;</string>
         </property>
        </widget>
       </item>
      </layout>
     </widget>
     <widget class="QWidget" name="tab">
      <attribute name="title">
       <string>Settings</string>
      </attribute>
      <layout class="QVBoxLayout" name="verticalLayout_6">
       <item>
        <layout class="QHBoxLayout" name="ahrsSettingsLayout">
         <item>
          <widget class="QLabel" name="label_2">
           <property name="text">
            <string>INS Algorithm:</string>
           </property>
          </widget>
         </item>
         <item>
          <widget class="QComboBox" name="algorithm">
           <property name="toolTip">
            <string>Select the sensor integration algorithm here.
&quot;Simple&quot; only uses accelerometer values
&quot;INSGPS&quot; the full featured algorithm integrating all sensors</string>
           </property>
          </widget>
         </item>
         <item>
          <spacer name="horizontalSpacer_2">
           <property name="orientation">
            <enum>Qt::Horizontal</enum>
           </property>
           <property name="sizeHint" stdset="0">
            <size>
             <width>40</width>
             <height>20</height>
            </size>
           </property>
          </spacer>
         </item>
         <item>
          <widget class="QLabel" name="label_4">
           <property name="text">
            <string>Home Location:</string>
           </property>
          </widget>
         </item>
         <item>
          <widget class="QRadioButton" name="homeLocationSet">
           <property name="enabled">
            <bool>false</bool>
           </property>
           <property name="toolTip">
            <string>Saves the Home Location. This is only enabled
if the Home Location is set, i.e. if the GPS fix is
successful.

Disabled if there is no GPS fix.</string>
           </property>
           <property name="text">
            <string>Set</string>
           </property>
           <property name="checked">
            <bool>true</bool>
           </property>
           <attribute name="buttonGroup">
            <string>buttonGroup</string>
           </attribute>
          </widget>
         </item>
         <item>
          <widget class="QRadioButton" name="homeLocationClear">
           <property name="enabled">
            <bool>true</bool>
           </property>
           <property name="toolTip">
            <string>Clears the HomeLocation: only makes sense if you save
to SD. This will force the INS to use the next GPS fix as the
new home location unless it is in indoor mode.</string>
           </property>
           <property name="text">
            <string>Clear</string>
           </property>
           <attribute name="buttonGroup">
            <string>buttonGroup</string>
           </attribute>
          </widget>
         </item>
        </layout>
       </item>
       <item>
        <spacer name="verticalSpacer">
         <property name="orientation">
          <enum>Qt::Vertical</enum>
         </property>
         <property name="sizeHint" stdset="0">
          <size>
           <width>20</width>
           <height>40</height>
          </size>
         </property>
        </spacer>
       </item>
      </layout>
     </widget>
    </widget>
   </item>
   <item>
    <layout class="QHBoxLayout" name="submitButtons">
     <item>
      <widget class="QLabel" name="calibInstructions">
       <property name="text">
        <string>Telemetry link not established.</string>
       </property>
      </widget>
     </item>
     <item>
      <spacer name="horizontalSpacer">
       <property name="orientation">
        <enum>Qt::Horizontal</enum>
       </property>
       <property name="sizeHint" stdset="0">
        <size>
         <width>40</width>
         <height>20</height>
        </size>
       </property>
      </spacer>
     </item>
     <item>
      <widget class="QPushButton" name="ahrsSettingsRequest">
       <property name="toolTip">
        <string>Refresh this screen with current values from the board.</string>
       </property>
       <property name="text">
        <string>Request</string>
       </property>
      </widget>
     </item>
     <item>
      <widget class="QPushButton" name="ahrsSettingsSaveRAM">
       <property name="toolTip">
        <string>Save settings to the board (RAM only).

This does not save the calibration settings, this is done using the
specific calibration button on top of the screen.</string>
       </property>
       <property name="text">
        <string>Apply</string>
       </property>
      </widget>
     </item>
     <item>
      <widget class="QPushButton" name="ahrsSettingsSaveSD">
       <property name="toolTip">
        <string>Send settings to the board, and save to the non-volatile memory.</string>
       </property>
       <property name="text">
        <string>Save</string>
       </property>
       <property name="checked">
        <bool>false</bool>
       </property>
      </widget>
     </item>
    </layout>
   </item>
  </layout>
 </widget>
 <resources/>
 <connections/>
 <buttongroups>
  <buttongroup name="buttonGroup"/>
 </buttongroups>
</ui>
