From deaa2057292fb32f3e631e911fa55420d13897be Mon Sep 17 00:00:00 2001
From: jlacoche <jeremy.lacoche@orange.com>
Date: Wed, 29 May 2024 15:49:08 +0200
Subject: [PATCH] Add validity as a parameter for subscription

---
 Assets/Scenes/ExampleServerMaintenance.unity   | 1 +
 Assets/Scripts/AnchorTrackableReferenceNode.cs | 8 ++++++--
 Assets/Scripts/SceneManagementGLTF.cs          | 8 +++++---
 3 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/Assets/Scenes/ExampleServerMaintenance.unity b/Assets/Scenes/ExampleServerMaintenance.unity
index b8401b3..76c06e1 100644
--- a/Assets/Scenes/ExampleServerMaintenance.unity
+++ b/Assets/Scenes/ExampleServerMaintenance.unity
@@ -709,6 +709,7 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   _ARFNodeUUID: 
+  _ValiditySubscription: 100000
 --- !u!1 &789254997
 GameObject:
   m_ObjectHideFlags: 0
diff --git a/Assets/Scripts/AnchorTrackableReferenceNode.cs b/Assets/Scripts/AnchorTrackableReferenceNode.cs
index 8edf25c..4f3633b 100644
--- a/Assets/Scripts/AnchorTrackableReferenceNode.cs
+++ b/Assets/Scripts/AnchorTrackableReferenceNode.cs
@@ -7,14 +7,18 @@ public class AnchorTrackableReferenceNode : MonoBehaviour
     /// UUID of the node or trackable
     /// </summary>
     public string _ARFNodeUUID;
+    /// <summary>
+    /// Validity in milliseconds for a subscription to the WA
+    /// </summary>
+    public int _ValiditySubscription = 100000;
 
     // Start is called before the first frame update
     IEnumerator Start()
     {
         yield return new WaitForSeconds(5.0f);
-        int validity = 100000; //10s
-        System.Guid subscriptionUUID;
         // wait for initialization : not perfect way
+        int validity = _ValiditySubscription;
+        System.Guid subscriptionUUID;
         WorldAnalysisInterface.Instance.SubscribeToPose(null, new System.Guid(_ARFNodeUUID) , ETSI.ARF.OpenAPI.WorldAnalysis.Mode_WorldAnalysis.DEVICE_TO_TRACKABLES, PoseCallback, ref validity, out subscriptionUUID); //TODO : find a value for the token parameter.
     }
 
diff --git a/Assets/Scripts/SceneManagementGLTF.cs b/Assets/Scripts/SceneManagementGLTF.cs
index 8bbc556..07f3230 100644
--- a/Assets/Scripts/SceneManagementGLTF.cs
+++ b/Assets/Scripts/SceneManagementGLTF.cs
@@ -7,11 +7,14 @@ using UnityEngine;
 
 public class SceneManagementGLTF : MonoBehaviour
 {
-    
     /// <summary>
     /// Path to GLTF File (relative to streaming assets in editor, else persistentdatapath)
     /// </summary>
     public string _PathToGLTF;
+    /// <summary>
+    /// Validity in milliseconds for a subscription to the WA
+    /// </summary>
+    public int _ValiditySubscription = 100000; 
     
     /// <summary>
     /// List of trackables and anchors in the AR Scene
@@ -28,10 +31,9 @@ public class SceneManagementGLTF : MonoBehaviour
         Transform loaded = this.transform.GetChild(0);
         FindWorldStorageTransform(loaded);
         
-        
         foreach(KeyValuePair<Guid , Transform> toSubscribe in m_trackablesAndAnchorsInARScene)
         {
-            int validity = 100000; //10s
+            int validity = _ValiditySubscription;
             Guid subscriptionUUID;
             // TODO : if only one : subscribeToPose, if multiple subscribetoPoses
             WorldAnalysisInterface.Instance.SubscribeToPose(null, toSubscribe.Key, ETSI.ARF.OpenAPI.WorldAnalysis.Mode_WorldAnalysis.DEVICE_TO_TRACKABLES, PoseCallback, ref validity, out subscriptionUUID); //TODO : find a value for the token parameter.
-- 
GitLab