Hello,
I’m trying to get current number of satellites the ANAFI sees pre-flight via olympe and I tried the following:
import olympe
from olympe.messages.ardrone3.PilotingState import PositionChanged
from olympe.messages.ardrone3.GPSSettingsState import GPSFixStateChanged
from olympe.messages.ardrone3.Piloting import TakeOff
from olympe.messages.ardrone3.GPSSettingsState import HomeChanged
from olympe.messages.ardrone3.GPSState import NumberOfSatelliteChanged
drone= olympe.Drone("192.168.42.1", loglevel=1)
drone.connection()
# Wait for GPS fix
drone(GPSFixStateChanged(_policy = 'wait'))
print("GPS position before take-off :", drone.get_state(HomeChanged))
print("GPS number of satellites changed: ", drone.get_state(NumberOfSatelliteChanged))
This is the relevant part of the log, that says that GPSState.NumberofSatelliteChanged State is uninitialized. Is it only initialized after it gets a fix?
RuntimeError: Unknown message id 2432696335
GPS position before take-off : OrderedDict([('latitude', 500.0), ('longitude', 500.0), ('altitude', 500.0)])
Traceback (most recent call last):
File "ref_guiTest.py", line 152, in <module>
print("GPS number of satellites changed: ", drone.get_state(NumberOfSatelliteChanged))
File "/home/marcel/code/parrot-groundsdk/packages/olympe/src/olympe/arsdkng/drone.py", line 1424, in get_state
return self._get_message(message.id).state()
File "/home/marcel/code/parrot-groundsdk/packages/olympe/src/olympe/arsdkng/messages.py", line 950, in state
raise RuntimeError("{} state is uninitialized".format(self.fullName))
RuntimeError: ardrone3.GPSState.NumberOfSatelliteChanged state is uninitialized