Aller au contenu

Exécution séquentielle de protocoles

Les versions de MindRun (2026.5+) permettent l'exécution séquentielle de protocoles.

Principe de l'exécution séquentielle de protocole

Pour que l'exécution séquentielle de protocole fonctionne, il faut au préalable déployer les services web de MindRun. En effet, l'ordre de lancement du protocole suivant est envoyé par le protocole courant sous la forme d'un ordre d'exécution réseau, par le biais du service web déployé par MindRun.

Exécution séquentielle

L'exécution séquentielle de protocole ne fonctionne pas dans MindDev : c'est une fonctionnalité purement MindRun.

L'exécution séquentielle utilise la base de données MindRun pour retouver le(s) protocole(s) à exécuter

Pour réaliser une exécution séquentielle, il faut préparer le protocole spécifiquement. En effet, celui-ci doit disposer de nœuds spécifiques permettant de lancer le protocole suivant.

Pour ce faire, MindDev met à disposition une entité spéciale « RunProtocolOnFinishedEntity » (à placer uniquement en tant qu'entité de protocole) qui dispose de plusieurs paramètres spécifiques :

  • L'adresse du serveur MindRun (par défaut « localhost »)
  • Le numéro d'identification du protocole
  • L'activation automatique (vrai par défaut)

Image title 2

Les paramètres de l'entité.

Le numéro d'identification du protocole peut être trouvé dans le fichier pack qui contient le protocole à exécuter. Dans le fichier XML du pack (dossier RegisteredProtocols), l'identifiant se trouve au niveau de l'attribut Id de la balise ProtocolReference.

<ProtocolReference ProtocolId="907d66fc-790c-44fb-afd6-1130037c7526" DeviceCode="VRHeadset" Id="363db19b-beaa-4228-9e2c-611090cb8dba"  ProtocolFile="calibrationmailletpieton.xml" FilterProtocolFile="calibrationmailletpieton.xml" HelpUrl="" ProtocolHash="" FilterProtocolHash="" BatteryName="Calibration"  Name="Calibration Maillet Piéton" BindingName="" Description="Protocole de calibration du maillet piéton via HTC Tracker.&#xD;&#xA;&#xD;&#xA;L'ajustement Hauteur permet d'ajuster finement la position du &#xD;&#xA;maillet sur l'axe vertical. &#xD;&#xA;&#xD;&#xA;Par défaut : 0.00&#xD;&#xA;Valeurs acceptable : [-0.05;0.05]. &#xD;&#xA;Au delà de cet intervalle, revoir la calibration de SteamVR." Type="HumanVirtualMaze.Model.Lite.ProtocolReference" NeverUpdate="False" ObjectExecutionOrder="0">
    <DynamicProperties ProtocolId="907d66fc-790c-44fb-afd6-1130037c7526" UseReferenceFile="False" ReferenceFile="" Id="2b293fe2-848f-4962-812e-75e20567dc98" Name="DynamicProperties" BindingName="" Description="" Type="HumanVirtualMaze.Model.Lite.DynamicPropertyList" NeverUpdate="False" ObjectExecutionOrder="0">
      <DynamicProperty PropertyName="PositionZ" ObjectName="AxisReference" Value="0" DisplayedName="Ajustement Hauteur (m)" Id="45ffb064-70e4-41c3-bbe9-c2513045a666" Name="Dynamic Property" BindingName="" Description="Ajustement de hauteur  du maillet par rapport au maillet réel&#xD;&#xA;&#xD;&#xA;Par défaut : 0.00&#xD;&#xA;Valeurs acceptable : [-0.05;0.05]. " Type="HumanVirtualMaze.Model.Lite.DynamicPropertyNode" NeverUpdate="False" ObjectExecutionOrder="0" />
    </DynamicProperties>
  </ProtocolReference>

Numéro d'identification du protocole

Le numéro d'identification du protocole doit être le numéro du protocole dans le pack qui le contient !

Activation conditionnelle

Il est tout à fait possible de concevoir un aiguillage au niveau de l'exécution séquentielle, de manière à exécuter le protocole suivant sous condition. Dans ce cas, il convient de passer l'option « Enable » à faux et de faire passer la propriété dynamique « RuntimeEnableRunProtocol » à vrai durant l'exécution du protocole courant. La cible d'observation RuntimeEnableRunProtocol permet de modifier l'exécution séquentielle lors de la passation à l'aide, par exemple, de simples boutons 2D.

Image title 2

Exemple d'exécution séquentielle conditionnelle.