cfclient 2024.7.1__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 +9 -7
- cfclient/configs/config.json +1 -1
- 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/resources/log_param_doc.json +1 -1
- cfclient/ui/dialogs/about.py +5 -1
- cfclient/ui/dialogs/basestation_mode_dialog.py +12 -1
- cfclient/ui/dialogs/bootloader.py +76 -6
- cfclient/ui/dialogs/bootloader.ui +110 -24
- cfclient/ui/dialogs/cf2config.ui +1 -1
- cfclient/ui/dialogs/lighthouse_bs_geometry_dialog.py +0 -12
- cfclient/ui/dialogs/lighthouse_bs_geometry_dialog.ui +0 -7
- cfclient/ui/icons/bl.webp +0 -0
- cfclient/ui/icons/bolt.webp +0 -0
- cfclient/ui/icons/cf21.webp +0 -0
- cfclient/ui/icons/flapper.webp +0 -0
- cfclient/ui/icons/tag.webp +0 -0
- cfclient/ui/main.py +3 -3
- cfclient/ui/main.ui +1 -1
- cfclient/ui/tabs/ColorLEDTab.py +752 -0
- cfclient/ui/tabs/FlightTab.py +11 -108
- cfclient/ui/tabs/{LEDTab.py → LEDRingTab.py} +126 -12
- cfclient/ui/tabs/LogTab.py +2 -2
- cfclient/ui/tabs/ParamTab.py +90 -4
- cfclient/ui/tabs/__init__.py +4 -2
- cfclient/ui/tabs/colorLEDTab.ui +624 -0
- cfclient/ui/tabs/consoleTab.ui +1 -1
- cfclient/ui/tabs/flightTab.ui +28 -71
- cfclient/ui/tabs/{ledTab.ui → ledRingTab.ui} +63 -46
- cfclient/utils/input/__init__.py +3 -3
- cfclient/utils/periodictimer.py +1 -1
- cfclient/version.py +34 -0
- cfclient-2025.12.1.dist-info/METADATA +70 -0
- {cfclient-2024.7.1.dist-info → cfclient-2025.12.1.dist-info}/RECORD +54 -28
- {cfclient-2024.7.1.dist-info → cfclient-2025.12.1.dist-info}/WHEEL +1 -1
- {cfclient-2024.7.1.dist-info → cfclient-2025.12.1.dist-info}/top_level.txt +1 -0
- cfconfig/Makefile +51 -0
- cfconfig/configblock.py +111 -0
- cfclient-2024.7.1.dist-info/METADATA +0 -53
- {cfclient-2024.7.1.dist-info → cfclient-2025.12.1.dist-info}/entry_points.txt +0 -0
- {cfclient-2024.7.1.dist-info → cfclient-2025.12.1.dist-info/licenses}/LICENSE.txt +0 -0
cfclient/ui/tabs/flightTab.ui
CHANGED
|
@@ -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">
|
|
@@ -142,10 +142,10 @@
|
|
|
142
142
|
<item row="0" column="1">
|
|
143
143
|
<spacer name="verticalSpacer_3">
|
|
144
144
|
<property name="orientation">
|
|
145
|
-
<enum>Qt::Vertical</enum>
|
|
145
|
+
<enum>Qt::Orientation::Vertical</enum>
|
|
146
146
|
</property>
|
|
147
147
|
<property name="sizeType">
|
|
148
|
-
<enum>QSizePolicy::Maximum</enum>
|
|
148
|
+
<enum>QSizePolicy::Policy::Maximum</enum>
|
|
149
149
|
</property>
|
|
150
150
|
<property name="sizeHint" stdset="0">
|
|
151
151
|
<size>
|
|
@@ -203,7 +203,7 @@
|
|
|
203
203
|
<item row="0" column="0">
|
|
204
204
|
<widget class="QLabel" name="label_7">
|
|
205
205
|
<property name="layoutDirection">
|
|
206
|
-
<enum>Qt::LeftToRight</enum>
|
|
206
|
+
<enum>Qt::LayoutDirection::LeftToRight</enum>
|
|
207
207
|
</property>
|
|
208
208
|
<property name="text">
|
|
209
209
|
<string>Max angle/rate</string>
|
|
@@ -360,53 +360,10 @@
|
|
|
360
360
|
</layout>
|
|
361
361
|
</widget>
|
|
362
362
|
</item>
|
|
363
|
-
<item>
|
|
364
|
-
<widget class="QGroupBox" name="groupBox_4">
|
|
365
|
-
<property name="minimumSize">
|
|
366
|
-
<size>
|
|
367
|
-
<width>160</width>
|
|
368
|
-
<height>0</height>
|
|
369
|
-
</size>
|
|
370
|
-
</property>
|
|
371
|
-
<property name="title">
|
|
372
|
-
<string>Expansion boards</string>
|
|
373
|
-
</property>
|
|
374
|
-
<layout class="QGridLayout" name="gridLayout_6">
|
|
375
|
-
<item row="0" column="0">
|
|
376
|
-
<layout class="QGridLayout" name="gridLayout_2">
|
|
377
|
-
<item row="0" column="1">
|
|
378
|
-
<widget class="QComboBox" name="_led_ring_effect">
|
|
379
|
-
<property name="enabled">
|
|
380
|
-
<bool>false</bool>
|
|
381
|
-
</property>
|
|
382
|
-
</widget>
|
|
383
|
-
</item>
|
|
384
|
-
<item row="0" column="0">
|
|
385
|
-
<widget class="QLabel" name="label_8">
|
|
386
|
-
<property name="text">
|
|
387
|
-
<string>LED-ring effect</string>
|
|
388
|
-
</property>
|
|
389
|
-
</widget>
|
|
390
|
-
</item>
|
|
391
|
-
<item row="1" column="1">
|
|
392
|
-
<widget class="QCheckBox" name="_led_ring_headlight">
|
|
393
|
-
<property name="enabled">
|
|
394
|
-
<bool>false</bool>
|
|
395
|
-
</property>
|
|
396
|
-
<property name="text">
|
|
397
|
-
<string>LED-ring headlight</string>
|
|
398
|
-
</property>
|
|
399
|
-
</widget>
|
|
400
|
-
</item>
|
|
401
|
-
</layout>
|
|
402
|
-
</item>
|
|
403
|
-
</layout>
|
|
404
|
-
</widget>
|
|
405
|
-
</item>
|
|
406
363
|
<item>
|
|
407
364
|
<spacer name="verticalSpacer">
|
|
408
365
|
<property name="orientation">
|
|
409
|
-
<enum>Qt::Vertical</enum>
|
|
366
|
+
<enum>Qt::Orientation::Vertical</enum>
|
|
410
367
|
</property>
|
|
411
368
|
<property name="sizeHint" stdset="0">
|
|
412
369
|
<size>
|
|
@@ -459,7 +416,7 @@
|
|
|
459
416
|
<widget class="QWidget" name="layoutWidget">
|
|
460
417
|
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
|
461
418
|
<property name="sizeConstraint">
|
|
462
|
-
<enum>QLayout::SetDefaultConstraint</enum>
|
|
419
|
+
<enum>QLayout::SizeConstraint::SetDefaultConstraint</enum>
|
|
463
420
|
</property>
|
|
464
421
|
<item>
|
|
465
422
|
<widget class="QGroupBox" name="groupBox">
|
|
@@ -476,7 +433,7 @@
|
|
|
476
433
|
<item row="0" column="0">
|
|
477
434
|
<widget class="QSplitter" name="splitter">
|
|
478
435
|
<property name="orientation">
|
|
479
|
-
<enum>Qt::Vertical</enum>
|
|
436
|
+
<enum>Qt::Orientation::Vertical</enum>
|
|
480
437
|
</property>
|
|
481
438
|
<widget class="QWidget" name="layoutWidget">
|
|
482
439
|
<layout class="QVBoxLayout" name="verticalLayout_4"/>
|
|
@@ -484,7 +441,7 @@
|
|
|
484
441
|
<widget class="QWidget" name="layoutWidget">
|
|
485
442
|
<layout class="QGridLayout" name="gridLayout_5" rowstretch="0,0,0,0,0,0,0,0">
|
|
486
443
|
<property name="sizeConstraint">
|
|
487
|
-
<enum>QLayout::SetMinimumSize</enum>
|
|
444
|
+
<enum>QLayout::SizeConstraint::SetMinimumSize</enum>
|
|
488
445
|
</property>
|
|
489
446
|
<property name="horizontalSpacing">
|
|
490
447
|
<number>6</number>
|
|
@@ -498,7 +455,7 @@
|
|
|
498
455
|
<string>Thrust</string>
|
|
499
456
|
</property>
|
|
500
457
|
<property name="alignment">
|
|
501
|
-
<set>Qt::AlignCenter</set>
|
|
458
|
+
<set>Qt::AlignmentFlag::AlignCenter</set>
|
|
502
459
|
</property>
|
|
503
460
|
</widget>
|
|
504
461
|
</item>
|
|
@@ -511,7 +468,7 @@
|
|
|
511
468
|
<number>0</number>
|
|
512
469
|
</property>
|
|
513
470
|
<property name="orientation">
|
|
514
|
-
<enum>Qt::Vertical</enum>
|
|
471
|
+
<enum>Qt::Orientation::Vertical</enum>
|
|
515
472
|
</property>
|
|
516
473
|
</widget>
|
|
517
474
|
</item>
|
|
@@ -553,7 +510,7 @@
|
|
|
553
510
|
<number>0</number>
|
|
554
511
|
</property>
|
|
555
512
|
<property name="orientation">
|
|
556
|
-
<enum>Qt::Vertical</enum>
|
|
513
|
+
<enum>Qt::Orientation::Vertical</enum>
|
|
557
514
|
</property>
|
|
558
515
|
</widget>
|
|
559
516
|
</item>
|
|
@@ -602,7 +559,7 @@
|
|
|
602
559
|
<number>0</number>
|
|
603
560
|
</property>
|
|
604
561
|
<property name="orientation">
|
|
605
|
-
<enum>Qt::Vertical</enum>
|
|
562
|
+
<enum>Qt::Orientation::Vertical</enum>
|
|
606
563
|
</property>
|
|
607
564
|
</widget>
|
|
608
565
|
</item>
|
|
@@ -616,7 +573,7 @@
|
|
|
616
573
|
<item row="0" column="13">
|
|
617
574
|
<spacer name="horizontalSpacer_2">
|
|
618
575
|
<property name="orientation">
|
|
619
|
-
<enum>Qt::Horizontal</enum>
|
|
576
|
+
<enum>Qt::Orientation::Horizontal</enum>
|
|
620
577
|
</property>
|
|
621
578
|
<property name="sizeHint" stdset="0">
|
|
622
579
|
<size>
|
|
@@ -673,10 +630,10 @@
|
|
|
673
630
|
<number>24</number>
|
|
674
631
|
</property>
|
|
675
632
|
<property name="alignment">
|
|
676
|
-
<set>Qt::AlignCenter</set>
|
|
633
|
+
<set>Qt::AlignmentFlag::AlignCenter</set>
|
|
677
634
|
</property>
|
|
678
635
|
<property name="orientation">
|
|
679
|
-
<enum>Qt::Vertical</enum>
|
|
636
|
+
<enum>Qt::Orientation::Vertical</enum>
|
|
680
637
|
</property>
|
|
681
638
|
<property name="invertedAppearance">
|
|
682
639
|
<bool>false</bool>
|
|
@@ -695,17 +652,17 @@
|
|
|
695
652
|
<string>Gamepad Input</string>
|
|
696
653
|
</property>
|
|
697
654
|
<property name="alignment">
|
|
698
|
-
<set>Qt::AlignCenter</set>
|
|
655
|
+
<set>Qt::AlignmentFlag::AlignCenter</set>
|
|
699
656
|
</property>
|
|
700
657
|
</widget>
|
|
701
658
|
</item>
|
|
702
659
|
<item row="1" column="3">
|
|
703
660
|
<spacer name="horizontalSpacer">
|
|
704
661
|
<property name="orientation">
|
|
705
|
-
<enum>Qt::Horizontal</enum>
|
|
662
|
+
<enum>Qt::Orientation::Horizontal</enum>
|
|
706
663
|
</property>
|
|
707
664
|
<property name="sizeType">
|
|
708
|
-
<enum>QSizePolicy::Fixed</enum>
|
|
665
|
+
<enum>QSizePolicy::Policy::Fixed</enum>
|
|
709
666
|
</property>
|
|
710
667
|
<property name="sizeHint" stdset="0">
|
|
711
668
|
<size>
|
|
@@ -767,7 +724,7 @@
|
|
|
767
724
|
<string>Command Based Flight Control</string>
|
|
768
725
|
</property>
|
|
769
726
|
<property name="alignment">
|
|
770
|
-
<set>Qt::AlignCenter</set>
|
|
727
|
+
<set>Qt::AlignmentFlag::AlignCenter</set>
|
|
771
728
|
</property>
|
|
772
729
|
<property name="Enabled" stdset="0">
|
|
773
730
|
<bool>false</bool>
|
|
@@ -805,7 +762,7 @@
|
|
|
805
762
|
<item row="0" column="1" rowspan="2" colspan="2">
|
|
806
763
|
<layout class="QGridLayout" name="horizontalLayout">
|
|
807
764
|
<property name="sizeConstraint">
|
|
808
|
-
<enum>QLayout::SetDefaultConstraint</enum>
|
|
765
|
+
<enum>QLayout::SizeConstraint::SetDefaultConstraint</enum>
|
|
809
766
|
</property>
|
|
810
767
|
<property name="leftMargin">
|
|
811
768
|
<number>10</number>
|
|
@@ -980,10 +937,10 @@
|
|
|
980
937
|
<item row="1" column="13">
|
|
981
938
|
<spacer name="horizontalSpacer_4">
|
|
982
939
|
<property name="orientation">
|
|
983
|
-
<enum>Qt::Horizontal</enum>
|
|
940
|
+
<enum>Qt::Orientation::Horizontal</enum>
|
|
984
941
|
</property>
|
|
985
942
|
<property name="sizeType">
|
|
986
|
-
<enum>QSizePolicy::Fixed</enum>
|
|
943
|
+
<enum>QSizePolicy::Policy::Fixed</enum>
|
|
987
944
|
</property>
|
|
988
945
|
<property name="sizeHint" stdset="0">
|
|
989
946
|
<size>
|
|
@@ -1043,10 +1000,10 @@
|
|
|
1043
1000
|
<item row="1" column="6">
|
|
1044
1001
|
<spacer name="horizontalSpacer_3">
|
|
1045
1002
|
<property name="orientation">
|
|
1046
|
-
<enum>Qt::Horizontal</enum>
|
|
1003
|
+
<enum>Qt::Orientation::Horizontal</enum>
|
|
1047
1004
|
</property>
|
|
1048
1005
|
<property name="sizeType">
|
|
1049
|
-
<enum>QSizePolicy::Fixed</enum>
|
|
1006
|
+
<enum>QSizePolicy::Policy::Fixed</enum>
|
|
1050
1007
|
</property>
|
|
1051
1008
|
<property name="sizeHint" stdset="0">
|
|
1052
1009
|
<size>
|
|
@@ -1068,7 +1025,7 @@
|
|
|
1068
1025
|
<string>State Estimate</string>
|
|
1069
1026
|
</property>
|
|
1070
1027
|
<property name="alignment">
|
|
1071
|
-
<set>Qt::AlignCenter</set>
|
|
1028
|
+
<set>Qt::AlignmentFlag::AlignCenter</set>
|
|
1072
1029
|
</property>
|
|
1073
1030
|
</widget>
|
|
1074
1031
|
</item>
|
|
@@ -1122,7 +1079,7 @@
|
|
|
1122
1079
|
<number>0</number>
|
|
1123
1080
|
</property>
|
|
1124
1081
|
<property name="orientation">
|
|
1125
|
-
<enum>Qt::Vertical</enum>
|
|
1082
|
+
<enum>Qt::Orientation::Vertical</enum>
|
|
1126
1083
|
</property>
|
|
1127
1084
|
</widget>
|
|
1128
1085
|
</item>
|
|
@@ -1163,7 +1120,7 @@
|
|
|
1163
1120
|
<string>Supervisor</string>
|
|
1164
1121
|
</property>
|
|
1165
1122
|
<property name="alignment">
|
|
1166
|
-
<set>Qt::AlignCenter</set>
|
|
1123
|
+
<set>Qt::AlignmentFlag::AlignCenter</set>
|
|
1167
1124
|
</property>
|
|
1168
1125
|
</widget>
|
|
1169
1126
|
</item>
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
<item>
|
|
18
18
|
<spacer name="horizontalSpacer">
|
|
19
19
|
<property name="orientation">
|
|
20
|
-
<enum>Qt::Horizontal</enum>
|
|
20
|
+
<enum>Qt::Orientation::Horizontal</enum>
|
|
21
21
|
</property>
|
|
22
22
|
<property name="sizeHint" stdset="0">
|
|
23
23
|
<size>
|
|
@@ -240,37 +240,46 @@
|
|
|
240
240
|
</item>
|
|
241
241
|
<item>
|
|
242
242
|
<layout class="QGridLayout" name="gridLayout_2">
|
|
243
|
-
<item row="0" column="0">
|
|
244
|
-
<widget class="QSlider" name="_intensity_slider">
|
|
245
|
-
<property name="enabled">
|
|
246
|
-
<bool>false</bool>
|
|
247
|
-
</property>
|
|
248
|
-
<property name="minimum">
|
|
249
|
-
<number>1</number>
|
|
250
|
-
</property>
|
|
251
|
-
<property name="maximum">
|
|
252
|
-
<number>100</number>
|
|
253
|
-
</property>
|
|
254
|
-
<property name="value">
|
|
255
|
-
<number>100</number>
|
|
256
|
-
</property>
|
|
257
|
-
<property name="orientation">
|
|
258
|
-
<enum>Qt::Vertical</enum>
|
|
259
|
-
</property>
|
|
260
|
-
<property name="invertedAppearance">
|
|
261
|
-
<bool>false</bool>
|
|
262
|
-
</property>
|
|
263
|
-
<property name="tickPosition">
|
|
264
|
-
<enum>QSlider::NoTicks</enum>
|
|
265
|
-
</property>
|
|
266
|
-
<property name="tickInterval">
|
|
267
|
-
<number>10</number>
|
|
268
|
-
</property>
|
|
269
|
-
</widget>
|
|
270
|
-
</item>
|
|
271
243
|
<item row="0" column="1">
|
|
272
244
|
<layout class="QGridLayout" name="gridLayout_3">
|
|
273
|
-
<item row="
|
|
245
|
+
<item row="4" column="0">
|
|
246
|
+
<widget class="QComboBox" name="_led_ring_effect"/>
|
|
247
|
+
</item>
|
|
248
|
+
<item row="3" column="0">
|
|
249
|
+
<widget class="QLabel" name="label_2">
|
|
250
|
+
<property name="text">
|
|
251
|
+
<string>Effects</string>
|
|
252
|
+
</property>
|
|
253
|
+
</widget>
|
|
254
|
+
</item>
|
|
255
|
+
<item row="6" column="0">
|
|
256
|
+
<widget class="QLabel" name="label">
|
|
257
|
+
<property name="text">
|
|
258
|
+
<string>Intensity</string>
|
|
259
|
+
</property>
|
|
260
|
+
</widget>
|
|
261
|
+
</item>
|
|
262
|
+
<item row="9" column="0">
|
|
263
|
+
<spacer name="verticalSpacer">
|
|
264
|
+
<property name="orientation">
|
|
265
|
+
<enum>Qt::Orientation::Vertical</enum>
|
|
266
|
+
</property>
|
|
267
|
+
<property name="sizeHint" stdset="0">
|
|
268
|
+
<size>
|
|
269
|
+
<width>20</width>
|
|
270
|
+
<height>40</height>
|
|
271
|
+
</size>
|
|
272
|
+
</property>
|
|
273
|
+
</spacer>
|
|
274
|
+
</item>
|
|
275
|
+
<item row="5" column="0">
|
|
276
|
+
<widget class="QCheckBox" name="_led_ring_headlight">
|
|
277
|
+
<property name="text">
|
|
278
|
+
<string>Headlight</string>
|
|
279
|
+
</property>
|
|
280
|
+
</widget>
|
|
281
|
+
</item>
|
|
282
|
+
<item row="7" column="0">
|
|
274
283
|
<widget class="QSpinBox" name="_intensity_spin">
|
|
275
284
|
<property name="enabled">
|
|
276
285
|
<bool>false</bool>
|
|
@@ -292,25 +301,33 @@
|
|
|
292
301
|
</property>
|
|
293
302
|
</widget>
|
|
294
303
|
</item>
|
|
295
|
-
<item row="
|
|
296
|
-
<widget class="
|
|
297
|
-
<property name="
|
|
298
|
-
<
|
|
304
|
+
<item row="8" column="0">
|
|
305
|
+
<widget class="QSlider" name="_intensity_slider">
|
|
306
|
+
<property name="enabled">
|
|
307
|
+
<bool>false</bool>
|
|
308
|
+
</property>
|
|
309
|
+
<property name="minimum">
|
|
310
|
+
<number>1</number>
|
|
311
|
+
</property>
|
|
312
|
+
<property name="maximum">
|
|
313
|
+
<number>100</number>
|
|
314
|
+
</property>
|
|
315
|
+
<property name="value">
|
|
316
|
+
<number>100</number>
|
|
299
317
|
</property>
|
|
300
|
-
</widget>
|
|
301
|
-
</item>
|
|
302
|
-
<item row="2" column="0">
|
|
303
|
-
<spacer name="verticalSpacer">
|
|
304
318
|
<property name="orientation">
|
|
305
|
-
<enum>Qt::
|
|
319
|
+
<enum>Qt::Orientation::Horizontal</enum>
|
|
306
320
|
</property>
|
|
307
|
-
<property name="
|
|
308
|
-
<
|
|
309
|
-
<width>20</width>
|
|
310
|
-
<height>40</height>
|
|
311
|
-
</size>
|
|
321
|
+
<property name="invertedAppearance">
|
|
322
|
+
<bool>false</bool>
|
|
312
323
|
</property>
|
|
313
|
-
|
|
324
|
+
<property name="tickPosition">
|
|
325
|
+
<enum>QSlider::TickPosition::NoTicks</enum>
|
|
326
|
+
</property>
|
|
327
|
+
<property name="tickInterval">
|
|
328
|
+
<number>10</number>
|
|
329
|
+
</property>
|
|
330
|
+
</widget>
|
|
314
331
|
</item>
|
|
315
332
|
</layout>
|
|
316
333
|
</item>
|
|
@@ -319,7 +336,7 @@
|
|
|
319
336
|
<item>
|
|
320
337
|
<spacer name="horizontalSpacer_2">
|
|
321
338
|
<property name="orientation">
|
|
322
|
-
<enum>Qt::Horizontal</enum>
|
|
339
|
+
<enum>Qt::Orientation::Horizontal</enum>
|
|
323
340
|
</property>
|
|
324
341
|
<property name="sizeHint" stdset="0">
|
|
325
342
|
<size>
|
cfclient/utils/input/__init__.py
CHANGED
|
@@ -453,7 +453,7 @@ class JoystickReader(object):
|
|
|
453
453
|
vx = data.roll
|
|
454
454
|
vy = data.pitch
|
|
455
455
|
vz = data.thrust
|
|
456
|
-
yawrate = data.yaw
|
|
456
|
+
yawrate = -data.yaw
|
|
457
457
|
# The odd use of vx and vy is to map forward on the
|
|
458
458
|
# physical joystick to positive X-axis
|
|
459
459
|
self.assisted_input_updated.call(vy, -vx, vz, yawrate)
|
|
@@ -473,7 +473,7 @@ class JoystickReader(object):
|
|
|
473
473
|
if self._target_height < MIN_HOVER_HEIGHT:
|
|
474
474
|
self._target_height = MIN_HOVER_HEIGHT
|
|
475
475
|
|
|
476
|
-
yawrate = data.yaw
|
|
476
|
+
yawrate = -data.yaw
|
|
477
477
|
# The odd use of vx and vy is to map forward on the
|
|
478
478
|
# physical joystick to positive X-axis
|
|
479
479
|
self.hover_input_updated.call(vy, -vx, yawrate,
|
|
@@ -499,7 +499,7 @@ class JoystickReader(object):
|
|
|
499
499
|
and data.assistedControl:
|
|
500
500
|
roll = data.roll + self.trim_roll
|
|
501
501
|
pitch = data.pitch + self.trim_pitch
|
|
502
|
-
yawrate = data.yaw
|
|
502
|
+
yawrate = -data.yaw
|
|
503
503
|
# Scale thrust to a value between -1.0 to 1.0
|
|
504
504
|
vz = (data.thrust - 32767) / 32767.0
|
|
505
505
|
# Integrate velocity setpoint
|
cfclient/utils/periodictimer.py
CHANGED
|
@@ -57,7 +57,7 @@ class PeriodicTimer:
|
|
|
57
57
|
logger.warning("Timer already started, not restarting")
|
|
58
58
|
return
|
|
59
59
|
self._thread = _PeriodicTimerThread(self._period, self._callbacks)
|
|
60
|
-
self._thread.
|
|
60
|
+
self._thread.daemon = True
|
|
61
61
|
self._thread.start()
|
|
62
62
|
|
|
63
63
|
def stop(self):
|
cfclient/version.py
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# file generated by setuptools-scm
|
|
2
|
+
# don't change, don't track in version control
|
|
3
|
+
|
|
4
|
+
__all__ = [
|
|
5
|
+
"__version__",
|
|
6
|
+
"__version_tuple__",
|
|
7
|
+
"version",
|
|
8
|
+
"version_tuple",
|
|
9
|
+
"__commit_id__",
|
|
10
|
+
"commit_id",
|
|
11
|
+
]
|
|
12
|
+
|
|
13
|
+
TYPE_CHECKING = False
|
|
14
|
+
if TYPE_CHECKING:
|
|
15
|
+
from typing import Tuple
|
|
16
|
+
from typing import Union
|
|
17
|
+
|
|
18
|
+
VERSION_TUPLE = Tuple[Union[int, str], ...]
|
|
19
|
+
COMMIT_ID = Union[str, None]
|
|
20
|
+
else:
|
|
21
|
+
VERSION_TUPLE = object
|
|
22
|
+
COMMIT_ID = object
|
|
23
|
+
|
|
24
|
+
version: str
|
|
25
|
+
__version__: str
|
|
26
|
+
__version_tuple__: VERSION_TUPLE
|
|
27
|
+
version_tuple: VERSION_TUPLE
|
|
28
|
+
commit_id: COMMIT_ID
|
|
29
|
+
__commit_id__: COMMIT_ID
|
|
30
|
+
|
|
31
|
+
__version__ = version = '2025.12.1'
|
|
32
|
+
__version_tuple__ = version_tuple = (2025, 12, 1)
|
|
33
|
+
|
|
34
|
+
__commit_id__ = commit_id = None
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: cfclient
|
|
3
|
+
Version: 2025.12.1
|
|
4
|
+
Summary: Crazyflie PC client
|
|
5
|
+
Author-email: Bitcraze and contributors <contact@bitcraze.io>
|
|
6
|
+
License: GPLv2+
|
|
7
|
+
Project-URL: Homepage, https://www.bitcraze.io
|
|
8
|
+
Project-URL: Documentation, https://www.bitcraze.io/documentation/repository/crazyflie-clients-python/master/
|
|
9
|
+
Project-URL: Repository, https://github.com/bitcraze/crazyflie-clients-python
|
|
10
|
+
Project-URL: Issues, https://github.com/bitcraze/crazyflie-clients-python/issues
|
|
11
|
+
Keywords: quadcopter,crazyflie
|
|
12
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
13
|
+
Classifier: License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)
|
|
14
|
+
Classifier: Topic :: Scientific/Engineering
|
|
15
|
+
Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
16
|
+
Classifier: Topic :: Software Development :: User Interfaces
|
|
17
|
+
Classifier: Intended Audience :: End Users/Desktop
|
|
18
|
+
Classifier: Intended Audience :: Science/Research
|
|
19
|
+
Classifier: Intended Audience :: Education
|
|
20
|
+
Classifier: Intended Audience :: Developers
|
|
21
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
22
|
+
Classifier: Operating System :: MacOS
|
|
23
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
25
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
26
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
27
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
28
|
+
Requires-Python: >=3.10
|
|
29
|
+
Description-Content-Type: text/markdown
|
|
30
|
+
License-File: LICENSE.txt
|
|
31
|
+
Requires-Dist: cflib~=0.1.31
|
|
32
|
+
Requires-Dist: setuptools
|
|
33
|
+
Requires-Dist: appdirs~=1.4.0
|
|
34
|
+
Requires-Dist: pyzmq~=26.0
|
|
35
|
+
Requires-Dist: pyqtgraph~=0.13
|
|
36
|
+
Requires-Dist: PyYAML~=6.0.1
|
|
37
|
+
Requires-Dist: numpy~=2.2
|
|
38
|
+
Requires-Dist: vispy~=0.15.2
|
|
39
|
+
Requires-Dist: pyopengl~=3.1.7
|
|
40
|
+
Requires-Dist: pyserial~=3.5
|
|
41
|
+
Requires-Dist: PyQt6~=6.7.1
|
|
42
|
+
Requires-Dist: PyQt6-sip~=13.8
|
|
43
|
+
Requires-Dist: pysdl2~=0.9.14; platform_system == "Windows" or platform_system == "Darwin"
|
|
44
|
+
Requires-Dist: pysdl2-dll==2.24.0; platform_system == "Windows" or platform_system == "Darwin"
|
|
45
|
+
Provides-Extra: dev
|
|
46
|
+
Requires-Dist: pre-commit; extra == "dev"
|
|
47
|
+
Requires-Dist: cx_freeze==5.1.1; platform_system == "Windows" and extra == "dev"
|
|
48
|
+
Requires-Dist: jinja2==2.10.3; platform_system == "Windows" and extra == "dev"
|
|
49
|
+
Dynamic: license-file
|
|
50
|
+
|
|
51
|
+
# Crazyflie PC client [](https://github.com/bitcraze/crazyflie-clients-python/actions?query=workflow%3ACI)
|
|
52
|
+
|
|
53
|
+
This repository contains host applications for the Crazyflie, including the PC client (`cfclient`), headless client (`cfheadless`), firmware loader (`cfloader`), and ZMQ interface (`cfzmq`).
|
|
54
|
+
These applications provide graphical and command-line interfaces for firmware flashing, flight control, parameter configuration, real-time data logging and visualization, and more.
|
|
55
|
+
All applications are built on [`cflib`](https://github.com/bitcraze/crazyflie-lib-python).
|
|
56
|
+
|
|
57
|
+
## Installation
|
|
58
|
+
See the [installation instructions](docs/installation/install.md) in the GitHub docs folder.
|
|
59
|
+
|
|
60
|
+
## Official Documentation
|
|
61
|
+
|
|
62
|
+
Check out the [Bitcraze crazyflie-client-python documentation](https://www.bitcraze.io/documentation/repository/crazyflie-clients-python/master/) on our website.
|
|
63
|
+
|
|
64
|
+
## Contribute
|
|
65
|
+
Go to the [contribute page](https://www.bitcraze.io/contribute/) on our website to learn more.
|
|
66
|
+
|
|
67
|
+
### Test code for contribution
|
|
68
|
+
Run the automated build locally to test your code
|
|
69
|
+
|
|
70
|
+
python3 tools/build/build
|