AP_Camera: fix video recording while armed

This commit is contained in:
Randy Mackay 2024-02-14 11:13:12 +09:00
parent ef911d30d8
commit 9ec47e0651
2 changed files with 8 additions and 5 deletions

View File

@ -17,11 +17,13 @@ AP_Camera_Backend::AP_Camera_Backend(AP_Camera &frontend, AP_Camera_Params &para
// update - should be called at 50hz
void AP_Camera_Backend::update()
{
// Check CAMx_OPTIONS and start/stop recording based on arm/disarm
if (_params.options.get() & CAMOPTIONS::REC_ARM_DISARM) {
// Check camera options and start/stop recording based on arm/disarm
if ((_params.options.get() & (uint8_t)Options::RecordWhileArmed) != 0) {
if (hal.util->get_soft_armed() != last_is_armed) {
last_is_armed = hal.util->get_soft_armed();
record_video(last_is_armed);
if (!record_video(last_is_armed)) {
GCS_SEND_TEXT(MAV_SEVERITY_WARNING, "Camera: failed to %s recording", last_is_armed ? "start" : "stop");
}
}
}

View File

@ -36,8 +36,9 @@ public:
/* Do not allow copies */
CLASS_NO_COPY(AP_Camera_Backend);
enum CAMOPTIONS {
REC_ARM_DISARM = 0, // Recording start/stop on Arm/Disarm
// camera options parameter values
enum class Options : int8_t {
RecordWhileArmed = (1 << 0U)
};
// init - performs any required initialisation