ardupilot/libraries/AP_Camera/AP_Camera_shareddefs.h

45 lines
1.7 KiB
C

#pragma once
// Camera related definitions required by both AP_Camera and AP_Mount are here
// this avoids issues that would occur if AP_Mount and AP_Camera included each other
#include <stdint.h>
// set zoom specified as a rate or percentage
// enumerators match MAVLink CAMERA_ZOOM_TYPE
enum class ZoomType : uint8_t {
RATE = 1, // zoom in, out or hold (zoom out = -1, hold = 0, zoom in = 1). Same as ZOOM_TYPE_CONTINUOUS
PCT = 2 // zoom to a percentage (from 0 to 100) of the full range. Same as ZOOM_TYPE_RANGE
};
// set focus specified as a rate or percentage
// enumerators match MAVLink CAMERA_FOCUS_TYPE
enum class FocusType : uint8_t {
RATE = 1, // focus in, out or hold (focus in = -1, hold = 0, focus out = 1). Same as FOCUS_TYPE_CONTINUOUS
PCT = 2, // focus to a percentage (from 0 to 100) of the full range. Same as FOCUS_TYPE_RANGE
AUTO = 4 // focus automatically. Same as FOCUS_TYPE_AUTO
};
// result type of set_focus. Assumptions are made that this
// enumeration can be cast directly to MAV_RESULT.
enum class SetFocusResult : uint8_t {
ACCEPTED = 0,
INVALID_PARAMETERS = 2, // supported but invalid parameters, like MAV_RESULT_DENIED
UNSUPPORTED = 3,
FAILED = 4,
};
// tracking types when tracking an object in the video stream
enum class TrackingType : uint8_t {
TRK_NONE = 0, // tracking is inactive
TRK_POINT = 1, // tracking a point
TRK_RECTANGLE = 2 // tracking a rectangle
};
// camera settings not normally used by the autopilot
enum class CameraSetting {
THERMAL_PALETTE = 0, // set thermal palette
THERMAL_GAIN = 1, // set thermal gain, value of 0:low gain, 1:high gain
THERMAL_RAW_DATA = 2, // enable/disable thermal raw data
};