Skip to content

Commit 70c9b80

Browse files
committed
Implemented DO_SET_RELAY mission item.
1 parent 70a64de commit 70c9b80

File tree

9 files changed

+281
-90
lines changed

9 files changed

+281
-90
lines changed

AidlLib/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ android {
77
defaultConfig {
88
minSdkVersion 14
99
targetSdkVersion 21
10-
versionCode 20044
11-
versionName '2.0.44'
10+
versionCode 20046
11+
versionName '2.0.46'
1212
}
1313

1414
defaultPublishConfig "release"

AidlLib/src/com/o3dr/services/android/lib/drone/mission/MissionItemType.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import com.o3dr.services.android.lib.drone.mission.item.command.ChangeSpeed;
1010
import com.o3dr.services.android.lib.drone.mission.item.command.EpmGripper;
1111
import com.o3dr.services.android.lib.drone.mission.item.command.ReturnToLaunch;
12+
import com.o3dr.services.android.lib.drone.mission.item.command.SetRelay;
1213
import com.o3dr.services.android.lib.drone.mission.item.command.SetServo;
1314
import com.o3dr.services.android.lib.drone.mission.item.command.Takeoff;
1415
import com.o3dr.services.android.lib.drone.mission.item.command.YawCondition;
@@ -194,6 +195,18 @@ public MissionItem getNewItem() {
194195
protected Creator<SetServo> getMissionItemCreator() {
195196
return SetServo.CREATOR;
196197
}
198+
},
199+
200+
SET_RELAY("Set Relay") {
201+
@Override
202+
public MissionItem getNewItem() {
203+
return new SetRelay();
204+
}
205+
206+
@Override
207+
protected Creator<SetRelay> getMissionItemCreator() {
208+
return SetRelay.CREATOR;
209+
}
197210
};
198211

199212
private final static String EXTRA_MISSION_ITEM_TYPE = "extra_mission_item_type";
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
package com.o3dr.services.android.lib.drone.mission.item.command;
2+
3+
import android.os.Parcel;
4+
5+
import com.o3dr.services.android.lib.drone.mission.MissionItemType;
6+
import com.o3dr.services.android.lib.drone.mission.item.MissionItem;
7+
8+
/**
9+
* Set a Relay pin’s voltage high or low.
10+
*/
11+
public class SetRelay extends MissionItem implements MissionItem.Command, android.os.Parcelable {
12+
13+
private int relayNumber;
14+
private boolean enabled;
15+
16+
public SetRelay() {
17+
super(MissionItemType.SET_RELAY);
18+
}
19+
20+
public SetRelay(SetRelay copy) {
21+
this();
22+
this.relayNumber = copy.relayNumber;
23+
this.enabled = copy.enabled;
24+
}
25+
26+
/**
27+
* @return relay number
28+
*/
29+
public int getRelayNumber() {
30+
return relayNumber;
31+
}
32+
33+
/**
34+
* Set the relay number
35+
*
36+
* @param relayNumber
37+
*/
38+
public void setRelayNumber(int relayNumber) {
39+
this.relayNumber = relayNumber;
40+
}
41+
42+
/**
43+
* @return true if relay is on, false if relay if off.
44+
*/
45+
public boolean isEnabled() {
46+
return enabled;
47+
}
48+
49+
/**
50+
* @param enabled true for relay to be on, false for relay to be off.
51+
*/
52+
public void setEnabled(boolean enabled) {
53+
this.enabled = enabled;
54+
}
55+
56+
@Override
57+
public MissionItem clone() {
58+
return new SetRelay(this);
59+
}
60+
61+
@Override
62+
public void writeToParcel(Parcel dest, int flags) {
63+
super.writeToParcel(dest, flags);
64+
dest.writeInt(this.relayNumber);
65+
dest.writeByte(enabled ? (byte) 1 : (byte) 0);
66+
}
67+
68+
private SetRelay(Parcel in) {
69+
super(in);
70+
this.relayNumber = in.readInt();
71+
this.enabled = in.readByte() != 0;
72+
}
73+
74+
public static final Creator<SetRelay> CREATOR = new Creator<SetRelay>() {
75+
public SetRelay createFromParcel(Parcel source) {
76+
return new SetRelay(source);
77+
}
78+
79+
public SetRelay[] newArray(int size) {
80+
return new SetRelay[size];
81+
}
82+
};
83+
}

ClientLib/mobile/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apply plugin: 'com.android.library'
22

33
ext {
44
PUBLISH_ARTIFACT_ID = '3dr-services-lib'
5-
PUBLISH_VERSION = '2.2.8'
5+
PUBLISH_VERSION = '2.2.10'
66
PROJECT_DESCRIPTION = "3DR Services Client Library"
77
PROJECT_LABELS = ['3DR', '3DR Services', 'DroneAPI', 'Android']
88
PROJECT_LICENSES = ['Apache-2.0']
@@ -15,7 +15,7 @@ android {
1515
defaultConfig {
1616
minSdkVersion 14
1717
targetSdkVersion 21
18-
versionCode 20208
18+
versionCode 20210
1919
versionName PUBLISH_VERSION
2020
}
2121

ClientLib/mobile/libs/AidlLib.jar

-3 Bytes
Binary file not shown.

ServiceApp/src/org/droidplanner/services/android/api/DroneApi.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -599,7 +599,7 @@ public void setMission(Mission mission, boolean pushToDrone) {
599599

600600
List<MissionItem> itemsList = mission.getMissionItems();
601601
for (MissionItem item : itemsList) {
602-
droneMission.addMissionItem(ProxyUtils.getMissionItem(droneMission, item));
602+
droneMission.addMissionItem(ProxyUtils.getMissionItemImpl(droneMission, item));
603603
}
604604

605605
if (pushToDrone)
@@ -815,7 +815,7 @@ public void buildComplexMissionItem(Bundle itemBundle) {
815815

816816
private Survey buildSurvey(Survey survey) {
817817
org.droidplanner.core.mission.Mission droneMission = this.droneMgr.getDrone().getMission();
818-
org.droidplanner.core.mission.survey.Survey updatedSurvey = (org.droidplanner.core.mission.survey.Survey) ProxyUtils.getMissionItem
818+
org.droidplanner.core.mission.survey.Survey updatedSurvey = (org.droidplanner.core.mission.survey.Survey) ProxyUtils.getMissionItemImpl
819819
(droneMission, survey);
820820

821821
return (Survey) ProxyUtils.getProxyMissionItem(updatedSurvey);
@@ -824,7 +824,7 @@ private Survey buildSurvey(Survey survey) {
824824
private StructureScanner buildStructureScanner(StructureScanner item) {
825825
org.droidplanner.core.mission.Mission droneMission = this.droneMgr.getDrone().getMission();
826826
org.droidplanner.core.mission.waypoints.StructureScanner updatedScan = (org.droidplanner.core.mission.waypoints.StructureScanner) ProxyUtils
827-
.getMissionItem(droneMission, item);
827+
.getMissionItemImpl(droneMission, item);
828828

829829
StructureScanner proxyScanner = (StructureScanner) ProxyUtils.getProxyMissionItem(updatedScan);
830830
return proxyScanner;

0 commit comments

Comments
 (0)