Как извлечь данные EXTRA_PARAMETER во время события PARAMETER_RECEIVED?

Используя Dronekit Android, я прослушиваю события в onDroneEvent. Одним из таких событий является AttributeEvent.PARAMETER_RECEIVED.

Я могу получить другие атрибуты, такие как отношение, батарея, сигнал rssi и т. д. Только не знаю, как получить доступ к параметрам, отправленным с дрона после подключения.

public void onDroneEvent(String event, Bundle extras) {
        switch (event) {
            case AttributeEvent.PARAMETER_RECEIVED:
                //Grab extra parameter data
                //possibly using AttributeEventExtra.EXTRA_PARAMETER_NAME
                // AttributeEventExtra.EXTRA_PARAMETER_INDEX
                // AttributeEventExtra.EXTRA_PARAMETER_VALUE
                break;
. . . removed extraneous code . . .

Любые указатели будут оценены.


person Newtonian    schedule 22.06.2016    source источник


Ответы (1)


Вы можете посмотреть, как это делается, в Экран параметров в Tower для справки.

Как правило, параметры с дрона отправляются после подключения или после явного вызова VehicleApi#refreshParameters().

Чтобы отслеживать их обновление, вы можете прослушивать PARAMETERS_REFRESH_STARTED и PARAMETERS_REFRESH_COMPLETED событий. Между этими двумя событиями несколько PARAMETER_RECEIVED события также будут отправляться для каждого обновляемого параметра.

Вы также можете получить доступ к последнему извлеченному набору параметров, используя:

Parameters parameters = drone.getAttribute(AttributeType.PARAMETERS);

person ne0fhyk    schedule 22.06.2016
comment
Я просмотрел справку по башне, чтобы узнать, что происходит во время события PARAMETER_RECEIVED, и оказалось, что он просто обновляет индикатор выполнения. Я обязательно попробую Drone.getAttribute(AttributeType.PARAMETERS) и посмотрю, получит ли он самый последний параметр во время этого события. - person Newtonian; 23.06.2016