Skip to content

Protocols sequential execution

MindRun versions 2026.5 and later allow sequential execution of protocols.

Principle of sequential protocol execution

For sequential protocol execution to work, the MindRun web services must first be deployed. The launch command for the next protocol is sent by the current protocol as a network execution command through the web service deployed by MindRun.

Sequential execution

Sequential protocol execution does not work in MindDev: it is a MindRun-only feature.

Sequential execution uses the MindRun database to find protocol to run.

To perform a sequential execution, the protocol must be specifically prepared. It must contain specific nodes that allow it to launch the next protocol.

To do so, MindDev provides a special entity, "RunProtocolOnFinishedEntity" (only under Protocol's entities), which has several specific parameters:

  • The address of the MindRun server (default: "localhost")
  • The protocol identification number
  • Automatic activation (true by default)

Image title 2

The entity's parameters.

The protocol identification number can be found in the pack file that contains the protocol to execute. In the pack's XML file (RegisteredProtocols folder), the identifier is found in the Id attribute of the ProtocolReference tag.

<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>

Protocol identification number

The protocol identification number must be the number of the protocol within the pack that contains it!

Conditional activation

It is entirely possible to design a branching point in the sequential execution, so that the next protocol is executed only under certain conditions. In this case, set the "Enable" option to false and set the dynamic property "RuntimeEnableRunProtocol" to true during the execution of the current protocol. The RuntimeEnableRunProtocol observation target makes it possible to alter the sequential execution while the session is running, for example by using simple 2D buttons.

Image title 2

Example of conditional sequential execution.