Aller au contenu

What is a protocol ?

The protocol entity is the root node of the protocol tree. It stores all the parameters of an experiment in the form of logical children.

The name of the protocol comes from the world of scientific research and may not apply to all domains (notably with the Cave Viz protocol which does not reflect the logic of experimentation).

From a logical point of view, the protocol is a logical node with the difference that it has no direct parent.

When a protocol is passed, it is the latter that controls the execution logic and the update of the entities. It updates the tree at the frequency of the software core. When an update is called, the protocol requests an update of the list of experiments which, in cascade, causes an update of the complete tree.

The main graphical interface of VRmaze displays the content of a protocol and allows its complete configuration by adding, deleting or modifying the tree itself and all the nodes that compose it.

Protocol and result files

A result file is a protocol file with specific entities that have recorded additional data automatically.

Autopsy of a protocol

A protocol file, as well as all VRmaze files are written in the Xml formalism. This is a desire of InMind-VR to always be able to read the data in the files humanly without having to run the software.

It is possible to open a protocol with a text editor or any other Xml parser.

Protocol modification outside VRmaze

If reading is not a problem, protocol modification has a high chance of corrupting the file. Also, direct changes to the properties of the tree nodes can lead to undesired behavior during playback.

Entities in the protocol

The protocol has very few direct children, but it does have a list of entities. The positioning of this list of entities directly as a child of the protocol allows to play on the life span of child entities during the pass. There are indeed 3 lists of entities, one on the protocol, one on the experimentation and the last one on the trial. The lifetime of the entity is directly related to the lifetime of the parent node, so by placing an entity in the list of entities of the protocol this entity will have a lifetime equivalent to the protocol, this means that the entity will be instantiated at the beginning of the protocol and deleted only when the protocol is finished. It will therefore be possible to refer to it and use it at any time in the handover.

What entities ?

Relatively few entities need to exist throughout the pass, there are mainly communication managers with external devices: communication is launched at the beginning of the protocol and cut at the end of the protocol.

Graphic objects ?

The protocol does not provide a container for graphical objects such as 2D or 3D object lists.

Protocol module

The Protocol node has a list of modules. A protocol module is a specific entity that will run a program external to VRmaze at runtime. This allows, for example, to automatically launch a program at the start of the run.

External execution

Any executable program can be launched at two times: either at the launch of the pass, or at the stop. It is also possible to stop the program when the run ends.

Using the old renderer

It is possible to force the use of the old renderer for a specific protocol. To do this, you need to add a custom attribute of type Old Render Mode. This attribute has no parameters.

Image title 2

The custom attribute to use the old renderer.