public static void writeParameters(MavLinkDrone drone, Parameters parameters) { if (drone == null || parameters == null) return; List<Parameter> parametersList = parameters.getParameters(); if (parametersList.isEmpty()) return; org.droidplanner.services.android.core.drone.profiles.Parameters droneParams = drone.getParameters(); for (Parameter proxyParam : parametersList) { droneParams.sendParameter( new org.droidplanner.services.android.core.parameters.Parameter( proxyParam.getName(), proxyParam.getValue(), proxyParam.getType())); } }
public static Parameters getParameters( MavLinkDrone drone, Context context, Map<String, Parameter> cachedParameters) { if (drone == null) return new Parameters(); final Map<String, Parameter> incompleteParams = new HashMap<>(); final List<Parameter> parametersList = new ArrayList<>(); Map<String, org.droidplanner.services.android.core.parameters.Parameter> droneParameters = drone.getParameters().getParameters(); if (!droneParameters.isEmpty()) { for (org.droidplanner.services.android.core.parameters.Parameter param : droneParameters.values()) { if (param.name != null) { Parameter cachedParam = cachedParameters.get(param.name); if (cachedParam == null) { cachedParam = new Parameter(param.name, param.value, param.type); incompleteParams.put(param.name, cachedParam); cachedParameters.put(param.name, cachedParam); } else { cachedParam.setValue(param.value); cachedParam.setType(param.type); } parametersList.add(cachedParam); } } final VehicleProfile profile = drone.getVehicleProfile(); if (!incompleteParams.isEmpty() && profile != null) { try { String metadataType = profile.getParameterMetadataType(); if (metadataType != null) { ParameterMetadataLoader.load(context, metadataType, incompleteParams); } } catch (IOException | XmlPullParserException e) { Timber.e(e, e.getMessage()); } } } return new Parameters(new ArrayList<>(parametersList)); }
public static void refreshParameters(MavLinkDrone drone) { if (drone == null) return; drone.getParameters().refreshParameters(); }