@@ -20,10 +20,8 @@ Le device server est constitué de deux devices :
...
@@ -20,10 +20,8 @@ Le device server est constitué de deux devices :
# Constitution des devices
# Constitution des devices
## OpcUaConnector
## OpcUaConnector
### Attributs
### Attributs
Le device n'a qu'un attribut
Le device n'a qu'un attribut fixe : `asyncReplyResult`. Il affiche les réponses des commandes exécutée en asynchrone. C'est un String SPECTRUM en lecture seule.
A l'exception de "asyncReplyResult", tous les attributs sont dynamiques et créés d'après les informations de la session.
Tous les autres attributs sont dynamiques et créés d'après les informations de la session.
L'attribut "asyncReplyResult" reçoit les réponses des commandes exécutée en asynchrone. C'est un String SPECTRUM en lecture seule.
### Commandes
### Commandes
| Nom |Paramètre | Description | Exemple |
| Nom |Paramètre | Description | Exemple |
...
@@ -50,7 +48,7 @@ L'attribut "asyncReplyResult" reçoit les réponses des commandes exécutée en
...
@@ -50,7 +48,7 @@ L'attribut "asyncReplyResult" reçoit les réponses des commandes exécutée en
## OpcUaSubscriber
## OpcUaSubscriber
### Attributs
### Attributs
Tous les attributs sont dynamiques et créés d'après les propriétés.
Tous les attributs sont créés dynamiquement d'après les propriétés.
### Commandes
### Commandes
| Nom |Paramètre | Description | Exemple |
| Nom |Paramètre | Description | Exemple |
...
@@ -62,7 +60,7 @@ Tous les attributs sont dynamiques et créés d'après les propriétés.
...
@@ -62,7 +60,7 @@ Tous les attributs sont dynamiques et créés d'après les propriétés.
### Propriétés
### Propriétés
| Nom | Description | Exemple | Valeur par défaut |
| Nom | Description | Exemple | Valeur par défaut |
| subscriptionsJson | La configuration du device au format JSON. | [Voir paragraphe dédié.](#description-des-souscriptions-au-format-json) | Vide
| subscriptionsJson | La configuration du device au format JSON.<br/>Il y est décrit l'ensemble des souscriptions et des attributs avec leur paramètrage. | [Voir paragraphe dédié.](#description-des-souscriptions-au-format-json) | Videe
# Description d'un nœud
# Description d'un nœud
Un nœud peut être décrit par trois paramètres :
Un nœud peut être décrit par trois paramètres :
...
@@ -70,7 +68,7 @@ Un nœud peut être décrit par trois paramètres :
...
@@ -70,7 +68,7 @@ Un nœud peut être décrit par trois paramètres :
* Le NamespaceIndex,
* Le NamespaceIndex,
* Le type d'identifiant.
* Le type d'identifiant.
Un namespaceIndex et un type d'identifiant par défaut sont définit par les propriété. Il est possible de définir un nœud de trois manières :
Un namespaceIndex et un type d'identifiant par défaut sont définit par les propriétés. Il est possible de définir un nœud de trois manières :
* Identifiant seul : le namespaceIndex et le type d'identifiant par défaut sont utilisés
* Identifiant seul : le namespaceIndex et le type d'identifiant par défaut sont utilisés
* NamespaceIndex, Identifiant : le type d'identifiant par défaut est utilisés
* NamespaceIndex, Identifiant : le type d'identifiant par défaut est utilisés
* NamespaceIndex, Type d'identifiant, Identifiant : La description est complète.
* NamespaceIndex, Type d'identifiant, Identifiant : La description est complète.
...
@@ -79,6 +77,73 @@ Un namespaceIndex et un type d'identifiant par défaut sont définit par les pro
...
@@ -79,6 +77,73 @@ Un namespaceIndex et un type d'identifiant par défaut sont définit par les pro
Le device TangoOPCUA reçoit des évenements pour chaque changement de valeur d'un attribut OPCUA. En utilisant les propriété du device, il est possible de générer les évenements Tango équivalent.
Le device TangoOPCUA reçoit des évenements pour chaque changement de valeur d'un attribut OPCUA. En utilisant les propriété du device, il est possible de générer les évenements Tango équivalent.
# Description des souscriptions au format json
# Description des souscriptions au format json
## Définition
Les souscriptions sont décrites dans un objets composé des éléments suivants :
* root
* subscriptions : tableau dont les élements représentent une souscription OPC-UA.
* subscription : objet représentant une souscription
* attributes : tableau dont les élements représentent des attributs tango à créer à partir d'éléments OPC-UA
* attribute : objet représentant un attribut.
* name : Le nom de l'attribut dans tango. Il doit être unique pour tout le device.
* label : Le label à utilisé. S'il n'es pas précisé, alors il sera identique au nom.
* read : Décrit la le nœud OPC-UA auquel souscrire pour la partie lecture de l'attribut.
* write : tableau de nœuds OPC-UA sur lesquels écrire pour la partie écriture de l'attribut.
* events : tableau des évenements à produire en cas de notification de changmenent du nœud
* Les évenements possibles sont : change, archive, user_event et data_ready.
* samplingInterval : Interval d'échantillonnage du nœud lu.
* toBrowse : Booléen qui indique si le nœud est une racine à parcourir et qu'il faut souscrire en lecture à tous les nœuds finaux.
* toWriteLeafs : Booléen qui indique dans le cas ou le nœud est une racine à parcourir si les nœuds finaux doivent également être écrits.
* requestedPublishingInterval : The publishing interval requested to the OPC-UA server to use by default.
* defaultRequestedPublishingInterval : L'interval de publication à utiliser lorsqu'il n'est pas précisé dans les définitions des souscription.
* defaultSamplingInterval : L'interval d'échantillonnage à utiliser lorsqu'il n'est pas précisé dans les définitions des attributs.
* defaultNamespaceIndex : Le namespace index OPC-UA à utiliser lorsqu'il n'est pas précisé dans les définitions de nœuds.
* defaultType : Le type d'identifiant OPC-UA à utiliser lorsqu'il n'est pas précisé dans les définitions de nœuds. Les valeurs possibles sont : String, Numeric et Guid.
## Nœuds OPC-UA
Les nœuds OPC-UA doivent être décrits avec les attributs suivant :
* Id : Identifiant OPC-UA. Sous forme d'une chaine de caractère, entre `"`, même s'il est numérique. Par exemple : `"1138"`.
* type : Type d'identifiant OPC-UA. Les valeurs possibles sont : String, Numeric et Guid.
* NamspaceIndex : Index du namespace du nœud.
## Exemple
Dans l'exemple suivant, l'id OPC-UA contient le caractère `"`. Il s'agit normalement d'un cartère réservé au language JSON. Afin qu'il soit interpreté, il faut utiliser le caractère d'échapement `\` avant.
Il est décrit ci-dessous une souscription avec deux attributs tango : `reel` et `struct`.
Le nœud `struct` est une structure OPC-UA. Un seul paramètre sera souscrit mais il y aura autant d'attributs tango que de membre dans la structure.