Skip to main content

class AUTELMCSystemState

@interface AUTELMCSystemState : NSObject<NSCopying>

describe:This class includes the states of main controller. The real-time state of main controller is updated by AUTELDroneMainControllerDelegate mainController:didUpdateSystemState

property satelliteCount

@property(nonatomic, assign) int satelliteCount;

describe:Number of visible satellites of aircraft


property homeLocation

@property(nonatomic, assign) CLLocationCoordinate2D homeLocation;

describe:Home location of the aircraft as a coordinate.

This is the location where the aircraft fly to when go home is triggered. Call AUTELDroneMainController. setHomePointAtCurrentGPSPositionWithComletion and setHomePoint:withCompletion to set home point.

The main controller sets current location as home point when motors started. If the home point is invalid, property isHomeInvalid will turn to YES.


property droneLocation

@property(nonatomic, assign) CLLocationCoordinate2D droneLocation;

describe:Current location of the aircraft as a coordinate.

If property isGPSWeakWarning is Yes, then current location of drone is invalid.


property velocityX

@property(nonatomic, assign) float velocityX;

describe:Current speed of the aircraft in the x direction in meters per second using the N-E-D (North-East-Down) coordinate system.


property velocityY

@property(nonatomic, assign) float velocityY;

describe:Current speed of the aircraft in the y direction in meters per second using the N-E-D (North-East-Down) coordinate system.


property velocityZ

@property(nonatomic, assign) float velocityZ;

describe:Current speed of the aircraft in the z direction in meters per second using the N-E-D (North-East-Down) coordinate system.


property altitude

@property(nonatomic, assign) float altitude;

describe:Relative altitude of the aircraft relative to take off location, in meters.


property altitudeMSL

@property(nonatomic, assign) float altitudeMSL;

describe:The absolute height of the aircraft relative to sea level (m), measured by barometer.


property distance

@property(nonatomic, assign) float distance;

describe:Distance between the aircraft and the Home point


property attitude

@property(nonatomic) AUTELAttitude attitude;

describe:The attidue of aircraft.

The range of attitude. pitch is from - π/2 to π/2. Sets to -π/2 so that the head of aircraft vertically faces down. Sets to π/2 so that the head of aircraft vertically faces up. Sets to 0 so that the front and back wing stays in horizon.

The range of attitude. roll is –π to π. Sets to 0 so that the left and right ailerons stays in horizon. Sets to -π/2 so that the right aileron is higher than left aileron and stays vertically to the ground. Sets to π/2 so that the left aileron is high then the right aileron and stays vertically to the ground. Sets to π or –π so that the aircraft horizontal inverse.

The range of attitude. yaw is from –π to π. Sets 0 for attitude.yaw to face north, sets -π/2 to face west, sets π/2 to face east and sets π or –π to face south.


property powerPercentage

@property(nonatomic, assign) float powerPercentage;

describe:Remain power percentage of the battery.


property remainingFlightTime

remainingFlightTime@property(nonatomic, assign) float remainingFlightTime;

describe:Remaining flight time


property currentElectricity

@property(nonatomic, assign) float currentElectricity;

describe:The current electricity volume of battery (mAh).


property powerWarning

@property(nonatomic, assign) AUTELDroneLowPowerWarning powerWarning;

describe:Lower battery warning , AUTELDroneLowPowerWarning

When powerWarning is DroneLowPower, the aircraft will start to go home. When powerWarning is DroneVeryLowPower, the aircraft will start to land on the ground.


property isUnknowBattery

@property(nonatomic, assign) BOOL isUnknowBattery;

describe:This property describes whether the battery is an unknown battery.


property isFlying

@property(nonatomic, assign) BOOL isFlying;

describe:Return whether the drone is flying.


property isAutoFlyingToHomePoint

@property(nonatomic, assign) BOOL isAutoFlyingToHomePoint;

describe:Return whether the drone is auto flying to home point.


property flightMode

@property(nonatomic, assign) AUTELMainControllerFlightMode flightMode;

describe:Return flight mode. AUTELMainControllerFlightMode


property mainMode

@property(nonatomic, assign) AUTELMainControllerMainMode mainMode;

describe:Main mode. AUTELMainControllerMainMode


property noFlyStatus

@property(nonatomic, assign) AUTELMainControllerNoFlyStatus noFlyStatus;

describe:Restricted / no fly status of aircraft. AUTELMainControllerNoFlyStatus


property gpsSignalLevel

@property(nonatomic, assign) AUTELGpsSignalLevel gpsSignalLevel;

describe:GPS signal level. AUTELGpsSignalLevel


property isFailsafe

@property(nonatomic, assign) BOOL isFailsafe;

describe:This property describes whether RC singal is lost, if lost then execute failsafe program.


property isIMUPreheating

@property(nonatomic, assign) BOOL isIMUPreheating;

describe:This property describes whether IMU is pre-heating.


property isCompassError

@property(nonatomic, assign) BOOL isCompassError;

describe:This property describes whether compass is abnomal.


property compassInterferenceLevel

@property(nonatomic, assign) AUTELCompassInterferenceLevel compassInterferenceLevel;

describe:The level of compass interference. AUTELCompassInterferenceLevel


property isUltrasonicWorking

@property(nonatomic, assign) BOOL isUltrasonicWorking;

describe:This property describes whether ultrasonic is working.


property ultrasonicHeight

@property(nonatomic, assign) float ultrasonicHeight;

describe:Height of aircraft measured by the ultrasonic, data is valid while property isUltrasonicWorking is YES.


property isMotorWorking

@property(nonatomic, assign) BOOL isMotorWorking;

describe:This property describes whether motors are on.


property mcWarningFlage

@property(nonatomic, assign) uint32_t mcWarningFlage;

describe:Main controller warning flag.


property isReachMaxRange

@property(nonatomic, assign) BOOL isReachMaxRange;

describe:This property describes whether the aircraft reaches maximum distance.


property isNearMaxRange

@property(nonatomic, assign) BOOL isNearMaxRange;

describe:This property describes whether the aircraft is close to the farthest flight distance.


property isReachMaxHeight

@property(nonatomic, assign) BOOL isReachMaxHeight;

describe:This property describes whether the aircraft reaches maximum height.


property isGPSWeakWarning

@property(nonatomic, assign) BOOL isGPSWeakWarning;

describe:This property describes whether there is a GPS weak warning. If Yes, then the value of droneLocation is invalid.


property isPushThrottleWhileGoHome

@property(nonatomic, assign) BOOL isPushThrottleWhileGoHome;

describe:If user presses go home button while pushing throttle. isPushThrottleWhileGoHome turns to Yes, else stays in no value.


property isTakeOffBeforArm

@property(nonatomic, assign) BOOL isTakeOffBeforArm;

describe:This property describes whether user is pressing auto take-off button while motors are off.


property isFrontLEDTurnOn

@property(nonatomic, assign) BOOL isFrontLEDTurnOn;

describe:This property describes whether front LED is on.


property compassCalibrationStatus

@property(nonatomic, assign) AUTELCompassCalibrationStatus compassCalibrationStatus;

describe:This property describes the status of compass calibration. AUTELCompassCalibrationStatus


property turnOnMotorError

@property(nonatomic, assign) uint8_t turnOnMotorError;

describe:The reason why motors can not be fire up.

If motors can be fired up for some reasons, the value of turnOnMotoeError will ne assigned. Each bit of the value presents one error message, please check the detail error message in AUTELControlMotorError. Calculate the values of turnOnMotorError and AUTELControlMotorError to get the error message.


property batteryTemperatureWarning

@property(nonatomic, assign) AUTELBatteryTemperatureWarning batteryTemperatureWarning;

describe:Battery temperature alarm. AUTELBatteryTemperatureWarning


property isBatteryOverheated

@property(nonatomic, assign) BOOL isBatteryOverheated;

describe:This property describes whether the battery is overheated.


property isBatteryLowTemperature

@property(nonatomic, assign) BOOL isBatteryLowTemperature;

describe:This property describes whether the battery has too low temperature.


property isBatteryVoltageDiff

@property(nonatomic, assign) BOOL isBatteryVoltageDiff;

describe:This property describes whether Battery cell voltage imbalance


property isIMUOverheated

@property(nonatomic, assign) BOOL isIMUOverheated;

describe:This property describes whether IMU is overheated.


property isHomeInvalid

@property(nonatomic, assign) BOOL isHomeInvalid;

describe:This property describes whether home point is valid.


property isAircraftRequestingToGoHome

@property(nonatomic, assign) BOOL isAircraftRequestingToGoHome;

describe:The flight control requests to return, if the user does not respond, the aircraft will return after 10s.


property isStickLimited

@property(nonatomic, assign) BOOL isStickLimited;

describe:is stick limited


property isHomePointNotAccurate

@property(nonatomic, assign) BOOL isHomePointNotAccurate;

describe:is Return point may not be accurate


property mainModeString

@property(nonatomic, copy) NSString* mainModeString;

describe:Main mode string. ex. "GPS", "Atti", "IOC", "Starpoint".


property virtualMode

@property(nonatomic, assign) AUTELVirtualStickMode virtualMode;

describe:Virtual joystick mode,AUTELVirtualStickMode


property versionID

@property(nonatomic, assign) NSUInteger versionID;

describe:Version ID


property supportRTK

@property(nonatomic, assign) BOOL supportRTK;

describe:Support RTK


property aircraftGPSSignalRadius

@property(nonatomic, assign) double aircraftGPSSignalRadius;

describe:Aircraft GPS signal radius


property imuCalibrationStatus

@property(nonatomic, assign) AUTELIMUCalibrationStatus imuCalibrationStatus;

describe: This property describes the status of IMU calibration. AUTELIMUCalibrationStatus


property imuCalibrationWarn

@property(nonatomic, assign) AUTELIMUCalibrationWarn imuCalibrationWarn;

describe:IMU calibration warn. AUTELIMUCalibrationWarn


property accessoryWorkMode

@property(nonatomic) AUTELAccessoryWorkMode accessoryWorkMode;

describe:Accessory working mode. AUTELAccessoryWorkMode.


property accessoryAdjustValue

@property(nonatomic) NSInteger accessoryAdjustValue;

describe:Accessory adjustment value, in range [0-100]. If accessoryWorkMode is 0 or 1, adjustment value indicates brightness If accessoryWorkMode is 2, adjustment value indicates volume


enum AUTELMainControllerFlightMode

describe:Define main cotroller flight mode.

typedef NS_ENUM(uint8_t, AUTELMainControllerFlightMode) {
/**
* @brief Motors stopped.
*
*/
AutelMCFlightModeDisarm = 0,
/**
* @brief Motors rotating with aircraft on the ground.
*
*/
AutelMCFlightModeLanded = 1,
/**
* @brief The aircraft is landing.
*
*/
AutelMCFlightModeLanding = 2,
/**
* @brief The airrcraft is taking off (with the use of the Takeoff/landing button or left command stick).
*
*/
AutelMCFlightModeTakeoff = 3,
/**
* @brief The aircraft is flying in ATTI mode.
*
*/
AutelMCFlightModeAttitude = 4,
/**
* @brief The aircraft is flying in GPS mode or Starpoint mode.
*
*/
AutelMCFlightModeGPS = 5,
/**
* @brief The aircraft is flying in IOC mode.
*
*/
AutelMCFlightModeIOC = 6,
/**
* @brief The aircraft is returing to the home point according to Go Home orders sent through remote controller or app.
*
*/
AutelMCFlightModeManualGoHome = 7,
/**
* @brief The aircraft is returning to the home point because low battery warning (25%) is activated.
*
*/
AutelMCFlightModeLowBattreyGoHome = 8,
/**
* @brief The aircraft is returning to the home point because minimum battery level needed for Go Home is reached.
*
*/
AutelMCFlightModeSmartLowBatteryGoHome = 9,
/**
* @brief The aircraft is returning to the home point because Failsafe is treggered by signal loss between the remote controller and the aircraft.
*
*/
AutelMCFlightModeFailSaveGoHome = 10,
/**
* @brief Auto hovering due to signal loss with the remote controller.
*
*/
AutelMCFlightModeFailSaveHover = 11,
/**
* @brief The aircraft is performing the Waypoint task.
*
*/
AutelMCFlightModeWaypoint = 12,
/**
* @brief Waypoint task paused. Aircraft hovering.
*
*/
AutelMCFlightModeWaypointPause = 13,
/**
* @brief The aircraft exited from the Aotopilot mode and is returning to the home point automatically.
*
*/
AutelMCFlightModeWaypointGoHome = 14,
/**
* @brief The aircraft is performing the Follow task.
*
*/
AutelMCFlightModeFollowMe = 15,
/**
* @brief The aircraft is performing the Orbit task.
*
*/
AutelMCFlightModeHotpoint = 16,
/**
* @brief Follow task paused. Aircraft hovering.
*
*/
AutelMCFlightModeFollowMePause = 17,
/**
* @brief Orbit task paused. Aircraft hovering.
*
*/
AutelMCFlightModeHotpointPause = 18,
/**
* @see AutelMCFlightModeHotpointPause
*/
AutelMCFlightModeEnd = AutelMCFlightModeHotpointPause,

/**
* @brief The aircraft is performing the 360° Shoot task.
*
*/
AutelMCFlightMode360Shoot = 19,
/**
* @brief The aircraft is performing the Epic task.
*
*/
AutelMCFlightModeEpic = 20,
/**
* @brief The aircraft is performing the Rise task.
*
*/
AutelMCFlightModeRise = 21,
/**
* @brief The aircraft is performing the FadeAway task.
*
*/
AutelMCFlightModeFadeAway = 22,
/**
* @brief The aircraft is performing the Intosky task.
*
*/
AutelMCFlightModeIntosky = 23,
/**
* @brief The aircraft is performing the Boomerang task.
*
*/
AutelMCFlightModeBoomerang = 24,
/**
* @brief The aircraft is performing the Screw task.
*
*/
AutelMCFlightModeScrew = 25,
/**
* @brief The aircraft is performing the Parabola task.
*
*/
AutelMCFlightModeParabola = 26,
/**
* @brief The aircraft is performing the Asteroid task.
*
*/
AutelMCFlightModeAsteroid = 27,
/**
* @brief The aircraft is performing the Circle Round task.
*
*/
AutelMCFlightModeCircleRound= 28,
/**
* @brief The aircraft is performing the DollyZoom task.
*
*/
AutelMCFlightModeDollyZoom = 29,
/**
* @brief The aircraft is performing the Tripod task.
*
*/
AutelMCFlightModeTripod = 30,
/**
* @brief The aircraft is performing the Photographer task.
*
*/
AutelMCFlightModePhotographer = 31,

/**
* @brief The aircraft is performing the Rectangle task.
*
*/
AutelMCFlightModeRectangle = 32,
/**
* @brief Rectangle task paused. Aircraft hovering.
*
*/
AutelMCFlightModeRectanglePause = 33,

/**
* @brief The aircraft is performing the Polygon task.
*
*/
AutelMCFlightModePolygon = 34,
/**
* @brief Polygon task paused. Aircraft hovering.
*
*/
AutelMCFlightModePolygonPause = 35,

/**
* @brief The aircraft is performing the DelayShot task.
*
*/
AutelMCFlightModeDelayShot = 36,
/**
* @brief DelayShot task paused. Aircraft hovering.
*
*/
AutelMCFlightModeDelayShotPause = 37,

/**
* @brief The aircraft is performing the Oblique photography task.
*
*/
AutelMCFlightModeObliquePhoto = 38,
/**
* @brief Oblique photography task paused. Aircraft hovering.
*
*/
AutelMCFlightModeObliquePhotoPause = 39,

/**
* @brief The aircraft is performing the Panoramic photo task.
*
*/
AutelMCFlightModePanoramicPhoto = 40,
/**
* @brief Panoramic photo task paused. Aircraft hovering.
*
*/
AutelMCFlightModePanoramicPhotoPause = 41,

/**
* The Dynamic Track mode is common.__deprecated
*/
AutelMCFlightModeTrackCommonMode = 19 + 181,
/**
* The Dynamic Track mode is parallel.__deprecated
*/
AutelMCFlightModeTrackParallelMode = 20 + 181,
/**
* The Dynamic Track mode is tripod.__deprecated
*/
AutelMCFlightModeTrackLockedMode = 21 + 181,
/**
* @brief Indoor view point.__deprecated
*
*/
AutelMCFlightModePointFlyInside = 22 + 181,
/**
* @brief Outdoor view point.__deprecated
*
*/
AutelMCFlightModePointFlyOutside = 23 + 181,

/**
* @brief Unknown flight mode
*
*/
AutelMCFlightModeUnknow = 0xFF,
};

enum AUTELDroneLowPowerWarning

describe:Define low battery warning.

typedef NS_ENUM(uint8_t, AUTELDroneLowPowerWarning) {
/**
* @brief No low battery warning.
*
*/
DroneHeightPower,

/**
* @brief Low battery.
*
*/
DroneLowPower,

/**
* @brief Critical low battery.
*
*/
DroneVeryLowPower,

/**
* @brief Unknown
*
*/
DroneLowPowerUnknow = 0xFF
};

enum AUTELMainControllerMainMode

describe:Main mode.

typedef NS_ENUM(uint8_t, AUTELMainControllerMainMode) {
/**
* @brief Unknown main mode
*
*/
AUTELMCMainModeUnknown = 0,
/**
* @brief attitude (ATTI)
*
*/
AUTELMCMainModeAttitude,
/**
* @brief GPS
*
* GPS
*/
AUTELMCMainModeGPS,
/**
* @brief IOC
*
* IOC
*/
AUTELMCMainModeIOC,
/**
* @brief Indoor positioning
*
*/
AUTELMCMainModeStarpoint,
};

enum AUTELMainControllerNoFlyStatus

describe:Define No-fly state of the aircraft.

typedef NS_ENUM(uint8_t, AUTELMainControllerNoFlyStatus){
/**
* @brief Flying normal
*
*/
DroneNormalFlying = 0,

/**
* @brief Approaching Flight-Restricted Zone.
*
*/
DroneApproachingNoFlyZone = 1,

/**
* @brief Arrived at Flight-Restricted zone.
*
*/
DroneUnderLimitFlyZone = 2,

/**
* @brief Max altitude reached in Flight-Restricted Zone.
*
*/
DroneReachMaxFlyingHeightInLimitFlyZone = 3,

/**
* @brief Entering No-Fly zone.
*
*/
DroneInNoFlyZone = 4,

/**
* @brief Entering No-Fly zone.
*
*/
DroneInENNoFlyZone = 5,

/**
* @brief Unknown No-Fly state of the aircraft.
*
*/
UnknownStatus,
};

enum AUTELGpsSignalLevel

describe:Define GPS signal strength level.

typedef NS_ENUM(uint8_t, AUTELGpsSignalLevel){
/**
* @brief GPS signal critical weak
*
*/
GpsSignalLevel0,

/**
* @brief Gps signal very weak
*
*/
GpsSignalLevel1,

/**
* @brief Gps signal weak
*
*/
GpsSignalLevel2,

/**
* @brief Gps signal good
*
*/
GpsSignalLevel3,

/**
* @brief Gps signal very good
*
*/
GpsSignalLevel4,

/**
* @brief Gps signal very strong
*
*/
GpsSignalLevel5,

/**
* @brief No GPS signal or GPS signal unavailable.
*
*/
GpsSignalLevelNone,
};

enum AUTELControlMotorError

describe:Define the causes for failure of starting motors.

typedef NS_ENUM(uint8_t, AUTELControlMotorError) {
/**
* @brief Motor work normal
*
*/
AUTELControlMotorErrorNormal = 0,

/**
* @brief IMU abnormal
*
*/
AUTELControlMotorErrorIMUError = 1,

/**
* @brief critical low power
*
*/
AUTELControlMotorErrorCriticalLowPower = 2,

/**
* @brief Barometer abnormal
*
*/
AUTELControlMotorErrorBarometerError = 3,

/**
* @brief In NoFly zone
*
*/
AUTELControlMotorErrorInNoFlyZone = 4,

/**
* @brief IOC abnormal
*
*/
AUTELControlMotorErrorIOCError = 5,

/**
* @brief GPS signal not found in Beginner mode.
*
*/
AUTELControlMotorErrorNoviceModeEnableAndNoGPSSignal = 6,

/**
* @brief Aircraft tilting, turning off the motor
*
*/
AUTELControlMotorErrorDisamrAircraftTilt = 7,

/**
* @brief IMU abnormal, turn off the motor
*
*/
AUTELControlMotorErrorDisamrIMUError = 8,

/**
* @brief IMU preheating
*
*/
AUTELControlMotorErrorIMUPreheating = 9,

/**
* @brief Compass is calibrating
*
*/
AUTELControlMotorErrorIsCalibratingCompress = 10,

/**
* @brief Multiple sensor anomalies
*
*/
AUTELControlMotorErrorMultipleSensorsError = 11,

/**
* @brief Gimbal is not ready
*
*/
AUTELControlMotorErrorGimbalNotReady = 12,

/**
* @brief Firmware upgrade is in progress
*
*/
AUTELControlMotorErrorIsUpgradingFirmware = 13,

/**
* @brief Initializing attitude
*
*/
AUTELControlMotorErrorIsInitializingAttitude = 15,

/**
* @brief RTK is not ready
*
*/
AUTELControlMotorErrorIsRTKNotReady = 16,

/**
* @brief Aircraft is not activated
*
*/
AUTELControlMotorErrorIsAircraftNotActivated = 17,
};

enum AUTELVirtualStickMode

describe:App-controlled stick mode

typedef NS_ENUM(uint8_t, AUTELVirtualStickMode) {
/**
* @brief The aircraft is not in app-controlled stick mode.
*
*/
AUTELVirtualStickModeNone,
/**
* @brief App-controlled stick mode (control all axes)
*
*/
AUTELVirtualStickModeAll,
/**
* @brief App-controlled stick mde (control yaw axis only)
*
*/
AUTELVirtualStickModeYaw,
};