mrtautopilot 6__tar.gz → 8__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mrtautopilot
3
- Version: 6
3
+ Version: 8
4
4
  Summary: Communicate with the MRT Autopilot Mavlink API
5
5
  Maintainer-email: Nathan Knotts <nathan@magothyrt.com>
6
6
  Project-URL: Homepage, https://www.magothyrt.com/
@@ -1,4 +1,4 @@
1
- __version__ = "6"
1
+ __version__ = "8"
2
2
 
3
3
  from .autopilot import *
4
4
  from .mission import *
@@ -30,16 +30,11 @@ class Polygon:
30
30
  Area = Union[Circle, Polygon]
31
31
 
32
32
 
33
+ @dataclass
33
34
  class Waypoint:
34
- def __init__(
35
- self,
36
- lat_deg: float,
37
- lon_deg: float,
38
- speed_mps: float,
39
- ):
40
- self.lat_deg = lat_deg
41
- self.lon_deg = lon_deg
42
- self.speed_mps = speed_mps
35
+ lat_deg: float
36
+ lon_deg: float
37
+ speed_mps: float
43
38
 
44
39
 
45
40
  class DriftLoiter:
@@ -57,6 +52,9 @@ class DriftLoiter:
57
52
  self.radius_m = radius_m
58
53
  self.duration_s = duration_s
59
54
 
55
+ def __repr__(self) -> str:
56
+ return f"DriftLoiter(lat_deg={self.lat_deg}, lon_deg={self.lon_deg}, speed_mps={self.speed_mps}, radius_m={self.radius_m}, duration_s={self.duration_s})"
57
+
60
58
 
61
59
  class Orbit:
62
60
  def __init__(
@@ -75,6 +73,9 @@ class Orbit:
75
73
  self.is_clockwise = is_clockwise
76
74
  self.duration_s = duration_s
77
75
 
76
+ def __repr__(self) -> str:
77
+ return f"Orbit(lat_deg={self.lat_deg}, lon_deg={self.lon_deg}, speed_mps={self.speed_mps}, radius_m={self.radius_m}, is_clockwise={self.is_clockwise}, duration_s={self.duration_s})"
78
+
78
79
 
79
80
  class Milling:
80
81
  def __init__(
@@ -89,6 +90,9 @@ class Milling:
89
90
  self.speed_mps = speed_mps
90
91
  self.duration_s = duration_s
91
92
 
93
+ def __repr__(self) -> str:
94
+ return f"Milling(area={self.area}, speed_mps={self.speed_mps}, duration_s={self.duration_s})"
95
+
92
96
 
93
97
  class FaultResponseType(Enum):
94
98
  Ignore = 0
@@ -256,25 +260,6 @@ def make_polygon(
256
260
 
257
261
  def _fence_items(mission: Mission) -> List[mrtmavlink.MAVLink_mission_item_int_message]:
258
262
  out: List[mrtmavlink.MAVLink_mission_item_int_message] = []
259
- out.append(
260
- mrtmavlink.MAVLink_mission_item_int_message(
261
- target_system=0,
262
- target_component=0,
263
- seq=0,
264
- frame=mrtmavlink.MAV_FRAME_MISSION,
265
- command=mrtmavlink.MAV_CMD_NAV_FENCE_RETURN_POINT,
266
- mission_type=mrtmavlink.MAV_MISSION_TYPE_FENCE,
267
- current=0,
268
- autocontinue=0,
269
- param1=0,
270
- param2=0,
271
- param3=0,
272
- param4=0,
273
- x=0,
274
- y=0,
275
- z=0,
276
- )
277
- )
278
263
 
279
264
  for shape in mission.fence:
280
265
  if type(shape) is KeepInCirlce:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mrtautopilot
3
- Version: 6
3
+ Version: 8
4
4
  Summary: Communicate with the MRT Autopilot Mavlink API
5
5
  Maintainer-email: Nathan Knotts <nathan@magothyrt.com>
6
6
  Project-URL: Homepage, https://www.magothyrt.com/
@@ -36,17 +36,7 @@ class TestMission(unittest.TestCase):
36
36
  self.assertEqual(len(mav.rally_items), 0)
37
37
 
38
38
  ### check fence items ###
39
- self.assertEqual(len(mav.fence_items), 1)
40
-
41
- # fence return point (not used)
42
- i = mav.fence_items[0]
43
- self.assertEqual(i.seq, 0)
44
- self.assertEqual(i.frame, mrtmavlink.MAV_FRAME_MISSION)
45
- self.assertEqual(i.command, mrtmavlink.MAV_CMD_NAV_FENCE_RETURN_POINT)
46
- self.assertEqual(i.mission_type, mrtmavlink.MAV_MISSION_TYPE_FENCE)
47
- self.assertEqual(i.param1, 0)
48
- self.assertEqual(i.x, 0)
49
- self.assertEqual(i.y, 0)
39
+ self.assertEqual(len(mav.fence_items), 0)
50
40
 
51
41
  ### check mission items ###
52
42
  self.assertEqual(len(mav.mission_items), 18)
@@ -312,22 +302,12 @@ class TestMission(unittest.TestCase):
312
302
  self.assertEqual(i.y, -4e7)
313
303
 
314
304
  ### check fence items ###
315
- self.assertEqual(len(mav.fence_items), 10)
305
+ self.assertEqual(len(mav.fence_items), 9)
316
306
 
317
- # fence return point (not used)
307
+ # keep in circle
318
308
  i = mav.fence_items[0]
319
309
  self.assertEqual(i.seq, 0)
320
310
  self.assertEqual(i.frame, mrtmavlink.MAV_FRAME_MISSION)
321
- self.assertEqual(i.command, mrtmavlink.MAV_CMD_NAV_FENCE_RETURN_POINT)
322
- self.assertEqual(i.mission_type, mrtmavlink.MAV_MISSION_TYPE_FENCE)
323
- self.assertEqual(i.param1, 0)
324
- self.assertEqual(i.x, 0)
325
- self.assertEqual(i.y, 0)
326
-
327
- # keep in circle
328
- i = mav.fence_items[1]
329
- self.assertEqual(i.seq, 1)
330
- self.assertEqual(i.frame, mrtmavlink.MAV_FRAME_MISSION)
331
311
  self.assertEqual(i.command, mrtmavlink.MAV_CMD_NAV_FENCE_CIRCLE_INCLUSION)
332
312
  self.assertEqual(i.mission_type, mrtmavlink.MAV_MISSION_TYPE_FENCE)
333
313
  self.assertEqual(i.param1, 25)
@@ -335,8 +315,8 @@ class TestMission(unittest.TestCase):
335
315
  self.assertEqual(i.y, -6e7)
336
316
 
337
317
  # keep out polygon
338
- i = mav.fence_items[2]
339
- self.assertEqual(i.seq, 2)
318
+ i = mav.fence_items[1]
319
+ self.assertEqual(i.seq, 1)
340
320
  self.assertEqual(i.frame, mrtmavlink.MAV_FRAME_MISSION)
341
321
  self.assertEqual(
342
322
  i.command, mrtmavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION
@@ -346,8 +326,8 @@ class TestMission(unittest.TestCase):
346
326
  self.assertEqual(i.x, 7e7)
347
327
  self.assertEqual(i.y, -8e7)
348
328
 
349
- i = mav.fence_items[3]
350
- self.assertEqual(i.seq, 3)
329
+ i = mav.fence_items[2]
330
+ self.assertEqual(i.seq, 2)
351
331
  self.assertEqual(i.frame, mrtmavlink.MAV_FRAME_MISSION)
352
332
  self.assertEqual(
353
333
  i.command, mrtmavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION
@@ -357,8 +337,8 @@ class TestMission(unittest.TestCase):
357
337
  self.assertEqual(i.x, 9e7)
358
338
  self.assertEqual(i.y, -10e7)
359
339
 
360
- i = mav.fence_items[4]
361
- self.assertEqual(i.seq, 4)
340
+ i = mav.fence_items[3]
341
+ self.assertEqual(i.seq, 3)
362
342
  self.assertEqual(i.frame, mrtmavlink.MAV_FRAME_MISSION)
363
343
  self.assertEqual(
364
344
  i.command, mrtmavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION
@@ -369,8 +349,8 @@ class TestMission(unittest.TestCase):
369
349
  self.assertEqual(i.y, -12e7)
370
350
 
371
351
  # keep in polygon
372
- i = mav.fence_items[5]
373
- self.assertEqual(i.seq, 5)
352
+ i = mav.fence_items[4]
353
+ self.assertEqual(i.seq, 4)
374
354
  self.assertEqual(i.frame, mrtmavlink.MAV_FRAME_MISSION)
375
355
  self.assertEqual(
376
356
  i.command, mrtmavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION
@@ -380,8 +360,8 @@ class TestMission(unittest.TestCase):
380
360
  self.assertEqual(i.x, 13e7)
381
361
  self.assertEqual(i.y, -14e7)
382
362
 
383
- i = mav.fence_items[6]
384
- self.assertEqual(i.seq, 6)
363
+ i = mav.fence_items[5]
364
+ self.assertEqual(i.seq, 5)
385
365
  self.assertEqual(i.frame, mrtmavlink.MAV_FRAME_MISSION)
386
366
  self.assertEqual(
387
367
  i.command, mrtmavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION
@@ -391,8 +371,8 @@ class TestMission(unittest.TestCase):
391
371
  self.assertEqual(i.x, 15e7)
392
372
  self.assertEqual(i.y, -16e7)
393
373
 
394
- i = mav.fence_items[7]
395
- self.assertEqual(i.seq, 7)
374
+ i = mav.fence_items[6]
375
+ self.assertEqual(i.seq, 6)
396
376
  self.assertEqual(i.frame, mrtmavlink.MAV_FRAME_MISSION)
397
377
  self.assertEqual(
398
378
  i.command, mrtmavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION
@@ -402,8 +382,8 @@ class TestMission(unittest.TestCase):
402
382
  self.assertEqual(i.x, 17e7)
403
383
  self.assertEqual(i.y, -18e7)
404
384
 
405
- i = mav.fence_items[8]
406
- self.assertEqual(i.seq, 8)
385
+ i = mav.fence_items[7]
386
+ self.assertEqual(i.seq, 7)
407
387
  self.assertEqual(i.frame, mrtmavlink.MAV_FRAME_MISSION)
408
388
  self.assertEqual(
409
389
  i.command, mrtmavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION
@@ -414,8 +394,8 @@ class TestMission(unittest.TestCase):
414
394
  self.assertEqual(i.y, -20e7)
415
395
 
416
396
  # keep out circle
417
- i = mav.fence_items[9]
418
- self.assertEqual(i.seq, 9)
397
+ i = mav.fence_items[8]
398
+ self.assertEqual(i.seq, 8)
419
399
  self.assertEqual(i.frame, mrtmavlink.MAV_FRAME_MISSION)
420
400
  self.assertEqual(i.command, mrtmavlink.MAV_CMD_NAV_FENCE_CIRCLE_EXCLUSION)
421
401
  self.assertEqual(i.mission_type, mrtmavlink.MAV_MISSION_TYPE_FENCE)
File without changes
File without changes
File without changes