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
@@ -0,0 +1,52 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <ui version="4.0">
3
+ <class>Form</class>
4
+ <widget class="QWidget" name="Form">
5
+ <property name="geometry">
6
+ <rect>
7
+ <x>0</x>
8
+ <y>0</y>
9
+ <width>693</width>
10
+ <height>463</height>
11
+ </rect>
12
+ </property>
13
+ <property name="windowTitle">
14
+ <string>Form</string>
15
+ </property>
16
+ <layout class="QHBoxLayout" name="horizontalLayout">
17
+ <item>
18
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
19
+ <item>
20
+ <widget class="QTextEdit" name="syslog"/>
21
+ </item>
22
+ <item>
23
+ <layout class="QVBoxLayout" name="verticalLayout">
24
+ <item>
25
+ <widget class="QPushButton" name="_clearButton">
26
+ <property name="text">
27
+ <string>Clear</string>
28
+ </property>
29
+ </widget>
30
+ </item>
31
+ <item>
32
+ <spacer name="verticalSpacer">
33
+ <property name="orientation">
34
+ <enum>Qt::Vertical</enum>
35
+ </property>
36
+ <property name="sizeHint" stdset="0">
37
+ <size>
38
+ <width>20</width>
39
+ <height>40</height>
40
+ </size>
41
+ </property>
42
+ </spacer>
43
+ </item>
44
+ </layout>
45
+ </item>
46
+ </layout>
47
+ </item>
48
+ </layout>
49
+ </widget>
50
+ <resources/>
51
+ <connections/>
52
+ </ui>
@@ -17,7 +17,7 @@
17
17
  <item>
18
18
  <widget class="QTreeWidget" name="logTree">
19
19
  <property name="columnCount">
20
- <number>4</number>
20
+ <number>5</number>
21
21
  </property>
22
22
  <attribute name="headerDefaultSectionSize">
23
23
  <number>100</number>
@@ -13,9 +13,210 @@
13
13
  <property name="windowTitle">
14
14
  <string>Form</string>
15
15
  </property>
16
- <layout class="QVBoxLayout" name="verticalLayout">
17
- <item>
18
- <widget class="QTreeView" name="paramTree"/>
16
+ <layout class="QGridLayout" name="mainLayout">
17
+ <item row="0" column="0">
18
+ <widget class="QLineEdit" name="filterBox">
19
+ <property name="clearButtonEnabled"><bool>True</bool></property>
20
+ <property name="placeholderText"><string>Filter group ...</string></property>
21
+ </widget>
22
+ </item>
23
+ <item row="1" column="0">
24
+ <widget class="QTreeView" name="paramTree"/>
25
+ </item>
26
+ <item row="1" column="1" rowspan="2">
27
+ <widget class="QFrame" name="paramDetails">
28
+ <property name="frameShape">
29
+ <enum>QFrame::Box</enum>
30
+ </property>
31
+ <property name="minimumWidth">
32
+ <number>400</number>
33
+ </property>
34
+ <property name="maximumWidth">
35
+ <number>600</number>
36
+ </property>
37
+ <layout class="QGridLayout" name="paramDetailsLayout" rowstretch="0, 0, 0, 1">
38
+ <property name="verticalSpacing">
39
+ <number>10</number>
40
+ </property>
41
+ <item row="0" column="0" alignment="Qt::AlignTop">
42
+ <widget class="QLabel" name="paramDetailsLabel">
43
+ <property name="font">
44
+ <font>
45
+ <pointsize>24</pointsize>
46
+ <bold>true</bold>
47
+ </font>
48
+ </property>
49
+ </widget>
50
+ </item>
51
+ <item row="1" column="0" alignment="Qt::AlignTop">
52
+ <widget class="QLabel" name="paramDetailsDescription"/>
53
+ </item>
54
+
55
+ <item row="2" column="0" alignment="Qt::AlignTop">
56
+ <widget class="QFrame" name="valueFrame">
57
+ <property name="frameShape">
58
+ <enum>QFrame::Box</enum>
59
+ </property>
60
+ <property name="visible">
61
+ <bool>False</bool>
62
+ </property>
63
+ <layout class="QGridLayout" name="PersistentLayout">
64
+ <property name="verticalSpacing">
65
+ <number>10</number>
66
+ </property>
67
+ <item row="0" column="0" colspan="2">
68
+ <widget class="QLabel" name="persistent">
69
+ <property name="text">
70
+ <string>Values</string>
71
+ </property>
72
+ <property name="font">
73
+ <font>
74
+ <bold>true</bold>
75
+ </font>
76
+ </property>
77
+ </widget>
78
+ </item>
79
+ <item row="1" column="0">
80
+ <widget class="QLabel" name="current">
81
+ <property name="text">
82
+ <string>Current value:</string>
83
+ </property>
84
+ <property name="font">
85
+ <font>
86
+ <bold>true</bold>
87
+ </font>
88
+ </property>
89
+ </widget>
90
+ </item>
91
+ <item row="1" column="1">
92
+ <widget class="QLineEdit" name="currentValue">
93
+ <property name="maximumWidth">
94
+ <number>75</number>
95
+ </property>
96
+ </widget>
97
+ </item>
98
+ <item row="1" column="2">
99
+ <widget class="QPushButton" name="setParamButton">
100
+ <property name="maximumWidth">
101
+ <number>75</number>
102
+ </property>
103
+ <property name="text">
104
+ <string>Set</string>
105
+ </property>
106
+ </widget>
107
+ </item>
108
+ <item row="1" column="3">
109
+ <widget class="QPushButton" name="resetDefaultButton">
110
+ <property name="text">
111
+ <string>Reset to default</string>
112
+ </property>
113
+ </widget>
114
+ </item>
115
+ <item row="2" column="0">
116
+ <widget class="QLabel" name="default">
117
+ <property name="text">
118
+ <string>Default value:</string>
119
+ </property>
120
+ <property name="font">
121
+ <font>
122
+ <bold>true</bold>
123
+ </font>
124
+ </property>
125
+ </widget>
126
+ </item>
127
+ <item row="2" column="1" colspan="3">
128
+ <widget class="QLabel" name="defaultValue"/>
129
+ </item>
130
+ </layout>
131
+ </widget>
132
+ </item>
133
+ <item row="3" column="0" alignment="Qt::AlignTop">
134
+ <widget class="QFrame" name="persistentFrame">
135
+ <property name="frameShape">
136
+ <enum>QFrame::Box</enum>
137
+ </property>
138
+ <property name="visible">
139
+ <bool>False</bool>
140
+ </property>
141
+ <layout class="QGridLayout" name="PersistentLayout">
142
+ <property name="verticalSpacing">
143
+ <number>10</number>
144
+ </property>
145
+ <item row="0" column="0" colspan="2">
146
+ <widget class="QLabel" name="persistent">
147
+ <property name="text">
148
+ <string>Persistent parameter</string>
149
+ </property>
150
+ <property name="font">
151
+ <font>
152
+ <bold>true</bold>
153
+ </font>
154
+ </property>
155
+ </widget>
156
+ </item>
157
+ <item row="2" column="0">
158
+ <widget class="QLabel" name="default">
159
+ <property name="text">
160
+ <string>Stored value:</string>
161
+ </property>
162
+ <property name="font">
163
+ <font>
164
+ <bold>true</bold>
165
+ </font>
166
+ </property>
167
+ </widget>
168
+ </item>
169
+ <item row="2" column="1">
170
+ <widget class="QLabel" name="storedValue"/>
171
+ </item>
172
+ <item row="4" column="0">
173
+ <widget class="QPushButton" name="persistentButton">
174
+ <property name="maximumWidth">
175
+ <number>50</number>
176
+ </property>
177
+ </widget>
178
+ </item>
179
+ </layout>
180
+ </widget>
181
+ </item>
182
+ </layout>
183
+ </widget>
184
+ </item>
185
+ <item row="0" column="1">
186
+ <layout class="QVBoxLayout" name="verticalLayout">
187
+ <item>
188
+ <widget class="QLabel" name="label">
189
+ <property name="text">
190
+ <string>Persistent Parameter Management</string>
191
+ </property>
192
+ </widget>
193
+ </item>
194
+ <item>
195
+ <layout class="QHBoxLayout" name="horizontalLayout">
196
+ <item>
197
+ <widget class="QPushButton" name="_dump_param_button">
198
+ <property name="text">
199
+ <string>Dump</string>
200
+ </property>
201
+ </widget>
202
+ </item>
203
+ <item>
204
+ <widget class="QPushButton" name="_load_param_button">
205
+ <property name="text">
206
+ <string>Load</string>
207
+ </property>
208
+ </widget>
209
+ </item>
210
+ <item>
211
+ <widget class="QPushButton" name="_clear_param_button">
212
+ <property name="text">
213
+ <string>Clear</string>
214
+ </property>
215
+ </widget>
216
+ </item>
217
+ </layout>
218
+ </item>
219
+ </layout>
19
220
  </item>
20
221
  </layout>
21
222
  </widget>