Skip to content

Commit 1df7e49

Browse files
Merge branch 'master' into beta
2 parents 0032b95 + e70dd1d commit 1df7e49

File tree

9 files changed

+58
-1
lines changed

9 files changed

+58
-1
lines changed

Android/res/values/preferences_keys.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ This file is used to store the preferences keys so that it's accessible and modi
2626
<string name="pref_storage_key">pref_storage</string>
2727
<string name="pref_rc_mode_key">pref_rc_mode</string>
2828
<string name="pref_mavlink_version_key">pref_mavlink_version</string>
29+
<string name="pref_firmware_version_key">pref_firmware_version</string>
2930
<string name="pref_usage_statistics_key">pref_usage_statistics</string>
3031
<string name="pref_version_key">pref_version</string>
3132
<string name="pref_request_max_volume_key">pref_request_max_volume</string>

Android/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -450,6 +450,7 @@
450450
<string name="normal_waypoint_toggle">Normal</string>
451451
<string name="spline_waypoint_toggle">Spline</string>
452452
<string name="mavlink_version">Mavlink Version</string>
453+
<string name="firmware_version">Firmware Version</string>
453454
<string name="empty_content">--</string>
454455
<string name="usage_statistics">Usage Statistics</string>
455456
<string name="pref_usage_statistics_title">Send usage statistics</string>

Android/res/xml/preferences.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -415,6 +415,13 @@
415415
android:selectable="false"
416416
android:shouldDisableView="false"
417417
android:title="@string/version" />
418+
<Preference
419+
android:enabled="false"
420+
android:key="@string/pref_firmware_version_key"
421+
android:persistent="false"
422+
android:selectable="false"
423+
android:shouldDisableView="false"
424+
android:title="@string/firmware_version" />
418425
<Preference
419426
android:enabled="false"
420427
android:key="@string/pref_mavlink_version_key"

Android/src/org/droidplanner/android/fragments/SettingsFragment.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,17 @@ private void updateMavlinkVersionPreference(String version) {
349349
}
350350
}
351351

352+
private void updateFirmwareVersionPreference(String firmwareVersion) {
353+
final Preference firmwareVersionPref = findPreference(getString(R.string.pref_firmware_version_key));
354+
if (firmwareVersionPref != null) {
355+
if (firmwareVersion == null) {
356+
firmwareVersionPref.setSummary(getString(R.string.empty_content));
357+
} else {
358+
firmwareVersionPref.setSummary(firmwareVersion);
359+
}
360+
}
361+
}
362+
352363
private boolean updateMapSettingsPreference(final String mapProviderName) {
353364
final DPMapProvider mapProvider = DPMapProvider.getMapProvider(mapProviderName);
354365
if (mapProvider == null)
@@ -447,6 +458,8 @@ public void onStart() {
447458
} else {
448459
updateMavlinkVersionPreference(null);
449460
}
461+
462+
updateFirmwareVersionPreference(drone.getFirmwareVersion());
450463

451464
drone.addDroneListener(this);
452465
}
@@ -477,12 +490,16 @@ public void onDroneEvent(DroneEventsType event, Drone drone) {
477490
switch (event) {
478491
case DISCONNECTED:
479492
updateMavlinkVersionPreference(null);
493+
updateFirmwareVersionPreference(null);
480494
break;
481495

482496
case HEARTBEAT_FIRST:
483497
case HEARTBEAT_RESTORED:
484498
updateMavlinkVersionPreference(String.valueOf(drone.getMavlinkVersion()));
485499
break;
500+
case FIRMWARE:
501+
updateFirmwareVersionPreference(drone.getFirmwareVersion());
502+
break;
486503
default:
487504
break;
488505
}

Core/src/org/droidplanner/core/MAVLink/MavLinkMsgHandler.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,9 @@ public void receiveData(MAVLinkMessage msg) {
107107
} else if (message.equals("Low Battery!")) {
108108
drone.getState().setWarning(message);
109109
break;
110+
} else if (message.contains("ArduCopter")){
111+
drone.setFirmwareVersion(message);
112+
break;
110113
}
111114
break;
112115
}

Core/src/org/droidplanner/core/drone/DroneImpl.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,4 +233,14 @@ public GuidedPoint getGuidedPoint() {
233233
public Calibration getCalibrationSetup() {
234234
return calibrationSetup;
235235
}
236+
237+
@Override
238+
public String getFirmwareVersion() {
239+
return type.getFirmwareVersion();
240+
}
241+
242+
@Override
243+
public void setFirmwareVersion(String message) {
244+
type.setFirmwareVersion(message);
245+
}
236246
}

Core/src/org/droidplanner/core/drone/DroneInterfaces.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,11 @@ public enum DroneEventsType {
200200
/**
201201
*
202202
*/
203-
WARNING_SIGNAL_WEAK,
203+
WARNING_SIGNAL_WEAK,
204+
/**
205+
* Announces that a new version for the firmware has been received
206+
*/
207+
FIRMWARE,
204208
}
205209

206210
public interface OnDroneListener {

Core/src/org/droidplanner/core/drone/variables/Type.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
public class Type extends DroneVariable {
1111

1212
private int type = MAV_TYPE.MAV_TYPE_GENERIC;
13+
private String firmwareVersion = null;
1314

1415
public Type(Drone myDrone) {
1516
super(myDrone);
@@ -55,4 +56,13 @@ public FirmwareType getFirmwareType() {
5556
// unsupported
5657
}
5758

59+
public String getFirmwareVersion() {
60+
return firmwareVersion ;
61+
}
62+
63+
public void setFirmwareVersion(String message) {
64+
firmwareVersion = message;
65+
myDrone.notifyDroneEvent(DroneEventsType.FIRMWARE);
66+
}
67+
5868
}

Core/src/org/droidplanner/core/model/Drone.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,4 +91,8 @@ public void setAltitudeGroundAndAirSpeeds(double altitude, double groundSpeed, d
9191
double climb);
9292

9393
public void setDisttowpAndSpeedAltErrors(double disttowp, double alt_error, double aspd_error);
94+
95+
public String getFirmwareVersion();
96+
97+
public void setFirmwareVersion(String message);
9498
}

0 commit comments

Comments
 (0)