Arquivos
Onboard-SDK/osdk-core/api/inc/dji_error.hpp
T
Rohit Sant 4c8d43f615 OSDK 3.3
2017-06-15 15:46:01 -07:00

554 linhas
21 KiB
C++

/** @file dji_error.hpp
* @version 3.3
* @date April 2017
*
* @brief All DJI OSDK OpenProtocol ACK Error Codes
*
* @copyright 2017 DJI. All rights reserved.
*
*/
#ifndef DJI_ERROR_H
#define DJI_ERROR_H
#include <stdint.h>
namespace DJI
{
namespace OSDK
{
/*! @class ErrorCode contains all the acknowledgments sent by the aircraft
* @details Each component of the SDK has its own subclass defined within the
* ErrorCode class.
*/
class ErrorCode
{
public:
/*!
* @brief Common ACK Error Codes
*/
class CommonACK
{
public:
const static uint16_t SUCCESS;
const static uint16_t KEY_ERROR;
const static uint16_t NO_AUTHORIZATION_ERROR;
const static uint16_t NO_RIGHTS_ERROR;
const static uint16_t NO_RESPONSE_ERROR;
// These error codes would return either from
// CMDSet Control::Task or from Missions
const static uint8_t MOTOR_FAIL_NONE;
/*! The compass being used appears as follows: <br>
* (1) The compass data has too much noise. <br>
* (2) The compass data is stuck. <br>
* (3) The compass is disconnected. <br>
* (4) Compass user compilation error. <br>
* For the flight control of N3, A3 and M600, there are
* more situations: <br>
* (5) The compass is disturbed. <br>
* (6) Multiple compasses point different directions. <br>
* (7) Compass calibration failed. <br>
* (8) The compass is not calibrated. */
const static uint8_t MOTOR_FAIL_COMPASS_ABNORMAL;
/*! The aircraft is connected to the software for debugging parameters via
the
USB cable. */
const static uint8_t MOTOR_FAIL_ASSISTANT_PROTECTED;
/*! The structure of the parameter list has changed after the FW upgrade.*/
const static uint8_t MOTOR_FAIL_DEVICE_LOCKED;
/*! The IMU being used appears as follows: <br>
* (1) The accelerometer output exceeds its range. <br>
* (2) The accelerometer is stuck. <br>
* (3) The accelerometer data has too much noise. <br>
* (4) The accelerometer outputs illegal floating numbers. <br>
* (5) The factory data of IMU has exception. <br>
* (6) Multiple accelerometers output differently. <br>
* (7) The temperature of the IMU is too high. <br>
* (8) The temperature of the IMU is very high. <br>
* (9) The gyro output exceeds its range. <br>
* (10) The gyro is stuck. <br>
* (11) The gyro data has too much noise. <br>
* (12) The gyro outputs illegal floating numbers. <br>
* (13) Multiple accelerometers output differently. <br>
* (14) The temperature control of gyro is abnormal. <br>
* For the flight control of Inspire 2, there are more situations: <br>
* (15)The default IMU exception causes the switch to backup IMU.*/
const static uint8_t MOTOR_FAIL_IMU_NEED_ADV_CALIBRATION;
/*! The SN status is wrong. */
const static uint8_t MOTOR_FAIL_IMU_SN_ERROR;
/*! The IMU being used is preheated and current temperature is not wihin the
calibration range. */
const static uint8_t MOTOR_FAIL_IMU_PREHEATING;
const static uint8_t MOTOR_FAIL_COMPASS_CALIBRATING;
const static uint8_t MOTOR_FAIL_IMU_NO_ATTITUDE;
/*! The aircraft is in Novice Mode without gps. */
const static uint8_t MOTOR_FAIL_NO_GPS_IN_NOVICE_MODE;
const static uint8_t MOTOR_FAIL_BATTERY_CELL_ERROR;
const static uint8_t MOTOR_FAIL_BATTERY_COMMUNICATION_ERROR;
const static uint8_t MOTOR_FAIL_BATTERY_VOLTAGE_TOO_LOW;
/*! The volume (%) is below the second-level power set by user. */
const static uint8_t MOTOR_FAIL_BATTERY_USER_LOW_LAND;
/*! The voltage is below the second-level power set by user. */
const static uint8_t MOTOR_FAIL_BATTERY_MAIN_VOL_LOW;
const static uint8_t MOTOR_FAIL_BATTERY_TEMP_VOL_LOW;
/*! Flight contol calculates that current power is only adequate to land.*/
const static uint8_t MOTOR_FAIL_BATTERY_SMART_LOW_LAND;
/*! This error occurs whin 7s after power up.
* Also, it occurs if the battery certification hasn't passed yet.*/
const static uint8_t MOTOR_FAIL_BATTERY_NOT_READY;
const static uint8_t MOTOR_FAIL_RUNNING_SIMULATOR;
/*! The aircraft (Inspire series) is setting itself to packing config.*/
const static uint8_t MOTOR_FAIL_PACK_MODE;
const static uint8_t MOTOR_FAIL_IMU_ATTI_LIMIT;
const static uint8_t MOTOR_FAIL_NOT_ACTIVATED;
const static uint8_t MOTOR_FAIL_IN_FLYLIMIT_AREA;
/*! The IMU is too biased if the gyro's bias is over 0.03rad/s
* or the accelerometer's bias is over 50 mg when first started up.*/
const static uint8_t MOTOR_FAIL_IMU_BIAS_LIMIT;
const static uint8_t MOTOR_FAIL_ESC_ERROR;
/*! The IMU is initializing.The attitude data of the current
* navigation system has not converged yet and the height
* data of the current navigation system is not ready.*/
const static uint8_t MOTOR_FAIL_IMU_INITING;
const static uint8_t MOTOR_FAIL_UPGRADING;
/*! The simulator has already been run.*/
const static uint8_t MOTOR_FAIL_HAVE_RUN_SIM;
/*! The IMU is in calibration or the aircraft should reset after IMU
calibration.*/
const static uint8_t MOTOR_FAIL_IMU_CALIBRATING;
const static uint8_t MOTOR_FAIL_TAKEOFF_TILT_TOO_LARGE;
const static uint8_t MOTOR_FAIL_RESERVED_31;
const static uint8_t MOTOR_FAIL_RESERVED_32;
const static uint8_t MOTOR_FAIL_RESERVED_33;
const static uint8_t MOTOR_FAIL_RESERVED_34;
const static uint8_t MOTOR_FAIL_RESERVED_35;
const static uint8_t MOTOR_FAIL_RESERVED_36;
const static uint8_t MOTOR_FAIL_RESERVED_37;
const static uint8_t MOTOR_FAIL_RESERVED_38;
const static uint8_t MOTOR_FAIL_RESERVED_39;
const static uint8_t MOTOR_FAIL_RESERVED_40;
/*! invalid serial number */
const static uint8_t MOTOR_FAIL_INVALID_SN;
const static uint8_t MOTOR_FAIL_RESERVED_42;
const static uint8_t MOTOR_FAIL_RESERVED_43;
/*! accessing flash data, MCU is blocked */
const static uint8_t MOTOR_FAIL_FLASH_OPERATING;
const static uint8_t MOTOR_FAIL_GPS_DISCONNECT;
const static uint8_t MOTOR_FAIL_INTERNAL_46;
/*! SD card has an exception. Please repair SD card if repeats after
* reset.*/
const static uint8_t MOTOR_FAIL_RECORDER_ERROR;
/*! The firmware is unmatched with configured type.*/
const static uint8_t MOTOR_FAIL_INVALID_PRODUCT;
const static uint8_t MOTOR_FAIL_RESERVED_49;
const static uint8_t MOTOR_FAIL_RESERVED_50;
const static uint8_t MOTOR_FAIL_RESERVED_51;
const static uint8_t MOTOR_FAIL_RESERVED_52;
const static uint8_t MOTOR_FAIL_RESERVED_53;
const static uint8_t MOTOR_FAIL_RESERVED_54;
const static uint8_t MOTOR_FAIL_RESERVED_55;
const static uint8_t MOTOR_FAIL_RESERVED_56;
const static uint8_t MOTOR_FAIL_RESERVED_57;
const static uint8_t MOTOR_FAIL_RESERVED_58;
const static uint8_t MOTOR_FAIL_RESERVED_59;
const static uint8_t MOTOR_FAIL_RESERVED_60;
const static uint8_t MOTOR_FAIL_IMU_DISCONNECTED;
const static uint8_t MOTOR_FAIL_RC_CALIBRATING;
const static uint8_t MOTOR_FAIL_RC_CALI_DATA_OUT_RANGE;
const static uint8_t MOTOR_FAIL_RC_QUIT_CALI;
const static uint8_t MOTOR_FAIL_RC_CENTER_OUT_RANGE;
const static uint8_t MOTOR_FAIL_RC_MAP_ERROR;
/*! The aircraft type in flash is unmatched with the type in firmware. <br>
* Please check the aircraft type.*/
const static uint8_t MOTOR_FAIL_WRONG_AIRCRAFT_TYPE;
const static uint8_t MOTOR_FAIL_SOME_MODULE_NOT_CONFIGURED;
const static uint8_t MOTOR_FAIL_RESERVED_69;
const static uint8_t MOTOR_FAIL_RESERVED_70;
const static uint8_t MOTOR_FAIL_RESERVED_71;
const static uint8_t MOTOR_FAIL_RESERVED_72;
const static uint8_t MOTOR_FAIL_RESERVED_73;
/*! navigation system abnormal */
const static uint8_t MOTOR_FAIL_NS_ABNORMAL;
/*! Each craft has a set of devices to register. <br>
* It won't take off if a class of device is missing. Please reset and check
* the connection.*/
const static uint8_t MOTOR_FAIL_TOPOLOGY_ABNORMAL;
const static uint8_t MOTOR_FAIL_RC_NEED_CALI;
/*! invalid data, system will block motor spinning */
const static uint8_t MOTOR_FAIL_INVALID_FLOAT;
const static uint8_t MOTOR_FAIL_M600_BAT_TOO_FEW;
const static uint8_t MOTOR_FAIL_M600_BAT_AUTH_ERR;
const static uint8_t MOTOR_FAIL_M600_BAT_COMM_ERR;
/*! Battery voltage difference is too large. Please check the battery
status.*/
const static uint8_t MOTOR_FAIL_M600_BAT_DIF_VOLT_LARGE_1;
const static uint8_t MOTOR_FAIL_BATTERY_BOLTAHGE_DIFF_82;
const static uint8_t MOTOR_FAIL_INVALID_VERSION;
/*! There is an gimbal attitude error which happens only in M600.*/
const static uint8_t MOTOR_FAIL_GIMBAL_GYRO_ABNORMAL;
const static uint8_t MOTOR_FAIL_GIMBAL_ESC_PITCH_NO_DATA;
const static uint8_t MOTOR_FAIL_GIMBAL_ESC_ROLL_NO_DATA;
const static uint8_t MOTOR_FAIL_GIMBAL_ESC_YAW_NO_DATA;
const static uint8_t MOTOR_FAIL_GIMBAL_FIRM_IS_UPDATING;
const static uint8_t MOTOR_FAIL_GIMBAL_OUT_OF_CONTROL;
/*! The gimbal has self-oscillation in the pitch direction. <br>
* Please lock the camera or reduce the gimbal sensitivity.*/
const static uint8_t MOTOR_FAIL_GIMBAL_PITCH_SHOCK;
/*! The gimbal has self-oscillation in the roll direction. <br>
* Please lock the camera or reduce the gimbal sensitivity.*/
const static uint8_t MOTOR_FAIL_GIMBAL_ROLL_SHOCK;
/*! The gimbal has self-oscillation in the yaw direction. <br>
* Please lock the camera or reduce the gimbal sensitivity.*/
const static uint8_t MOTOR_FAIL_GIMBAL_YAW_SHOCK;
/*! IMU calibration finished. Please reset aircraft.*/
const static uint8_t MOTOR_FAIL_IMU_CALI_SUCCESS;
const static uint8_t MOTOR_FAIL_TAKEOFF_EXCEPTION;
/*! The motor is locked. Please check the status of the motors and blades.*/
const static uint8_t MOTOR_FAIL_ESC_STALL_NEAR_GOUND;
/*! The feedback speed of motor is different with the input command.*/
const static uint8_t MOTOR_FAIL_ESC_UNBALANCE_ON_GRD;
/*! There are some no-load motors. Please check the status of the motors and
blades.*/
const static uint8_t MOTOR_FAIL_ESC_PART_EMPTY_ON_GRD;
/*! During starting, the speed of any motor is less than the minimum
* starting
* speed. <br>
* For N3 and A3, the minimum starting speed is 100rpm. <br>
* For M600, the minimum starting speed is 700rpm. <br>
* For other aircrafts, the minimum starting speed is 1100rpm.*/
const static uint8_t MOTOR_FAIL_ENGINE_START_FAILED;
const static uint8_t MOTOR_FAIL_AUTO_TAKEOFF_LAUNCH_FAILED;
const static uint8_t MOTOR_FAIL_ROLL_OVER_ON_GRD;
const static uint8_t MOTOR_FAIL_BAT_VERSION_ERR;
const static uint8_t MOTOR_FAIL_RTK_INITING;
/*! rtk yaw and magnetometer yaw misaligned */
const static uint8_t MOTOR_FAIL_RTK_FAIL_TO_INIT;
const static uint8_t MOTOR_FAIL_RESERVED_104;
const static uint8_t MOTOR_FAIL_RESERVED_105;
const static uint8_t MOTOR_FAIL_RESERVED_106;
const static uint8_t MOTOR_FAIL_RESERVED_107;
const static uint8_t MOTOR_FAIL_RESERVED_108;
const static uint8_t MOTOR_FAIL_RESERVED_109;
/*! The motor status shows the motor has been started.*/
const static uint8_t START_MOTOR_FAIL_MOTOR_STARTED;
const static uint8_t MOTOR_FAIL_INTERNAL_111;
const static uint8_t MOTOR_FAIL_ESC_CALIBRATING;
const static uint8_t MOTOR_FAIL_GPS_SIGNATURE_INVALID;
const static uint8_t MOTOR_FAIL_GIMBAL_CALIBRATING;
/*! The aircraft is force locked by APP.*/
const static uint8_t MOTOR_FAIL_FORCE_DISABLE;
/*! The height of the takeoff is abnormal. <br>
* This error happens when the takeoff height relative to ground is up to
* 100m.*/
const static uint8_t TAKEOFF_HEIGHT_EXCEPTION;
const static uint8_t MOTOR_FAIL_ESC_NEED_UPGRADE;
/*! IMU direction is misaligned.*/
const static uint8_t MOTOR_FAIL_GYRO_DATA_NOT_MATCH;
/*! APP stops the takeoff.*/
const static uint8_t MOTOR_FAIL_APP_NOT_ALLOW;
const static uint8_t MOTOR_FAIL_COMPASS_IMU_MISALIGN;
const static uint8_t MOTOR_FAIL_FLASH_UNLOCK;
/*! The ESC is in the buzzing mode.*/
const static uint8_t MOTOR_FAIL_ESC_SCREAMING;
const static uint8_t MOTOR_FAIL_ESC_TEMP_HIGH;
/*! The battery is not in place. */
const static uint8_t MOTOR_FAIL_BAT_ERR;
/*! The aircraft detects an impact if the measured value of
* accelerometer exceeds 8g near ground.*/
const static uint8_t IMPACT_IS_DETECTED;
/*! Under the P stall, the aircraft mode degenerates to the Attitude mode.*/
const static uint8_t MOTOR_FAIL_MODE_FAILURE;
/*! The aircraft recently had an error of NO. 125.*/
const static uint8_t MOTOR_FAIL_CRAFT_FAIL_LATELY;
/*! The code logic is illegal.*/
const static uint8_t MOTOR_FAIL_MOTOR_CODE_ERROR;
/*! @brief Flight Status enum
* @note this is not just an acknowledgement,
* it is also a DataBroadcast/DataSubscription telemetry message.
*
*/
typedef struct FlightStatus
{
const static uint8_t STOPED;
const static uint8_t ON_GROUND;
const static uint8_t IN_AIR;
} FlightStatus;
};
/*!
* @brief CMDSet: Activation ACK Error Codes
*/
class ActivationACK
{
public:
const static uint16_t SUCCESS;
const static uint16_t PARAMETER_ERROR;
const static uint16_t ENCODE_ERROR;
const static uint16_t NEW_DEVICE_ERROR;
const static uint16_t DJIGO_APP_NOT_CONNECTED;
const static uint16_t NETWORK_ERROR;
const static uint16_t SERVER_ACCESS_REFUSED;
const static uint16_t ACCESS_LEVEL_ERROR;
const static uint16_t OSDK_VERSION_ERROR;
};
/*!
* @brief CMDSet: Control ACK Error Codes
*/
class ControlACK
{
public:
/*!
* @brief CMDID: SetControl
*/
typedef struct SetControl
{
const static uint16_t RC_MODE_ERROR;
const static uint16_t RELEASE_CONTROL_SUCCESS;
const static uint16_t OBTAIN_CONTROL_SUCCESS;
const static uint16_t OBTAIN_CONTROL_IN_PROGRESS;
const static uint16_t RELEASE_CONTROL_IN_PROGRESS;
const static uint16_t RC_NEED_MODE_F;
const static uint16_t RC_NEED_MODE_P;
const static uint16_t IOC_OBTAIN_CONTROL_ERROR;
} SetControl;
/*!
* @note New 3.3 release
*
* @brief CMDID: Task
*/
typedef struct Task
{
const static uint16_t SUCCESS;
const static uint16_t MOTOR_ON;
const static uint16_t MOTOR_OFF;
const static uint16_t IN_AIR;
const static uint16_t NOT_IN_AIR;
const static uint16_t NO_HOMEPOINT;
const static uint16_t BAD_GPS;
// Do not consider as error?
const static uint16_t IN_SIMULATOR_MODE;
const static uint16_t ALREADY_RUNNING;
const static uint16_t NOT_RUNNING;
const static uint16_t INVAILD_COMMAND;
const static uint16_t NO_LANDING_GEAR;
// Do not consider as error?
const static uint16_t GIMBAL_MOUNTED;
const static uint16_t BAD_SENSOR;
const static uint16_t ALREADY_PACKED;
const static uint16_t NO_PACKED;
const static uint16_t PACKED_MODE_NOT_SUPPORTED;
} Task;
}; // Control class
/*!
* @note New in 3.3 release
*
* @brief CMDSet: Subscribe
*/
class SubscribeACK
{
public:
const static uint8_t SUCCESS;
const static uint8_t ILLEGAL_INPUT;
const static uint8_t VERSION_DOES_NOT_MATCH;
const static uint8_t PACKAGE_OUT_OF_RANGE;
const static uint8_t PACKAGE_ALREADY_EXISTS;
const static uint8_t PACKAGE_DOES_NOT_EXIST;
const static uint8_t ILLEGAL_FREQUENCY;
const static uint8_t PACKAGE_TOO_LARGE;
const static uint8_t PIPELINE_OVERFLOW;
const static uint8_t INTERNAL_ERROR_0X09;
const static uint8_t PACKAGE_EMPTY;
const static uint8_t INPUT_SEGMENTATION_FAULT;
const static uint8_t ILLEGAL_UID;
const static uint8_t PERMISSION_DENY;
const static uint8_t MULTIPLE_SUBSCRIBE;
const static uint8_t SOUCE_DEVICE_OFFLINE;
const static uint8_t PAUSED;
const static uint8_t RESUMED;
const static uint8_t INTERNAL_ERROR_0X4A;
const static uint8_t INTERNAL_ERROR_0X50;
const static uint8_t VERSION_VERSION_TOO_FAR;
const static uint8_t VERSION_UNKNOWN_ERROR;
const static uint8_t INTERNAL_ERROR_0XFF;
};
/*!
* @brief Mission ACK Error Codes
*/
class MissionACK
{
public:
/*! @brief Common Mission ACK codes
*
*/
typedef struct Common
{
const static uint8_t SUCCESS;
const static uint8_t WRONG_WAYPOINT_INDEX;
const static uint8_t RC_NOT_IN_MODE_F;
const static uint8_t OBTAIN_CONTROL_REQUIRED;
const static uint8_t CLOSE_IOC_REQUIRED;
const static uint8_t NOT_INITIALIZED;
const static uint8_t NOT_RUNNING;
const static uint8_t IN_PROGRESS;
/*!Estimated time needed to perform a task is greater
* than the flight time left*/
const static uint8_t TASK_TIMEOUT;
const static uint8_t OTHER_MISSION_RUNNING;
/*!GPS signal GPS_LEVEL < 3*/
const static uint8_t BAD_GPS;
const static uint8_t RTK_NOT_READY;
/*!Battery beyond first-stage voltage for non-smart battery
* OR first-stage volume for smart battery*/
const static uint8_t LOW_BATTERY;
const static uint8_t VEHICLE_DID_NOT_TAKE_OFF;
const static uint8_t INVALID_PARAMETER;
/*!Execution condition is not satisfied
* @note Aircraft not in one of the following modes:
* Assist Takeoff
* Auto Takeoff
* Auto Landing
* Go Home
*/
const static uint8_t CONDITIONS_NOT_SATISFIED;
const static uint8_t CROSSING_NO_FLY_ZONE;
/*!HomePoint not recorded*/
const static uint8_t UNRECORDED_HOME;
const static uint8_t AT_NO_FLY_ZONE;
/*!Height is too high (higher than MAX flying height
* set by user (default: 120m))*/
const static uint8_t TOO_HIGH;
/*!Height is too low (lower than 5m)*/
const static uint8_t TOO_LOW;
const static uint8_t TOO_FAR_FROM_HOME;
/*!Mission not supported*/
const static uint8_t NOT_SUPPORTED;
/*!Current position of aircraft is too far from the HotPoint
* or first point*/
const static uint8_t TOO_FAR_FROM_CURRENT_POSITION;
const static uint8_t BEGGINER_MODE_NOT_SUPPORTED;
const static uint8_t TAKE_OFF_IN_PROGRESS;
const static uint8_t LANDING_IN_PROGRESS;
const static uint8_t RRETURN_HOME_IN_PROGRESS;
const static uint8_t START_MOTORS_IN_PROGRESS;
const static uint8_t INVALID_COMMAND;
const static uint8_t UNKNOWN_ERROR;
} Common;
//! @brief Follow Mission ACK Error Code
typedef struct Follow
{
const static uint8_t TOO_FAR_FROM_YOUR_POSITION_LACK_OF_RADIO_CONNECTION;
const static uint8_t CUTOFF_TIME_OVERFLOW;
const static uint8_t GIMBAL_PITCH_ANGLE_OVERFLOW;
} Follow;
//! @brief HotPoint Mission ACK Error Code
typedef struct HotPoint
{
const static uint8_t INVALID_RADIUS;
const static uint8_t YAW_RATE_OVERFLOW;
/*
* Start point given by user during HotPoint mission initialization is
* invalid.
* Available options are :
* 0 - North to the HP
* 1 - South
* 2 - West
* 3 - East
* 4 - Nearest Point
*/
const static uint8_t INVALID_START_POINT;
const static uint8_t INVALID_YAW_MODE;
const static uint8_t TOO_FAR_FROM_HOTPOINT;
const static uint8_t INVALID_PAREMETER;
const static uint8_t INVALID_LATITUDE_OR_LONGITUTE;
const static uint8_t INVALID_DIRECTION;
const static uint8_t IN_PAUSED_MODE;
const static uint8_t FAILED_TO_PAUSE;
} HotPoint;
//! @brief WayPoint Mission ACK Error Code
typedef struct WayPoint
{
const static uint8_t INVALID_DATA;
const static uint8_t INVALID_POINT_DATA;
const static uint8_t DISTANCE_OVERFLOW;
const static uint8_t TIMEOUT;
const static uint8_t POINT_OVERFLOW;
const static uint8_t POINTS_TOO_CLOSE;
const static uint8_t POINTS_TOO_FAR;
const static uint8_t CHECK_FAILED;
const static uint8_t INVALID_ACTION;
const static uint8_t POINT_DATA_NOT_ENOUGH;
const static uint8_t DATA_NOT_ENOUGH;
const static uint8_t POINTS_NOT_ENOUGH;
const static uint8_t IN_PROGRESS;
const static uint8_t NOT_IN_PROGRESS;
const static uint8_t INVALID_VELOCITY;
} WayPoint;
//! @brief IOC ACK Mission Error Code
typedef struct IOC
{
const static uint8_t TOO_CLOSE_TO_HOME;
const static uint8_t UNKNOWN_TYPE;
} IOC;
}; // Class Mission
/*!
* @brief CMDSet: MFIO
* @note New in 3.3 release
*/
class MFIOACK
{
public:
/*!
* @brief CMDID: init
*/
typedef struct init
{
const static uint8_t SUCCESS;
const static uint8_t UNKNOWN_ERROR;
const static uint8_t PORT_NUMBER_ERROR;
const static uint8_t PORT_MODE_ERROR;
const static uint8_t PORT_DATA_ERROR;
} init;
/*!
* @brief CMDID: set
*/
typedef struct set
{
const static uint8_t SUCCESS;
/*!Port not exit or not an output configuration*/
const static uint8_t CHANNEL_ERROR;
/*! Port not map to f channel*/
const static uint8_t PORT_NOT_MAPPED_ERROR;
} set;
/*!
* @brief CMDID: get
*/
typedef struct get
{
const static uint8_t SUCCESS; //! @note Anything else is failure
} get;
}; // Class MFIO
}; // Class ErrorCode
} // namespace OSDK
} // namespace DJI
#endif /* DJI_ERROR_H */