From ce7854079f5a1d9e0952e6510e879da80d6fe683 Mon Sep 17 00:00:00 2001
From: Tommy Persson <tommmy.persson@liu.se>
Date: Thu, 4 Mar 2021 18:56:24 +0100
Subject: [PATCH] Work on smarc interface.

---
 package.xml                 |  2 +-
 src/gen_msgs_srvs_acions.py | 47 ++++++++++++++++++++++++++++++++-----
 2 files changed, 42 insertions(+), 7 deletions(-)

diff --git a/package.xml b/package.xml
index 1b50c41..a9d56f2 100644
--- a/package.xml
+++ b/package.xml
@@ -7,7 +7,7 @@
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
   <!-- <maintainer email="jane.doe@example.com">Jane Doe</maintainer> -->
-  <maintainer email="tompe@todo.todo">tompe</maintainer>
+  <maintainer email="tommy.persson@liu.se">tompe</maintainer>
 
 
   <!-- One license tag required, multiple allowed, one license per tag -->
diff --git a/src/gen_msgs_srvs_acions.py b/src/gen_msgs_srvs_acions.py
index f521e6e..3d43e33 100755
--- a/src/gen_msgs_srvs_acions.py
+++ b/src/gen_msgs_srvs_acions.py
@@ -32,6 +32,40 @@ def gen_task_params_msg(jobj, prefix):
             s += f'string {name}\n'
     return s
 
+def gen_task_signal_service(prefix):
+    s = ""
+    s += "string uuid   # uuid for the started task\n"
+    s += "string signal # Standard: \"$abort\", \"$pause\", \"$continue\", \"$enough\"\n"
+    s += "---\n"
+    s += "bool success\n"
+    s += "int32 error\n"
+    s += "string reason\n"
+    return s
+    
+def gen_task_check_service(prefix):
+    s = ""
+    s += f'lrs_task_msgs/{prefix}Task task\n'
+    s += "---\n"
+    s += "bool success\n"
+    s += "int32 error\n"
+    s += "string reason\n"
+    return s
+    
+def gen_task_start_action(prefix):
+    s = ""
+    s += "string uuid   # uuid that are used in signal service call to send signals to the running action\n"
+    s += f'lrs_task_msgs/{prefix}Task task\n'
+    s += "---\n"
+    s += "string signal_received\n"
+    s += "bool paused\n"
+    s += "---\n"
+    s += "bool success\n"
+    s += "string fail_reason\n"
+    s += "bool aborted\n"    
+    s += "bool enoughed"    
+    return s
+
+
 def get_msg_name_prefix(taskname):
     #print("TASKNAME:", taskname, taskname.split("-"))
     lst = [el[0].upper() + el[1:] for el in taskname.split("-")]
@@ -50,14 +84,15 @@ if __name__ == '__main__':
         print("TASK:", objstr)
         taskname = obj["key"]
         msgprefix = get_msg_name_prefix(taskname)
-        print(taskname, msgprefix)
-        print("========================")        
+        # print(taskname, msgprefix)
         tmsg = gen_task_msg(obj, msgprefix)
-        print(tmsg)
-        print("========================")
         tpmsg = gen_task_params_msg(obj, msgprefix)
-        print(tpmsg)
-        print("========================")
+        tstartaction = gen_task_start_action(msgprefix)
+        tsignalservice = gen_task_signal_service(msgprefix)
+        tcheckservice = gen_task_check_service(msgprefix)
 
         open(f'{options.outdir}/msg/{msgprefix}Task.msg', "w").write(tmsg)
         open(f'{options.outdir}/msg/{msgprefix}TaskParams.msg', "w").write(tpmsg)
+        open(f'{options.outdir}/action/{msgprefix}Start.action', "w").write(tstartaction)
+        open(f'{options.outdir}/srv/{msgprefix}Signal.srv', "w").write(tsignalservice)
+        open(f'{options.outdir}/srv/{msgprefix}Check.srv', "w").write(tcheckservice)
-- 
GitLab