diff --git a/backend/src/plugins/mission/mission_service_impl.h b/backend/src/plugins/mission/mission_service_impl.h index 017cdd49ff..761d845902 100644 --- a/backend/src/plugins/mission/mission_service_impl.h +++ b/backend/src/plugins/mission/mission_service_impl.h @@ -85,7 +85,21 @@ class MissionServiceImpl final : public dronecore::rpc::mission::MissionService: MissionItem::CameraAction translateRPCCameraAction(const rpc::mission::MissionItem::CameraAction rpc_camera_action) const { - return static_cast(rpc_camera_action); + switch (rpc_camera_action) { + case rpc::mission::MissionItem::CameraAction::MissionItem_CameraAction_TAKE_PHOTO: + return MissionItem::CameraAction::TAKE_PHOTO; + case rpc::mission::MissionItem::CameraAction::MissionItem_CameraAction_START_PHOTO_INTERVAL: + return MissionItem::CameraAction::START_PHOTO_INTERVAL; + case rpc::mission::MissionItem::CameraAction::MissionItem_CameraAction_STOP_PHOTO_INTERVAL: + return MissionItem::CameraAction::STOP_PHOTO_INTERVAL; + case rpc::mission::MissionItem::CameraAction::MissionItem_CameraAction_START_VIDEO: + return MissionItem::CameraAction::START_VIDEO; + case rpc::mission::MissionItem::CameraAction::MissionItem_CameraAction_STOP_VIDEO: + return MissionItem::CameraAction::STOP_VIDEO; + case rpc::mission::MissionItem::CameraAction::MissionItem_CameraAction_NONE: + default: + return MissionItem::CameraAction::NONE; + } } void uploadMissionItems(const std::vector> &mission_items, diff --git a/backend/test/mission_service_impl_test.cpp b/backend/test/mission_service_impl_test.cpp index 25ceee3d7d..d580eefa62 100644 --- a/backend/test/mission_service_impl_test.cpp +++ b/backend/test/mission_service_impl_test.cpp @@ -165,7 +165,21 @@ MissionServiceImplUploadTest::generateUploadRequest(const RPCCameraAction MissionServiceImplUploadTest::translateCameraAction(const CameraAction camera_action) const { - return static_cast(camera_action); + switch (camera_action) { + case CameraAction::TAKE_PHOTO: + return RPCCameraAction::MissionItem_CameraAction_TAKE_PHOTO; + case CameraAction::START_PHOTO_INTERVAL: + return RPCCameraAction::MissionItem_CameraAction_START_PHOTO_INTERVAL; + case CameraAction::STOP_PHOTO_INTERVAL: + return RPCCameraAction::MissionItem_CameraAction_STOP_PHOTO_INTERVAL; + case CameraAction::START_VIDEO: + return RPCCameraAction::MissionItem_CameraAction_START_VIDEO; + case CameraAction::STOP_VIDEO: + return RPCCameraAction::MissionItem_CameraAction_STOP_VIDEO; + case CameraAction::NONE: + default: + return RPCCameraAction::MissionItem_CameraAction_NONE; + } } TEST_F(MissionServiceImplUploadTest, uploadsEmptyMissionWhenNullRequest)