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
cfclient/__init__.py CHANGED
@@ -24,6 +24,7 @@
24
24
  # this program; if not, write to the Free Software Foundation, Inc., 51
25
25
  # Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
26
26
 
27
+ import json
27
28
  import os
28
29
  from appdirs import AppDirs
29
30
  import sys
@@ -32,20 +33,24 @@ import sys
32
33
  if not hasattr(sys, 'frozen'):
33
34
  module_path = os.path.dirname(__file__)
34
35
  else:
35
- module_path = os.path.dirname(sys.executable)
36
+ module_path = os.path.join(os.path.dirname(sys.executable),
37
+ 'lib', 'cfclient')
36
38
  config_path = AppDirs("cfclient", "Bitcraze").user_config_dir
37
39
 
38
- # Locate the sdl2 lib on Windows (should be in cfclient/thirst_party/)
39
- if os.name == 'nt':
40
- os.environ["PYSDL2_DLL_PATH"] = os.path.join(module_path, "third_party")
41
-
42
40
  if not hasattr(sys, 'frozen'):
43
- import pkg_resources
41
+ from importlib.metadata import version, PackageNotFoundError
44
42
  try:
45
- VERSION = pkg_resources.require("cfclient")[0].version
46
- except pkg_resources.DistributionNotFound:
43
+ VERSION = version("cfclient")
44
+ except PackageNotFoundError:
47
45
  VERSION = "dev"
48
46
  else:
49
- import json
50
- with open(os.path.join(module_path, "version.json")) as f:
51
- VERSION = json.load(f)['version']
47
+ try:
48
+ from .version import __version__ as imported_version
49
+ VERSION = imported_version
50
+ except ImportError:
51
+ VERSION = "dev"
52
+ try:
53
+ with open(os.path.join(module_path, "resources/log_param_doc.json")) as f:
54
+ log_param_doc = json.load(f)
55
+ except (IOError, OSError, json.JSONDecodeError):
56
+ log_param_doc = None
@@ -12,13 +12,14 @@
12
12
  "min_thrust": 25,
13
13
  "max_yaw": 200,
14
14
  "max_rp": 30,
15
- "client_side_xmode": false,
16
15
  "auto_reconnect": false,
17
16
  "device_config_mapping": {},
18
17
  "enable_debug_driver": false,
19
- "input_device_blacklist": "(VirtualBox|VMware)",
18
+ "input_device_blacklist": "(VirtualBox|VMware|keyd virtual pointer)",
20
19
  "ui_update_period": 100,
21
- "enable_zmq_input": false
20
+ "enable_zmq_input": false,
21
+ "enable_zmq_param": false,
22
+ "enable_zmq_led": false
22
23
  },
23
24
  "read-only" : {
24
25
  "normal_slew_limit": 45,
@@ -2,6 +2,7 @@
2
2
  "inputconfig": {
3
3
  "inputdevice":
4
4
  {"name": "Generic 2-axis gamepad on OS X", "updateperiod":10,
5
+ "rp_dead_band": 0.1,
5
6
  "axis": [
6
7
  {"name":"Roll", "type":"Input.AXIS", "id":3, "scale":1.0, "key":"roll"},
7
8
  {"name":"Pitch", "type":"Input.AXIS", "id":4, "scale":-1.0, "key":"pitch"},
@@ -4,6 +4,7 @@
4
4
  "updateperiod": 10,
5
5
  "springythrottle": false,
6
6
  "name": "Joystick",
7
+ "rp_dead_band": 0.1,
7
8
  "axis": [
8
9
  {
9
10
  "scale": -1.0,
@@ -2,6 +2,7 @@
2
2
  "inputconfig": {
3
3
  "inputdevice":
4
4
  {"name": "Playstation 3 Mode 1", "updateperiod":10,
5
+ "rp_dead_band": 0.1,
5
6
  "axis": [
6
7
  {"name":"Roll", "type":"Input.AXIS", "id":0, "scale":1.0, "key":"roll"},
7
8
  {"name":"Pitch", "type":"Input.AXIS", "id":1, "scale":-1.0, "key":"pitch"},
@@ -2,6 +2,7 @@
2
2
  "inputconfig": {
3
3
  "inputdevice":
4
4
  {"name": "Playstation 3 Mode 2", "updateperiod":10,
5
+ "rp_dead_band": 0.1,
5
6
  "axis": [
6
7
  {"name":"Roll", "type":"Input.AXIS", "id":2, "scale":1.0, "key":"roll"},
7
8
  {"name":"Pitch", "type":"Input.AXIS", "id":3, "scale":-1.0, "key":"pitch"},
@@ -3,6 +3,7 @@
3
3
  "inputdevice": {
4
4
  "updateperiod": 10,
5
5
  "name": "PS3_Mode_3",
6
+ "rp_dead_band": 0.1,
6
7
  "axis": [
7
8
  {
8
9
  "scale": -1.0,
@@ -3,6 +3,7 @@
3
3
  "inputdevice": {
4
4
  "updateperiod": 10,
5
5
  "name": "PS4_Mode_1",
6
+ "rp_dead_band": 0.1,
6
7
  "axis": [
7
8
  {
8
9
  "scale": -1.0,
@@ -3,6 +3,7 @@
3
3
  "inputdevice": {
4
4
  "updateperiod": 10,
5
5
  "name": "PS4_Mode_2",
6
+ "rp_dead_band": 0.1,
6
7
  "axis": [
7
8
  {
8
9
  "scale": -1.0,
@@ -3,6 +3,7 @@
3
3
  "inputdevice": {
4
4
  "updateperiod": 10,
5
5
  "name": "PS4_shoulder_btns_yaw",
6
+ "rp_dead_band": 0.1,
6
7
  "axis": [
7
8
  {
8
9
  "scale": -1.0,
@@ -3,6 +3,7 @@
3
3
  "inputdevice": {
4
4
  "updateperiod": 10,
5
5
  "name": "xbox360_mode1_linux",
6
+ "rp_dead_band": 0.1,
6
7
  "axis": [
7
8
  {
8
9
  "scale": -1.0,
@@ -0,0 +1,46 @@
1
+ {
2
+ "logconfig": {
3
+ "logblock": {
4
+ "variables": [
5
+ {
6
+ "name": "controller.pitch",
7
+ "stored_as": "",
8
+ "fetch_as": "float",
9
+ "type": "TOC"
10
+ },
11
+ {
12
+ "name": "controller.roll",
13
+ "stored_as": "",
14
+ "fetch_as": "float",
15
+ "type": "TOC"
16
+ },
17
+ {
18
+ "name": "controller.yaw",
19
+ "stored_as": "",
20
+ "fetch_as": "float",
21
+ "type": "TOC"
22
+ },
23
+ {
24
+ "name": "stateEstimate.pitch",
25
+ "stored_as": "",
26
+ "fetch_as": "float",
27
+ "type": "TOC"
28
+ },
29
+ {
30
+ "name": "stateEstimate.roll",
31
+ "stored_as": "",
32
+ "fetch_as": "float",
33
+ "type": "TOC"
34
+ },
35
+ {
36
+ "name": "stateEstimate.yaw",
37
+ "stored_as": "",
38
+ "fetch_as": "float",
39
+ "type": "TOC"
40
+ }
41
+ ],
42
+ "name": "Attitude",
43
+ "period": 10
44
+ }
45
+ }
46
+ }
@@ -0,0 +1,46 @@
1
+ {
2
+ "logconfig": {
3
+ "logblock": {
4
+ "variables": [
5
+ {
6
+ "name": "controller.pitchRate",
7
+ "stored_as": "",
8
+ "fetch_as": "float",
9
+ "type": "TOC"
10
+ },
11
+ {
12
+ "name": "controller.rollRate",
13
+ "stored_as": "",
14
+ "fetch_as": "float",
15
+ "type": "TOC"
16
+ },
17
+ {
18
+ "name": "controller.yawRate",
19
+ "stored_as": "",
20
+ "fetch_as": "float",
21
+ "type": "TOC"
22
+ },
23
+ {
24
+ "name": "gyro.x",
25
+ "stored_as": "",
26
+ "fetch_as": "float",
27
+ "type": "TOC"
28
+ },
29
+ {
30
+ "name": "gyro.y",
31
+ "stored_as": "",
32
+ "fetch_as": "float",
33
+ "type": "TOC"
34
+ },
35
+ {
36
+ "name": "gyro.z",
37
+ "stored_as": "",
38
+ "fetch_as": "float",
39
+ "type": "TOC"
40
+ }
41
+ ],
42
+ "name": "Attitude rate",
43
+ "period": 10
44
+ }
45
+ }
46
+ }
@@ -0,0 +1,46 @@
1
+ {
2
+ "logconfig": {
3
+ "logblock": {
4
+ "variables": [
5
+ {
6
+ "name": "posCtl.targetX",
7
+ "stored_as": "",
8
+ "fetch_as": "float",
9
+ "type": "TOC"
10
+ },
11
+ {
12
+ "name": "posCtl.targetY",
13
+ "stored_as": "",
14
+ "fetch_as": "float",
15
+ "type": "TOC"
16
+ },
17
+ {
18
+ "name": "posCtl.targetZ",
19
+ "stored_as": "",
20
+ "fetch_as": "float",
21
+ "type": "TOC"
22
+ },
23
+ {
24
+ "name": "stateEstimate.x",
25
+ "stored_as": "",
26
+ "fetch_as": "float",
27
+ "type": "TOC"
28
+ },
29
+ {
30
+ "name": "stateEstimate.y",
31
+ "stored_as": "",
32
+ "fetch_as": "float",
33
+ "type": "TOC"
34
+ },
35
+ {
36
+ "name": "stateEstimate.z",
37
+ "stored_as": "",
38
+ "fetch_as": "float",
39
+ "type": "TOC"
40
+ }
41
+ ],
42
+ "name": "Position",
43
+ "period": 10
44
+ }
45
+ }
46
+ }
@@ -0,0 +1,46 @@
1
+ {
2
+ "logconfig": {
3
+ "logblock": {
4
+ "variables": [
5
+ {
6
+ "name": "posCtl.targetVX",
7
+ "stored_as": "",
8
+ "fetch_as": "float",
9
+ "type": "TOC"
10
+ },
11
+ {
12
+ "name": "posCtl.targetVY",
13
+ "stored_as": "",
14
+ "fetch_as": "float",
15
+ "type": "TOC"
16
+ },
17
+ {
18
+ "name": "posCtl.targetVZ",
19
+ "stored_as": "",
20
+ "fetch_as": "float",
21
+ "type": "TOC"
22
+ },
23
+ {
24
+ "name": "stateEstimate.vx",
25
+ "stored_as": "",
26
+ "fetch_as": "float",
27
+ "type": "TOC"
28
+ },
29
+ {
30
+ "name": "stateEstimate.vy",
31
+ "stored_as": "",
32
+ "fetch_as": "float",
33
+ "type": "TOC"
34
+ },
35
+ {
36
+ "name": "stateEstimate.vz",
37
+ "stored_as": "",
38
+ "fetch_as": "float",
39
+ "type": "TOC"
40
+ }
41
+ ],
42
+ "name": "Velocity",
43
+ "period": 10
44
+ }
45
+ }
46
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "logconfig": {
3
+ "logblock": {
4
+ "variables": [
5
+ {
6
+ "name": "controller.pitch",
7
+ "stored_as": "",
8
+ "fetch_as": "float",
9
+ "type": "TOC"
10
+ },
11
+ {
12
+ "name": "stateEstimate.pitch",
13
+ "stored_as": "",
14
+ "fetch_as": "float",
15
+ "type": "TOC"
16
+ }
17
+ ],
18
+ "name": "Pitch",
19
+ "period": 10
20
+ }
21
+ }
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "logconfig": {
3
+ "logblock": {
4
+ "variables": [
5
+ {
6
+ "name": "controller.pitchRate",
7
+ "stored_as": "",
8
+ "fetch_as": "float",
9
+ "type": "TOC"
10
+ },
11
+ {
12
+ "name": "gyro.y",
13
+ "stored_as": "",
14
+ "fetch_as": "float",
15
+ "type": "TOC"
16
+ }
17
+ ],
18
+ "name": "Pitch rate",
19
+ "period": 10
20
+ }
21
+ }
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "logconfig": {
3
+ "logblock": {
4
+ "variables": [
5
+ {
6
+ "name": "posCtl.targetX",
7
+ "stored_as": "",
8
+ "fetch_as": "float",
9
+ "type": "TOC"
10
+ },
11
+ {
12
+ "name": "stateEstimate.x",
13
+ "stored_as": "",
14
+ "fetch_as": "float",
15
+ "type": "TOC"
16
+ }
17
+ ],
18
+ "name": "Position x",
19
+ "period": 10
20
+ }
21
+ }
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "logconfig": {
3
+ "logblock": {
4
+ "variables": [
5
+ {
6
+ "name": "posCtl.targetY",
7
+ "stored_as": "",
8
+ "fetch_as": "float",
9
+ "type": "TOC"
10
+ },
11
+ {
12
+ "name": "stateEstimate.y",
13
+ "stored_as": "",
14
+ "fetch_as": "float",
15
+ "type": "TOC"
16
+ }
17
+ ],
18
+ "name": "Position y",
19
+ "period": 10
20
+ }
21
+ }
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "logconfig": {
3
+ "logblock": {
4
+ "variables": [
5
+ {
6
+ "name": "posCtl.targetZ",
7
+ "stored_as": "",
8
+ "fetch_as": "float",
9
+ "type": "TOC"
10
+ },
11
+ {
12
+ "name": "stateEstimate.z",
13
+ "stored_as": "",
14
+ "fetch_as": "float",
15
+ "type": "TOC"
16
+ }
17
+ ],
18
+ "name": "Position z",
19
+ "period": 10
20
+ }
21
+ }
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "logconfig": {
3
+ "logblock": {
4
+ "variables": [
5
+ {
6
+ "name": "controller.roll",
7
+ "stored_as": "",
8
+ "fetch_as": "float",
9
+ "type": "TOC"
10
+ },
11
+ {
12
+ "name": "stateEstimate.roll",
13
+ "stored_as": "",
14
+ "fetch_as": "float",
15
+ "type": "TOC"
16
+ }
17
+ ],
18
+ "name": "Roll",
19
+ "period": 10
20
+ }
21
+ }
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "logconfig": {
3
+ "logblock": {
4
+ "variables": [
5
+ {
6
+ "name": "controller.rollRate",
7
+ "stored_as": "",
8
+ "fetch_as": "float",
9
+ "type": "TOC"
10
+ },
11
+ {
12
+ "name": "gyro.x",
13
+ "stored_as": "",
14
+ "fetch_as": "float",
15
+ "type": "TOC"
16
+ }
17
+ ],
18
+ "name": "Roll rate",
19
+ "period": 10
20
+ }
21
+ }
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "logconfig": {
3
+ "logblock": {
4
+ "variables": [
5
+ {
6
+ "name": "posCtl.targetVX",
7
+ "stored_as": "",
8
+ "fetch_as": "float",
9
+ "type": "TOC"
10
+ },
11
+ {
12
+ "name": "stateEstimate.vx",
13
+ "stored_as": "",
14
+ "fetch_as": "float",
15
+ "type": "TOC"
16
+ }
17
+ ],
18
+ "name": "Velocity x",
19
+ "period": 10
20
+ }
21
+ }
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "logconfig": {
3
+ "logblock": {
4
+ "variables": [
5
+ {
6
+ "name": "posCtl.targetVY",
7
+ "stored_as": "",
8
+ "fetch_as": "float",
9
+ "type": "TOC"
10
+ },
11
+ {
12
+ "name": "stateEstimate.vy",
13
+ "stored_as": "",
14
+ "fetch_as": "float",
15
+ "type": "TOC"
16
+ }
17
+ ],
18
+ "name": "Velocity y",
19
+ "period": 10
20
+ }
21
+ }
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "logconfig": {
3
+ "logblock": {
4
+ "variables": [
5
+ {
6
+ "name": "posCtl.targetVZ",
7
+ "stored_as": "",
8
+ "fetch_as": "float",
9
+ "type": "TOC"
10
+ },
11
+ {
12
+ "name": "stateEstimate.vz",
13
+ "stored_as": "",
14
+ "fetch_as": "float",
15
+ "type": "TOC"
16
+ }
17
+ ],
18
+ "name": "Velocity z",
19
+ "period": 10
20
+ }
21
+ }
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "logconfig": {
3
+ "logblock": {
4
+ "variables": [
5
+ {
6
+ "name": "controller.yaw",
7
+ "stored_as": "",
8
+ "fetch_as": "float",
9
+ "type": "TOC"
10
+ },
11
+ {
12
+ "name": "stateEstimate.yaw",
13
+ "stored_as": "",
14
+ "fetch_as": "float",
15
+ "type": "TOC"
16
+ }
17
+ ],
18
+ "name": "Yaw",
19
+ "period": 10
20
+ }
21
+ }
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "logconfig": {
3
+ "logblock": {
4
+ "variables": [
5
+ {
6
+ "name": "controller.yawRate",
7
+ "stored_as": "",
8
+ "fetch_as": "float",
9
+ "type": "TOC"
10
+ },
11
+ {
12
+ "name": "gyro.z",
13
+ "stored_as": "",
14
+ "fetch_as": "float",
15
+ "type": "TOC"
16
+ }
17
+ ],
18
+ "name": "Yaw rate",
19
+ "period": 10
20
+ }
21
+ }
22
+ }