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.
- cfclient/__init__.py +16 -11
- cfclient/configs/config.json +4 -3
- cfclient/configs/input/Generic_OS_X.json +1 -0
- cfclient/configs/input/Joystick.json +1 -0
- cfclient/configs/input/PS3_Mode_1.json +1 -0
- cfclient/configs/input/PS3_Mode_2.json +1 -0
- cfclient/configs/input/PS3_Mode_3.json +1 -0
- cfclient/configs/input/PS4_Mode_1.json +1 -0
- cfclient/configs/input/PS4_Mode_2.json +1 -0
- cfclient/configs/input/PS4_shoulder_btns_yaw.json +1 -0
- cfclient/configs/input/xbox360_mode1.json +1 -0
- cfclient/configs/log/PID_tuning/Attitude.json +46 -0
- cfclient/configs/log/PID_tuning/Attitude_rate.json +46 -0
- cfclient/configs/log/PID_tuning/Position.json +46 -0
- cfclient/configs/log/PID_tuning/Velocity.json +46 -0
- cfclient/configs/log/PID_tuning_components/Pitch.json +22 -0
- cfclient/configs/log/PID_tuning_components/Pitch_rate.json +22 -0
- cfclient/configs/log/PID_tuning_components/Position_x.json +22 -0
- cfclient/configs/log/PID_tuning_components/Position_y.json +22 -0
- cfclient/configs/log/PID_tuning_components/Position_z.json +22 -0
- cfclient/configs/log/PID_tuning_components/Roll.json +22 -0
- cfclient/configs/log/PID_tuning_components/Roll_rate.json +22 -0
- cfclient/configs/log/PID_tuning_components/Velocity_x.json +22 -0
- cfclient/configs/log/PID_tuning_components/Velocity_y.json +22 -0
- cfclient/configs/log/PID_tuning_components/Velocity_z.json +22 -0
- cfclient/configs/log/PID_tuning_components/Yaw.json +22 -0
- cfclient/configs/log/PID_tuning_components/Yaw_rate.json +22 -0
- cfclient/gui.py +44 -9
- cfclient/headless.py +3 -12
- cfclient/resources/log_param_doc.json +1 -0
- cfclient/ui/connectivity_manager.py +198 -0
- cfclient/ui/dialogs/about.py +53 -36
- cfclient/ui/dialogs/about.ui +23 -3
- cfclient/ui/dialogs/anchor_position_dialog.py +252 -0
- cfclient/ui/dialogs/anchor_position_dialog.ui +138 -0
- cfclient/ui/dialogs/basestation_mode_dialog.py +185 -0
- cfclient/ui/dialogs/basestation_mode_dialog.ui +186 -0
- cfclient/ui/dialogs/bootloader.py +448 -85
- cfclient/ui/dialogs/bootloader.ui +387 -134
- cfclient/ui/dialogs/cf2config.py +4 -4
- cfclient/ui/dialogs/cf2config.ui +3 -4
- cfclient/ui/dialogs/inputconfigdialogue.py +24 -19
- cfclient/ui/dialogs/inputconfigdialogue.ui +53 -30
- cfclient/ui/dialogs/lighthouse_bs_geometry_dialog.py +220 -0
- cfclient/ui/dialogs/lighthouse_bs_geometry_dialog.ui +110 -0
- cfclient/ui/dialogs/lighthouse_system_type_dialog.py +93 -0
- cfclient/ui/dialogs/lighthouse_system_type_dialog.ui +121 -0
- cfclient/ui/dialogs/logconfigdialogue.py +401 -101
- cfclient/ui/dialogs/logconfigdialogue.ui +117 -72
- cfclient/ui/icons/bl.webp +0 -0
- cfclient/ui/icons/bolt.webp +0 -0
- cfclient/ui/icons/cf21.webp +0 -0
- cfclient/ui/icons/checkmark_black.png +0 -0
- cfclient/ui/icons/checkmark_white.png +0 -0
- cfclient/ui/icons/create.png +0 -0
- cfclient/ui/icons/delete.png +0 -0
- cfclient/ui/icons/flapper.webp +0 -0
- cfclient/ui/icons/tag.webp +0 -0
- cfclient/ui/main.py +328 -258
- cfclient/ui/main.ui +184 -80
- cfclient/ui/pluginhelper.py +7 -1
- cfclient/ui/pose_logger.py +116 -0
- cfclient/ui/tab_toolbox.py +208 -0
- cfclient/ui/tabs/ColorLEDTab.py +752 -0
- cfclient/ui/tabs/ConsoleTab.py +48 -13
- cfclient/ui/{toolboxes → tabs}/CrtpSharkToolbox.py +19 -34
- cfclient/ui/tabs/ExampleTab.py +9 -16
- cfclient/ui/tabs/FlightTab.py +437 -325
- cfclient/ui/tabs/GpsTab.py +14 -20
- cfclient/ui/tabs/LEDRingTab.py +277 -0
- cfclient/ui/tabs/LogBlockDebugTab.py +20 -27
- cfclient/ui/tabs/LogBlockTab.py +35 -35
- cfclient/ui/tabs/LogClientTab.py +85 -0
- cfclient/ui/tabs/LogTab.py +50 -27
- cfclient/ui/tabs/ParamTab.py +443 -57
- cfclient/ui/tabs/PlotTab.py +23 -25
- cfclient/ui/tabs/TuningTab.py +292 -0
- cfclient/ui/tabs/__init__.py +12 -2
- cfclient/ui/tabs/colorLEDTab.ui +624 -0
- cfclient/ui/tabs/consoleTab.ui +46 -0
- cfclient/ui/tabs/flightActionContainer.ui +103 -0
- cfclient/ui/tabs/flightTab.ui +724 -237
- cfclient/ui/tabs/{ledTab.ui → ledRingTab.ui} +63 -46
- cfclient/ui/tabs/lighthouse_tab.py +714 -0
- cfclient/ui/tabs/lighthouse_tab.ui +430 -0
- cfclient/ui/tabs/locopositioning_tab.py +606 -389
- cfclient/ui/tabs/locopositioning_tab.ui +370 -253
- cfclient/ui/tabs/logClientTab.ui +52 -0
- cfclient/ui/tabs/logTab.ui +1 -1
- cfclient/ui/tabs/paramTab.ui +204 -3
- cfclient/ui/tabs/tuningTab.ui +773 -0
- cfclient/ui/widgets/ai.py +37 -39
- cfclient/ui/widgets/hexspinbox.py +16 -10
- cfclient/ui/widgets/plotter.ui +39 -47
- cfclient/ui/widgets/plotwidget.py +57 -22
- cfclient/ui/widgets/super_slider.py +112 -0
- cfclient/ui/wizards/__init__.py +0 -0
- cfclient/ui/wizards/bslh_1.png +0 -0
- cfclient/ui/wizards/bslh_2.png +0 -0
- cfclient/ui/wizards/bslh_3.png +0 -0
- cfclient/ui/wizards/bslh_4.png +0 -0
- cfclient/ui/wizards/bslh_5.png +0 -0
- cfclient/ui/wizards/lighthouse_geo_bs_estimation_wizard.py +465 -0
- cfclient/utils/config_manager.py +5 -4
- cfclient/utils/input/__init__.py +77 -19
- cfclient/utils/input/inputinterfaces/wiimote.py +2 -2
- cfclient/utils/input/inputreaderinterface.py +17 -7
- cfclient/utils/input/inputreaders/__init__.py +17 -0
- cfclient/utils/logconfigreader.py +245 -25
- cfclient/utils/logdatawriter.py +3 -1
- cfclient/utils/periodictimer.py +1 -1
- cfclient/utils/ui.py +336 -0
- cfclient/utils/zmq_led_driver.py +5 -0
- cfclient/utils/zmq_param.py +6 -0
- cfclient/version.py +34 -1
- cfclient-2025.12.1.dist-info/METADATA +70 -0
- cfclient-2025.12.1.dist-info/RECORD +152 -0
- {cfclient-2017.4.dist-info → cfclient-2025.12.1.dist-info}/WHEEL +1 -1
- {cfclient-2017.4.dist-info → cfclient-2025.12.1.dist-info}/entry_points.txt +0 -1
- cfclient-2025.12.1.dist-info/licenses/LICENSE.txt +350 -0
- {cfclient-2017.4.dist-info → cfclient-2025.12.1.dist-info}/top_level.txt +1 -0
- cfconfig/Makefile +51 -0
- cfconfig/configblock.py +111 -0
- cfloader/__init__.py +41 -55
- cfzmq/__init__.py +22 -14
- cfclient/ui/dialogs/cf1config.py +0 -265
- cfclient/ui/dialogs/cf1config.ui +0 -260
- cfclient/ui/tab.py +0 -96
- cfclient/ui/tabs/LEDTab.py +0 -169
- cfclient/ui/toolboxes/ConsoleToolbox.py +0 -69
- cfclient/ui/toolboxes/DebugDriverToolbox.py +0 -107
- cfclient/ui/toolboxes/__init__.py +0 -45
- cfclient/ui/toolboxes/consoleToolbox.ui +0 -62
- cfclient/ui/toolboxes/debugDriverToolbox.ui +0 -86
- cfclient-2017.4.dist-info/DESCRIPTION.rst +0 -3
- cfclient-2017.4.dist-info/METADATA +0 -22
- cfclient-2017.4.dist-info/RECORD +0 -104
- cfclient-2017.4.dist-info/metadata.json +0 -1
- /cfclient/{icon-256.png → ui/icons/icon-256.png} +0 -0
- /cfclient/ui/{toolboxes → tabs}/crtpSharkToolbox.ui +0 -0
cfclient/ui/tabs/LogTab.py
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
# +------+ / /_/ / / /_/ /__/ / / /_/ / / /_/ __/
|
|
8
8
|
# || || /_____/_/\__/\___/_/ \__,_/ /___/\___/
|
|
9
9
|
#
|
|
10
|
-
# Copyright (C) 2011-
|
|
10
|
+
# Copyright (C) 2011-2023 Bitcraze AB
|
|
11
11
|
#
|
|
12
12
|
# Crazyflie Nano Quadcopter Client
|
|
13
13
|
#
|
|
@@ -28,38 +28,40 @@ Shows the Log TOC of available variables in the Crazyflie.
|
|
|
28
28
|
"""
|
|
29
29
|
|
|
30
30
|
import cfclient
|
|
31
|
-
from cfclient.ui.
|
|
32
|
-
from
|
|
33
|
-
from
|
|
34
|
-
from
|
|
35
|
-
from
|
|
36
|
-
from
|
|
31
|
+
from cfclient.ui.tab_toolbox import TabToolbox
|
|
32
|
+
from PyQt6 import QtWidgets
|
|
33
|
+
from PyQt6 import uic
|
|
34
|
+
from PyQt6.QtCore import pyqtSignal
|
|
35
|
+
from PyQt6.QtCore import pyqtSlot
|
|
36
|
+
from PyQt6.QtCore import Qt
|
|
37
37
|
|
|
38
38
|
__author__ = 'Bitcraze AB'
|
|
39
39
|
__all__ = ['LogTab']
|
|
40
40
|
|
|
41
|
-
param_tab_class = uic.loadUiType(cfclient.module_path +
|
|
42
|
-
"/ui/tabs/logTab.ui")[0]
|
|
41
|
+
param_tab_class = uic.loadUiType(cfclient.module_path + "/ui/tabs/logTab.ui")[0]
|
|
43
42
|
|
|
44
43
|
|
|
45
|
-
class LogTab(
|
|
44
|
+
class LogTab(TabToolbox, param_tab_class):
|
|
46
45
|
connectedSignal = pyqtSignal(str)
|
|
47
46
|
disconnectedSignal = pyqtSignal(str)
|
|
48
47
|
|
|
49
|
-
def __init__(self,
|
|
50
|
-
super(LogTab, self).__init__(
|
|
48
|
+
def __init__(self, helper):
|
|
49
|
+
super(LogTab, self).__init__(helper, 'Log TOC')
|
|
51
50
|
self.setupUi(self)
|
|
52
51
|
|
|
53
|
-
self.tabName = "Log TOC"
|
|
54
|
-
self.menuName = "Log TOC"
|
|
55
|
-
|
|
56
|
-
self.helper = helper
|
|
57
|
-
self.tabWidget = tabWidget
|
|
58
|
-
|
|
59
52
|
self.cf = helper.cf
|
|
60
53
|
|
|
61
54
|
# Init the tree widget
|
|
62
|
-
self.logTree.
|
|
55
|
+
self.logTree.setAlternatingRowColors(True)
|
|
56
|
+
if helper.mainUI.isDark:
|
|
57
|
+
self.logTree.setStyleSheet('QTreeWidget { alternate-background-color: #3c3c3c; }')
|
|
58
|
+
else:
|
|
59
|
+
self.logTree.setStyleSheet('QTreeWidget { alternate-background-color: #e9e9e9; }')
|
|
60
|
+
|
|
61
|
+
self.logTree.setHeaderLabels(['Name', 'ID', 'Unpack', 'Storage', 'Description'])
|
|
62
|
+
self.logTree.header().resizeSection(0, 150)
|
|
63
|
+
self.logTree.setSortingEnabled(True)
|
|
64
|
+
self.logTree.sortItems(0, Qt.SortOrder.AscendingOrder)
|
|
63
65
|
|
|
64
66
|
self.cf.connected.add_callback(self.connectedSignal.emit)
|
|
65
67
|
self.connectedSignal.connect(self.connected)
|
|
@@ -70,7 +72,10 @@ class LogTab(Tab, param_tab_class):
|
|
|
70
72
|
|
|
71
73
|
@pyqtSlot('QString')
|
|
72
74
|
def disconnected(self, linkname):
|
|
73
|
-
self.logTree.
|
|
75
|
+
root = self.logTree.invisibleRootItem()
|
|
76
|
+
for i in range(root.childCount()):
|
|
77
|
+
item = root.child(i)
|
|
78
|
+
item.setFlags(Qt.ItemFlag.NoItemFlags)
|
|
74
79
|
|
|
75
80
|
@pyqtSlot(str)
|
|
76
81
|
def connected(self, linkURI):
|
|
@@ -78,16 +83,34 @@ class LogTab(Tab, param_tab_class):
|
|
|
78
83
|
|
|
79
84
|
toc = self.cf.log.toc
|
|
80
85
|
|
|
81
|
-
for group in list(toc.toc.keys()):
|
|
86
|
+
for row_idx, group in enumerate(list(toc.toc.keys())):
|
|
82
87
|
groupItem = QtWidgets.QTreeWidgetItem()
|
|
83
|
-
groupItem.setData(0, Qt.DisplayRole, group)
|
|
88
|
+
groupItem.setData(0, Qt.ItemDataRole.DisplayRole, group)
|
|
89
|
+
|
|
84
90
|
for param in list(toc.toc[group].keys()):
|
|
85
91
|
item = QtWidgets.QTreeWidgetItem()
|
|
86
|
-
item.setData(0, Qt.DisplayRole, param)
|
|
87
|
-
item.setData(1, Qt.DisplayRole, toc.toc[group][param].ident)
|
|
88
|
-
item.setData(2, Qt.DisplayRole, toc.toc[group][param].pytype)
|
|
89
|
-
item.setData(3, Qt.DisplayRole, toc.toc[group][param].ctype)
|
|
92
|
+
item.setData(0, Qt.ItemDataRole.DisplayRole, param)
|
|
93
|
+
item.setData(1, Qt.ItemDataRole.DisplayRole, toc.toc[group][param].ident)
|
|
94
|
+
item.setData(2, Qt.ItemDataRole.DisplayRole, toc.toc[group][param].pytype)
|
|
95
|
+
item.setData(3, Qt.ItemDataRole.DisplayRole, toc.toc[group][param].ctype)
|
|
96
|
+
|
|
97
|
+
if cfclient.log_param_doc is not None:
|
|
98
|
+
try:
|
|
99
|
+
log_groups = cfclient.log_param_doc['logs'][group]
|
|
100
|
+
log_variable = log_groups['variables'][param]
|
|
101
|
+
item.setData(4, Qt.ItemDataRole.DisplayRole, log_variable['short_desc'])
|
|
102
|
+
except (KeyError, TypeError, AttributeError):
|
|
103
|
+
pass
|
|
104
|
+
|
|
90
105
|
groupItem.addChild(item)
|
|
91
106
|
|
|
92
107
|
self.logTree.addTopLevelItem(groupItem)
|
|
93
|
-
|
|
108
|
+
|
|
109
|
+
if cfclient.log_param_doc is not None:
|
|
110
|
+
try:
|
|
111
|
+
log_groups = cfclient.log_param_doc['logs'][group]
|
|
112
|
+
label = QtWidgets.QLabel(log_groups['desc'])
|
|
113
|
+
label.setWordWrap(True)
|
|
114
|
+
self.logTree.setItemWidget(groupItem, 4, label)
|
|
115
|
+
except (KeyError, TypeError, AttributeError):
|
|
116
|
+
pass
|