diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..e69de29bb diff --git a/dronekit/__init__.py b/dronekit/__init__.py index 51c659ec4..76bc70e33 100644 --- a/dronekit/__init__.py +++ b/dronekit/__init__.py @@ -1013,6 +1013,16 @@ class Vehicle(HasObservers): to the project! """ + MAV_STATE_UNINIT = 0 + MAV_STATE_BOOT = 1 + MAV_STATE_CALIBRATING = 2 + MAV_STATE_STANDBY = 3 + MAV_STATE_ACTIVE = 4 + MAV_STATE_CRITICAL = 5 + MAV_STATE_EMERGENCY = 6 + MAV_STATE_HILSIM = 7 + MAV_STATE_POWEROFF = 8 + def __init__(self, handler): super(Vehicle, self).__init__() @@ -1067,6 +1077,7 @@ def listener(self, name, m): self._heading = None self._airspeed = None self._groundspeed = None + self._isflying = False @self.on_message('VFR_HUD') def listener(self, name, m): @@ -1790,6 +1801,18 @@ def system_status(self): 7: SystemStatus('POWEROFF'), }.get(self._system_status, None) + + @property + def isflying (self): + isFlying = ((self._system_status == Vehicle.MAV_STATE_ACTIVE) or + ((self._isflying == True) and (self._system_status == Vehicle.MAV_STATE_CRITICAL or Vehicle._system_status == self.MAV_STATE_EMERGENCY))) + + self._isflying = isFlying + + return self._isflying + + + @property def heading(self): """ diff --git a/examples/vehicle_state/vehicle_state.py b/examples/vehicle_state/vehicle_state.py index c4d7d55c6..3fea45161 100644 --- a/examples/vehicle_state/vehicle_state.py +++ b/examples/vehicle_state/vehicle_state.py @@ -77,6 +77,7 @@ print " Rangefinder voltage: %s" % vehicle.rangefinder.voltage print " Heading: %s" % vehicle.heading print " Is Armable?: %s" % vehicle.is_armable +print " Is Flying: %s" % vehicle.isflying print " System status: %s" % vehicle.system_status.state print " Groundspeed: %s" % vehicle.groundspeed # settable print " Airspeed: %s" % vehicle.airspeed # settable