From 65ff7639f39d085350d82282e1dbe54f6f1bcd6c Mon Sep 17 00:00:00 2001
From: Trishna Saeharaseelan <trishna.saeharaseelan@noc.ac.uk>
Date: Tue, 14 Mar 2023 14:54:18 +0000
Subject: [PATCH] refactor(mission plan): add timeout per action

---
 .../autonomy_engine_adapter/mission_plan_AH1.json    | 12 ++++++++----
 .../autonomy_engine_adapter/mission_plan_ECOSUB.json | 12 ++++++++----
 examples/ecosub_adapter/mission_plan.json            | 12 ++++++++----
 formats/mission_plan.py                              |  6 ++++++
 project/soar/swagger.json                            |  6 ++++++
 tests/fixtures/schemas.py                            |  6 ++++++
 tests/fixtures/swagger.json                          |  6 ++++++
 7 files changed, 48 insertions(+), 12 deletions(-)

diff --git a/examples/autonomy_engine_adapter/mission_plan_AH1.json b/examples/autonomy_engine_adapter/mission_plan_AH1.json
index 7a62cda..ee9f69e 100644
--- a/examples/autonomy_engine_adapter/mission_plan_AH1.json
+++ b/examples/autonomy_engine_adapter/mission_plan_AH1.json
@@ -21,7 +21,8 @@
         "target_waypoint_latitude": -3.237143188645706,
         "target_waypoint_longitude": 52.37072283932642,
         "depth": 0.0,
-        "activate_payload": false
+        "activate_payload": false,
+        "timeout": 200
       },
       {
         "action": "dive",
@@ -31,7 +32,8 @@
         "target_waypoint_latitude": -3.337143188645706,
         "target_waypoint_longitude": 56.37072283932642,
         "altitude": 10,
-        "activate_payload": false
+        "activate_payload": false,
+        "timeout": 200
       },
       {
         "action": "scanline",
@@ -41,7 +43,8 @@
         "target_waypoint_latitude": -0.237143188645706,
         "target_waypoint_longitude": 60.00000000000000,
         "altitude": 10,
-        "activate_payload": true
+        "activate_payload": true,
+        "timeout": 200
       },
       {
         "action": "climb",
@@ -51,7 +54,8 @@
         "target_waypoint_latitude": -0.237143188645706,
         "target_waypoint_longitude": 52.37072283932642,
         "depth": 0.0,
-        "activate_payload": false
+        "activate_payload": false,
+        "timeout": 200
       }
     ]
   }
diff --git a/examples/autonomy_engine_adapter/mission_plan_ECOSUB.json b/examples/autonomy_engine_adapter/mission_plan_ECOSUB.json
index 1e48c9c..baca610 100644
--- a/examples/autonomy_engine_adapter/mission_plan_ECOSUB.json
+++ b/examples/autonomy_engine_adapter/mission_plan_ECOSUB.json
@@ -20,7 +20,8 @@
         "target_waypoint_latitude": -3.237143188645706,
         "target_waypoint_longitude": 52.37072283932642,
         "depth": 0.0,
-        "activate_payload": false
+        "activate_payload": false,
+        "timeout": 300
       },
       {
         "action": "dive",
@@ -29,7 +30,8 @@
         "target_waypoint_latitude": -3.337143188645706,
         "target_waypoint_longitude": 56.37072283932642,
         "altitude": 10,
-        "activate_payload": false
+        "activate_payload": false,
+        "timeout": 300
       },
       {
         "action": "scanline",
@@ -38,7 +40,8 @@
         "target_waypoint_latitude": -0.237143188645706,
         "target_waypoint_longitude": 60.00000000000000,
         "altitude": 10,
-        "activate_payload": true
+        "activate_payload": true,
+        "timeout": 300
       },
       {
         "action": "climb",
@@ -47,7 +50,8 @@
         "target_waypoint_latitude": -0.237143188645706,
         "target_waypoint_longitude": 52.37072283932642,
         "depth": 0.0,
-        "activate_payload": false
+        "activate_payload": false,
+        "timeout": 300
       }
     ]
   }
diff --git a/examples/ecosub_adapter/mission_plan.json b/examples/ecosub_adapter/mission_plan.json
index 1e48c9c..baca610 100644
--- a/examples/ecosub_adapter/mission_plan.json
+++ b/examples/ecosub_adapter/mission_plan.json
@@ -20,7 +20,8 @@
         "target_waypoint_latitude": -3.237143188645706,
         "target_waypoint_longitude": 52.37072283932642,
         "depth": 0.0,
-        "activate_payload": false
+        "activate_payload": false,
+        "timeout": 300
       },
       {
         "action": "dive",
@@ -29,7 +30,8 @@
         "target_waypoint_latitude": -3.337143188645706,
         "target_waypoint_longitude": 56.37072283932642,
         "altitude": 10,
-        "activate_payload": false
+        "activate_payload": false,
+        "timeout": 300
       },
       {
         "action": "scanline",
@@ -38,7 +40,8 @@
         "target_waypoint_latitude": -0.237143188645706,
         "target_waypoint_longitude": 60.00000000000000,
         "altitude": 10,
-        "activate_payload": true
+        "activate_payload": true,
+        "timeout": 300
       },
       {
         "action": "climb",
@@ -47,7 +50,8 @@
         "target_waypoint_latitude": -0.237143188645706,
         "target_waypoint_longitude": 52.37072283932642,
         "depth": 0.0,
-        "activate_payload": false
+        "activate_payload": false,
+        "timeout": 300
       }
     ]
   }
diff --git a/formats/mission_plan.py b/formats/mission_plan.py
index 1b8290d..4a97375 100644
--- a/formats/mission_plan.py
+++ b/formats/mission_plan.py
@@ -55,6 +55,12 @@ action_schema = {
             + "Hover-1 --> `MBES` sensor and for EcoSUB --> `Sidescan`",
             "example": True,
         },
+        "timeout": {
+            "type": "number",
+            "format": "float",
+            "description": "Timeout set to perform action",
+            "example": 1800.0,
+        },
     },
     "required": [
         "target_waypoint_latitude",
diff --git a/project/soar/swagger.json b/project/soar/swagger.json
index 0de8b7d..e9fc054 100644
--- a/project/soar/swagger.json
+++ b/project/soar/swagger.json
@@ -124,6 +124,12 @@
                           "example":true,
                           "type":"boolean"
                        },
+                       "timeout": {
+                          "description": "Timeout set to perform action",
+                          "example": 1800.0,
+                          "format": "float",
+                          "type": "number"
+                       },
                        "altitude":{
                           "description":"Altitude of next action",
                           "example":15.0,
diff --git a/tests/fixtures/schemas.py b/tests/fixtures/schemas.py
index 53406b8..7ddf3c1 100644
--- a/tests/fixtures/schemas.py
+++ b/tests/fixtures/schemas.py
@@ -133,6 +133,12 @@ action_schema = {
             + "Hover-1 --> `MBES` sensor and for EcoSUB --> `Sidescan`",
             "example": True,
         },
+        "timeout": {
+            "type": "number",
+            "format": "float",
+            "description": "Timeout set to perform action",
+            "example": 1800.0,
+        },
     },
     "required": [
         "target_waypoint_latitude",
diff --git a/tests/fixtures/swagger.json b/tests/fixtures/swagger.json
index 9029ada..6372a06 100644
--- a/tests/fixtures/swagger.json
+++ b/tests/fixtures/swagger.json
@@ -123,6 +123,12 @@
                   "example": true,
                   "type": "boolean"
                 },
+                "timeout": {
+                  "description": "Timeout set to perform action",
+                  "example": 1800.0,
+                  "format": "float",
+                  "type": "number"
+                },
                 "altitude": {
                   "description": "Altitude of next action",
                   "example": 15.0,
-- 
GitLab