Aller au contenu

Flux LSL (Lab Streaming Layer)

VRmaze offre la possibilité de créer un flux LSL vers l'extérieur, de manière à pouvoir récupérer n'importe quelle propriété chiffrée (sous forme d'un nombre flottant) sur des systèmes tiers tirant profit du protocole LSL.

Il n'est possible de créer qu'un seul flux par passation, mais celui-ci prendra en charge l'ensemble des canaux du protocole et procèdera à la mise à jour du flux à intervalle régulier.

Comme souvent dans VRmaze, une entité permet le contrôle et la gestion du flux, tandis que d'autres nœuds de VRmaze se chargent de fournir la donnée.

Licence spécifique

Une licence spécifique est nécessaire pour l'envoi d'un flux LSL

Durée de vie du flux LSL

Il est conseillé de créer une entité de contrôle de flux en tant qu'enfant direct du protocole, ainsi, le flux aura la durée de vie du protocole.

Fréquence différenciée ?

Il n'est pas possible d'avoir des fréquence de rafraichissement différentes entre les canaux d'un flux LSL, à moins que la mise à jour des propriétés soient plus lentes que la fréquence du flux.

Nœud de contrôle de flux

L'entité LSL Streaming Entity permet la création d'un flux ayant des propriétés configurables dont :

  • Le nom du flux
  • Le type
  • La source du flux
  • La fréquence d'envoi

Image title 2

Le contrôleur de flux LSL.

Nombre de canaux

L'un des points important concernant le flux LSL concerne le nombre de canaux du flux en lui même. Ce nombre de flux est automatiquement calculé par VRmaze et dépend donc directement du protocole. En effet, lors de la création du flux, VRmaze va chercher l'ensemble des nœuds nécessitant des canaux de communication dans le protocole, et leur réserver un espace dans le flux LSL. En ce sens, le nombre de canaux n'est pas un paramètre modifiable de l'entité.

Lorsqu'un flux est créé, les canaux de communication sont attribués à chaque entité en ayant besoin. Pour toute la durée du protocole, le canal sera réservé à l'entité. Si une entité est enfant d'un essai quelconque, le canal de communication sera mis à jour lors de cet essai. En amont, il aura la valeur de 0, en aval, il continuera à avoir la dernière valeur mise à jour par l'entité.

Canal de communication

Un canal de communication LSL est assigné à une entité, même si a un instant t, l'entité n'est pas active. Sa valeur correspondra à la dernière valeur connue ou 0 le cas échéant.

Plusieurs canaux LSL pour une seule entité ?

Il est tout à fait possible d'une entité nécessite plus d'un canal de communication (un vecteur 3 par exemple). Dans ce cas, le contrôleur de flux lui réservera autant de canaux que nécessaire.

Description

Un flux LSL dispose d'une description permettant de renseigner sur le contenu du flux en question. Cette description est fournie automatiquement au format XML par VRmaze en fonction des différentes entités. Seul le nom de l'entité aura un impact sur la description des canaux qui lui sont attribués.

Code hiérarchique ?

Une information de description concerne le HierarchyCode qui est une représentation numérique de la position de l'entité dans l'arbre complet du protocole. Ce code est unique pour chaque entité du protocole et permet une distinction lorsque le nom des entités est identique.

Canaux LSL

Attributs personnalisés

La création de canaux de communication LSL dépend absolument du besoin établi. Chaque protocole peut envoyer un flux totalement différent en fonction des nécessités. Par défaut, aucune entité n’envoie de données via le protocole LSL, il est nécessaire de les déclarer pour rester sélectif dans les données à envoyer et ne pas tout envoyer, qui n'aurait pas de sens.

Il est ainsi possible de déclarer des canaux de communication de deux manières différentes. La première consiste à déclarer une propriété d'entité comme étant envoyé via le flux LSL. Pour ce faire, il suffit d'ajouter un attribut personnalisé de type LSL Property sur l'entité voulue et sélectionner la propriété à envoyer.

Image title 2

L'attribut personnalisé `LSL Property`

Modifier le nom de l'attribut

L'attribut personnalisé LSL Property dispose d'un nom modifiable. Ce nom sera intégré à la description du flux LSL ce qui permet d'obtenir des informations plus précises sur le canal associé.

Plusieurs attributs personnalisés ?

Il est possible d'associer plusieurs attributs personnalisés LSL Property à une même entité.

Si l'attribut personnalisé permet de rapidement créer un nouveau canal sur une propriété spécifique, il ne propose malheureusement pas toutes les propriétés accessibles au sein d'une entité. Dans certains cas, il est nécessaire d'exposer des propriétés inaccessibles via cet attribut personnalisé. Dans ce cas, il convient de créer un graphe de comportement qui, lui aussi, permet la création de canaux de communication, avec une latitude bien supérieure.

Variables de Graphes

Le graphe de comportement peut contenir des variables LSL permettant l'envoi de n'importe quelle valeur sur le flux LSL.

Image title 2

Les variables LSL.

Il existe 4 types de variables LSL :

  • Nombre (1x canal)
  • Vecteur 2 (2x canaux)
  • Vecteur 3 (3x canaux)
  • Couleur (4x canaux)

Image title 2

Graphe disposant de variables LSL.

Il est ainsi possible d'associer une valeur à une variable LSL et la voir être exposé via le flux LSL.

Mise à jour de la valeur

Le canal de communication est mise à jour à l'affectation d'une nouvelle valeur à la variable (via le node Set Variable Property).