UAV Error Codes
The header file for error codes is uav_error.h. This document describes the key information and usage of macro definitions and structures related to error codes.
Macro Definitions
- Error module index offset
 
#define UAV_ERROR_MODULE_INDEX_OFFSET  32u
- Error module index mask
 
#define UAV_ERROR_MODULE_INDEX_MASK    0x000000FF00000000u
- Raw error code offset
 
#define UAV_ERROR_RAW_CODE_OFFSET      0u
- Raw error code mask
 
#define UAV_ERROR_RAW_CODE_MASK        0x00000000FFFFFFFFu
- Error code generation macro
 
#define UAV_ERROR_CODE(moduleIndex, rawErrCode) \
((uint64_t)0 | \
((((uint64_t)(moduleIndex)) << (UAV_ERROR_MODULE_INDEX_OFFSET)) & (UAV_ERROR_MODULE_INDEX_MASK)) | \
((((uint64_t)(rawErrCode)) << (UAV_ERROR_RAW_CODE_OFFSET)) & (UAV_ERROR_RAW_CODE_MASK)))
Operation Return Value
- Operation Successful
 
#define UAV_RETURN_CODE_OK UAV_ERROR_SYSTEM_MODULE_CODE_SUCCESS- Memory allocation error
 
#define UAV_RETURN_CODE_ERR_ALLOC UAV_ERROR_SYSTEM_MODULE_CODE_MEMORY_ALLOC_FAILED- Operation timed out
 
#define UAV_RETURN_CODE_ERR_TIMEOUT UAV_ERROR_SYSTEM_MODULE_CODE_TIMEOUT- Object does not exist
 
#define UAV_RETURN_CODE_ERR_NOT_FOUND UAV_ERROR_SYSTEM_MODULE_CODE_NOT_FOUND- Out of the specified range
 
#define UAV_RETURN_CODE_ERR_OUT_OF_RANGE UAV_ERROR_SYSTEM_MODULE_CODE_OUT_OF_RANGE- Parameter error
 
#define UAV_RETURN_CODE_ERR_PARAM UAV_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER- System error
 
#define UAV_RETURN_CODE_ERR_SYSTEM UAV_ERROR_SYSTEM_MODULE_CODE_SYSTEM_ERROR- System busy
 
#define UAV_RETURN_CODE_ERR_BUSY UAV_ERROR_SYSTEM_MODULE_CODE_BUSY- Not supported at the moment
 
#define UAV_RETURN_CODE_ERR_UNSUPPORT UAV_ERROR_SYSTEM_MODULE_CODE_NONSUPPORT- Unknown error
 
#define UAV_RETURN_CODE_ERR_UNKNOWN UAV_ERROR_SYSTEM_MODULE_CODE_UNKNOWN
Enumeration
- Error module
 
typedef enum {
  UAV_ERROR_MODULE_SYSTEM = 0,
  UAV_ERROR_MODULE_PLATFORM,
  UAV_ERROR_MODULE_LOGGER,
  UAV_ERROR_MODULE_TIME_SYNC,
  UAV_ERROR_MODULE_COMMAND,
  UAV_ERROR_MODULE_CAMERA,
  UAV_ERROR_MODULE_GIMBAL,
  UAV_ERROR_MODULE_XPORT,
  UAV_ERROR_MODULE_PAYLOAD_COLLABORATION,
  UAV_ERROR_MODULE_WIDGET,
  UAV_ERROR_MODULE_CORE,
  UAV_ERROR_MODULE_IDENTITY,
  UAV_ERROR_MODULE_TRANSMISSION,
  UAV_ERROR_MODULE_DATA_CHANNEL,
  UAV_ERROR_MODULE_SUBSCRIPTION,
  UAV_ERROR_MODULE_MOP_CHANNEL,
  UAV_ERROR_MODULE_POSITIONING,
  UAV_ERROR_MODULE_POWER_MANAGEMENT,
  UAV_ERROR_MODULE_AIRCRAFTINFO,
  UAV_ERROR_MODULE_PRODUCTINFO,
  UAV_ERROR_MODULE_FLOWCONTROLLER,
  UAV_ERROR_MODULE_DOWNLOADER,
  UAV_ERROR_MODULE_PARAMETER,
  UAV_ERROR_MODULE_UTIL,
  UAV_ERROR_MODULE_USER,
  UAV_ERROR_MODULE_NEGOTIATE,
  UAV_ERROR_MODULE_UPGRADE,
  UAV_ERROR_MODULE_FC_BASIC,
  UAV_ERROR_MODULE_FC_JOYSTICK,
  UAV_ERROR_MODULE_FC_ACTION,
  UAV_ERROR_MODULE_FC_ARREST_FLYING,
  UAV_ERROR_MODULE_FC_HOME_LOCATION,
  UAV_ERROR_MODULE_FC_EMERGENCY_STOP_MOTOR,
  UAV_ERROR_MODULE_CAMERA_MANAGER,
  UAV_ERROR_MODULE_GIMBAL_MANAGER,
  UAV_ERROR_MODULE_WAYPOINT_V2,
  UAV_ERROR_MODULE_WAYPOINT_V3,
  UAV_ERROR_MODULE_ERROR,
} E_UAVErrorModule;
- System general module raw error code
 
  typedef enum {
  UAV_ERROR_SYSTEM_MODULE_RAW_CODE_SUCCESS = 0x000,
  UAV_ERROR_SYSTEM_MODULE_RAW_CODE_INVALID_REQUEST_PARAMETER = 0x0D4,
  UAV_ERROR_SYSTEM_MODULE_RAW_CODE_EXECUTING_HIGHER_PRIORITY_TASK = 0x0D7,
  UAV_ERROR_SYSTEM_MODULE_RAW_CODE_NONSUPPORT = 0x0E0,
  UAV_ERROR_SYSTEM_MODULE_RAW_CODE_TIMEOUT = 0x0E1,
  UAV_ERROR_SYSTEM_MODULE_RAW_CODE_MEMORY_ALLOC_FAILED = 0x0E2,
  UAV_ERROR_SYSTEM_MODULE_RAW_CODE_INVALID_PARAMETER = 0x0E3,
  UAV_ERROR_SYSTEM_MODULE_RAW_CODE_NONSUPPORT_IN_CURRENT_STATE = 0x0E4,
  UAV_ERROR_SYSTEM_MODULE_RAW_CODE_SYSTEM_ERROR = 0x0EC,
  UAV_ERROR_SYSTEM_MODULE_RAW_CODE_HARDWARE_ERR = 0x0FA,
  UAV_ERROR_SYSTEM_MODULE_RAW_CODE_INSUFFICIENT_ELECTRICITY = 0x0FB,
  UAV_ERROR_SYSTEM_MODULE_RAW_CODE_UNKNOWN = 0x0FF,
  UAV_ERROR_SYSTEM_MODULE_RAW_CODE_NOT_FOUND = 0x100,
  UAV_ERROR_SYSTEM_MODULE_RAW_CODE_OUT_OF_RANGE = 0x101,
  UAV_ERROR_SYSTEM_MODULE_RAW_CODE_BUSY = 0x102,
  UAV_ERROR_SYSTEM_MODULE_RAW_CODE_DUPLICATE = 0x103,
  UAV_ERROR_SYSTEM_MODULE_RAW_CODE_ADAPTER_NOT_MATCH = 0x104,
} E_UAVErrorSystemModuleRawCode;
- PSDK Error Codes
The return value 
T_UAVReturnCodein the function prototype can search for error code information from the complete set of PSDK error codes (enum UAV_ErrorCode). Developers can obtain error descriptions, causes, and recovery suggestions. 
typedef uint64_t T_UAVReturnCode;
enum UAV_ErrorCode {
  /* system module error code, including some common error code */
  UAV_ERROR_SYSTEM_MODULE_CODE_SUCCESS = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_SUCCESS),
  UAV_ERROR_SYSTEM_MODULE_CODE_INVALID_REQUEST_PARAMETER = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_INVALID_REQUEST_PARAMETER),
  UAV_ERROR_SYSTEM_MODULE_CODE_EXECUTING_HIGHER_PRIORITY_TASK = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_EXECUTING_HIGHER_PRIORITY_TASK),
  UAV_ERROR_SYSTEM_MODULE_CODE_NONSUPPORT = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_NONSUPPORT),
  UAV_ERROR_SYSTEM_MODULE_CODE_TIMEOUT = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_TIMEOUT),
  UAV_ERROR_SYSTEM_MODULE_CODE_MEMORY_ALLOC_FAILED = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_MEMORY_ALLOC_FAILED),
  UAV_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_INVALID_PARAMETER),
  UAV_ERROR_SYSTEM_MODULE_CODE_NONSUPPORT_IN_CURRENT_STATE = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_NONSUPPORT_IN_CURRENT_STATE),
  UAV_ERROR_SYSTEM_MODULE_CODE_SYSTEM_ERROR = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_SYSTEM_ERROR),
  UAV_ERROR_SYSTEM_MODULE_CODE_HARDWARE_ERR = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_HARDWARE_ERR),
  UAV_ERROR_SYSTEM_MODULE_CODE_INSUFFICIENT_ELECTRICITY = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_INSUFFICIENT_ELECTRICITY),
  UAV_ERROR_SYSTEM_MODULE_CODE_UNKNOWN = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_UNKNOWN),
  UAV_ERROR_SYSTEM_MODULE_CODE_NOT_FOUND = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_NOT_FOUND),
  UAV_ERROR_SYSTEM_MODULE_CODE_OUT_OF_RANGE = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_OUT_OF_RANGE),
  UAV_ERROR_SYSTEM_MODULE_CODE_BUSY = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_BUSY),
  UAV_ERROR_SYSTEM_MODULE_CODE_DUPLICATE = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_DUPLICATE),
  UAV_ERROR_SYSTEM_MODULE_CODE_ADAPTER_NOT_MATCH = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_ADAPTER_NOT_MATCH),
  
 };