ardupilot-methodic-configurator 2.6.1__py3-none-any.whl → 2.7.0__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.
Potentially problematic release.
This version of ardupilot-methodic-configurator might be problematic. Click here for more details.
- ardupilot_methodic_configurator/__init__.py +2 -2
- ardupilot_methodic_configurator/__main__.py +25 -1
- ardupilot_methodic_configurator/annotate_params.py +49 -14
- ardupilot_methodic_configurator/argparse_check_range.py +1 -1
- ardupilot_methodic_configurator/backend_filesystem.py +7 -3
- ardupilot_methodic_configurator/backend_filesystem_configuration_steps.py +53 -6
- ardupilot_methodic_configurator/backend_filesystem_json_with_schema.py +3 -3
- ardupilot_methodic_configurator/backend_filesystem_program_settings.py +145 -8
- ardupilot_methodic_configurator/backend_filesystem_vehicle_components.py +3 -3
- ardupilot_methodic_configurator/backend_flightcontroller.py +37 -20
- ardupilot_methodic_configurator/backend_flightcontroller_info.py +1 -1
- ardupilot_methodic_configurator/backend_internet.py +1 -1
- ardupilot_methodic_configurator/backend_mavftp.py +1 -1
- ardupilot_methodic_configurator/battery_cell_voltages.py +1 -1
- ardupilot_methodic_configurator/common_arguments.py +1 -1
- ardupilot_methodic_configurator/configuration_manager.py +450 -115
- ardupilot_methodic_configurator/configuration_steps_ArduCopter.json +6 -4
- ardupilot_methodic_configurator/configuration_steps_ArduPlane.json +3 -1
- ardupilot_methodic_configurator/configuration_steps_Heli.json +3 -1
- ardupilot_methodic_configurator/configuration_steps_Rover.json +3 -1
- ardupilot_methodic_configurator/configuration_steps_strings.py +5 -3
- ardupilot_methodic_configurator/data_model_ardupilot_parameter.py +55 -2
- ardupilot_methodic_configurator/data_model_configuration_step.py +96 -46
- ardupilot_methodic_configurator/data_model_fc_ids.py +16 -7
- ardupilot_methodic_configurator/data_model_motor_test.py +1 -1
- ardupilot_methodic_configurator/data_model_par_dict.py +25 -11
- ardupilot_methodic_configurator/data_model_software_updates.py +1 -1
- ardupilot_methodic_configurator/data_model_template_overview.py +1 -1
- ardupilot_methodic_configurator/data_model_vehicle_components.py +1 -1
- ardupilot_methodic_configurator/data_model_vehicle_components_base.py +3 -2
- ardupilot_methodic_configurator/data_model_vehicle_components_display.py +1 -1
- ardupilot_methodic_configurator/data_model_vehicle_components_import.py +2 -1
- ardupilot_methodic_configurator/data_model_vehicle_components_json_schema.py +1 -1
- ardupilot_methodic_configurator/data_model_vehicle_components_templates.py +1 -1
- ardupilot_methodic_configurator/data_model_vehicle_components_validation.py +41 -1
- ardupilot_methodic_configurator/data_model_vehicle_project.py +1 -1
- ardupilot_methodic_configurator/data_model_vehicle_project_creator.py +1 -1
- ardupilot_methodic_configurator/data_model_vehicle_project_opener.py +1 -1
- ardupilot_methodic_configurator/extract_param_defaults.py +1 -1
- ardupilot_methodic_configurator/frontend_tkinter_autoresize_combobox.py +1 -1
- ardupilot_methodic_configurator/frontend_tkinter_base_window.py +5 -1
- ardupilot_methodic_configurator/frontend_tkinter_component_editor.py +55 -29
- ardupilot_methodic_configurator/frontend_tkinter_component_editor_base.py +18 -13
- ardupilot_methodic_configurator/frontend_tkinter_component_template_manager.py +1 -1
- ardupilot_methodic_configurator/frontend_tkinter_connection_selection.py +1 -1
- ardupilot_methodic_configurator/frontend_tkinter_directory_selection.py +1 -1
- ardupilot_methodic_configurator/frontend_tkinter_entry_dynamic.py +1 -1
- ardupilot_methodic_configurator/frontend_tkinter_flightcontroller_info.py +1 -1
- ardupilot_methodic_configurator/frontend_tkinter_font.py +1 -1
- ardupilot_methodic_configurator/frontend_tkinter_motor_test.py +1 -1
- ardupilot_methodic_configurator/frontend_tkinter_pair_tuple_combobox.py +7 -1
- ardupilot_methodic_configurator/frontend_tkinter_parameter_editor.py +50 -102
- ardupilot_methodic_configurator/frontend_tkinter_parameter_editor_documentation_frame.py +24 -58
- ardupilot_methodic_configurator/frontend_tkinter_parameter_editor_table.py +24 -56
- ardupilot_methodic_configurator/frontend_tkinter_progress_window.py +1 -1
- ardupilot_methodic_configurator/frontend_tkinter_project_creator.py +1 -1
- ardupilot_methodic_configurator/frontend_tkinter_project_opener.py +1 -1
- ardupilot_methodic_configurator/frontend_tkinter_rich_text.py +1 -1
- ardupilot_methodic_configurator/frontend_tkinter_scroll_frame.py +1 -1
- ardupilot_methodic_configurator/frontend_tkinter_show.py +1 -1
- ardupilot_methodic_configurator/frontend_tkinter_software_update.py +1 -1
- ardupilot_methodic_configurator/frontend_tkinter_stage_progress.py +19 -29
- ardupilot_methodic_configurator/frontend_tkinter_template_overview.py +1 -1
- ardupilot_methodic_configurator/frontend_tkinter_usage_popup_window.py +1 -1
- ardupilot_methodic_configurator/internationalization.py +1 -1
- ardupilot_methodic_configurator/param_pid_adjustment_update.py +43 -39
- ardupilot_methodic_configurator/tempcal_imu.py +1 -1
- ardupilot_methodic_configurator/vehicle_components.py +1 -1
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/14_logging.param +3 -3
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/14_logging.param +3 -3
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/14_logging.param +3 -3
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/14_logging.param +3 -3
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/14_logging.param +3 -3
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/14_logging.param +3 -3
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/14_logging.param +3 -3
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/14_logging.param +3 -3
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/14_logging.param +3 -3
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/14_logging.param +3 -3
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/14_logging.param +3 -3
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/14_logging.param +3 -3
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/05_remote_controller.param +1 -1
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/14_logging.param +3 -3
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/47_position_controller.param +2 -2
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/14_logging.param +3 -3
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/14_logging.param +3 -3
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/14_logging.param +3 -3
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/14_logging.param +3 -3
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/14_logging.param +3 -3
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/14_logging.param +3 -3
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/10_gnss.param +1 -1
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/10_gnss.param +1 -1
- {ardupilot_methodic_configurator-2.6.1.dist-info → ardupilot_methodic_configurator-2.7.0.dist-info}/METADATA +11 -6
- {ardupilot_methodic_configurator-2.6.1.dist-info → ardupilot_methodic_configurator-2.7.0.dist-info}/RECORD +106 -106
- {ardupilot_methodic_configurator-2.6.1.dist-info → ardupilot_methodic_configurator-2.7.0.dist-info}/WHEEL +0 -0
- {ardupilot_methodic_configurator-2.6.1.dist-info → ardupilot_methodic_configurator-2.7.0.dist-info}/entry_points.txt +0 -0
- {ardupilot_methodic_configurator-2.6.1.dist-info → ardupilot_methodic_configurator-2.7.0.dist-info}/licenses/LICENSE.md +0 -0
- {ardupilot_methodic_configurator-2.6.1.dist-info → ardupilot_methodic_configurator-2.7.0.dist-info}/licenses/LICENSES/Apache-2.0.txt +0 -0
- {ardupilot_methodic_configurator-2.6.1.dist-info → ardupilot_methodic_configurator-2.7.0.dist-info}/licenses/LICENSES/BSD-3-Clause.txt +0 -0
- {ardupilot_methodic_configurator-2.6.1.dist-info → ardupilot_methodic_configurator-2.7.0.dist-info}/licenses/LICENSES/GPL-3.0-or-later.txt +0 -0
- {ardupilot_methodic_configurator-2.6.1.dist-info → ardupilot_methodic_configurator-2.7.0.dist-info}/licenses/LICENSES/LGPL-3.0-or-later.txt +0 -0
- {ardupilot_methodic_configurator-2.6.1.dist-info → ardupilot_methodic_configurator-2.7.0.dist-info}/licenses/LICENSES/MIT-CMU.txt +0 -0
- {ardupilot_methodic_configurator-2.6.1.dist-info → ardupilot_methodic_configurator-2.7.0.dist-info}/licenses/LICENSES/MIT.txt +0 -0
- {ardupilot_methodic_configurator-2.6.1.dist-info → ardupilot_methodic_configurator-2.7.0.dist-info}/licenses/LICENSES/MPL-2.0.txt +0 -0
- {ardupilot_methodic_configurator-2.6.1.dist-info → ardupilot_methodic_configurator-2.7.0.dist-info}/licenses/LICENSES/PSF-2.0.txt +0 -0
- {ardupilot_methodic_configurator-2.6.1.dist-info → ardupilot_methodic_configurator-2.7.0.dist-info}/licenses/credits/CREDITS.md +0 -0
- {ardupilot_methodic_configurator-2.6.1.dist-info → ardupilot_methodic_configurator-2.7.0.dist-info}/top_level.txt +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""
|
|
2
2
|
Flight controller interface.
|
|
3
3
|
|
|
4
|
-
This file is part of
|
|
4
|
+
This file is part of ArduPilot Methodic Configurator. https://github.com/ArduPilot/MethodicConfigurator
|
|
5
5
|
|
|
6
6
|
SPDX-FileCopyrightText: 2024-2025 Amilcar do Carmo Lucas <amilcar.lucas@iav.de>
|
|
7
7
|
|
|
@@ -234,7 +234,7 @@ class FlightController: # pylint: disable=too-many-public-methods,too-many-inst
|
|
|
234
234
|
except OSError:
|
|
235
235
|
pass # Not a soft link, proceed with the original device path
|
|
236
236
|
err = self._register_and_try_connect(
|
|
237
|
-
comport=autodetect_serial[
|
|
237
|
+
comport=autodetect_serial[-1],
|
|
238
238
|
progress_callback=progress_callback,
|
|
239
239
|
baudrate=connection_baudrate,
|
|
240
240
|
log_errors=False,
|
|
@@ -408,7 +408,7 @@ class FlightController: # pylint: disable=too-many-public-methods,too-many-inst
|
|
|
408
408
|
logging_error(error_msg)
|
|
409
409
|
return False, error_msg
|
|
410
410
|
|
|
411
|
-
def __create_connection_with_retry( # pylint: disable=too-many-arguments, too-many-positional-arguments
|
|
411
|
+
def __create_connection_with_retry( # pylint: disable=too-many-arguments, too-many-positional-arguments, too-many-locals, too-many-branches
|
|
412
412
|
self,
|
|
413
413
|
progress_callback: Union[None, Callable[[int, int], None]],
|
|
414
414
|
retries: int = 3,
|
|
@@ -452,29 +452,45 @@ class FlightController: # pylint: disable=too-many-public-methods,too-many-inst
|
|
|
452
452
|
retries=retries,
|
|
453
453
|
progress_callback=progress_callback,
|
|
454
454
|
)
|
|
455
|
-
logging_debug(_("Waiting for MAVLink
|
|
455
|
+
logging_debug(_("Waiting for MAVLink heartbeats..."))
|
|
456
456
|
if not self.master:
|
|
457
457
|
msg = f"Failed to create mavlink connect to {self.comport.device}"
|
|
458
458
|
raise ConnectionError(msg)
|
|
459
|
-
|
|
460
|
-
|
|
459
|
+
# --- NEW: collect all vehicles detected within timeout ---
|
|
460
|
+
start_time = time_time()
|
|
461
|
+
detected_vehicles = {} # (sysid, compid) -> last HEARTBEAT
|
|
462
|
+
|
|
463
|
+
while time_time() - start_time < timeout:
|
|
464
|
+
m = self.master.recv_match(type="HEARTBEAT", blocking=False)
|
|
465
|
+
if m is None:
|
|
466
|
+
time_sleep(0.1)
|
|
467
|
+
continue
|
|
468
|
+
sysid = m.get_srcSystem()
|
|
469
|
+
compid = m.get_srcComponent()
|
|
470
|
+
detected_vehicles[(sysid, compid)] = m
|
|
471
|
+
logging_debug(_("Detected vehicle %u:%u (autopilot=%u, type=%u)"), sysid, compid, m.autopilot, m.type)
|
|
472
|
+
|
|
473
|
+
if not detected_vehicles:
|
|
461
474
|
return _("No MAVLink heartbeat received, connection failed.")
|
|
462
|
-
self.info.set_system_id_and_component_id(m.get_srcSystem(), m.get_srcComponent())
|
|
463
|
-
logging_debug(
|
|
464
|
-
_("Connection established with systemID %d, componentID %d."), self.info.system_id, self.info.component_id
|
|
465
|
-
)
|
|
466
475
|
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
476
|
+
for (sysid, compid), m in detected_vehicles.items():
|
|
477
|
+
self.info.set_system_id_and_component_id(sysid, compid)
|
|
478
|
+
logging_debug(
|
|
479
|
+
_("Connection established with systemID %d, componentID %d."), self.info.system_id, self.info.component_id
|
|
480
|
+
)
|
|
481
|
+
self.info.set_autopilot(m.autopilot)
|
|
482
|
+
if self.info.is_supported:
|
|
483
|
+
msg = _("Autopilot type {self.info.autopilot}")
|
|
484
|
+
logging_info(msg.format(**locals()))
|
|
485
|
+
self.info.set_type(m.type)
|
|
486
|
+
msg = _("Vehicle type: {self.info.mav_type} running {self.info.vehicle_type} firmware")
|
|
487
|
+
logging_info(msg.format(**locals()))
|
|
488
|
+
break
|
|
472
489
|
msg = _("Unsupported autopilot type {self.info.autopilot}")
|
|
473
|
-
|
|
490
|
+
logging_info(msg.format(**locals()))
|
|
474
491
|
|
|
475
|
-
self.info.
|
|
476
|
-
|
|
477
|
-
logging_info(msg.format(**locals()))
|
|
492
|
+
if not self.info.is_supported:
|
|
493
|
+
return _("No supported autopilots found")
|
|
478
494
|
|
|
479
495
|
self.__request_banner()
|
|
480
496
|
banner_msgs = self.__receive_banner_text()
|
|
@@ -482,6 +498,7 @@ class FlightController: # pylint: disable=too-many-public-methods,too-many-inst
|
|
|
482
498
|
self.__request_message(mavutil.mavlink.MAVLINK_MSG_ID_AUTOPILOT_VERSION)
|
|
483
499
|
m = self.master.recv_match(type="AUTOPILOT_VERSION", blocking=True, timeout=timeout)
|
|
484
500
|
return self.__process_autopilot_version(m, banner_msgs)
|
|
501
|
+
|
|
485
502
|
except (ConnectionError, SerialException, PermissionError, ConnectionRefusedError) as e:
|
|
486
503
|
if log_errors:
|
|
487
504
|
logging_warning(_("Connection failed: %s"), e)
|
|
@@ -1157,12 +1174,12 @@ class FlightController: # pylint: disable=too-many-public-methods,too-many-inst
|
|
|
1157
1174
|
def __auto_detect_serial(self) -> list[mavutil.SerialPort]:
|
|
1158
1175
|
preferred_ports = [
|
|
1159
1176
|
"*FTDI*",
|
|
1160
|
-
"*Arduino_Mega_2560*",
|
|
1161
1177
|
"*3D*",
|
|
1162
1178
|
"*USB_to_UART*",
|
|
1163
1179
|
"*Ardu*",
|
|
1164
1180
|
"*PX4*",
|
|
1165
1181
|
"*Hex_*",
|
|
1182
|
+
"*ProfiCNC*",
|
|
1166
1183
|
"*Holybro_*",
|
|
1167
1184
|
"*mRo*",
|
|
1168
1185
|
"*FMU*",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""
|
|
2
2
|
Manages FC information using FC interface.
|
|
3
3
|
|
|
4
|
-
This file is part of
|
|
4
|
+
This file is part of ArduPilot Methodic Configurator. https://github.com/ArduPilot/MethodicConfigurator
|
|
5
5
|
|
|
6
6
|
SPDX-FileCopyrightText: 2024-2025 Amilcar do Carmo Lucas <amilcar.lucas@iav.de>
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""
|
|
2
2
|
Check for software updates and install them if available.
|
|
3
3
|
|
|
4
|
-
This file is part of
|
|
4
|
+
This file is part of ArduPilot Methodic Configurator. https://github.com/ArduPilot/MethodicConfigurator
|
|
5
5
|
|
|
6
6
|
SPDX-FileCopyrightText: 2024-2025 Amilcar Lucas
|
|
7
7
|
|
|
@@ -6,7 +6,7 @@ MAVLink File Transfer Protocol support - https://mavlink.io/en/services/ftp.html
|
|
|
6
6
|
|
|
7
7
|
Original from MAVProxy/MAVProxy/modules/mavproxy_ftp.py
|
|
8
8
|
|
|
9
|
-
This file is part of
|
|
9
|
+
This file is part of ArduPilot Methodic Configurator. https://github.com/ArduPilot/MethodicConfigurator
|
|
10
10
|
|
|
11
11
|
SPDX-FileCopyrightText: 2011-2024 Andrew Tridgell, 2024-2025 Amilcar Lucas
|
|
12
12
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""
|
|
2
2
|
Battery cell voltages management.
|
|
3
3
|
|
|
4
|
-
This file is part of
|
|
4
|
+
This file is part of ArduPilot Methodic Configurator. https://github.com/ArduPilot/MethodicConfigurator
|
|
5
5
|
|
|
6
6
|
SPDX-FileCopyrightText: 2024-2025 Amilcar do Carmo Lucas <amilcar.lucas@iav.de>
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""
|
|
2
2
|
Common arguments used by all sub applications.
|
|
3
3
|
|
|
4
|
-
This file is part of
|
|
4
|
+
This file is part of ArduPilot Methodic Configurator. https://github.com/ArduPilot/MethodicConfigurator
|
|
5
5
|
|
|
6
6
|
SPDX-FileCopyrightText: 2024-2025 Amilcar do Carmo Lucas <amilcar.lucas@iav.de>
|
|
7
7
|
|