diff --git a/src/modules/camera_feedback/camera_feedback.cpp b/src/modules/camera_feedback/camera_feedback.cpp index d11f03fcc06ff744ea1e48c95b37730b2f236fb4..ef6fb11bfe676112bb281c7b9d52f239ce0b7b3d 100644 --- a/src/modules/camera_feedback/camera_feedback.cpp +++ b/src/modules/camera_feedback/camera_feedback.cpp @@ -39,85 +39,7 @@ * @author Mohammed Kabir <kabir@uasys.io> */ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <fcntl.h> -#include <stdbool.h> -#include <poll.h> -#include <mathlib/mathlib.h> -#include <systemlib/systemlib.h> -#include <systemlib/err.h> -#include <systemlib/param/param.h> - -#include <px4_config.h> -#include <px4_defines.h> -#include <px4_tasks.h> -#include <px4_posix.h> -#include <drivers/drv_hrt.h> - -#include <uORB/uORB.h> -#include <uORB/topics/camera_trigger.h> -#include <uORB/topics/camera_capture.h> -#include <uORB/topics/vehicle_attitude.h> -#include <uORB/topics/vehicle_local_position.h> -#include <uORB/topics/vehicle_global_position.h> - -typedef enum : uint8_t { - CAMERA_FEEDBACK_MODE_NONE = 0, - CAMERA_FEEDBACK_MODE_TRIGGER, - CAMERA_FEEDBACK_MODE_PWM -} camera_feedback_mode_t; - -class CameraFeedback -{ -public: - /** - * Constructor - */ - CameraFeedback(); - - /** - * Destructor, also kills task. - */ - ~CameraFeedback(); - - /** - * Start the task. - * - * @return OK on success. - */ - int start(); - - /** - * Stop the task. - */ - void stop(); - -private: - - bool _task_should_exit; /**< if true, task should exit */ - int _main_task; /**< handle for task */ - - int _trigger_sub; - int _lpos_sub; - int _gpos_sub; - int _att_sub; - - orb_advert_t _capture_pub; - - param_t _p_feedback; - - camera_feedback_mode_t _camera_feedback_mode; - - void task_main(); - - /** - * Shim for calling task_main from task_create. - */ - static void task_main_trampoline(int argc, char *argv[]); - -}; +#include "camera_feedback.hpp" namespace camera_feedback { diff --git a/src/modules/camera_feedback/camera_feedback.hpp b/src/modules/camera_feedback/camera_feedback.hpp new file mode 100644 index 0000000000000000000000000000000000000000..d83bfc43c797f17b02109867ce3c57eceac22578 --- /dev/null +++ b/src/modules/camera_feedback/camera_feedback.hpp @@ -0,0 +1,119 @@ +/**************************************************************************** + * + * Copyright (c) 2017 PX4 Development Team. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name PX4 nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/** + * @file camera_feedback.hpp + * + */ + +#pragma once + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <fcntl.h> +#include <stdbool.h> +#include <poll.h> +#include <mathlib/mathlib.h> +#include <systemlib/systemlib.h> +#include <systemlib/err.h> +#include <systemlib/param/param.h> + +#include <px4_config.h> +#include <px4_defines.h> +#include <px4_tasks.h> +#include <px4_posix.h> +#include <drivers/drv_hrt.h> + +#include <uORB/uORB.h> +#include <uORB/topics/camera_trigger.h> +#include <uORB/topics/camera_capture.h> +#include <uORB/topics/vehicle_attitude.h> +#include <uORB/topics/vehicle_local_position.h> +#include <uORB/topics/vehicle_global_position.h> + +typedef enum : uint8_t { + CAMERA_FEEDBACK_MODE_NONE = 0, + CAMERA_FEEDBACK_MODE_TRIGGER, + CAMERA_FEEDBACK_MODE_PWM +} camera_feedback_mode_t; + +class CameraFeedback +{ +public: + /** + * Constructor + */ + CameraFeedback(); + + /** + * Destructor, also kills task. + */ + ~CameraFeedback(); + + /** + * Start the task. + * + * @return OK on success. + */ + int start(); + + /** + * Stop the task. + */ + void stop(); + +private: + + bool _task_should_exit; /**< if true, task should exit */ + int _main_task; /**< handle for task */ + + int _trigger_sub; + int _lpos_sub; + int _gpos_sub; + int _att_sub; + + orb_advert_t _capture_pub; + + param_t _p_feedback; + + camera_feedback_mode_t _camera_feedback_mode; + + void task_main(); + + /** + * Shim for calling task_main from task_create. + */ + static void task_main_trampoline(int argc, char *argv[]); + +}; \ No newline at end of file