From 4ec9e2f216a8cf2961f4ea46c26ecb052a3d5f35 Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Wed, 24 Aug 2022 17:47:17 -0400 Subject: [PATCH] uavcan: delete unused ESC idle and soft_stop --- msg/actuator_armed.msg | 1 - src/drivers/uavcan/uavcan_main.cpp | 21 +-------------------- src/drivers/uavcan/uavcan_main.hpp | 7 +------ src/drivers/uavcan/uavcan_module.hpp | 5 ----- src/drivers/uavcan/uavcan_params.c | 9 --------- src/modules/commander/Commander.cpp | 10 +--------- 6 files changed, 3 insertions(+), 50 deletions(-) diff --git a/msg/actuator_armed.msg b/msg/actuator_armed.msg index 4543e7b8c9..6867adf2c8 100644 --- a/msg/actuator_armed.msg +++ b/msg/actuator_armed.msg @@ -7,4 +7,3 @@ bool lockdown # Set to true if actuators are forced to being disabled (due to e bool manual_lockdown # Set to true if manual throttle kill switch is engaged bool force_failsafe # Set to true if the actuators are forced to the failsafe position bool in_esc_calibration_mode # IO/FMU should ignore messages from the actuator controls topics -bool soft_stop # Set to true if we need to ESCs to remove the idle constraint diff --git a/src/drivers/uavcan/uavcan_main.cpp b/src/drivers/uavcan/uavcan_main.cpp index 4c1f7d84eb..24b677da6f 100644 --- a/src/drivers/uavcan/uavcan_main.cpp +++ b/src/drivers/uavcan/uavcan_main.cpp @@ -58,7 +58,6 @@ #include #include -#include #include "uavcan_module.hpp" #include "uavcan_main.hpp" @@ -76,7 +75,6 @@ UavcanNode *UavcanNode::_instance; UavcanNode::UavcanNode(uavcan::ICanDriver &can_driver, uavcan::ISystemClock &system_clock) : - CDev(UAVCAN_DEVICE_PATH), ScheduledWorkItem(MODULE_NAME, px4::wq_configurations::uavcan), ModuleParams(nullptr), _node(can_driver, system_clock, _pool_allocator), @@ -492,13 +490,6 @@ UavcanNode::busevent_signal_trampoline() int UavcanNode::init(uavcan::NodeID node_id, UAVCAN_DRIVER::BusEvent &bus_events) { - // Do regular cdev init - int ret = CDev::init(); - - if (ret != OK) { - return ret; - } - bus_events.registerSignalCallback(UavcanNode::busevent_signal_trampoline); _node.setName("org.pixhawk.pixhawk"); @@ -507,7 +498,7 @@ UavcanNode::init(uavcan::NodeID node_id, UAVCAN_DRIVER::BusEvent &bus_events) fill_node_info(); - ret = _beep_controller.init(); + int ret = _beep_controller.init(); if (ret < 0) { return ret; @@ -688,10 +679,6 @@ UavcanNode::Run() _node.spinOnce(); // expected to be non-blocking - // Check arming state - const actuator_armed_s &armed = _mixing_interface_esc.mixingOutput().armed(); - enable_idle_throttle_when_armed(!armed.soft_stop); - // check for parameter updates if (_parameter_update_sub.updated()) { // clear update @@ -918,12 +905,6 @@ UavcanNode::Run() } } -void -UavcanNode::enable_idle_throttle_when_armed(bool value) -{ - value &= _idle_throttle_when_armed_param > 0; -} - bool UavcanMixingInterfaceESC::updateOutputs(bool stop_motors, uint16_t outputs[MAX_ACTUATORS], unsigned num_outputs, unsigned num_control_groups_updated) { diff --git a/src/drivers/uavcan/uavcan_main.hpp b/src/drivers/uavcan/uavcan_main.hpp index 7a4be38f7c..2bb8a434c0 100644 --- a/src/drivers/uavcan/uavcan_main.hpp +++ b/src/drivers/uavcan/uavcan_main.hpp @@ -146,7 +146,7 @@ private: /** * A UAVCAN node. */ -class UavcanNode : public cdev::CDev, public px4::ScheduledWorkItem, public ModuleParams +class UavcanNode : public px4::ScheduledWorkItem, public ModuleParams { static constexpr unsigned MaxBitRatePerSec = 1000000; static constexpr unsigned bitPerFrame = 148; @@ -212,8 +212,6 @@ private: void set_setget_response(uavcan::protocol::param::GetSet::Response *resp) { _setget_response = resp; } void free_setget_response(void) { _setget_response = nullptr; } - void enable_idle_throttle_when_armed(bool value); - px4::atomic_bool _task_should_exit{false}; ///< flag to indicate to tear down the CAN driver unsigned _output_count{0}; ///< number of actuators currently available @@ -243,9 +241,6 @@ private: List _sensor_bridges; ///< List of active sensor bridges - bool _idle_throttle_when_armed{false}; - int32_t _idle_throttle_when_armed_param{0}; - perf_counter_t _cycle_perf{perf_alloc(PC_ELAPSED, MODULE_NAME": cycle time")}; perf_counter_t _interval_perf{perf_alloc(PC_INTERVAL, MODULE_NAME": cycle interval")}; diff --git a/src/drivers/uavcan/uavcan_module.hpp b/src/drivers/uavcan/uavcan_module.hpp index efeccfbb98..08d6bd5e98 100644 --- a/src/drivers/uavcan/uavcan_module.hpp +++ b/src/drivers/uavcan/uavcan_module.hpp @@ -58,10 +58,5 @@ #define UAVCAN_NODE_DB_PATH UAVCAN_SD_ROOT_PATH"/uavcan.db" #define UAVCAN_LOG_FILE UAVCAN_NODE_DB_PATH"/trace.log" -// device files -// TODO: split IOCTL interface in ESC and node related functionality, then change UAVCAN_DEVICE_PATH to "/dev/uavcan/node" -#define UAVCAN_DEVICE_PATH "/dev/uavcan/esc" -#define UAVCAN_ESC_DEVICE_PATH "/dev/uavcan/esc" - // public prototypes extern "C" __EXPORT int uavcan_main(int argc, char *argv[]); diff --git a/src/drivers/uavcan/uavcan_params.c b/src/drivers/uavcan/uavcan_params.c index 2ece897d99..ce6b34480c 100644 --- a/src/drivers/uavcan/uavcan_params.c +++ b/src/drivers/uavcan/uavcan_params.c @@ -77,15 +77,6 @@ PARAM_DEFINE_INT32(UAVCAN_NODE_ID, 1); */ PARAM_DEFINE_INT32(UAVCAN_BITRATE, 1000000); -/** - * UAVCAN ESC will spin at idle throttle when armed, even if the mixer outputs zero setpoints. - * - * @boolean - * @reboot_required true - * @group UAVCAN - */ -PARAM_DEFINE_INT32(UAVCAN_ESC_IDLT, 1); - /** * UAVCAN rangefinder minimum range * diff --git a/src/modules/commander/Commander.cpp b/src/modules/commander/Commander.cpp index 1adec0521b..f6a4d1ed68 100644 --- a/src/modules/commander/Commander.cpp +++ b/src/modules/commander/Commander.cpp @@ -97,8 +97,7 @@ static constexpr bool operator ==(const actuator_armed_s &a, const actuator_arme a.lockdown == b.lockdown && a.manual_lockdown == b.manual_lockdown && a.force_failsafe == b.force_failsafe && - a.in_esc_calibration_mode == b.in_esc_calibration_mode && - a.soft_stop == b.soft_stop); + a.in_esc_calibration_mode == b.in_esc_calibration_mode); } static_assert(sizeof(actuator_armed_s) == 16, "actuator_armed equality operator review"); @@ -2545,13 +2544,6 @@ void Commander::vtolStatusUpdate() _vehicle_status_flags.vtol_transition_failure = _vtol_vehicle_status.vtol_transition_failsafe; _status_changed = true; } - - const bool should_soft_stop = (_vehicle_status.vehicle_type != vehicle_status_s::VEHICLE_TYPE_ROTARY_WING); - - if (_actuator_armed.soft_stop != should_soft_stop) { - _actuator_armed.soft_stop = should_soft_stop; - _status_changed = true; - } } }