ArduCopter: create and use a singleton for SRV_Channels

avoid creation of static pointers to objects held within SRV_Channels
This commit is contained in:
Peter Barker 2024-11-09 18:17:28 +11:00 committed by Andrew Tridgell
parent fbb28a0c3a
commit e29b6c3036
5 changed files with 8 additions and 8 deletions

View File

@ -727,7 +727,7 @@ void Copter::one_hz_loop()
}
// update assigned functions and enable auxiliary servos
SRV_Channels::enable_aux_servos();
AP::srv().enable_aux_servos();
#if HAL_LOGGING_ENABLED
// log terrain data

View File

@ -148,7 +148,7 @@ MAV_RESULT Copter::mavlink_compassmot(const GCS_MAVLINK &gcs_chan)
// pass through throttle to motors
SRV_Channels::cork();
motors->set_throttle_passthrough_for_esc_calibration(channel_throttle->get_control_in() * 0.001f);
SRV_Channels::push();
AP::srv().push();
// read some compass values
compass.read();

View File

@ -97,7 +97,7 @@ void Copter::esc_calibration_passthrough()
// pass through to motors
SRV_Channels::cork();
motors->set_throttle_passthrough_for_esc_calibration(channel_throttle->get_control_in() * 0.001f);
SRV_Channels::push();
AP::srv().push();
}
#endif // FRAME_CONFIG != HELI_FRAME
}
@ -114,14 +114,14 @@ void Copter::esc_calibration_auto()
// raise throttle to maximum
SRV_Channels::cork();
motors->set_throttle_passthrough_for_esc_calibration(1.0f);
SRV_Channels::push();
AP::srv().push();
// delay for 5 seconds while outputting pulses
uint32_t tstart = millis();
while (millis() - tstart < 5000) {
SRV_Channels::cork();
motors->set_throttle_passthrough_for_esc_calibration(1.0f);
SRV_Channels::push();
AP::srv().push();
esc_calibration_notify();
hal.scheduler->delay(3);
}
@ -130,7 +130,7 @@ void Copter::esc_calibration_auto()
while(1) {
SRV_Channels::cork();
motors->set_throttle_passthrough_for_esc_calibration(0.0f);
SRV_Channels::push();
AP::srv().push();
esc_calibration_notify();
hal.scheduler->delay(3);
}

View File

@ -181,7 +181,7 @@ void Copter::motors_output()
}
// push all channels
SRV_Channels::push();
AP::srv().push();
}
// check for pilot stick input to trigger lost vehicle alarm

View File

@ -45,7 +45,7 @@ void Copter::init_rc_out()
motors->init((AP_Motors::motor_frame_class)g2.frame_class.get(), (AP_Motors::motor_frame_type)g.frame_type.get());
// enable aux servos to cope with multiple output channels per motor
SRV_Channels::enable_aux_servos();
AP::srv().enable_aux_servos();
// update rate must be set after motors->init() to allow for motor mapping
motors->set_update_rate(g.rc_speed);