Skip to content

Commit 98df64e

Browse files
authored
Add mission tests (#616)
* Clean up mission tests * Fix bug with max slope gradient in missionStatistics * Add tests for getting specific missions * Add upload mission tests * Add unit tests for MissionController functionality * Address copilot review comments
1 parent d51c43c commit 98df64e

15 files changed

Lines changed: 1674 additions & 306 deletions

gcs/src/components/missions/missionStatistics.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ export default function MissionStatistics({ missionItems }) {
213213
value={maxSlopeGradient.maxGradient}
214214
tooltip={
215215
maxSlopeGradient.points &&
216-
`Between ${maxSlopeGradient.points[0].seq} and ${maxSlopeGradient.points[1].seq}`
216+
`Between ${maxSlopeGradient.points[0]?.seq} and ${maxSlopeGradient.points[1]?.seq}`
217217
}
218218
units="%"
219219
/>

radio/app/controllers/missionController.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -605,6 +605,8 @@ def uploadMission(
605605
"success": False,
606606
"message": "Could not upload mission, received mission acknowledgement error",
607607
}
608+
elif response.msgname == "MISSION_ACK" and response.type == 0:
609+
continue # Continue to next iteration if we received a MISSION_ACK
608610
elif response.mission_type == mission_type:
609611
self.drone.logger.debug(
610612
f"Sending mission item {response.seq} out of {new_loader.count()-1}"
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
QGC WPL 110
2+
0 1 0 16 0 0 0 0 52.7806539 -0.7083070 136.350000 1
3+
1 0 3 5001 6.00000000 0.00000000 0.00000000 0.00000000 52.78146190 -0.71057081 0.000000 1
4+
2 0 3 5001 6.00000000 0.00000000 0.00000000 0.00000000 52.78105306 -0.71029186 1.000000 1
5+
3 0 3 5001 6.00000000 0.00000000 0.00000000 0.00000000 52.78003421 -0.71083903 2.000000 1
6+
4 0 3 5001 6.00000000 0.00000000 0.00000000 0.00000000 52.78185126 -0.70354342 3.000000 1
7+
5 0 3 5001 6.00000000 0.00000000 0.00000000 0.00000000 52.78305826 -0.70601106 4.000000 1
8+
6 0 3 5001 6.00000000 0.00000000 0.00000000 0.00000000 52.78254562 -0.70815682 5.000000 1
9+
7 0 3 5004 25.00000000 0.00000000 0.00000000 0.00000000 52.77965780 -0.70921630 0.000000 1
10+
8 0 3 5003 50.00000000 0.00000000 0.00000000 0.00000000 52.78019000 -0.70440170 0.000000 1
11+
9 0 3 5002 5.00000000 0.00000000 0.00000000 0.00000000 52.78282465 -0.70610762 0.000000 1
12+
10 0 3 5002 5.00000000 0.00000000 0.00000000 0.00000000 52.78187073 -0.70415497 1.000000 1
13+
11 0 3 5002 5.00000000 0.00000000 0.00000000 0.00000000 52.78144892 -0.70581794 2.000000 1
14+
12 0 3 5002 5.00000000 0.00000000 0.00000000 0.00000000 52.78218871 -0.70580721 3.000000 1
15+
13 0 3 5002 5.00000000 0.00000000 0.00000000 0.00000000 52.78263647 -0.70689082 4.000000 1
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
QGC WPL 110
2+
0 1 0 16 0 0 0 0 52.7806539 -0.7083070 136.350000 1
3+
1 0 3 22 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 30.000000 1
4+
2 0 3 16 0.00000000 0.00000000 0.00000000 0.00000000 52.78031970 -0.70979300 30.000000 1
5+
3 0 3 16 0.00000000 0.00000000 0.00000000 0.00000000 52.78122830 -0.70989490 30.000000 1
6+
4 0 3 16 0.00000000 0.00000000 0.00000000 0.00000000 52.78169880 -0.70795300 30.000000 1
7+
5 0 3 16 0.00000000 0.00000000 0.00000000 0.00000000 52.78144240 -0.70571600 30.000000 1
8+
6 0 3 16 0.00000000 0.00000000 0.00000000 0.00000000 52.78079670 -0.70659580 30.000000 1
9+
7 0 3 21 0.00000000 0.00000000 0.00000000 0.00000000 52.78043980 -0.70819970 0.000000 1
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
QGC WPL 110
2+
0 1 0 16 0 0 0 0 52.7806539 -0.7083070 136.350000 1
3+
1 0 3 5100 0.00000000 0.00000000 0.00000000 0.00000000 52.78100110 -0.70948720 10.000000 1
4+
2 0 3 5100 0.00000000 0.00000000 0.00000000 0.00000000 52.78211080 -0.70567850 10.000000 1
Lines changed: 240 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,240 @@
1+
{
2+
"success": true,
3+
"mission_type": "fence",
4+
"items": [
5+
{
6+
"autocontinue": 0,
7+
"command": 5001,
8+
"current": 0,
9+
"frame": 0,
10+
"mavpackettype": "MISSION_ITEM_INT",
11+
"mission_type": 1,
12+
"param1": 6.0,
13+
"param2": 0.0,
14+
"param3": 0.0,
15+
"param4": 0.0,
16+
"seq": 0,
17+
"target_component": 0,
18+
"target_system": 255,
19+
"x": 527814618,
20+
"y": -7105708,
21+
"z": 0.0
22+
},
23+
{
24+
"autocontinue": 0,
25+
"command": 5001,
26+
"current": 0,
27+
"frame": 0,
28+
"mavpackettype": "MISSION_ITEM_INT",
29+
"mission_type": 1,
30+
"param1": 6.0,
31+
"param2": 0.0,
32+
"param3": 0.0,
33+
"param4": 0.0,
34+
"seq": 1,
35+
"target_component": 0,
36+
"target_system": 255,
37+
"x": 527810530,
38+
"y": -7102918,
39+
"z": 0.0
40+
},
41+
{
42+
"autocontinue": 0,
43+
"command": 5001,
44+
"current": 0,
45+
"frame": 0,
46+
"mavpackettype": "MISSION_ITEM_INT",
47+
"mission_type": 1,
48+
"param1": 6.0,
49+
"param2": 0.0,
50+
"param3": 0.0,
51+
"param4": 0.0,
52+
"seq": 2,
53+
"target_component": 0,
54+
"target_system": 255,
55+
"x": 527800342,
56+
"y": -7108390,
57+
"z": 0.0
58+
},
59+
{
60+
"autocontinue": 0,
61+
"command": 5001,
62+
"current": 0,
63+
"frame": 0,
64+
"mavpackettype": "MISSION_ITEM_INT",
65+
"mission_type": 1,
66+
"param1": 6.0,
67+
"param2": 0.0,
68+
"param3": 0.0,
69+
"param4": 0.0,
70+
"seq": 3,
71+
"target_component": 0,
72+
"target_system": 255,
73+
"x": 527818512,
74+
"y": -7035434,
75+
"z": 0.0
76+
},
77+
{
78+
"autocontinue": 0,
79+
"command": 5001,
80+
"current": 0,
81+
"frame": 0,
82+
"mavpackettype": "MISSION_ITEM_INT",
83+
"mission_type": 1,
84+
"param1": 6.0,
85+
"param2": 0.0,
86+
"param3": 0.0,
87+
"param4": 0.0,
88+
"seq": 4,
89+
"target_component": 0,
90+
"target_system": 255,
91+
"x": 527830582,
92+
"y": -7060110,
93+
"z": 0.0
94+
},
95+
{
96+
"autocontinue": 0,
97+
"command": 5001,
98+
"current": 0,
99+
"frame": 0,
100+
"mavpackettype": "MISSION_ITEM_INT",
101+
"mission_type": 1,
102+
"param1": 6.0,
103+
"param2": 0.0,
104+
"param3": 0.0,
105+
"param4": 0.0,
106+
"seq": 5,
107+
"target_component": 0,
108+
"target_system": 255,
109+
"x": 527825456,
110+
"y": -7081568,
111+
"z": 0.0
112+
},
113+
{
114+
"autocontinue": 0,
115+
"command": 5004,
116+
"current": 0,
117+
"frame": 0,
118+
"mavpackettype": "MISSION_ITEM_INT",
119+
"mission_type": 1,
120+
"param1": 25.0,
121+
"param2": 0.0,
122+
"param3": 0.0,
123+
"param4": 0.0,
124+
"seq": 6,
125+
"target_component": 0,
126+
"target_system": 255,
127+
"x": 527796578,
128+
"y": -7092163,
129+
"z": 0.0
130+
},
131+
{
132+
"autocontinue": 0,
133+
"command": 5003,
134+
"current": 0,
135+
"frame": 0,
136+
"mavpackettype": "MISSION_ITEM_INT",
137+
"mission_type": 1,
138+
"param1": 50.0,
139+
"param2": 0.0,
140+
"param3": 0.0,
141+
"param4": 0.0,
142+
"seq": 7,
143+
"target_component": 0,
144+
"target_system": 255,
145+
"x": 527801900,
146+
"y": -7044017,
147+
"z": 0.0
148+
},
149+
{
150+
"autocontinue": 0,
151+
"command": 5002,
152+
"current": 0,
153+
"frame": 0,
154+
"mavpackettype": "MISSION_ITEM_INT",
155+
"mission_type": 1,
156+
"param1": 5.0,
157+
"param2": 0.0,
158+
"param3": 0.0,
159+
"param4": 0.0,
160+
"seq": 8,
161+
"target_component": 0,
162+
"target_system": 255,
163+
"x": 527828246,
164+
"y": -7061076,
165+
"z": 0.0
166+
},
167+
{
168+
"autocontinue": 0,
169+
"command": 5002,
170+
"current": 0,
171+
"frame": 0,
172+
"mavpackettype": "MISSION_ITEM_INT",
173+
"mission_type": 1,
174+
"param1": 5.0,
175+
"param2": 0.0,
176+
"param3": 0.0,
177+
"param4": 0.0,
178+
"seq": 9,
179+
"target_component": 0,
180+
"target_system": 255,
181+
"x": 527818707,
182+
"y": -7041549,
183+
"z": 0.0
184+
},
185+
{
186+
"autocontinue": 0,
187+
"command": 5002,
188+
"current": 0,
189+
"frame": 0,
190+
"mavpackettype": "MISSION_ITEM_INT",
191+
"mission_type": 1,
192+
"param1": 5.0,
193+
"param2": 0.0,
194+
"param3": 0.0,
195+
"param4": 0.0,
196+
"seq": 10,
197+
"target_component": 0,
198+
"target_system": 255,
199+
"x": 527814489,
200+
"y": -7058179,
201+
"z": 0.0
202+
},
203+
{
204+
"autocontinue": 0,
205+
"command": 5002,
206+
"current": 0,
207+
"frame": 0,
208+
"mavpackettype": "MISSION_ITEM_INT",
209+
"mission_type": 1,
210+
"param1": 5.0,
211+
"param2": 0.0,
212+
"param3": 0.0,
213+
"param4": 0.0,
214+
"seq": 11,
215+
"target_component": 0,
216+
"target_system": 255,
217+
"x": 527821887,
218+
"y": -7058072,
219+
"z": 0.0
220+
},
221+
{
222+
"autocontinue": 0,
223+
"command": 5002,
224+
"current": 0,
225+
"frame": 0,
226+
"mavpackettype": "MISSION_ITEM_INT",
227+
"mission_type": 1,
228+
"param1": 5.0,
229+
"param2": 0.0,
230+
"param3": 0.0,
231+
"param4": 0.0,
232+
"seq": 12,
233+
"target_component": 0,
234+
"target_system": 255,
235+
"x": 527826364,
236+
"y": -7068908,
237+
"z": 0.0
238+
}
239+
]
240+
}

0 commit comments

Comments
 (0)