cfclient 2017.4__py3-none-any.whl → 2025.12.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. cfclient/__init__.py +16 -11
  2. cfclient/configs/config.json +4 -3
  3. cfclient/configs/input/Generic_OS_X.json +1 -0
  4. cfclient/configs/input/Joystick.json +1 -0
  5. cfclient/configs/input/PS3_Mode_1.json +1 -0
  6. cfclient/configs/input/PS3_Mode_2.json +1 -0
  7. cfclient/configs/input/PS3_Mode_3.json +1 -0
  8. cfclient/configs/input/PS4_Mode_1.json +1 -0
  9. cfclient/configs/input/PS4_Mode_2.json +1 -0
  10. cfclient/configs/input/PS4_shoulder_btns_yaw.json +1 -0
  11. cfclient/configs/input/xbox360_mode1.json +1 -0
  12. cfclient/configs/log/PID_tuning/Attitude.json +46 -0
  13. cfclient/configs/log/PID_tuning/Attitude_rate.json +46 -0
  14. cfclient/configs/log/PID_tuning/Position.json +46 -0
  15. cfclient/configs/log/PID_tuning/Velocity.json +46 -0
  16. cfclient/configs/log/PID_tuning_components/Pitch.json +22 -0
  17. cfclient/configs/log/PID_tuning_components/Pitch_rate.json +22 -0
  18. cfclient/configs/log/PID_tuning_components/Position_x.json +22 -0
  19. cfclient/configs/log/PID_tuning_components/Position_y.json +22 -0
  20. cfclient/configs/log/PID_tuning_components/Position_z.json +22 -0
  21. cfclient/configs/log/PID_tuning_components/Roll.json +22 -0
  22. cfclient/configs/log/PID_tuning_components/Roll_rate.json +22 -0
  23. cfclient/configs/log/PID_tuning_components/Velocity_x.json +22 -0
  24. cfclient/configs/log/PID_tuning_components/Velocity_y.json +22 -0
  25. cfclient/configs/log/PID_tuning_components/Velocity_z.json +22 -0
  26. cfclient/configs/log/PID_tuning_components/Yaw.json +22 -0
  27. cfclient/configs/log/PID_tuning_components/Yaw_rate.json +22 -0
  28. cfclient/gui.py +44 -9
  29. cfclient/headless.py +3 -12
  30. cfclient/resources/log_param_doc.json +1 -0
  31. cfclient/ui/connectivity_manager.py +198 -0
  32. cfclient/ui/dialogs/about.py +53 -36
  33. cfclient/ui/dialogs/about.ui +23 -3
  34. cfclient/ui/dialogs/anchor_position_dialog.py +252 -0
  35. cfclient/ui/dialogs/anchor_position_dialog.ui +138 -0
  36. cfclient/ui/dialogs/basestation_mode_dialog.py +185 -0
  37. cfclient/ui/dialogs/basestation_mode_dialog.ui +186 -0
  38. cfclient/ui/dialogs/bootloader.py +448 -85
  39. cfclient/ui/dialogs/bootloader.ui +387 -134
  40. cfclient/ui/dialogs/cf2config.py +4 -4
  41. cfclient/ui/dialogs/cf2config.ui +3 -4
  42. cfclient/ui/dialogs/inputconfigdialogue.py +24 -19
  43. cfclient/ui/dialogs/inputconfigdialogue.ui +53 -30
  44. cfclient/ui/dialogs/lighthouse_bs_geometry_dialog.py +220 -0
  45. cfclient/ui/dialogs/lighthouse_bs_geometry_dialog.ui +110 -0
  46. cfclient/ui/dialogs/lighthouse_system_type_dialog.py +93 -0
  47. cfclient/ui/dialogs/lighthouse_system_type_dialog.ui +121 -0
  48. cfclient/ui/dialogs/logconfigdialogue.py +401 -101
  49. cfclient/ui/dialogs/logconfigdialogue.ui +117 -72
  50. cfclient/ui/icons/bl.webp +0 -0
  51. cfclient/ui/icons/bolt.webp +0 -0
  52. cfclient/ui/icons/cf21.webp +0 -0
  53. cfclient/ui/icons/checkmark_black.png +0 -0
  54. cfclient/ui/icons/checkmark_white.png +0 -0
  55. cfclient/ui/icons/create.png +0 -0
  56. cfclient/ui/icons/delete.png +0 -0
  57. cfclient/ui/icons/flapper.webp +0 -0
  58. cfclient/ui/icons/tag.webp +0 -0
  59. cfclient/ui/main.py +328 -258
  60. cfclient/ui/main.ui +184 -80
  61. cfclient/ui/pluginhelper.py +7 -1
  62. cfclient/ui/pose_logger.py +116 -0
  63. cfclient/ui/tab_toolbox.py +208 -0
  64. cfclient/ui/tabs/ColorLEDTab.py +752 -0
  65. cfclient/ui/tabs/ConsoleTab.py +48 -13
  66. cfclient/ui/{toolboxes → tabs}/CrtpSharkToolbox.py +19 -34
  67. cfclient/ui/tabs/ExampleTab.py +9 -16
  68. cfclient/ui/tabs/FlightTab.py +437 -325
  69. cfclient/ui/tabs/GpsTab.py +14 -20
  70. cfclient/ui/tabs/LEDRingTab.py +277 -0
  71. cfclient/ui/tabs/LogBlockDebugTab.py +20 -27
  72. cfclient/ui/tabs/LogBlockTab.py +35 -35
  73. cfclient/ui/tabs/LogClientTab.py +85 -0
  74. cfclient/ui/tabs/LogTab.py +50 -27
  75. cfclient/ui/tabs/ParamTab.py +443 -57
  76. cfclient/ui/tabs/PlotTab.py +23 -25
  77. cfclient/ui/tabs/TuningTab.py +292 -0
  78. cfclient/ui/tabs/__init__.py +12 -2
  79. cfclient/ui/tabs/colorLEDTab.ui +624 -0
  80. cfclient/ui/tabs/consoleTab.ui +46 -0
  81. cfclient/ui/tabs/flightActionContainer.ui +103 -0
  82. cfclient/ui/tabs/flightTab.ui +724 -237
  83. cfclient/ui/tabs/{ledTab.ui → ledRingTab.ui} +63 -46
  84. cfclient/ui/tabs/lighthouse_tab.py +714 -0
  85. cfclient/ui/tabs/lighthouse_tab.ui +430 -0
  86. cfclient/ui/tabs/locopositioning_tab.py +606 -389
  87. cfclient/ui/tabs/locopositioning_tab.ui +370 -253
  88. cfclient/ui/tabs/logClientTab.ui +52 -0
  89. cfclient/ui/tabs/logTab.ui +1 -1
  90. cfclient/ui/tabs/paramTab.ui +204 -3
  91. cfclient/ui/tabs/tuningTab.ui +773 -0
  92. cfclient/ui/widgets/ai.py +37 -39
  93. cfclient/ui/widgets/hexspinbox.py +16 -10
  94. cfclient/ui/widgets/plotter.ui +39 -47
  95. cfclient/ui/widgets/plotwidget.py +57 -22
  96. cfclient/ui/widgets/super_slider.py +112 -0
  97. cfclient/ui/wizards/__init__.py +0 -0
  98. cfclient/ui/wizards/bslh_1.png +0 -0
  99. cfclient/ui/wizards/bslh_2.png +0 -0
  100. cfclient/ui/wizards/bslh_3.png +0 -0
  101. cfclient/ui/wizards/bslh_4.png +0 -0
  102. cfclient/ui/wizards/bslh_5.png +0 -0
  103. cfclient/ui/wizards/lighthouse_geo_bs_estimation_wizard.py +465 -0
  104. cfclient/utils/config_manager.py +5 -4
  105. cfclient/utils/input/__init__.py +77 -19
  106. cfclient/utils/input/inputinterfaces/wiimote.py +2 -2
  107. cfclient/utils/input/inputreaderinterface.py +17 -7
  108. cfclient/utils/input/inputreaders/__init__.py +17 -0
  109. cfclient/utils/logconfigreader.py +245 -25
  110. cfclient/utils/logdatawriter.py +3 -1
  111. cfclient/utils/periodictimer.py +1 -1
  112. cfclient/utils/ui.py +336 -0
  113. cfclient/utils/zmq_led_driver.py +5 -0
  114. cfclient/utils/zmq_param.py +6 -0
  115. cfclient/version.py +34 -1
  116. cfclient-2025.12.1.dist-info/METADATA +70 -0
  117. cfclient-2025.12.1.dist-info/RECORD +152 -0
  118. {cfclient-2017.4.dist-info → cfclient-2025.12.1.dist-info}/WHEEL +1 -1
  119. {cfclient-2017.4.dist-info → cfclient-2025.12.1.dist-info}/entry_points.txt +0 -1
  120. cfclient-2025.12.1.dist-info/licenses/LICENSE.txt +350 -0
  121. {cfclient-2017.4.dist-info → cfclient-2025.12.1.dist-info}/top_level.txt +1 -0
  122. cfconfig/Makefile +51 -0
  123. cfconfig/configblock.py +111 -0
  124. cfloader/__init__.py +41 -55
  125. cfzmq/__init__.py +22 -14
  126. cfclient/ui/dialogs/cf1config.py +0 -265
  127. cfclient/ui/dialogs/cf1config.ui +0 -260
  128. cfclient/ui/tab.py +0 -96
  129. cfclient/ui/tabs/LEDTab.py +0 -169
  130. cfclient/ui/toolboxes/ConsoleToolbox.py +0 -69
  131. cfclient/ui/toolboxes/DebugDriverToolbox.py +0 -107
  132. cfclient/ui/toolboxes/__init__.py +0 -45
  133. cfclient/ui/toolboxes/consoleToolbox.ui +0 -62
  134. cfclient/ui/toolboxes/debugDriverToolbox.ui +0 -86
  135. cfclient-2017.4.dist-info/DESCRIPTION.rst +0 -3
  136. cfclient-2017.4.dist-info/METADATA +0 -22
  137. cfclient-2017.4.dist-info/RECORD +0 -104
  138. cfclient-2017.4.dist-info/metadata.json +0 -1
  139. /cfclient/{icon-256.png → ui/icons/icon-256.png} +0 -0
  140. /cfclient/ui/{toolboxes → tabs}/crtpSharkToolbox.ui +0 -0
@@ -6,8 +6,8 @@
6
6
  <rect>
7
7
  <x>0</x>
8
8
  <y>0</y>
9
- <width>1228</width>
10
- <height>916</height>
9
+ <width>1326</width>
10
+ <height>930</height>
11
11
  </rect>
12
12
  </property>
13
13
  <property name="windowTitle">
@@ -17,12 +17,12 @@
17
17
  <item>
18
18
  <widget class="QSplitter" name="splitter_2">
19
19
  <property name="orientation">
20
- <enum>Qt::Horizontal</enum>
20
+ <enum>Qt::Orientation::Horizontal</enum>
21
21
  </property>
22
22
  <widget class="QWidget" name="layoutWidget">
23
23
  <layout class="QVBoxLayout" name="verticalLayout">
24
24
  <property name="sizeConstraint">
25
- <enum>QLayout::SetMaximumSize</enum>
25
+ <enum>QLayout::SizeConstraint::SetMaximumSize</enum>
26
26
  </property>
27
27
  <item>
28
28
  <widget class="QGroupBox" name="groupBox_2">
@@ -50,72 +50,6 @@
50
50
  <layout class="QHBoxLayout" name="horizontalLayout_3">
51
51
  <item>
52
52
  <layout class="QGridLayout" name="gridLayout_3">
53
- <item row="1" column="1">
54
- <widget class="QComboBox" name="flightModeCombo">
55
- <property name="minimumSize">
56
- <size>
57
- <width>0</width>
58
- <height>0</height>
59
- </size>
60
- </property>
61
- <property name="toolTip">
62
- <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select what flightmode to use:&lt;/p&gt;&lt;p&gt; * Safe prevents crashing&lt;/p&gt;&lt;p&gt; * Crazy does not prevent crashing :)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
63
- </property>
64
- <property name="editable">
65
- <bool>false</bool>
66
- </property>
67
- <property name="currentIndex">
68
- <number>0</number>
69
- </property>
70
- <item>
71
- <property name="text">
72
- <string>Normal</string>
73
- </property>
74
- </item>
75
- <item>
76
- <property name="text">
77
- <string>Advanced</string>
78
- </property>
79
- </item>
80
- </widget>
81
- </item>
82
- <item row="0" column="1">
83
- <spacer name="verticalSpacer_3">
84
- <property name="orientation">
85
- <enum>Qt::Vertical</enum>
86
- </property>
87
- <property name="sizeType">
88
- <enum>QSizePolicy::Maximum</enum>
89
- </property>
90
- <property name="sizeHint" stdset="0">
91
- <size>
92
- <width>0</width>
93
- <height>0</height>
94
- </size>
95
- </property>
96
- </spacer>
97
- </item>
98
- <item row="2" column="0">
99
- <widget class="QLabel" name="label_5">
100
- <property name="text">
101
- <string>Assist mode</string>
102
- </property>
103
- </widget>
104
- </item>
105
- <item row="2" column="1">
106
- <widget class="QComboBox" name="_assist_mode_combo">
107
- <property name="enabled">
108
- <bool>false</bool>
109
- </property>
110
- </widget>
111
- </item>
112
- <item row="3" column="0">
113
- <widget class="QLabel" name="label_2">
114
- <property name="text">
115
- <string>Roll Trim</string>
116
- </property>
117
- </widget>
118
- </item>
119
53
  <item row="3" column="1">
120
54
  <widget class="QDoubleSpinBox" name="targetCalRoll">
121
55
  <property name="minimum">
@@ -129,6 +63,13 @@
129
63
  </property>
130
64
  </widget>
131
65
  </item>
66
+ <item row="3" column="0">
67
+ <widget class="QLabel" name="label_2">
68
+ <property name="text">
69
+ <string>Roll Trim</string>
70
+ </property>
71
+ </widget>
72
+ </item>
132
73
  <item row="4" column="1">
133
74
  <widget class="QDoubleSpinBox" name="targetCalPitch">
134
75
  <property name="minimum">
@@ -142,6 +83,13 @@
142
83
  </property>
143
84
  </widget>
144
85
  </item>
86
+ <item row="2" column="1">
87
+ <widget class="QComboBox" name="_assist_mode_combo">
88
+ <property name="enabled">
89
+ <bool>false</bool>
90
+ </property>
91
+ </widget>
92
+ </item>
145
93
  <item row="4" column="0">
146
94
  <widget class="QLabel" name="label_3">
147
95
  <property name="text">
@@ -162,46 +110,55 @@
162
110
  </property>
163
111
  </widget>
164
112
  </item>
165
- <item row="5" column="1">
166
- <widget class="QCheckBox" name="crazyflieXModeCheckbox">
167
- <property name="enabled">
168
- <bool>false</bool>
113
+ <item row="1" column="1">
114
+ <widget class="QComboBox" name="flightModeCombo">
115
+ <property name="minimumSize">
116
+ <size>
117
+ <width>0</width>
118
+ <height>0</height>
119
+ </size>
169
120
  </property>
170
- <property name="text">
171
- <string>Crazyflie X-mode</string>
121
+ <property name="toolTip">
122
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select what flightmode to use:&lt;/p&gt;&lt;p&gt; * Safe prevents crashing&lt;/p&gt;&lt;p&gt; * Crazy does not prevent crashing :)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
172
123
  </property>
173
- </widget>
174
- </item>
175
- <item row="5" column="0">
176
- <widget class="QCheckBox" name="clientXModeCheckbox">
177
- <property name="enabled">
124
+ <property name="editable">
178
125
  <bool>false</bool>
179
126
  </property>
180
- <property name="text">
181
- <string>Client X-mode</string>
127
+ <property name="currentIndex">
128
+ <number>0</number>
182
129
  </property>
130
+ <item>
131
+ <property name="text">
132
+ <string>Normal</string>
133
+ </property>
134
+ </item>
135
+ <item>
136
+ <property name="text">
137
+ <string>Advanced</string>
138
+ </property>
139
+ </item>
183
140
  </widget>
184
141
  </item>
185
- <item row="6" column="0">
186
- <widget class="QRadioButton" name="angularPidRadioButton">
187
- <property name="enabled">
188
- <bool>false</bool>
142
+ <item row="0" column="1">
143
+ <spacer name="verticalSpacer_3">
144
+ <property name="orientation">
145
+ <enum>Qt::Orientation::Vertical</enum>
189
146
  </property>
190
- <property name="text">
191
- <string>Attitude control</string>
147
+ <property name="sizeType">
148
+ <enum>QSizePolicy::Policy::Maximum</enum>
192
149
  </property>
193
- <property name="checked">
194
- <bool>true</bool>
150
+ <property name="sizeHint" stdset="0">
151
+ <size>
152
+ <width>0</width>
153
+ <height>0</height>
154
+ </size>
195
155
  </property>
196
- </widget>
156
+ </spacer>
197
157
  </item>
198
- <item row="6" column="1">
199
- <widget class="QRadioButton" name="ratePidRadioButton">
200
- <property name="enabled">
201
- <bool>false</bool>
202
- </property>
158
+ <item row="2" column="0">
159
+ <widget class="QLabel" name="label_5">
203
160
  <property name="text">
204
- <string>Rate control</string>
161
+ <string>Assist mode</string>
205
162
  </property>
206
163
  </widget>
207
164
  </item>
@@ -246,7 +203,7 @@
246
203
  <item row="0" column="0">
247
204
  <widget class="QLabel" name="label_7">
248
205
  <property name="layoutDirection">
249
- <enum>Qt::LeftToRight</enum>
206
+ <enum>Qt::LayoutDirection::LeftToRight</enum>
250
207
  </property>
251
208
  <property name="text">
252
209
  <string>Max angle/rate</string>
@@ -284,20 +241,20 @@
284
241
  </property>
285
242
  </widget>
286
243
  </item>
287
- <item row="2" column="1">
288
- <widget class="QDoubleSpinBox" name="maxThrust"/>
289
- </item>
290
- <item row="3" column="1">
291
- <widget class="QDoubleSpinBox" name="minThrust"/>
292
- </item>
293
- <item row="4" column="1">
294
- <widget class="QDoubleSpinBox" name="slewEnableLimit"/>
295
- </item>
296
- <item row="5" column="1">
297
- <widget class="QDoubleSpinBox" name="thrustLoweringSlewRateLimit"/>
298
- </item>
299
244
  <item row="1" column="1">
300
245
  <widget class="QSpinBox" name="maxYawRate">
246
+ <property name="sizePolicy">
247
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
248
+ <horstretch>0</horstretch>
249
+ <verstretch>0</verstretch>
250
+ </sizepolicy>
251
+ </property>
252
+ <property name="minimumSize">
253
+ <size>
254
+ <width>57</width>
255
+ <height>0</height>
256
+ </size>
257
+ </property>
301
258
  <property name="minimum">
302
259
  <number>0</number>
303
260
  </property>
@@ -311,6 +268,18 @@
311
268
  </item>
312
269
  <item row="0" column="1">
313
270
  <widget class="QSpinBox" name="maxAngle">
271
+ <property name="sizePolicy">
272
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
273
+ <horstretch>0</horstretch>
274
+ <verstretch>0</verstretch>
275
+ </sizepolicy>
276
+ </property>
277
+ <property name="minimumSize">
278
+ <size>
279
+ <width>57</width>
280
+ <height>0</height>
281
+ </size>
282
+ </property>
314
283
  <property name="minimum">
315
284
  <number>0</number>
316
285
  </property>
@@ -322,46 +291,67 @@
322
291
  </property>
323
292
  </widget>
324
293
  </item>
325
- </layout>
326
- </item>
327
- </layout>
328
- </widget>
329
- </item>
330
- <item>
331
- <widget class="QGroupBox" name="groupBox_4">
332
- <property name="minimumSize">
333
- <size>
334
- <width>160</width>
335
- <height>0</height>
336
- </size>
337
- </property>
338
- <property name="title">
339
- <string>Expansion boards</string>
340
- </property>
341
- <layout class="QGridLayout" name="gridLayout_6">
342
- <item row="0" column="0">
343
- <layout class="QGridLayout" name="gridLayout_2">
344
- <item row="0" column="1">
345
- <widget class="QComboBox" name="_led_ring_effect">
346
- <property name="enabled">
347
- <bool>false</bool>
294
+ <item row="2" column="1">
295
+ <widget class="QSpinBox" name="maxThrust">
296
+ <property name="sizePolicy">
297
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
298
+ <horstretch>0</horstretch>
299
+ <verstretch>0</verstretch>
300
+ </sizepolicy>
301
+ </property>
302
+ <property name="minimumSize">
303
+ <size>
304
+ <width>57</width>
305
+ <height>0</height>
306
+ </size>
348
307
  </property>
349
308
  </widget>
350
309
  </item>
351
- <item row="0" column="0">
352
- <widget class="QLabel" name="label_8">
353
- <property name="text">
354
- <string>LED-ring effect</string>
310
+ <item row="3" column="1">
311
+ <widget class="QSpinBox" name="minThrust">
312
+ <property name="sizePolicy">
313
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
314
+ <horstretch>0</horstretch>
315
+ <verstretch>0</verstretch>
316
+ </sizepolicy>
317
+ </property>
318
+ <property name="minimumSize">
319
+ <size>
320
+ <width>57</width>
321
+ <height>0</height>
322
+ </size>
355
323
  </property>
356
324
  </widget>
357
325
  </item>
358
- <item row="1" column="1">
359
- <widget class="QCheckBox" name="_led_ring_headlight">
360
- <property name="enabled">
361
- <bool>false</bool>
326
+ <item row="4" column="1">
327
+ <widget class="QSpinBox" name="slewEnableLimit">
328
+ <property name="sizePolicy">
329
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
330
+ <horstretch>0</horstretch>
331
+ <verstretch>0</verstretch>
332
+ </sizepolicy>
362
333
  </property>
363
- <property name="text">
364
- <string>LED-ring headlight</string>
334
+ <property name="minimumSize">
335
+ <size>
336
+ <width>57</width>
337
+ <height>0</height>
338
+ </size>
339
+ </property>
340
+ </widget>
341
+ </item>
342
+ <item row="5" column="1">
343
+ <widget class="QSpinBox" name="thrustLoweringSlewRateLimit">
344
+ <property name="sizePolicy">
345
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
346
+ <horstretch>0</horstretch>
347
+ <verstretch>0</verstretch>
348
+ </sizepolicy>
349
+ </property>
350
+ <property name="minimumSize">
351
+ <size>
352
+ <width>57</width>
353
+ <height>0</height>
354
+ </size>
365
355
  </property>
366
356
  </widget>
367
357
  </item>
@@ -373,7 +363,7 @@
373
363
  <item>
374
364
  <spacer name="verticalSpacer">
375
365
  <property name="orientation">
376
- <enum>Qt::Vertical</enum>
366
+ <enum>Qt::Orientation::Vertical</enum>
377
367
  </property>
378
368
  <property name="sizeHint" stdset="0">
379
369
  <size>
@@ -383,18 +373,56 @@
383
373
  </property>
384
374
  </spacer>
385
375
  </item>
376
+ <item>
377
+ <layout class="QHBoxLayout" name="horizontalLayout_5">
378
+ <item>
379
+ <widget class="QLabel" name="label_11">
380
+ <property name="text">
381
+ <string>Supervisor</string>
382
+ </property>
383
+ </widget>
384
+ </item>
385
+ </layout>
386
+ </item>
387
+ <item>
388
+ <widget class="QPushButton" name="armButton">
389
+ <property name="enabled">
390
+ <bool>true</bool>
391
+ </property>
392
+ <property name="sizePolicy">
393
+ <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
394
+ <horstretch>0</horstretch>
395
+ <verstretch>0</verstretch>
396
+ </sizepolicy>
397
+ </property>
398
+ <property name="minimumSize">
399
+ <size>
400
+ <width>0</width>
401
+ <height>100</height>
402
+ </size>
403
+ </property>
404
+ <property name="font">
405
+ <font>
406
+ <pointsize>20</pointsize>
407
+ </font>
408
+ </property>
409
+ <property name="text">
410
+ <string>Arm</string>
411
+ </property>
412
+ </widget>
413
+ </item>
386
414
  </layout>
387
415
  </widget>
388
416
  <widget class="QWidget" name="layoutWidget">
389
417
  <layout class="QHBoxLayout" name="horizontalLayout_2">
390
418
  <property name="sizeConstraint">
391
- <enum>QLayout::SetDefaultConstraint</enum>
419
+ <enum>QLayout::SizeConstraint::SetDefaultConstraint</enum>
392
420
  </property>
393
421
  <item>
394
422
  <widget class="QGroupBox" name="groupBox">
395
423
  <property name="sizePolicy">
396
424
  <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
397
- <horstretch>2</horstretch>
425
+ <horstretch>0</horstretch>
398
426
  <verstretch>0</verstretch>
399
427
  </sizepolicy>
400
428
  </property>
@@ -405,15 +433,15 @@
405
433
  <item row="0" column="0">
406
434
  <widget class="QSplitter" name="splitter">
407
435
  <property name="orientation">
408
- <enum>Qt::Vertical</enum>
436
+ <enum>Qt::Orientation::Vertical</enum>
409
437
  </property>
410
438
  <widget class="QWidget" name="layoutWidget">
411
439
  <layout class="QVBoxLayout" name="verticalLayout_4"/>
412
440
  </widget>
413
441
  <widget class="QWidget" name="layoutWidget">
414
- <layout class="QGridLayout" name="gridLayout_5" rowstretch="0,3,3,3,3,3" rowminimumheight="1,1,1,1,1,1">
442
+ <layout class="QGridLayout" name="gridLayout_5" rowstretch="0,0,0,0,0,0,0,0">
415
443
  <property name="sizeConstraint">
416
- <enum>QLayout::SetMinimumSize</enum>
444
+ <enum>QLayout::SizeConstraint::SetMinimumSize</enum>
417
445
  </property>
418
446
  <property name="horizontalSpacing">
419
447
  <number>6</number>
@@ -421,17 +449,17 @@
421
449
  <property name="verticalSpacing">
422
450
  <number>0</number>
423
451
  </property>
424
- <item row="5" column="0">
425
- <widget class="QLabel" name="label_17">
452
+ <item row="0" column="7">
453
+ <widget class="QLabel" name="label_6">
426
454
  <property name="text">
427
- <string>Height</string>
455
+ <string>Thrust</string>
456
+ </property>
457
+ <property name="alignment">
458
+ <set>Qt::AlignmentFlag::AlignCenter</set>
428
459
  </property>
429
460
  </widget>
430
461
  </item>
431
- <item row="2" column="4">
432
- <widget class="QLineEdit" name="actualPitch"/>
433
- </item>
434
- <item row="1" column="8" rowspan="5">
462
+ <item row="1" column="9" rowspan="7">
435
463
  <widget class="QProgressBar" name="actualM1">
436
464
  <property name="maximum">
437
465
  <number>65535</number>
@@ -440,12 +468,41 @@
440
468
  <number>0</number>
441
469
  </property>
442
470
  <property name="orientation">
443
- <enum>Qt::Vertical</enum>
471
+ <enum>Qt::Orientation::Vertical</enum>
444
472
  </property>
445
473
  </widget>
446
474
  </item>
447
- <item row="1" column="10" rowspan="5">
448
- <widget class="QProgressBar" name="actualM3">
475
+ <item row="2" column="2">
476
+ <widget class="QLineEdit" name="targetPitch">
477
+ <property name="sizePolicy">
478
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
479
+ <horstretch>0</horstretch>
480
+ <verstretch>0</verstretch>
481
+ </sizepolicy>
482
+ </property>
483
+ <property name="readOnly">
484
+ <bool>true</bool>
485
+ </property>
486
+ </widget>
487
+ </item>
488
+ <item row="5" column="2">
489
+ <widget class="QLineEdit" name="targetHeight">
490
+ <property name="enabled">
491
+ <bool>false</bool>
492
+ </property>
493
+ <property name="sizePolicy">
494
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
495
+ <horstretch>0</horstretch>
496
+ <verstretch>0</verstretch>
497
+ </sizepolicy>
498
+ </property>
499
+ <property name="readOnly">
500
+ <bool>true</bool>
501
+ </property>
502
+ </widget>
503
+ </item>
504
+ <item row="1" column="10" rowspan="7">
505
+ <widget class="QProgressBar" name="actualM2">
449
506
  <property name="maximum">
450
507
  <number>65535</number>
451
508
  </property>
@@ -453,44 +510,106 @@
453
510
  <number>0</number>
454
511
  </property>
455
512
  <property name="orientation">
456
- <enum>Qt::Vertical</enum>
513
+ <enum>Qt::Orientation::Vertical</enum>
457
514
  </property>
458
515
  </widget>
459
516
  </item>
460
- <item row="0" column="6">
461
- <widget class="QLabel" name="label_6">
517
+ <item row="5" column="4">
518
+ <widget class="QLabel" name="label_17">
462
519
  <property name="text">
463
- <string>Thrust</string>
520
+ <string>Pitch</string>
464
521
  </property>
465
- <property name="alignment">
466
- <set>Qt::AlignCenter</set>
522
+ </widget>
523
+ </item>
524
+ <item row="0" column="15" rowspan="8">
525
+ <layout class="QGridLayout" name="gridLayout_7"/>
526
+ </item>
527
+ <item row="3" column="2">
528
+ <widget class="QLineEdit" name="targetRoll">
529
+ <property name="sizePolicy">
530
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
531
+ <horstretch>0</horstretch>
532
+ <verstretch>0</verstretch>
533
+ </sizepolicy>
534
+ </property>
535
+ <property name="readOnly">
536
+ <bool>true</bool>
467
537
  </property>
468
538
  </widget>
469
539
  </item>
470
- <item row="5" column="4">
471
- <widget class="QLineEdit" name="actualHeight">
472
- <property name="enabled">
473
- <bool>false</bool>
540
+ <item row="2" column="5">
541
+ <widget class="QLineEdit" name="estimateX">
542
+ <property name="sizePolicy">
543
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
544
+ <horstretch>0</horstretch>
545
+ <verstretch>0</verstretch>
546
+ </sizepolicy>
474
547
  </property>
475
- <property name="text">
476
- <string/>
548
+ <property name="readOnly">
549
+ <bool>true</bool>
477
550
  </property>
478
551
  </widget>
479
552
  </item>
480
- <item row="0" column="2">
481
- <widget class="QLabel" name="label_14">
553
+ <item row="1" column="12" rowspan="7">
554
+ <widget class="QProgressBar" name="actualM4">
555
+ <property name="maximum">
556
+ <number>65535</number>
557
+ </property>
558
+ <property name="value">
559
+ <number>0</number>
560
+ </property>
561
+ <property name="orientation">
562
+ <enum>Qt::Orientation::Vertical</enum>
563
+ </property>
564
+ </widget>
565
+ </item>
566
+ <item row="4" column="0">
567
+ <widget class="QLabel" name="inputYawLabel">
482
568
  <property name="text">
483
- <string>Target</string>
569
+ <string>Yaw</string>
484
570
  </property>
485
- <property name="alignment">
486
- <set>Qt::AlignCenter</set>
571
+ </widget>
572
+ </item>
573
+ <item row="0" column="13">
574
+ <spacer name="horizontalSpacer_2">
575
+ <property name="orientation">
576
+ <enum>Qt::Orientation::Horizontal</enum>
577
+ </property>
578
+ <property name="sizeHint" stdset="0">
579
+ <size>
580
+ <width>40</width>
581
+ <height>20</height>
582
+ </size>
583
+ </property>
584
+ </spacer>
585
+ </item>
586
+ <item row="3" column="5">
587
+ <widget class="QLineEdit" name="estimateY">
588
+ <property name="sizePolicy">
589
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
590
+ <horstretch>0</horstretch>
591
+ <verstretch>0</verstretch>
592
+ </sizepolicy>
593
+ </property>
594
+ <property name="readOnly">
595
+ <bool>true</bool>
487
596
  </property>
488
597
  </widget>
489
598
  </item>
490
- <item row="3" column="2">
491
- <widget class="QLineEdit" name="targetRoll"/>
599
+ <item row="4" column="5">
600
+ <widget class="QLineEdit" name="estimateZ">
601
+ <property name="sizePolicy">
602
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
603
+ <horstretch>0</horstretch>
604
+ <verstretch>0</verstretch>
605
+ </sizepolicy>
606
+ </property>
607
+ <property name="readOnly">
608
+ <bool>true</bool>
609
+ </property>
610
+ </widget>
492
611
  </item>
493
- <item row="1" column="6" rowspan="5">
612
+ <item row="1" column="7" rowspan="7">
494
613
  <widget class="QProgressBar" name="thrustProgress">
495
614
  <property name="sizePolicy">
496
615
  <sizepolicy hsizetype="Maximum" vsizetype="Expanding">
@@ -511,38 +630,284 @@
511
630
  <number>24</number>
512
631
  </property>
513
632
  <property name="alignment">
514
- <set>Qt::AlignCenter</set>
633
+ <set>Qt::AlignmentFlag::AlignCenter</set>
515
634
  </property>
516
635
  <property name="orientation">
517
- <enum>Qt::Vertical</enum>
636
+ <enum>Qt::Orientation::Vertical</enum>
518
637
  </property>
519
638
  <property name="invertedAppearance">
520
639
  <bool>false</bool>
521
640
  </property>
522
641
  </widget>
523
642
  </item>
643
+ <item row="0" column="2">
644
+ <widget class="QLabel" name="label_14">
645
+ <property name="sizePolicy">
646
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
647
+ <horstretch>0</horstretch>
648
+ <verstretch>0</verstretch>
649
+ </sizepolicy>
650
+ </property>
651
+ <property name="text">
652
+ <string>Gamepad Input</string>
653
+ </property>
654
+ <property name="alignment">
655
+ <set>Qt::AlignmentFlag::AlignCenter</set>
656
+ </property>
657
+ </widget>
658
+ </item>
659
+ <item row="1" column="3">
660
+ <spacer name="horizontalSpacer">
661
+ <property name="orientation">
662
+ <enum>Qt::Orientation::Horizontal</enum>
663
+ </property>
664
+ <property name="sizeType">
665
+ <enum>QSizePolicy::Policy::Fixed</enum>
666
+ </property>
667
+ <property name="sizeHint" stdset="0">
668
+ <size>
669
+ <width>40</width>
670
+ <height>20</height>
671
+ </size>
672
+ </property>
673
+ </spacer>
674
+ </item>
675
+ <item row="3" column="4">
676
+ <widget class="QLabel" name="label_18">
677
+ <property name="text">
678
+ <string>Y</string>
679
+ </property>
680
+ </widget>
681
+ </item>
682
+ <item row="1" column="5">
683
+ <widget class="QLineEdit" name="estimateThrust">
684
+ <property name="sizePolicy">
685
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
686
+ <horstretch>0</horstretch>
687
+ <verstretch>0</verstretch>
688
+ </sizepolicy>
689
+ </property>
690
+ <property name="readOnly">
691
+ <bool>true</bool>
692
+ </property>
693
+ </widget>
694
+ </item>
695
+ <item row="5" column="0">
696
+ <widget class="QLabel" name="inputHeightLabel">
697
+ <property name="text">
698
+ <string>Height</string>
699
+ </property>
700
+ </widget>
701
+ </item>
702
+ <item row="7" column="5">
703
+ <widget class="QLineEdit" name="estimateYaw">
704
+ <property name="sizePolicy">
705
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
706
+ <horstretch>0</horstretch>
707
+ <verstretch>0</verstretch>
708
+ </sizepolicy>
709
+ </property>
710
+ <property name="readOnly">
711
+ <bool>true</bool>
712
+ </property>
713
+ </widget>
714
+ </item>
715
+ <item row="0" column="14" rowspan="6">
716
+ <widget class="QGroupBox" name="commanderBox">
717
+ <property name="sizePolicy">
718
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
719
+ <horstretch>0</horstretch>
720
+ <verstretch>0</verstretch>
721
+ </sizepolicy>
722
+ </property>
723
+ <property name="title">
724
+ <string>Command Based Flight Control</string>
725
+ </property>
726
+ <property name="alignment">
727
+ <set>Qt::AlignmentFlag::AlignCenter</set>
728
+ </property>
729
+ <property name="Enabled" stdset="0">
730
+ <bool>false</bool>
731
+ </property>
732
+ <layout class="QGridLayout" name="horizontalLayout">
733
+ <property name="leftMargin">
734
+ <number>2</number>
735
+ </property>
736
+ <property name="topMargin">
737
+ <number>2</number>
738
+ </property>
739
+ <property name="rightMargin">
740
+ <number>2</number>
741
+ </property>
742
+ <property name="bottomMargin">
743
+ <number>2</number>
744
+ </property>
745
+ <property name="spacing">
746
+ <number>5</number>
747
+ </property>
748
+ <item row="0" column="0">
749
+ <widget class="QPushButton" name="commanderTakeOffButton">
750
+ <property name="text">
751
+ <string>Take off</string>
752
+ </property>
753
+ </widget>
754
+ </item>
755
+ <item row="1" column="0">
756
+ <widget class="QPushButton" name="commanderLandButton">
757
+ <property name="text">
758
+ <string>Land</string>
759
+ </property>
760
+ </widget>
761
+ </item>
762
+ <item row="0" column="1" rowspan="2" colspan="2">
763
+ <layout class="QGridLayout" name="horizontalLayout">
764
+ <property name="sizeConstraint">
765
+ <enum>QLayout::SizeConstraint::SetDefaultConstraint</enum>
766
+ </property>
767
+ <property name="leftMargin">
768
+ <number>10</number>
769
+ </property>
770
+ <property name="topMargin">
771
+ <number>0</number>
772
+ </property>
773
+ <property name="rightMargin">
774
+ <number>0</number>
775
+ </property>
776
+ <property name="bottomMargin">
777
+ <number>0</number>
778
+ </property>
779
+ <property name="spacing">
780
+ <number>0</number>
781
+ </property>
782
+ <item row="1" column="0">
783
+ <widget class="QPushButton" name="commanderLeftButton">
784
+ <property name="sizePolicy">
785
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
786
+ <horstretch>0</horstretch>
787
+ <verstretch>0</verstretch>
788
+ </sizepolicy>
789
+ </property>
790
+ <property name="maximumSize">
791
+ <size>
792
+ <width>30</width>
793
+ <height>30</height>
794
+ </size>
795
+ </property>
796
+ <property name="text">
797
+ <string>←</string>
798
+ </property>
799
+ </widget>
800
+ </item>
801
+ <item row="0" column="1">
802
+ <widget class="QPushButton" name="commanderForwardButton">
803
+ <property name="sizePolicy">
804
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
805
+ <horstretch>0</horstretch>
806
+ <verstretch>0</verstretch>
807
+ </sizepolicy>
808
+ </property>
809
+ <property name="maximumSize">
810
+ <size>
811
+ <width>30</width>
812
+ <height>30</height>
813
+ </size>
814
+ </property>
815
+ <property name="text">
816
+ <string>↑</string>
817
+ </property>
818
+ </widget>
819
+ </item>
820
+ <item row="2" column="1">
821
+ <widget class="QPushButton" name="commanderBackButton">
822
+ <property name="sizePolicy">
823
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
824
+ <horstretch>0</horstretch>
825
+ <verstretch>0</verstretch>
826
+ </sizepolicy>
827
+ </property>
828
+ <property name="maximumSize">
829
+ <size>
830
+ <width>30</width>
831
+ <height>30</height>
832
+ </size>
833
+ </property>
834
+ <property name="text">
835
+ <string>↓</string>
836
+ </property>
837
+ </widget>
838
+ </item>
839
+ <item row="1" column="2">
840
+ <widget class="QPushButton" name="commanderRightButton">
841
+ <property name="sizePolicy">
842
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
843
+ <horstretch>0</horstretch>
844
+ <verstretch>0</verstretch>
845
+ </sizepolicy>
846
+ </property>
847
+ <property name="maximumSize">
848
+ <size>
849
+ <width>30</width>
850
+ <height>30</height>
851
+ </size>
852
+ </property>
853
+ <property name="text">
854
+ <string>→</string>
855
+ </property>
856
+ </widget>
857
+ </item>
858
+ </layout>
859
+ </item>
860
+ <item row="5" column="1">
861
+ <widget class="QPushButton" name="commanderUpButton">
862
+ <property name="sizePolicy">
863
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
864
+ <horstretch>0</horstretch>
865
+ <verstretch>0</verstretch>
866
+ </sizepolicy>
867
+ </property>
868
+ <property name="text">
869
+ <string>Up</string>
870
+ </property>
871
+ </widget>
872
+ </item>
873
+ <item row="5" column="2">
874
+ <widget class="QPushButton" name="commanderDownButton">
875
+ <property name="sizePolicy">
876
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
877
+ <horstretch>0</horstretch>
878
+ <verstretch>0</verstretch>
879
+ </sizepolicy>
880
+ </property>
881
+ <property name="text">
882
+ <string>Down</string>
883
+ </property>
884
+ </widget>
885
+ </item>
886
+ </layout>
887
+ </widget>
888
+ </item>
524
889
  <item row="1" column="0">
525
- <widget class="QLabel" name="label_16">
890
+ <widget class="QLabel" name="inputThrustLabel">
526
891
  <property name="text">
527
892
  <string>Thrust</string>
528
893
  </property>
529
894
  </widget>
530
895
  </item>
531
- <item row="0" column="8">
532
- <widget class="QLabel" name="M1label">
896
+ <item row="2" column="4">
897
+ <widget class="QLabel" name="label_19">
533
898
  <property name="text">
534
- <string>M1</string>
899
+ <string>X</string>
535
900
  </property>
536
901
  </widget>
537
902
  </item>
538
903
  <item row="3" column="0">
539
- <widget class="QLabel" name="label_12">
904
+ <widget class="QLabel" name="inputRollLabel">
540
905
  <property name="text">
541
906
  <string>Roll</string>
542
907
  </property>
543
908
  </widget>
544
909
  </item>
545
- <item row="0" column="10">
910
+ <item row="0" column="11">
546
911
  <widget class="QLabel" name="M3label">
547
912
  <property name="text">
548
913
  <string>M3</string>
@@ -550,98 +915,220 @@
550
915
  </widget>
551
916
  </item>
552
917
  <item row="4" column="2">
553
- <widget class="QLineEdit" name="targetYaw"/>
554
- </item>
555
- <item row="1" column="9" rowspan="5">
556
- <widget class="QProgressBar" name="actualM2">
557
- <property name="maximum">
558
- <number>65535</number>
559
- </property>
560
- <property name="value">
561
- <number>0</number>
918
+ <widget class="QLineEdit" name="targetYaw">
919
+ <property name="sizePolicy">
920
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
921
+ <horstretch>0</horstretch>
922
+ <verstretch>0</verstretch>
923
+ </sizepolicy>
562
924
  </property>
563
- <property name="orientation">
564
- <enum>Qt::Vertical</enum>
925
+ <property name="readOnly">
926
+ <bool>true</bool>
565
927
  </property>
566
928
  </widget>
567
929
  </item>
568
- <item row="2" column="2">
569
- <widget class="QLineEdit" name="targetPitch"/>
570
- </item>
571
- <item row="2" column="0">
572
- <widget class="QLabel" name="label_11">
930
+ <item row="6" column="4">
931
+ <widget class="QLabel" name="label_22">
573
932
  <property name="text">
574
- <string>Pitch</string>
933
+ <string>Roll</string>
575
934
  </property>
576
935
  </widget>
577
936
  </item>
578
- <item row="0" column="4">
579
- <widget class="QLabel" name="label_15">
580
- <property name="text">
581
- <string>Actual</string>
937
+ <item row="1" column="13">
938
+ <spacer name="horizontalSpacer_4">
939
+ <property name="orientation">
940
+ <enum>Qt::Orientation::Horizontal</enum>
582
941
  </property>
583
- <property name="alignment">
584
- <set>Qt::AlignCenter</set>
942
+ <property name="sizeType">
943
+ <enum>QSizePolicy::Policy::Fixed</enum>
585
944
  </property>
586
- </widget>
945
+ <property name="sizeHint" stdset="0">
946
+ <size>
947
+ <width>40</width>
948
+ <height>20</height>
949
+ </size>
950
+ </property>
951
+ </spacer>
587
952
  </item>
588
953
  <item row="4" column="4">
589
- <widget class="QLineEdit" name="actualYaw"/>
954
+ <widget class="QLabel" name="label_10">
955
+ <property name="text">
956
+ <string>Z</string>
957
+ </property>
958
+ </widget>
590
959
  </item>
591
- <item row="0" column="9">
960
+ <item row="0" column="10">
592
961
  <widget class="QLabel" name="M2label">
593
962
  <property name="text">
594
963
  <string>M2</string>
595
964
  </property>
596
965
  </widget>
597
966
  </item>
598
- <item row="1" column="11" rowspan="5">
599
- <widget class="QProgressBar" name="actualM4">
600
- <property name="maximum">
601
- <number>65535</number>
967
+ <item row="0" column="12">
968
+ <widget class="QLabel" name="M4label">
969
+ <property name="text">
970
+ <string>M4</string>
602
971
  </property>
603
- <property name="value">
604
- <number>0</number>
972
+ </widget>
973
+ </item>
974
+ <item row="5" column="5">
975
+ <widget class="QLineEdit" name="estimatePitch">
976
+ <property name="sizePolicy">
977
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
978
+ <horstretch>0</horstretch>
979
+ <verstretch>0</verstretch>
980
+ </sizepolicy>
605
981
  </property>
606
- <property name="orientation">
607
- <enum>Qt::Vertical</enum>
982
+ <property name="readOnly">
983
+ <bool>true</bool>
608
984
  </property>
609
985
  </widget>
610
986
  </item>
611
- <item row="1" column="2">
612
- <widget class="QLineEdit" name="targetThrust"/>
987
+ <item row="6" column="5">
988
+ <widget class="QLineEdit" name="estimateRoll">
989
+ <property name="sizePolicy">
990
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
991
+ <horstretch>0</horstretch>
992
+ <verstretch>0</verstretch>
993
+ </sizepolicy>
994
+ </property>
995
+ <property name="readOnly">
996
+ <bool>true</bool>
997
+ </property>
998
+ </widget>
613
999
  </item>
614
- <item row="0" column="11">
615
- <widget class="QLabel" name="M4label">
1000
+ <item row="1" column="6">
1001
+ <spacer name="horizontalSpacer_3">
1002
+ <property name="orientation">
1003
+ <enum>Qt::Orientation::Horizontal</enum>
1004
+ </property>
1005
+ <property name="sizeType">
1006
+ <enum>QSizePolicy::Policy::Fixed</enum>
1007
+ </property>
1008
+ <property name="sizeHint" stdset="0">
1009
+ <size>
1010
+ <width>40</width>
1011
+ <height>20</height>
1012
+ </size>
1013
+ </property>
1014
+ </spacer>
1015
+ </item>
1016
+ <item row="0" column="5">
1017
+ <widget class="QLabel" name="label_20">
1018
+ <property name="sizePolicy">
1019
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
1020
+ <horstretch>0</horstretch>
1021
+ <verstretch>0</verstretch>
1022
+ </sizepolicy>
1023
+ </property>
616
1024
  <property name="text">
617
- <string>M4</string>
1025
+ <string>State Estimate</string>
1026
+ </property>
1027
+ <property name="alignment">
1028
+ <set>Qt::AlignmentFlag::AlignCenter</set>
1029
+ </property>
1030
+ </widget>
1031
+ </item>
1032
+ <item row="0" column="9">
1033
+ <widget class="QLabel" name="M1label">
1034
+ <property name="text">
1035
+ <string>M1</string>
618
1036
  </property>
619
1037
  </widget>
620
1038
  </item>
621
1039
  <item row="1" column="4">
622
- <widget class="QLineEdit" name="actualThrust"/>
1040
+ <widget class="QLabel" name="label_21">
1041
+ <property name="text">
1042
+ <string>Thrust</string>
1043
+ </property>
1044
+ </widget>
623
1045
  </item>
624
- <item row="0" column="12" rowspan="6">
625
- <layout class="QGridLayout" name="gridLayout_7"/>
1046
+ <item row="1" column="2">
1047
+ <widget class="QLineEdit" name="targetThrust">
1048
+ <property name="sizePolicy">
1049
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
1050
+ <horstretch>0</horstretch>
1051
+ <verstretch>0</verstretch>
1052
+ </sizepolicy>
1053
+ </property>
1054
+ <property name="readOnly">
1055
+ <bool>true</bool>
1056
+ </property>
1057
+ </widget>
626
1058
  </item>
627
- <item row="4" column="0">
628
- <widget class="QLabel" name="label_13">
1059
+ <item row="2" column="0">
1060
+ <widget class="QLabel" name="inputPitchLabel">
1061
+ <property name="text">
1062
+ <string>Pitch</string>
1063
+ </property>
1064
+ </widget>
1065
+ </item>
1066
+ <item row="7" column="4">
1067
+ <widget class="QLabel" name="label_23">
629
1068
  <property name="text">
630
1069
  <string>Yaw</string>
631
1070
  </property>
632
1071
  </widget>
633
1072
  </item>
634
- <item row="3" column="4">
635
- <widget class="QLineEdit" name="actualRoll"/>
1073
+ <item row="1" column="11" rowspan="7">
1074
+ <widget class="QProgressBar" name="actualM3">
1075
+ <property name="maximum">
1076
+ <number>65535</number>
1077
+ </property>
1078
+ <property name="value">
1079
+ <number>0</number>
1080
+ </property>
1081
+ <property name="orientation">
1082
+ <enum>Qt::Orientation::Vertical</enum>
1083
+ </property>
1084
+ </widget>
636
1085
  </item>
637
- <item row="5" column="2">
638
- <widget class="QLineEdit" name="targetHeight">
1086
+ <item row="7" column="2">
1087
+ <widget class="QLineEdit" name="_supervisor_state">
639
1088
  <property name="enabled">
640
- <bool>false</bool>
1089
+ <bool>true</bool>
1090
+ </property>
1091
+ <property name="sizePolicy">
1092
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
1093
+ <horstretch>0</horstretch>
1094
+ <verstretch>0</verstretch>
1095
+ </sizepolicy>
1096
+ </property>
1097
+ <property name="minimumSize">
1098
+ <size>
1099
+ <width>180</width>
1100
+ <height>0</height>
1101
+ </size>
641
1102
  </property>
642
1103
  <property name="text">
643
1104
  <string/>
644
1105
  </property>
1106
+ <property name="cursorPosition">
1107
+ <number>0</number>
1108
+ </property>
1109
+ <property name="readOnly">
1110
+ <bool>true</bool>
1111
+ </property>
1112
+ <property name="placeholderText">
1113
+ <string/>
1114
+ </property>
1115
+ </widget>
1116
+ </item>
1117
+ <item row="6" column="2">
1118
+ <widget class="QLabel" name="_supervisor_label2">
1119
+ <property name="text">
1120
+ <string>Supervisor</string>
1121
+ </property>
1122
+ <property name="alignment">
1123
+ <set>Qt::AlignmentFlag::AlignCenter</set>
1124
+ </property>
1125
+ </widget>
1126
+ </item>
1127
+ <item row="7" column="0">
1128
+ <widget class="QLabel" name="_supervisor_label1">
1129
+ <property name="text">
1130
+ <string>Info</string>
1131
+ </property>
645
1132
  </widget>
646
1133
  </item>
647
1134
  </layout>