NEW: release DJI Payload-SDK version 3.8.1

This commit is contained in:
Dji-Tom
2024-04-07 16:23:51 +08:00
parent db9d05ee2b
commit b96c87f4bb
53 changed files with 6743 additions and 33576 deletions

View File

@ -133,24 +133,6 @@ typedef enum {
DJI_CAMERA_MANAGER_EXPOSURE_MODE_EXPOSURE_UNKNOWN = 0xFF /*!< The camera exposure mode is unknown. */
} E_DjiCameraManagerExposureMode;
/*! @brief the photo action of INTERVAL shooting photo mode
*/
typedef enum {
/*! The number of pictures to continuously take at one time in AEB mode is 3
*/
DJI_CAMERA_MANAGER_PHOTO_AEB_COUNT_3 = 3,
/*! The number of pictures to continuously take at one time in AEB mode is 5
*/
DJI_CAMERA_MANAGER_PHOTO_AEB_COUNT_5 = 5,
/*! The number of pictures to continuously take at one time in AEB mode is 7
*/
DJI_CAMERA_MANAGER_PHOTO_AEB_COUNT_7 = 7,
/*! The number of pictures to continuously take at one time in AEB mode is
* unknown.
*/
DJI_CAMERA_MANAGER_PHOTO_AEB_COUNT_KNOWN = 0xFF,
} E_DjiCameraManagerPhotoAEBCount;
/*! @breif CameraModule focus mode. If the physical AF switch on the camera is
* set to auto.
*/
@ -454,7 +436,7 @@ typedef enum {
DJI_CAMERA_MANAGER_SOURCE_ZOOM_CAM = 0x2,
DJI_CAMERA_MANAGER_SOURCE_IR_CAM = 0x3,
DJI_CAMERA_MANAGER_SOURCE_VISIBLE_CAM = 0x7,
} E_DjiCameraManagerStreamSource;
} E_DjiCameraManagerStreamSource, E_DjiCameraManagerStreamStorage;
typedef enum {
DJI_CAMERA_MANAGER_NIGHT_SCENE_MODE_DISABLE = 0,
@ -526,12 +508,23 @@ typedef struct {
} T_DjiCameraManagerFileAttributeData;
typedef struct {
char fileName[256];
char fileName[DJI_FILE_NAME_SIZE_MAX];
uint32_t fileSize;
uint32_t fileIndex;
T_DjiCameraManagerFileCreateTime createTime;
E_DjiCameraMediaFileSubType type;
T_DjiCameraManagerFileAttributeData attributeData;
} T_DjiCameraManagerSubFileListInfo;
typedef struct {
char fileName[DJI_FILE_NAME_SIZE_MAX];
uint32_t fileSize;
uint32_t fileIndex;
T_DjiCameraManagerFileCreateTime createTime;
E_DjiCameraMediaFileType type;
T_DjiCameraManagerFileAttributeData attributeData;
uint8_t subFileListTotalNum;
T_DjiCameraManagerSubFileListInfo* subFileListInfo;
} T_DjiCameraManagerFileListInfo;
typedef struct {
@ -548,6 +541,7 @@ typedef enum {
DJI_DOWNLOAD_FILE_EVENT_START,
DJI_DOWNLOAD_FILE_EVENT_TRANSFER,
DJI_DOWNLOAD_FILE_EVENT_END,
DJI_DOWNLOAD_FILE_EVENT_START_TRANSFER_END,
} E_DjiDownloadFileEvent;
typedef enum {
@ -608,9 +602,9 @@ typedef enum {
typedef enum {
DJI_CAMERA_MANAGER_RECORDING_STATE_IDLE = 0,
DJI_CAMERA_MANAGER_RECORDING_STATE_STARTING = 0,
DJI_CAMERA_MANAGER_RECORDING_STATE_RECORDING = 0,
DJI_CAMERA_MANAGER_RECORDING_STATE_STOPPING = 0,
DJI_CAMERA_MANAGER_RECORDING_STATE_STARTING = 1,
DJI_CAMERA_MANAGER_RECORDING_STATE_RECORDING = 2,
DJI_CAMERA_MANAGER_RECORDING_STATE_STOPPING = 3,
} E_DjiCameraManagerRecordingState;
/*!< Attention: when the remote control is in split-screen mode, the coordinate range of the x-axis is 0 ~ 0.5
@ -651,6 +645,7 @@ typedef struct {
typedef struct {
E_DjiDownloadFileEvent downloadFileEvent;
uint8_t fileType;
uint32_t fileIndex;
uint32_t fileSize;
dji_f32_t progressInPercent;
@ -670,7 +665,7 @@ typedef struct {
typedef struct {
uint32_t size;
E_DjiCameraManagerStreamSource streamSource[4];
E_DjiCameraManagerStreamSource streamStorage[4];
E_DjiCameraManagerStreamStorage streamStorage[4];
} T_DjiCameraManagerStreamList;
typedef struct {
@ -685,7 +680,7 @@ typedef struct {
E_DjiCameraManagerVideoStorageFormat videoStorageFormat[16];
E_DjiCameraManagerPhotoRatio photoRatioFormat[16];
E_DjiCameraManagerStreamSource streamSource[16];
E_DjiCameraManagerStreamSource streamStorage[16];
E_DjiCameraManagerStreamStorage streamStorage[16];
E_DjiCameraManagerNightSceneMode nightSceneMode[16];
};
uint32_t minValue;
@ -709,24 +704,24 @@ typedef struct {
uint32_t seqNum;
uint64_t timestamp;
uint32_t dataByte; /* actual num of bytes used for points */
} T_DjiCameraManagerPointCloudHeader;
} __attribute__((packed)) T_DjiCameraManagerPointCloudHeader;
typedef struct {
float x; /* the x-axis of NED coordinate system */
float y; /* the y-axis of NED coordinate system */
float z; /* the z-axis of NED coordinate system */
dji_f32_t x; /* the x-axis of NED coordinate system */
dji_f32_t y; /* the y-axis of NED coordinate system */
dji_f32_t z; /* the z-axis of NED coordinate system */
uint8_t intensity;
uint8_t r;
uint8_t g;
uint8_t b;
} T_DjiCameraManagerPointXYZRGBInfo;
}__attribute__((packed)) T_DjiCameraManagerPointXYZRGBInfo;
typedef struct {
T_DjiCameraManagerPointCloudHeader pointCloudHeader;
uint32_t crc_header;
uint32_t crc_rest;
T_DjiCameraManagerPointXYZRGBInfo points[1];
} T_DjiCameraManagerColorPointCloud;
}__attribute__((packed)) T_DjiCameraManagerColorPointCloud;
typedef T_DjiReturnCode (*DjiCameraManagerDownloadFileDataCallback)(T_DjiDownloadFilePacketInfo packetInfo,
const uint8_t *data,
@ -853,33 +848,6 @@ T_DjiReturnCode DjiCameraManager_GetCapturingState(E_DjiMountPosition position,
T_DjiReturnCode DjiCameraManager_SetPhotoBurstCount(E_DjiMountPosition position,
E_DjiCameraBurstCount count);
/**
* @brief Get the burst count in the burst take-photo mode.
* @param position: camera mounted position
* @param count: see reference of E_DjiCameraBurstCount.
* @return Execution result.
*/
T_DjiReturnCode DjiCameraManager_GetPhotoBurstCount(E_DjiMountPosition position,
E_DjiCameraBurstCount *count);
/**
* @brief Set the burst count in the AEB(Automatic Exposure Bracketing) take-photo mode.
* @param position: camera mounted position
* @param count: see reference of E_DjiCameraManagerPhotoAEBCount.
* @return Execution result.
*/
T_DjiReturnCode DjiCameraManager_SetPhotoAEBCount(E_DjiMountPosition position,
E_DjiCameraManagerPhotoAEBCount count);
/**
* @brief Get the burst count in the AEB(Automatic Exposure Bracketing) take-photo mode.
* @param position: camera mounted position
* @param count: see reference of E_DjiCameraManagerPhotoAEBCount.
* @return Execution result.
*/
T_DjiReturnCode DjiCameraManager_GetPhotoAEBCount(E_DjiMountPosition position,
E_DjiCameraManagerPhotoAEBCount *count);
/**
* @brief Set the parameters in the INTERVAL take-photo mode.
* @note When in this shoot-photo mode, The camera will capture a photo, wait
@ -1010,15 +978,6 @@ T_DjiReturnCode DjiCameraManager_GetOpticalZoomParam(E_DjiMountPosition position
T_DjiReturnCode DjiCameraManager_SetInfraredZoomParam(E_DjiMountPosition position,
dji_f32_t factor);
/**
* @brief Stop camera optical zooming of the selected camera mounted position.
* @note Called to stop focal length changing, when it currently is from
* calling DjiCameraManager_StartContinuousOpticalZoom*.
* @param position: camera mounted position
* @return Execution result.
*/
T_DjiReturnCode DjiCameraManager_StopContinuousOpticalZoom(E_DjiMountPosition position);
/**
* @brief Enable/Disable camera's tap-zoom function of the selected camera mounted position.
* @note TapZoomAtTarget can only be called when tap-zoom is enabled.
@ -1293,7 +1252,7 @@ T_DjiReturnCode DjiCameraManager_SetStreamSource(E_DjiMountPosition position,
* @param rangeList: range list returned value
* @return Execution result.
*/
T_DjiReturnCode DjiCameraManager_GetPhotoFormatStorageRange(E_DjiMountPosition position,
T_DjiReturnCode DjiCameraManager_GetPhotoStorageFormatRange(E_DjiMountPosition position,
T_DjiCameraManagerRangeList *rangeList);
/**
@ -1517,6 +1476,18 @@ T_DjiReturnCode DjiCameraManager_RegDownloadFileDataCallback(E_DjiMountPosition
*/
T_DjiReturnCode DjiCameraManager_DownloadFileByIndex(E_DjiMountPosition position, uint32_t fileIndex);
/**
* @brief Download selected camera media file by file index and file type.
* @note This API only supports L2 camera.
* Only support download one file at the same time, the new file download need wait for the previous file
* download finished.The interface is a synchronous interface, which occupies more CPU resources when using it.
* If the download file fails, the timeout time is 3S.
* @param position: the mount position of the camera
* @param fileIndex: the index of the camera media file
* @param fileType: the sub type of the camera media file
* @return Execution result.
*/
T_DjiReturnCode DjiCameraManager_DownloadSubFileByIndexAndSubType(E_DjiMountPosition position, uint32_t index, E_DjiCameraMediaFileSubType fileType);
/**
* @brief Before downloading media file(s), downloader rights should be obtained.
* @param position: the mount position of the camera

View File

@ -439,16 +439,16 @@ extern "C" {
{DJI_ERROR_WAYPOINT_V3_MODULE_CODE_TRIGGER_NOT_FOUND, "Execute waypoint v3 failed due to trigger not found. ", NULL}, \
{DJI_ERROR_WAYPOINT_V3_MODULE_CODE_TRIGGER_SINGLE_TIME_CHECK_FAIL, "Execute waypoint v3 failed due to single time check failed. ", NULL}, \
#define DJI_RETURN_CODE_OK DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS /*!< Payload SDK return code represents as status is ok. */
#define DJI_RETURN_CODE_OK DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS /*!< Payload SDK return code represents as status is ok. */
#define DJI_RETURN_CODE_ERR_ALLOC DJI_ERROR_SYSTEM_MODULE_CODE_MEMORY_ALLOC_FAILED /*!< Payload SDK return code represents as status alloc error. */
#define DJI_RETURN_CODE_ERR_TIMEOUT DJI_ERROR_SYSTEM_MODULE_CODE_TIMEOUT /*!< Payload SDK return code represents as status timeout error. */
#define DJI_RETURN_CODE_ERR_NOT_FOUND DJI_ERROR_SYSTEM_MODULE_CODE_NOT_FOUND /*!< Payload SDK return code represents as status not found error. */
#define DJI_RETURN_CODE_ERR_OUT_OF_RANGE DJI_ERROR_SYSTEM_MODULE_CODE_OUT_OF_RANGE /*!< Payload SDK return code represents as status out of range error. */
#define DJI_RETURN_CODE_ERR_PARAM DJI_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER /*!< Payload SDK return code represents as status parameter error. */
#define DJI_RETURN_CODE_ERR_SYSTEM DJI_ERROR_SYSTEM_MODULE_CODE_SYSTEM_ERROR /*!< Payload SDK return code represents as status system error. */
#define DJI_RETURN_CODE_ERR_BUSY DJI_ERROR_SYSTEM_MODULE_CODE_BUSY /*!< Payload SDK return code represents as status busy error. */
#define DJI_RETURN_CODE_ERR_UNSUPPORT DJI_ERROR_SYSTEM_MODULE_CODE_NONSUPPORT /*!< Payload SDK return code represents as status nonsupport error. */
#define DJI_RETURN_CODE_ERR_UNKNOWN DJI_ERROR_SYSTEM_MODULE_CODE_UNKNOWN /*!< Payload SDK return code represents as status unknown error. */
#define DJI_RETURN_CODE_ERR_TIMEOUT DJI_ERROR_SYSTEM_MODULE_CODE_TIMEOUT /*!< Payload SDK return code represents as status timeout error. */
#define DJI_RETURN_CODE_ERR_NOT_FOUND DJI_ERROR_SYSTEM_MODULE_CODE_NOT_FOUND /*!< Payload SDK return code represents as status not found error. */
#define DJI_RETURN_CODE_ERR_OUT_OF_RANGE DJI_ERROR_SYSTEM_MODULE_CODE_OUT_OF_RANGE /*!< Payload SDK return code represents as status out of range error. */
#define DJI_RETURN_CODE_ERR_PARAM DJI_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER /*!< Payload SDK return code represents as status parameter error. */
#define DJI_RETURN_CODE_ERR_SYSTEM DJI_ERROR_SYSTEM_MODULE_CODE_SYSTEM_ERROR /*!< Payload SDK return code represents as status system error. */
#define DJI_RETURN_CODE_ERR_BUSY DJI_ERROR_SYSTEM_MODULE_CODE_BUSY /*!< Payload SDK return code represents as status busy error. */
#define DJI_RETURN_CODE_ERR_UNSUPPORT DJI_ERROR_SYSTEM_MODULE_CODE_NONSUPPORT /*!< Payload SDK return code represents as status nonsupport error. */
#define DJI_RETURN_CODE_ERR_UNKNOWN DJI_ERROR_SYSTEM_MODULE_CODE_UNKNOWN /*!< Payload SDK return code represents as status unknown error. */
/* Exported types ------------------------------------------------------------*/
/**
@ -508,6 +508,7 @@ typedef enum {
DJI_ERROR_SYSTEM_MODULE_RAW_CODE_INVALID_PARAMETER = 0x0E3,
DJI_ERROR_SYSTEM_MODULE_RAW_CODE_NONSUPPORT_IN_CURRENT_STATE = 0x0E4,
DJI_ERROR_SYSTEM_MODULE_RAW_CODE_SYSTEM_ERROR = 0x0EC,
DJI_ERROR_SYSTEM_MODULE_RAW_CODE_MODULE_INACTIVATED = 0xEE, /*!< Module is too not activated yet */
DJI_ERROR_SYSTEM_MODULE_RAW_CODE_HARDWARE_ERR = 0x0FA,
DJI_ERROR_SYSTEM_MODULE_RAW_CODE_INSUFFICIENT_ELECTRICITY = 0x0FB,
DJI_ERROR_SYSTEM_MODULE_RAW_CODE_UNKNOWN = 0x0FF,
@ -673,7 +674,6 @@ typedef enum {
DJI_ERROR_CAMERA_MANAGER_MODULE_RAW_CODE_SENSOR_ERROR = 0xEB, /*!< Sensor go wrong */
DJI_ERROR_CAMERA_MANAGER_MODULE_RAW_CODE_SYSTEM_ERROR = 0xEC, /*!< System error */
DJI_ERROR_CAMERA_MANAGER_MODULE_RAW_CODE_PARAMETER_TOTAL_TOO_LONG = 0xED, /*!< Length of the parameter is too long */
DJI_ERROR_CAMERA_MANAGER_MODULE_RAW_CODE_MODULE_INACTIVATED = 0xEE, /*!< Module is too not activated yet */
DJI_ERROR_CAMERA_MANAGER_MODULE_RAW_CODE_FIRMWARE_DATA_NUM_DISCONTINUOUS = 0xF0, /*!< Fireware data number is a discontinuous number */
DJI_ERROR_CAMERA_MANAGER_MODULE_RAW_CODE_FIRMWARE_VERIFICATION_ERROR = 0xF2, /*!< Error verifying fireware */
DJI_ERROR_CAMERA_MANAGER_MODULE_RAW_CODE_FLASH_WRITE_ERROR = 0xF4, /*!< Error writing flash */
@ -703,7 +703,6 @@ typedef enum {
DJI_ERROR_GIMBAL_MANAGER_MODULE_RAW_CODE_SENSOR_ERROR = 0xEB, /*!< Sensor go wrong */
DJI_ERROR_GIMBAL_MANAGER_MODULE_RAW_CODE_SYSTEM_ERROR = 0xEC, /*!< System error */
DJI_ERROR_GIMBAL_MANAGER_MODULE_RAW_CODE_PARAMETER_TOTAL_TOO_LONG = 0xED, /*!< Length of the parameter is too long */
DJI_ERROR_GIMBAL_MANAGER_MODULE_RAW_CODE_MODULE_INACTIVATED = 0xEE, /*!< Module is too not activated yet */
DJI_ERROR_GIMBAL_MANAGER_MODULE_RAW_CODE_FIRMWARE_DATA_NUM_DISCONTINUOUS = 0xF0, /*!< Fireware data number is a discontinuous number */
DJI_ERROR_GIMBAL_MANAGER_MODULE_RAW_CODE_FIRMWARE_VERIFICATION_ERROR = 0xF2, /*!< Error verifying fireware */
DJI_ERROR_GIMBAL_MANAGER_MODULE_RAW_CODE_FLASH_WRITE_ERROR = 0xF4, /*!< Error writing flash */
@ -1102,7 +1101,7 @@ enum DjiErrorCode {
DJI_ERROR_CAMERA_MANAGER_MODULE_CODE_SENSOR_ERROR = DJI_ERROR_CODE(DJI_ERROR_MODULE_CAMERA_MANAGER, DJI_ERROR_CAMERA_MANAGER_MODULE_RAW_CODE_SENSOR_ERROR),
DJI_ERROR_CAMERA_MANAGER_MODULE_CODE_SYSTEM_ERROR = DJI_ERROR_CODE(DJI_ERROR_MODULE_CAMERA_MANAGER, DJI_ERROR_CAMERA_MANAGER_MODULE_RAW_CODE_SYSTEM_ERROR),
DJI_ERROR_CAMERA_MANAGER_MODULE_CODE_PARAMETER_TOTAL_TOO_LONG = DJI_ERROR_CODE(DJI_ERROR_MODULE_CAMERA_MANAGER, DJI_ERROR_CAMERA_MANAGER_MODULE_RAW_CODE_PARAMETER_TOTAL_TOO_LONG),
DJI_ERROR_CAMERA_MANAGER_MODULE_CODE_MODULE_INACTIVATED = DJI_ERROR_CODE(DJI_ERROR_MODULE_CAMERA_MANAGER, DJI_ERROR_CAMERA_MANAGER_MODULE_RAW_CODE_MODULE_INACTIVATED),
DJI_ERROR_CAMERA_MANAGER_MODULE_CODE_MODULE_INACTIVATED = DJI_ERROR_CODE(DJI_ERROR_MODULE_CAMERA_MANAGER, DJI_ERROR_SYSTEM_MODULE_RAW_CODE_MODULE_INACTIVATED),
DJI_ERROR_CAMERA_MANAGER_MODULE_CODE_FIRMWARE_DATA_NUM_DISCONTINUOUS = DJI_ERROR_CODE(DJI_ERROR_MODULE_CAMERA_MANAGER, DJI_ERROR_CAMERA_MANAGER_MODULE_RAW_CODE_FIRMWARE_DATA_NUM_DISCONTINUOUS),
DJI_ERROR_CAMERA_MANAGER_MODULE_CODE_FIRMWARE_VERIFICATION_ERROR = DJI_ERROR_CODE(DJI_ERROR_MODULE_CAMERA_MANAGER, DJI_ERROR_CAMERA_MANAGER_MODULE_RAW_CODE_FIRMWARE_VERIFICATION_ERROR),
DJI_ERROR_CAMERA_MANAGER_MODULE_CODE_FLASH_WRITE_ERROR = DJI_ERROR_CODE(DJI_ERROR_MODULE_CAMERA_MANAGER, DJI_ERROR_CAMERA_MANAGER_MODULE_RAW_CODE_FLASH_WRITE_ERROR),
@ -1128,7 +1127,7 @@ enum DjiErrorCode {
DJI_ERROR_GIMBAL_MANAGER_MODULE_CODE_SENSOR_ERROR = DJI_ERROR_CODE(DJI_ERROR_MODULE_GIMBAL_MANAGER, DJI_ERROR_GIMBAL_MANAGER_MODULE_RAW_CODE_SENSOR_ERROR),
DJI_ERROR_GIMBAL_MANAGER_MODULE_CODE_SYSTEM_ERROR = DJI_ERROR_CODE(DJI_ERROR_MODULE_GIMBAL_MANAGER, DJI_ERROR_GIMBAL_MANAGER_MODULE_RAW_CODE_SYSTEM_ERROR),
DJI_ERROR_GIMBAL_MANAGER_MODULE_CODE_PARAMETER_TOTAL_TOO_LONG = DJI_ERROR_CODE(DJI_ERROR_MODULE_GIMBAL_MANAGER, DJI_ERROR_GIMBAL_MANAGER_MODULE_RAW_CODE_PARAMETER_TOTAL_TOO_LONG),
DJI_ERROR_GIMBAL_MANAGER_MODULE_CODE_MODULE_INACTIVATED = DJI_ERROR_CODE(DJI_ERROR_MODULE_GIMBAL_MANAGER, DJI_ERROR_GIMBAL_MANAGER_MODULE_RAW_CODE_MODULE_INACTIVATED),
DJI_ERROR_GIMBAL_MANAGER_MODULE_CODE_MODULE_INACTIVATED = DJI_ERROR_CODE(DJI_ERROR_MODULE_GIMBAL_MANAGER, DJI_ERROR_SYSTEM_MODULE_RAW_CODE_MODULE_INACTIVATED),
DJI_ERROR_GIMBAL_MANAGER_MODULE_CODE_FIRMWARE_DATA_NUM_DISCONTINUOUS = DJI_ERROR_CODE(DJI_ERROR_MODULE_GIMBAL_MANAGER, DJI_ERROR_GIMBAL_MANAGER_MODULE_RAW_CODE_FIRMWARE_DATA_NUM_DISCONTINUOUS),
DJI_ERROR_GIMBAL_MANAGER_MODULE_CODE_FIRMWARE_VERIFICATION_ERROR = DJI_ERROR_CODE(DJI_ERROR_MODULE_GIMBAL_MANAGER, DJI_ERROR_GIMBAL_MANAGER_MODULE_RAW_CODE_FIRMWARE_VERIFICATION_ERROR),
DJI_ERROR_GIMBAL_MANAGER_MODULE_CODE_FLASH_WRITE_ERROR = DJI_ERROR_CODE(DJI_ERROR_MODULE_GIMBAL_MANAGER, DJI_ERROR_GIMBAL_MANAGER_MODULE_RAW_CODE_FLASH_WRITE_ERROR),

View File

@ -729,6 +729,64 @@ typedef enum {
DJI_FC_SUBSCRIPTION_BATTERY_SOC_INVALID = 4, /*!< Battery SOC state is invalid. */
} E_DJIFcSubscriptionBatterySocState;
/**
* @brief Flight control mode.
*/
typedef enum {
DJI_FC_SUBSCRIPTION_CONTROL_MODE_UNKNOWN = 0,
DJI_FC_SUBSCRIPTION_CONTROL_MODE_HOR_ANG_VER_VEL_YAW_ANG = 1, /*!< Horizontal mode is angle, vertical mode is velocity, yaw mode is angle. */
DJI_FC_SUBSCRIPTION_CONTROL_MODE_HOR_ANG_VER_VEL_YAW_RAT = 2, /*!< Horizontal mode is angle, vertical mode is velocity, yaw mode is rate. */
DJI_FC_SUBSCRIPTION_CONTROL_MODE_HOR_VEL_VER_VEL_YAW_ANG = 3, /*!< Horizontal mode is velocity, vertical mode is velocity, yaw mode is angle. */
DJI_FC_SUBSCRIPTION_CONTROL_MODE_HOR_VEL_VER_VEL_YAW_RAT = 4, /*!< Horizontal mode is velocity, vertical mode is velocity, yaw mode is rate. */
DJI_FC_SUBSCRIPTION_CONTROL_MODE_HOR_POS_VER_VEL_YAW_ANG = 5, /*!< Horizontal mode is position, vertical mode is velocity, yaw mode is angle. */
DJI_FC_SUBSCRIPTION_CONTROL_MODE_HOR_POS_VER_VEL_YAW_RAT = 6, /*!< Horizontal mode is position, vertical mode is velocity, yaw mode is rate. */
DJI_FC_SUBSCRIPTION_CONTROL_MODE_HOR_ANG_VER_POS_YAW_ANG = 7, /*!< Horizontal mode is angle, vertical mode is position, yaw mode is angle. */
DJI_FC_SUBSCRIPTION_CONTROL_MODE_HOR_ANG_VER_POS_YAW_RAT = 8, /*!< Horizontal mode is angle, vertical mode is position, yaw mode is rate. */
DJI_FC_SUBSCRIPTION_CONTROL_MODE_HOR_VEL_VER_POS_YAW_ANG = 9, /*!< Horizontal mode is velocity, vertical mode is position, yaw mode is angle. */
DJI_FC_SUBSCRIPTION_CONTROL_MODE_HOR_VEL_VER_POS_YAW_RAT = 10, /*!< Horizontal mode is velocity, vertical mode is position, yaw mode is rate. */
DJI_FC_SUBSCRIPTION_CONTROL_MODE_HOR_POS_VER_POS_YAW_ANG = 11, /*!< Horizontal mode is position, vertical mode is position, yaw mode is angle. */
DJI_FC_SUBSCRIPTION_CONTROL_MODE_HOR_POS_VER_POS_YAW_RAT = 12, /*!< Horizontal mode is position, vertical mode is position, yaw mode is rate. */
DJI_FC_SUBSCRIPTION_CONTROL_MODE_HOR_ANG_VER_THR_YAW_ANG = 13, /*!< Horizontal mode is angle, vertical mode is thrust, yaw mode is angle. */
DJI_FC_SUBSCRIPTION_CONTROL_MODE_HOR_ANG_VER_THR_YAW_RAT = 14, /*!< Horizontal mode is angle, vertical mode is thrust, yaw mode is rate. */
DJI_FC_SUBSCRIPTION_CONTROL_MODE_HOR_VEL_VER_THR_YAW_ANG = 15, /*!< Horizontal mode is velocity, vertical mode is thrust, yaw mode is angle. */
DJI_FC_SUBSCRIPTION_CONTROL_MODE_HOR_VEL_VER_THR_YAW_RAT = 16, /*!< Horizontal mode is velocity, vertical mode is thrust, yaw mode is rate. */
DJI_FC_SUBSCRIPTION_CONTROL_MODE_HOR_POS_VER_THR_YAW_ANG = 17, /*!< Horizontal mode is position, vertical mode is thrust, yaw mode is angle. */
DJI_FC_SUBSCRIPTION_CONTROL_MODE_HOR_POS_VER_THR_YAW_RAT = 18, /*!< Horizontal mode is position, vertical mode is thrust, yaw mode is rate. */
DJI_FC_SUBSCRIPTION_CONTROL_MODE_HOR_AEL_VER_VEL_YAW_RAT = 19, /*!< Horizontal mode is angle-rate, vertical mode is velocity, yaw mode is rate. */
DJI_FC_SUBSCRIPTION_CONTROL_MODE_HOR_AEL_VER_POS_YAW_RAT = 20, /*!< Horizontal mode is angle-rate, vertical mode is thrust, yaw mode is rate. */
DJI_FC_SUBSCRIPTION_CONTROL_MODE_HOR_AEL_VER_THR_YAW_RAT = 21, /*!< Horizontal mode is angle-rate, vertical mode is velocity, yaw mode is rate. */
} E_DJIFcSubscriptionControlMode;
/**
* @brief Flight control authority.
*/
typedef enum {
DJI_FC_SUBSCRIPTION_CONTROL_AUTHORITY_RC = 0, /*!< Authority is in remote control */
DJI_FC_SUBSCRIPTION_CONTROL_AUTHORITY_MSDK = 1, /*!< Authority is in MSDK */
DJI_FC_SUBSCRIPTION_CONTROL_AUTHORITY_PSDK = 4, /*!< Authority is in PSDK */
DJI_FC_SUBSCRIPTION_CONTROL_AUTHORITY_DOCK = 5, /*!< Authority is in dock */
} E_DJIFcSubscriptionControlAuthority;
/**
* @brief Flight control authority change reason.
*/
typedef enum {
DJI_FC_SUBSCRIPTION_AUTHORITY_CHANGE_REASON_UNKNOWN = 0, /*!< Reason unknown */
DJI_FC_SUBSCRIPTION_AUTHORITY_CHANGE_REASON_MSDK_REQUEST = 1, /*!< Contro authority changed by MSDK request. */
DJI_FC_SUBSCRIPTION_AUTHORITY_CHANGE_REASON_USER_REQUEST = 2, /*!< Contro authority changed by user request. */
DJI_FC_SUBSCRIPTION_AUTHORITY_CHANGE_REASON_PSDK_REQUEST = 3, /*!< Contro authority changed by PSDK request. */
DJI_FC_SUBSCRIPTION_AUTHORITY_CHANGE_REASON_RC_LOST = 4, /*!< Contro authority changed for remote control lost. */
DJI_FC_SUBSCRIPTION_AUTHORITY_CHANGE_REASON_RC_NOT_P_MODE = 5, /*!< Contro authority changed for remote control not in P mode. */
DJI_FC_SUBSCRIPTION_AUTHORITY_CHANGE_REASON_RC_SWITCH = 6, /*!< Contro authority changed for remote control switching mode. */
DJI_FC_SUBSCRIPTION_AUTHORITY_CHANGE_REASON_RC_PAUSE_STOP = 7, /*!< Contro authority changed for remote control stop key paused. */
DJI_FC_SUBSCRIPTION_AUTHORITY_CHANGE_REASON_RC_ONE_KEY_GO_HOME = 8, /*!< Contro authority changed for remote control go-home key paused. */
DJI_FC_SUBSCRIPTION_AUTHORITY_CHANGE_REASON_BATTERY_LOW_GO_HOME = 9, /*!< Contro authority changed for remote control go-home key paused. */
DJI_FC_SUBSCRIPTION_AUTHORITY_CHANGE_REASON_BATTERY_SUPER_LOW_LANDING = 10, /*!< Contro authority changed for going home caused by low batter power. */
DJI_FC_SUBSCRIPTION_AUTHORITY_CHANGE_REASON_PSDK_LOST = 11, /*!< Contro authority changed for PSDK lost. */
DJI_FC_SUBSCRIPTION_AUTHORITY_CHANGE_REASON_NEAR_BOUNDARY = 13, /*!< Contro authority changed for nearing boundary. */
DJI_FC_SUBSCRIPTION_AUTHORITY_CHANGE_REASON_AIRPORT_REQUEST = 14, /*!< Contro authority changed by airport request. */
} E_DJIFcSubscriptionAuthorityChangeReason;
#pragma pack(1)
/**
@ -1000,11 +1058,22 @@ typedef struct BatterySingleInfo {
* @brief struct for TOPIC_CONTROL_DEVICE and data broadcast, return SDK info
*/
typedef struct SDKCtrlInfo {
uint8_t controlMode; /*!< See CtlrMode in dji_status.hpp*/
uint8_t deviceStatus: 3; /*!< 0->rc 1->app 4->serial */
uint8_t flightStatus: 1; /*!< 1->opensd 0->close */
uint8_t vrcStatus: 1;
uint8_t reserved: 3;
union {
/* Used by M300 & M350 */
struct {
uint8_t controlMode; /*!< enum-type: E_DJIFcSubscriptionControlMode. */
uint8_t deviceStatus: 3; /*!< 0->rc 1->app 4->psdk */
uint8_t flightStatus: 1; /*!< 1->open 0->closed */
uint8_t vrcStatus: 1;
uint8_t reserved: 3;
};
/* Used by other aircrafts */
struct {
uint8_t controlAuthority; /*!< enum-type: E_DJIFcSubscriptionControlAuthority. */
uint8_t controlAuthorityChangeReason; /*!< enum-type: E_DJIFcSubscriptionAuthorityChangeReason. */
};
};
} T_DjiFcSubscriptionControlDevice; // pack(1)
/*!

View File

@ -540,6 +540,15 @@ T_DjiReturnCode DjiFlightController_SetGoHomeAltitude(E_DjiFlightControllerGoHom
*/
T_DjiReturnCode DjiFlightController_GetGoHomeAltitude(E_DjiFlightControllerGoHomeAltitude *altitude);
/**
* @brief Get country code.
* @param countryCode: Pointer of buffer to return country code. The country code indicates the current country or
* region where the aircraft is located. Please refer to the ISO 3166-1 code table for the specific meaning of the
* country code.
* @return Execution result.
*/
T_DjiReturnCode DjiFlightController_GetCountryCode(uint16_t *countryCode);
/**
* @brief Request go home action when the UAV is in the air
* @return Execution result.

View File

@ -42,11 +42,11 @@ extern "C" {
#endif
/* Exported constants --------------------------------------------------------*/
#define DJI_PI (3.14159265358979323846f)
#define DJI_FILE_NAME_SIZE_MAX 256
#define DJI_FILE_PATH_SIZE_MAX (DJI_FILE_NAME_SIZE_MAX + 256)
#define DJI_IP_ADDR_STR_SIZE_MAX 15
#define DJI_MD5_BUFFER_LEN 16
#define DJI_PI (3.14159265358979323846f)
#define DJI_FILE_NAME_SIZE_MAX 256
#define DJI_FILE_PATH_SIZE_MAX (DJI_FILE_NAME_SIZE_MAX + 256)
#define DJI_IP_ADDR_STR_SIZE_MAX 15
#define DJI_MD5_BUFFER_LEN 16
#define DJI_SUBSCRIPTION_MODULE_INDEX_OFFSET 24u
#define DJI_SUBSCRIPTION_MODULE_INDEX_MASK 0xFF000000u
@ -54,9 +54,9 @@ extern "C" {
#define DJI_SUBSCRIPTION_TOPIC_CODE_MASK 0x00FFFFFFu
#define DJI_DATA_SUBSCRIPTION_TOPIC(subscriptionModule, topicCode) \
(uint32_t)\
(((((uint32_t)(subscriptionModule)) << (DJI_SUBSCRIPTION_MODULE_INDEX_OFFSET)) & (DJI_SUBSCRIPTION_MODULE_INDEX_MASK)) | \
((((uint32_t)(topicCode)) << (DJI_SUBSCRIPTION_TOPIC_CODE_OFFSET)) & (DJI_SUBSCRIPTION_TOPIC_CODE_MASK)))
(uint32_t)\
(((((uint32_t)(subscriptionModule)) << (DJI_SUBSCRIPTION_MODULE_INDEX_OFFSET)) & (DJI_SUBSCRIPTION_MODULE_INDEX_MASK)) | \
((((uint32_t)(topicCode)) << (DJI_SUBSCRIPTION_TOPIC_CODE_OFFSET)) & (DJI_SUBSCRIPTION_TOPIC_CODE_MASK)))
/**
* @brief Type define double as dji_f64_t.
@ -73,82 +73,101 @@ typedef float dji_f32_t;
typedef uint64_t T_DjiReturnCode;
typedef enum {
DJI_MOUNT_POSITION_TYPE_UNKNOWN = 0,
DJI_MOUNT_POSITION_TYPE_PAYLOAD_PORT = 1,
DJI_MOUNT_POSITION_TYPE_EXTENSION_PORT = 2,
DJI_MOUNT_POSITION_TYPE_UNKNOWN = 0,
DJI_MOUNT_POSITION_TYPE_PAYLOAD_PORT = 1,
DJI_MOUNT_POSITION_TYPE_EXTENSION_PORT = 2,
DJI_MOUNT_POSITION_TYPE_EXTENSION_LITE_PORT = 3
} E_DjiMountPositionType;
typedef enum {
DJI_MOUNT_POSITION_UNKNOWN = 0,
DJI_MOUNT_POSITION_PAYLOAD_PORT_NO1 = 1,
DJI_MOUNT_POSITION_PAYLOAD_PORT_NO2 = 2,
DJI_MOUNT_POSITION_PAYLOAD_PORT_NO3 = 3,
DJI_MOUNT_POSITION_EXTENSION_PORT = 4,
DJI_MOUNT_POSITION_EXTENSION_LITE_PORT = 5,
DJI_MOUNT_POSITION_UNKNOWN = 0,
DJI_MOUNT_POSITION_PAYLOAD_PORT_NO1 = 1,
DJI_MOUNT_POSITION_PAYLOAD_PORT_NO2 = 2,
DJI_MOUNT_POSITION_PAYLOAD_PORT_NO3 = 3,
DJI_MOUNT_POSITION_EXTENSION_PORT = 4,
DJI_MOUNT_POSITION_EXTENSION_LITE_PORT = 5,
} E_DjiMountPosition;
typedef enum {
DJI_AIRCRAFT_SERIES_UNKNOWN = 0,
DJI_AIRCRAFT_SERIES_M200_V2 = 1,
DJI_AIRCRAFT_SERIES_M300 = 2,
DJI_AIRCRAFT_SERIES_M30 = 3,
DJI_AIRCRAFT_SERIES_M3 = 4,
DJI_AIRCRAFT_SERIES_M350 = 5,
DJI_AIRCRAFT_SERIES_M3D = 6,
DJI_AIRCRAFT_SERIES_FC30 = 7,
DJI_AIRCRAFT_SERIES_UNKNOWN = 0,
DJI_AIRCRAFT_SERIES_M200_V2 = 1,
DJI_AIRCRAFT_SERIES_M300 = 2,
DJI_AIRCRAFT_SERIES_M30 = 3,
DJI_AIRCRAFT_SERIES_M3 = 4,
DJI_AIRCRAFT_SERIES_M350 = 5,
DJI_AIRCRAFT_SERIES_M3D = 6,
DJI_AIRCRAFT_SERIES_FC30 = 7,
} E_DjiAircraftSeries;
typedef enum {
DJI_AIRCRAFT_TYPE_UNKNOWN = 0, /*!< Aircraft type is unknown. */
DJI_AIRCRAFT_TYPE_M200_V2 = 44, /*!< Aircraft type is Matrice 200 V2. */
DJI_AIRCRAFT_TYPE_M210_V2 = 45, /*!< Aircraft type is Matrice 220 V2. */
DJI_AIRCRAFT_TYPE_M210RTK_V2 = 46, /*!< Aircraft type is Matrice 210 RTK V2. */
DJI_AIRCRAFT_TYPE_M300_RTK = 60, /*!< Aircraft type is Matrice 300 RTK. */
DJI_AIRCRAFT_TYPE_M30 = 67, /*!< Aircraft type is Matrice 30. */
DJI_AIRCRAFT_TYPE_M30T = 68, /*!< Aircraft type is Matrice 30T. */
DJI_AIRCRAFT_TYPE_M3E = 77, /*!< Aircraft type is Mavic 3E. */
DJI_AIRCRAFT_TYPE_FC30 = 78, /* !<Aircraft type is FlyCart 30> */
DJI_AIRCRAFT_TYPE_M3T = 79, /*!< Aircraft type is Mavic 3T. */
DJI_AIRCRAFT_TYPE_M350_RTK = 89, /*!< Aircraft type is Matrice 350 RTK. */
DJI_AIRCRAFT_TYPE_M3D = 91, /*!< Aircraft type is Matrice 3D. */
DJI_AIRCRAFT_TYPE_M3TD = 93, /*!< Aircraft type is Matrice 3TD. */
DJI_AIRCRAFT_TYPE_UNKNOWN = 0, /*!< Aircraft type is unknown. */
DJI_AIRCRAFT_TYPE_M200_V2 = 44, /*!< Aircraft type is Matrice 200 V2. */
DJI_AIRCRAFT_TYPE_M210_V2 = 45, /*!< Aircraft type is Matrice 220 V2. */
DJI_AIRCRAFT_TYPE_M210RTK_V2 = 46, /*!< Aircraft type is Matrice 210 RTK V2. */
DJI_AIRCRAFT_TYPE_M300_RTK = 60, /*!< Aircraft type is Matrice 300 RTK. */
DJI_AIRCRAFT_TYPE_M30 = 67, /*!< Aircraft type is Matrice 30. */
DJI_AIRCRAFT_TYPE_M30T = 68, /*!< Aircraft type is Matrice 30T. */
DJI_AIRCRAFT_TYPE_M3E = 77, /*!< Aircraft type is Mavic 3E. */
DJI_AIRCRAFT_TYPE_FC30 = 78, /* !<Aircraft type is FlyCart 30> */
DJI_AIRCRAFT_TYPE_M3T = 79, /*!< Aircraft type is Mavic 3T. */
DJI_AIRCRAFT_TYPE_M350_RTK = 89, /*!< Aircraft type is Matrice 350 RTK. */
DJI_AIRCRAFT_TYPE_M3D = 91, /*!< Aircraft type is Matrice 3D. */
DJI_AIRCRAFT_TYPE_M3TD = 93, /*!< Aircraft type is Matrice 3TD. */
} E_DjiAircraftType;
/**
* @brief Camera type.
*/
typedef enum {
DJI_CAMERA_TYPE_UNKNOWN = 0, /*!< Camera type is unknown. */
DJI_CAMERA_TYPE_Z30 = 20, /*!< Camera type is Z30. */
DJI_CAMERA_TYPE_XT2 = 26, /*!< Camera type is XT2. */
DJI_CAMERA_TYPE_PSDK = 31, /*!< Camera type is third party camera based on Payload SDK. */
DJI_CAMERA_TYPE_XTS = 41, /*!< Camera type is XT S. */
DJI_CAMERA_TYPE_H20 = 42, /*!< Camera type is H20. */
DJI_CAMERA_TYPE_H20T = 43, /*!< Camera type is H20T. */
DJI_CAMERA_TYPE_H20N = 61, /*!< Camera type is H20N. */
DJI_CAMERA_TYPE_P1 = 50, /*!< Camera type is P1. */
DJI_CAMERA_TYPE_UNKNOWN = 0, /*!< Camera type is unknown. */
DJI_CAMERA_TYPE_Z30 = 20, /*!< Camera type is Z30. */
DJI_CAMERA_TYPE_XT2 = 26, /*!< Camera type is XT2. */
DJI_CAMERA_TYPE_PSDK = 31, /*!< Camera type is third party camera based on Payload SDK. */
DJI_CAMERA_TYPE_XTS = 41, /*!< Camera type is XT S. */
DJI_CAMERA_TYPE_H20 = 42, /*!< Camera type is H20. */
DJI_CAMERA_TYPE_H20T = 43, /*!< Camera type is H20T. */
DJI_CAMERA_TYPE_H20N = 61, /*!< Camera type is H20N. */
DJI_CAMERA_TYPE_P1 = 50, /*!< Camera type is P1. */
DJI_CAMERA_TYPE_L1, /*!< Camera type is L1. */
DJI_CAMERA_TYPE_L2, /*!< Camera type is L2. */
DJI_CAMERA_TYPE_M30, /*!< Camera type is M30. */
DJI_CAMERA_TYPE_M30T, /*!< Camera type is M30T. */
DJI_CAMERA_TYPE_M3E, /*!< Camera type is M3E. */
DJI_CAMERA_TYPE_M3T, /*!< Camera type is M3T. */
DJI_CAMERA_TYPE_M3D, /*!< Camera type is Matrice 3D. */
DJI_CAMERA_TYPE_M3TD, /*!< Camera type is Matrice 3TD. */
DJI_CAMERA_TYPE_L2 = 84, /*!< Camera type is L2. */
DJI_CAMERA_TYPE_M30 = 52, /*!< Camera type is M30. */
DJI_CAMERA_TYPE_M30T = 53, /*!< Camera type is M30T. */
DJI_CAMERA_TYPE_M3E = 66, /*!< Camera type is M3E. */
DJI_CAMERA_TYPE_M3T = 67, /*!< Camera type is M3T. */
DJI_CAMERA_TYPE_M3D = 80, /*!< Camera type is Matrice 3D. */
DJI_CAMERA_TYPE_M3TD = 81, /*!< Camera type is Matrice 3TD. */
} E_DjiCameraType;
/**
* @brief Camera supported media file subtype.
*/
typedef enum
{
DJI_DOWNLOAD_FILE_ORG = 0, /*!< Media sub file origin data type. */
DJI_DOWNLOAD_FILE_LDR = 21, /*!< Media sub file cloud point raw data type. */
DJI_DOWNLOAD_FILE_SIG = 22, /*!< Media sub file point cloud signature type. */
DJI_DOWNLOAD_FILE_RTK = 23, /*!< Media sub file point cloud real-time kinematic type. */
DJI_DOWNLOAD_FILE_CLC = 25, /*!< Media sub file radar-camera external reference type. */
DJI_DOWNLOAD_FILE_CLI = 26, /*!< Media sub file radar-IMU external reference type. */
DJI_DOWNLOAD_FILE_IMU = 27, /*!< Media sub file IMU data type. */
DJI_DOWNLOAD_FILE_RTL = 28, /*!< Media sub file RTK boom data type. */
DJI_DOWNLOAD_FILE_RTB = 29, /*!< Media sub file RTK base station data type. */
DJI_DOWNLOAD_FILE_RTS = 30, /*!< Media sub file RTK secondary antenna data type. */
DJI_DOWNLOAD_FILE_RPOS = 31, /*!< Media sub file real-time fusion of attitude and position data type. */
} E_DjiCameraMediaFileSubType;
/**
* @brief Camera supported media file type.
*/
typedef enum {
DJI_CAMERA_FILE_TYPE_JPEG = 0, /*!< Media file JPEG type. */
DJI_CAMERA_FILE_TYPE_DNG = 1, /*!< Media file DNG type. */
DJI_CAMERA_FILE_TYPE_MOV = 2, /*!< Media file MOV type. */
DJI_CAMERA_FILE_TYPE_MP4 = 3, /*!< Media file MP4 type. */
DJI_CAMERA_FILE_TYPE_TIFF = 5, /*!< Media file TIFF type. */
DJI_CAMERA_FILE_TYPE_PCD = 24, /*!< Media file point cloud type. */
DJI_CAMERA_FILE_TYPE_UNKNOWN = 255, /*!< Media file unknown type. */
DJI_CAMERA_FILE_TYPE_JPEG = 0, /*!< Media file JPEG type. */
DJI_CAMERA_FILE_TYPE_DNG = 1, /*!< Media file DNG type. */
DJI_CAMERA_FILE_TYPE_MOV = 2, /*!< Media file MOV type. */
DJI_CAMERA_FILE_TYPE_MP4 = 3, /*!< Media file MP4 type. */
DJI_CAMERA_FILE_TYPE_TIFF = 5, /*!< Media file TIFF type. */
DJI_CAMERA_FILE_TYPE_LDRT = 24, /*!< Media file LDRT type. */
DJI_CAMERA_FILE_TYPE_RPT = 25, /*!< Media file RPT type. */
DJI_CAMERA_FILE_TYPE_UNKNOWN = 255, /*!< Media file unknown type. */
} E_DjiCameraMediaFileType;
/**
@ -164,39 +183,39 @@ typedef struct {
* @brief Gimbal work mode, specifies how gimbal follow aircraft movement.
*/
typedef enum {
DJI_GIMBAL_MODE_FREE = 0, /*!< Free mode, fix gimbal attitude in the ground coordinate, ignoring movement of aircraft. */
DJI_GIMBAL_MODE_FPV = 1, /*!< FPV (First Person View) mode, only control roll and yaw angle of gimbal in the ground coordinate to follow aircraft. */
DJI_GIMBAL_MODE_YAW_FOLLOW = 2, /*!< Yaw follow mode, only control yaw angle of gimbal in the ground coordinate to follow aircraft. */
DJI_GIMBAL_MODE_FREE = 0, /*!< Free mode, fix gimbal attitude in the ground coordinate, ignoring movement of aircraft. */
DJI_GIMBAL_MODE_FPV = 1, /*!< FPV (First Person View) mode, only control roll and yaw angle of gimbal in the ground coordinate to follow aircraft. */
DJI_GIMBAL_MODE_YAW_FOLLOW = 2, /*!< Yaw follow mode, only control yaw angle of gimbal in the ground coordinate to follow aircraft. */
} E_DjiGimbalMode;
/**
* @brief Gimbal rotation mode, specifies control style.
*/
typedef enum {
DJI_GIMBAL_ROTATION_MODE_RELATIVE_ANGLE = 0, /*!< Relative angle rotation mode, represents rotating gimbal specified angles based on current angles. */
DJI_GIMBAL_ROTATION_MODE_ABSOLUTE_ANGLE = 1, /*!< Absolute angle rotation mode, represents rotating gimbal to specified angles in the ground coordinate. */
DJI_GIMBAL_ROTATION_MODE_SPEED = 2, /*!< Speed rotation mode, specifies rotation speed of gimbal in the ground coordinate. */
DJI_GIMBAL_ROTATION_MODE_RELATIVE_ANGLE = 0, /*!< Relative angle rotation mode, represents rotating gimbal specified angles based on current angles. */
DJI_GIMBAL_ROTATION_MODE_ABSOLUTE_ANGLE = 1, /*!< Absolute angle rotation mode, represents rotating gimbal to specified angles in the ground coordinate. */
DJI_GIMBAL_ROTATION_MODE_SPEED = 2, /*!< Speed rotation mode, specifies rotation speed of gimbal in the ground coordinate. */
} E_DjiGimbalRotationMode;
/**
* @brief Mobile APP system language.
*/
typedef enum {
DJI_MOBILE_APP_LANGUAGE_UNKNOWN = 255, /*!< The system language of the mobile app is unknown */
DJI_MOBILE_APP_LANGUAGE_ENGLISH = 0, /*!< The system language of the mobile app is English */
DJI_MOBILE_APP_LANGUAGE_CHINESE = 1, /*!< The system language of the mobile app is Chinese */
DJI_MOBILE_APP_LANGUAGE_JAPANESE = 2, /*!< The system language of the mobile app is Japanese */
DJI_MOBILE_APP_LANGUAGE_FRENCH = 3, /*!< The system language of the mobile app is French */
DJI_MOBILE_APP_LANGUAGE_UNKNOWN = 255, /*!< The system language of the mobile app is unknown */
DJI_MOBILE_APP_LANGUAGE_ENGLISH = 0, /*!< The system language of the mobile app is English */
DJI_MOBILE_APP_LANGUAGE_CHINESE = 1, /*!< The system language of the mobile app is Chinese */
DJI_MOBILE_APP_LANGUAGE_JAPANESE = 2, /*!< The system language of the mobile app is Japanese */
DJI_MOBILE_APP_LANGUAGE_FRENCH = 3, /*!< The system language of the mobile app is French */
} E_DjiMobileAppLanguage;
/**
* @brief Mobile APP screen size type.
*/
typedef enum {
DJI_MOBILE_APP_SCREEN_TYPE_UNKNOWN = 255, /*!< Mobile APP screen type is unknown. */
DJI_MOBILE_APP_SCREEN_TYPE_BIG_SCREEN = 0, /*!< The big screen of mobile device refers to a screen
DJI_MOBILE_APP_SCREEN_TYPE_UNKNOWN = 255, /*!< Mobile APP screen type is unknown. */
DJI_MOBILE_APP_SCREEN_TYPE_BIG_SCREEN = 0, /*!< The big screen of mobile device refers to a screen
* size greater than or equal to 6 inches. */
DJI_MOBILE_APP_SCREEN_TYPE_LITTLE_SCREEN = 1, /*!< The little screen of mobile device refers to a
DJI_MOBILE_APP_SCREEN_TYPE_LITTLE_SCREEN = 1, /*!< The little screen of mobile device refers to a
* screen size less than 6 inches. */
} E_DjiMobileAppScreenType;
@ -204,20 +223,20 @@ typedef enum {
* @brief Subscription frequency type.
*/
typedef enum {
DJI_DATA_SUBSCRIPTION_TOPIC_1_HZ = 1,
DJI_DATA_SUBSCRIPTION_TOPIC_5_HZ = 5,
DJI_DATA_SUBSCRIPTION_TOPIC_10_HZ = 10,
DJI_DATA_SUBSCRIPTION_TOPIC_50_HZ = 50,
DJI_DATA_SUBSCRIPTION_TOPIC_100_HZ = 100,
DJI_DATA_SUBSCRIPTION_TOPIC_200_HZ = 200,
DJI_DATA_SUBSCRIPTION_TOPIC_400_HZ = 400,
DJI_DATA_SUBSCRIPTION_TOPIC_1_HZ = 1,
DJI_DATA_SUBSCRIPTION_TOPIC_5_HZ = 5,
DJI_DATA_SUBSCRIPTION_TOPIC_10_HZ = 10,
DJI_DATA_SUBSCRIPTION_TOPIC_50_HZ = 50,
DJI_DATA_SUBSCRIPTION_TOPIC_100_HZ = 100,
DJI_DATA_SUBSCRIPTION_TOPIC_200_HZ = 200,
DJI_DATA_SUBSCRIPTION_TOPIC_400_HZ = 400,
} E_DjiDataSubscriptionTopicFreq;
/**
* @brief DJI module enum for defining data subscription module.
*/
typedef enum {
DJI_DATA_SUBSCRIPTION_MODULE_FC = 0,
DJI_DATA_SUBSCRIPTION_MODULE_FC = 0,
DJI_DATA_SUBSCRIPTION_MODULE_CAMERA,
DJI_DATA_SUBSCRIPTION_MODULE_ERROR,
} E_DjiDataSubscriptionModule;
@ -226,14 +245,14 @@ typedef enum {
* @brief SDK adapter type.
*/
typedef enum {
DJI_SDK_ADAPTER_TYPE_UNKNOWN = 0, /*!< SDK adapter type is unknown. */
DJI_SDK_ADAPTER_TYPE_SKYPORT_V2 = 1, /*!< SDK adapter type is Skyport V2. */
DJI_SDK_ADAPTER_TYPE_XPORT = 2, /*!< SDK adapter type is X-Port. */
DJI_SDK_ADAPTER_TYPE_NONE = 3, /*!< don't have any adapter outside */
DJI_SDK_ADAPTER_TYPE_UNKNOWN = 0, /*!< SDK adapter type is unknown. */
DJI_SDK_ADAPTER_TYPE_SKYPORT_V2 = 1, /*!< SDK adapter type is Skyport V2. */
DJI_SDK_ADAPTER_TYPE_XPORT = 2, /*!< SDK adapter type is X-Port. */
DJI_SDK_ADAPTER_TYPE_NONE = 3, /*!< don't have any adapter outside */
} E_DjiSdkAdapterType;
typedef enum {
DJI_CHANNEL_ADDRESS_UNKNOWN = 0,
DJI_CHANNEL_ADDRESS_UNKNOWN = 0,
DJI_CHANNEL_ADDRESS_PAYLOAD_PORT_NO1,
DJI_CHANNEL_ADDRESS_PAYLOAD_PORT_NO2,
DJI_CHANNEL_ADDRESS_PAYLOAD_PORT_NO3,
@ -265,47 +284,47 @@ typedef struct {
* @brief Camera zoom speed.
*/
typedef enum {
DJI_CAMERA_ZOOM_SPEED_SLOWEST = 72, /*!< Lens zooms in slowest speed. */
DJI_CAMERA_ZOOM_SPEED_SLOW = 73, /*!< Lens zooms in slow speed. */
DJI_CAMERA_ZOOM_SPEED_MODERATELY_SLOW = 74, /*!< Lens zooms in speed slightly slower than normal speed. */
DJI_CAMERA_ZOOM_SPEED_NORMAL = 75, /*!< Lens zooms in normal speed. */
DJI_CAMERA_ZOOM_SPEED_MODERATELY_FAST = 76, /*!< Lens zooms very in speed slightly faster than normal speed. */
DJI_CAMERA_ZOOM_SPEED_FAST = 77, /*!< Lens zooms very in fast speed. */
DJI_CAMERA_ZOOM_SPEED_FASTEST = 78, /*!< Lens zooms very in fastest speed. */
DJI_CAMERA_ZOOM_SPEED_SLOWEST = 72, /*!< Lens zooms in slowest speed. */
DJI_CAMERA_ZOOM_SPEED_SLOW = 73, /*!< Lens zooms in slow speed. */
DJI_CAMERA_ZOOM_SPEED_MODERATELY_SLOW = 74, /*!< Lens zooms in speed slightly slower than normal speed. */
DJI_CAMERA_ZOOM_SPEED_NORMAL = 75, /*!< Lens zooms in normal speed. */
DJI_CAMERA_ZOOM_SPEED_MODERATELY_FAST = 76, /*!< Lens zooms very in speed slightly faster than normal speed. */
DJI_CAMERA_ZOOM_SPEED_FAST = 77, /*!< Lens zooms very in fast speed. */
DJI_CAMERA_ZOOM_SPEED_FASTEST = 78, /*!< Lens zooms very in fastest speed. */
} E_DjiCameraZoomSpeed;
typedef enum {
/*! The number of pictures to continuously take each time in BURST mode is 2
*/
DJI_CAMERA_BURST_COUNT_2 = 2,
DJI_CAMERA_BURST_COUNT_2 = 2,
/*! The number of pictures to continuously take each time in BURST mode is 3
*/
DJI_CAMERA_BURST_COUNT_3 = 3,
DJI_CAMERA_BURST_COUNT_3 = 3,
/*! The number of pictures to continuously take each time in BURST mode is 5
*/
DJI_CAMERA_BURST_COUNT_5 = 5,
DJI_CAMERA_BURST_COUNT_5 = 5,
/*! The number of pictures to continuously take each time in BURST mode is 7
*/
DJI_CAMERA_BURST_COUNT_7 = 7,
DJI_CAMERA_BURST_COUNT_7 = 7,
/*! The number of pictures to continuously take at one time in BURST mode is
* 10, Only supported by X4S camera, X5S camera and Phantom 4 Pro camera.
*/
DJI_CAMERA_BURST_COUNT_10 = 10,
DJI_CAMERA_BURST_COUNT_10 = 10,
/*! The number of pictures to continuously take at one time in BURST mode is
* 14, Only supported by X4S camera, X5S camera and Phantom 4 Pro camera.
*/
DJI_CAMERA_BURST_COUNT_14 = 14,
DJI_CAMERA_BURST_COUNT_14 = 14,
/*! The camera burst shoot count value is unknown.
*/
DJI_CAMERA_BURST_COUNT_KNOWN = 0xFF,
DJI_CAMERA_BURST_COUNT_KNOWN = 0xFF,
} E_DjiCameraBurstCount;
/**
* @brief Camera zoom direction.
*/
typedef enum {
DJI_CAMERA_ZOOM_DIRECTION_OUT = 0, /*!< The lens moves in the far direction, the zoom factor becomes smaller. */
DJI_CAMERA_ZOOM_DIRECTION_IN = 1, /*!< The lens moves in the near direction, the zoom factor becomes larger. */
DJI_CAMERA_ZOOM_DIRECTION_OUT = 0, /*!< The lens moves in the far direction, the zoom factor becomes smaller. */
DJI_CAMERA_ZOOM_DIRECTION_IN = 1, /*!< The lens moves in the near direction, the zoom factor becomes larger. */
} E_DjiCameraZoomDirection;
#pragma pack (1)

View File

@ -35,9 +35,9 @@ extern "C" {
/* Exported constants --------------------------------------------------------*/
#define DJI_VERSION_MAJOR 3 /*!< DJI SDK major version num, when have incompatible API changes. Range from 0 to 99. */
#define DJI_VERSION_MINOR 8 /*!< DJI SDK minor version num, when add functionality in a backwards compatible manner changes. Range from 0 to 99. */
#define DJI_VERSION_MODIFY 0 /*!< DJI SDK modify version num, when have backwards compatible bug fixes changes. Range from 0 to 99. */
#define DJI_VERSION_MODIFY 1 /*!< DJI SDK modify version num, when have backwards compatible bug fixes changes. Range from 0 to 99. */
#define DJI_VERSION_BETA 0 /*!< DJI SDK version beta info, release version will be 0, when beta version release changes. Range from 0 to 255. */
#define DJI_VERSION_BUILD 1929 /*!< DJI SDK version build info, when jenkins trigger build changes. Range from 0 to 65535. */
#define DJI_VERSION_BUILD 2006 /*!< DJI SDK version build info, when jenkins trigger build changes. Range from 0 to 65535. */
/* Exported types ------------------------------------------------------------*/

View File

@ -36,6 +36,10 @@ extern "C" {
/* Exported constants --------------------------------------------------------*/
/* Exported types ------------------------------------------------------------*/
/**
* @brief Type define dji_f32_t as T_DjiWaypointV2GlobalCruiseSpeed.
* @details Type used for global cruise speed of waypoint mission, unit: m/s.
*/
typedef dji_f32_t T_DjiWaypointV2GlobalCruiseSpeed;
/**
@ -340,6 +344,8 @@ typedef struct {
* will fly backwards to previous waypoints. When it reaches the first waypoint, it
* will then hover in place until a positive speed is applied. "maxFlightSpeed" has
* a range of [2,15] m/s.
*
* unit: m/s
*/
dji_f32_t maxFlightSpeed;
@ -355,6 +361,8 @@ typedef struct {
* joystick. In flight controller firmware 3.2.10.0 or above, different speeds
* between individual waypoints can also be set in waypoint objects which will
* overwrite "autoFlightSpeed".
*
* unit: m/s.
*/
dji_f32_t autoFlightSpeed;
} T_DjiWaypointV2;
@ -1089,6 +1097,7 @@ typedef struct {
* negative, then the aircraft will fly backwards to previous waypoints. When it
* reaches the first waypoint, it will then hover in place until a positive speed
* is applied. `maxFlightSpeed` has a range of [2,15] m/s.
*
* unit: m/s
*/
dji_f32_t maxFlightSpeed;
@ -1103,6 +1112,7 @@ typedef struct {
* `autoFlightSpeed` <0 and the aircraft is at the first waypoint, the aircraft
* will hover in place until the speed is made positive by the remote controller
* joystick.
*
* unit: m/s
*/
dji_f32_t autoFlightSpeed;