Communication SCPI
Description
Une communication avec l'application smartCORE via le protocole SCPI est rendue possible au moyen du serveur SCPI intégré.
Interfaces et protocoles utilisés
- SCPI
Jeu de commandes SCPI
Le jeu de commandes SCPI pris en charge est présenté ci-dessous. IMPORTANT : si p. ex. telnet est utilisé pour la communication, l'entrée/sortie est limitée à la longueur de ligne maximale (généralement 4096 caractères). Il est alors recommandé de se tourner vers d'autres clients.
*IDN?
Identification de l'appareil de mesure
Paramètres
AUCUN
Valeur de retour
Liste SCPI (séparée par des virgules) de valeurs SCPI dans l'ordre suivant
| Paramètre | Type de données |
|---|---|
| Fabricant | STRING |
| Produit | STRING |
| Application | STRING |
| Version du protocole | INT |
| Numéro de série de l'appareil | STRING |
| Nom d'hôte de l'interface SCPI (communicante) | STRING |
| Port de l'interface SCPI (communicante) | INT |
| Version de l'application | STRING |
| Date de fabrication de l'appareil | STRING |
| Nom de l'appareil | STRING |
| Commentaire | STRING |
Exemple
< *IDN?
> "optiMEAS GmbH", "smartCORE", "smartcore", 0, "10000012345", "::ffff:127.0.0.1", 5024, "0.174", "19700101", "", "",
CONFIG:GET?
Interrogation du contenu des fichiers de configuration
Paramètres
| Opt. | Paramètre | Type de données | Plage de valeurs | Signification |
|---|---|---|---|---|
| Type de configuration | STRING | "STAT", "DYN" | Sélection de la configuration statique/dynamique |
Valeur de retour
Configuration JSON encodée en BASE64
Exemple
< config:get? stat
> <BASE64 Konfiguration>
CONFIG:SCHEMA?
Interrogation du schéma JSON des fichiers de configuration
Paramètres
| Opt. | Paramètre | Type de données | Plage de valeurs | Signification |
|---|---|---|---|---|
| Type de configuration | STRING | "STAT", "DYN" | Sélection du schéma de configuration statique/dynamique |
Valeur de retour
Schéma de configuration JSON encodé en BASE64
Exemple
< config:schema? stat
> <BASE64 Konfigurationsschema>
CONFIG:SET
Remplacement des fichiers de configuration
Paramètres
| Opt. | Paramètre | Type de données | Plage de valeurs | Signification |
|---|---|---|---|---|
| Type de source | STRING | "BASE64", "FILE", "URL" | Sélection de la source de configuration | |
| Type de configuration | STRING | "STAT", "DYN" | Sélection de la configuration statique/dynamique à remplacer | |
| Configuration | STRING | voir ci-dessous | Description de la configuration |
Valeur de retour
OK ou ERR
Exemples
< config:set base64,stat,<BASE64 Konfiguration>
> OK
< config:set file,dyn,/sde/smartcore_dynamic.json.new
> OK
< config:set url,dyn,http://myserver/smartcore_dynamic.json.new
> OK
DATA:COUNT?
Interrogation du nombre de canaux configurés
Paramètres
| Opt. | Paramètre | Type de données | Plage de valeurs | Signification |
|---|---|---|---|---|
| OUI | Sélection de canaux | STRING | Expression régulière pour la sélection de canaux |
Valeur de retour
INT
Exemples
< data:count?
> 42
< data:count? ^gps.*$
> 6
DATA:INFOS?
Interrogation des descriptions de canaux
Paramètres
| Opt. | Paramètre | Type de données | Plage de valeurs | Signification |
|---|---|---|---|---|
| OUI | Sélection de canaux | STRING[] | Liste de noms de canaux |
Valeur de retour
Description des canaux encodée en BASE64
Exemples
< data:infos?
> <BASE64 kodierte Beschreibung der Kanäle>
< data:infos? Kanalname 1,Kanalname 2
> <BASE64 kodierte Beschreibung der Kanäle>
DATA:INFOS:REGEX?
Interrogation des descriptions de canaux
Paramètres
| Opt. | Paramètre | Type de données | Plage de valeurs | Signification |
|---|---|---|---|---|
| OUI | Sélection de canaux | STRING[] | Liste de noms de canaux (sous forme de RegEx) |
Valeur de retour
Description des canaux encodée en BASE64
Exemples
< data:infos:regex?
> <BASE64 kodierte Beschreibung der Kanäle>
< data:infos:regex? ^can.*$,^modbus.*$
> <BASE64 kodierte Beschreibung der Kanäle>
DATA:NAMES?
Interrogation des noms de canaux
Paramètres
| Opt. | Paramètre | Type de données | Plage de valeurs | Signification |
|---|---|---|---|---|
| OUI | Sélection de canaux | STRING[] | Liste de noms de canaux |
Valeur de retour
STRING[] de noms de canaux existants
Exemples
< data:names?
> "temperature 1","canbus 2","modbus 3"
< data:names? canbus 2,modbus 3
> "canbus 2","modbus 3"
DATA:NAMES:REGEX?
Interrogation des noms de canaux
Paramètres
| Opt. | Paramètre | Type de données | Plage de valeurs | Signification |
|---|---|---|---|---|
| OUI | Sélection de canaux | STRING[] | Liste de noms de canaux (sous forme de RegEx) |
Valeur de retour
STRING[] de noms de canaux existants
Exemples
< data:names:regex?
> "temperature 1","canbus 2","modbus 3"
< data:names:regex? ^can.*$,^modbus.*$
> "canbus 2","modbus 3"
DATA:VALUES?
Interrogation des valeurs actuelles des canaux
Paramètres
| Opt. | Paramètre | Type de données | Plage de valeurs | Signification |
|---|---|---|---|---|
| OUI | Sélection de canaux | STRING[] | Liste de noms de canaux |
Valeur de retour
Tableau JSON encodé en BASE64 d'objets JSON contenant l'horodatage "t" et la valeur "v" pour toutes les valeurs de canaux.
Exemples
< data:values?
> <BASE64 kodiertes JSON Array>
< data:values? Kanalname 1,Kanalname 2
> <BASE64 kodiertes JSON Array>
DATA:VALUES:REGEX?
Interrogation des valeurs actuelles des canaux et de l'horodatage de la dernière mise à jour
Paramètres
| Opt. | Paramètre | Type de données | Plage de valeurs | Signification |
|---|---|---|---|---|
| OUI | Sélection de canaux | STRING[] | Liste de noms de canaux (sous forme de RegEx) |
Valeur de retour
Tableau JSON encodé en BASE64 d'objets JSON contenant l'horodatage "t" et la valeur "v" pour toutes les valeurs de canaux.
Exemples
< data:values:regex?
> <BASE64 kodiertes JSON Array>
< data:values:regex? ^can.*$,^modbus.*$
> <BASE64 kodiertes JSON Array>
DATA:VALUES:SET
Production d'une valeur de canal (p. ex. définition d'une variable de processus)
Paramètres
| Opt. | Paramètre | Type de données | Plage de valeurs | Signification |
|---|---|---|---|---|
| Sample | STRING | voir ci-dessous | Description de l'échantillon à produire |
L'échantillon est défini sous la forme d'un objet JSON avec les clés "channelName" et "value". Celui-ci doit ensuite être encodé en BASE64. Le canal spécifié au moyen de "channelName" doit déjà exister.
Valeur de retour
OK ou ERR
Exemple
< data:values:set <BASE64 kodiertes JSON Objekt mit Sample-Beschreibung>
> OK
ERROR?
Interrogation de la dernière erreur SCPI
Paramètres
AUCUN
Valeur de retour
Liste (séparée par des virgules) de INT,STRING composée du code d'erreur (différent de 0 en cas d'erreur) et d'une description de l'erreur
Exemple
< err?
> 0, "No Error!"
GPS:DATETIME?
Renvoie l'heure GPS du premier module GPS configuré.
Paramètres
AUCUN
Valeur de retour
Heure ZULU
Exemple
< gps:datetime?
> 0000-00-00T00:00:00.000Z
GPS:LOCATION?
Renvoie la position GPS du premier module GPS configuré.
Paramètres
AUCUN
Valeur de retour
FLOAT[] composé de la latitude, de la longitude et de l'altitude au-dessus du niveau de la mer.
Exemple
< gps:location?
> 0.00000000, 0.00000000, 0
MODULES:CALL:FACTORY?
Appel d'une fonction d'interface d'appel (statique) de la factory (~« classe ») d'un module
Paramètres
Liste (séparée par des virgules) des arguments suivants :
| Opt. | Paramètre | Type de données | Plage de valeurs | Signification |
|---|---|---|---|---|
| Factory | STRING | |||
| Fonction | STRING | |||
| OUI | Paramètre | STRING[] | voir ci-dessous |
Les paramètres désignés comme « Paramètre » sont optionnels. Des paires clé-valeur sont indiquées à chaque fois.
Valeur de retour
Objet JSON encodé en BASE64 représentant la valeur de retour de la fonction d'interface d'appel
Exemple
< modules:call:factory? factory,function
> <BASE64 kodiertes JSON Objekt>
< modules:call:factory? factory,function,Parameter 1 Key,Parameter 1 Value,Parameter 2 Key,Parameter 2 Value
> <BASE64 kodiertes JSON Objekt>
MODULES:CALL:FACTORY:JSON?
Appel d'une fonction d'interface d'appel (statique) de la factory (~« classe ») d'un module
Paramètres
Liste (séparée par des virgules) des arguments suivants :
| Opt. | Paramètre | Type de données | Plage de valeurs | Signification |
|---|---|---|---|---|
| Factory | STRING | |||
| Fonction | STRING | |||
| Paramètre | STRING | voir ci-dessous |
Un objet JSON encodé en BASE64, sous forme de STRING, doit être transmis comme « Paramètre ». Celui-ci se compose (normalement) de paires clé-valeur des paramètres de la fonction. Des structures hiérarchiques peuvent être représentées.
Valeur de retour
Objet JSON encodé en BASE64 représentant la valeur de retour de la fonction d'interface d'appel
Exemple
< modules:call:factory:json? factory,function,<BASE64 kodiertes JSON Objekt mit Parametern>
> <BASE64 kodiertes JSON Objekt>
MODULES:CALL:INSTANCE?
Appel d'une fonction d'interface d'appel du module instancié.
Paramètres
Liste (séparée par des virgules) des arguments suivants :
| Opt. | Paramètre | Type de données | Plage de valeurs | Signification |
|---|---|---|---|---|
| Type de configuration | STRING | "STAT", "DYN" | Type de la configuration qui instancie le module | |
| Nom du module | STRING | |||
| Fonction | STRING | |||
| OUI | Paramètre | STRING[] | voir ci-dessous |
Les paramètres désignés comme « Paramètre » sont optionnels. Des paires clé-valeur sont indiquées à chaque fois.
Valeur de retour
Objet JSON encodé en BASE64 représentant la valeur de retour de la fonction d'interface d'appel
Exemple
< modules:call:instance? stat,instance,function
> <BASE64 kodiertes JSON Objekt>
< modules:call:instance? dyn,instance,function,Parameter 1 Key,Parameter 1 Value,Parameter 2 Key,Parameter 2 Value
> <BASE64 kodiertes JSON Objekt>
MODULES:CALL:INSTANCE:JSON?
Appel d'une fonction d'interface d'appel du module instancié.
Paramètres
Liste (séparée par des virgules) des arguments suivants :
| Opt. | Paramètre | Type de données | Plage de valeurs | Signification |
|---|---|---|---|---|
| Type de configuration | STRING | "STAT", "DYN" | Type de la configuration qui instancie le module | |
| Factory | STRING | |||
| Fonction | STRING | |||
| Paramètre | STRING | voir ci-dessous |
Un objet JSON encodé en BASE64, sous forme de STRING, doit être transmis comme « Paramètre ». Celui-ci se compose (normalement) de paires clé-valeur des paramètres de la fonction. Des structures hiérarchiques peuvent être représentées.
Valeur de retour
Objet JSON encodé en BASE64 représentant la valeur de retour de la fonction d'interface d'appel
Exemple
< modules:call:instance:json? dyn,instance,function,<BASE64 kodiertes JSON Objekt mit Parametern>
> <BASE64 kodiertes JSON Objekt>
MODULES:FACTORIES:CALLSCHEMA:GET?
Interrogation du schéma d'appel des fonctions d'interface d'appel liées au module (« instance ») d'une factory de module (« classe »)
Paramètres
| Opt. | Paramètre | Type de données | Plage de valeurs | Signification |
|---|---|---|---|---|
| Factory | STRING |
Valeur de retour
Schéma JSON encodé en BASE64
Exemple
< modules:factories:callschema:get? factory
> <BASE64 kodiertes JSON Objekt>
MODULES:FACTORIES:CONFIGSCHEMA:GET?
Interrogation du schéma de configuration d'une factory de module (~« classe »)
Paramètres
| Opt. | Paramètre | Type de données | Plage de valeurs | Signification |
|---|---|---|---|---|
| Factory | STRING |
Valeur de retour
Schéma JSON encodé en BASE64
Exemple
< modules:factories:configschema:get? factory
> <BASE64 kodiertes JSON Objekt>
MODULES:FACTORIES:COUNT?
Interrogation du nombre de toutes les factories de modules (~« classes »)
Paramètres
AUCUN
Valeur de retour
INT
Exemple
< modules:factories:count?
> 42
MODULES:FACTORIES:DOC?
Interrogation des documentations de modules jointes
Paramètres
| Opt. | Paramètre | Type de données | Plage de valeurs | Signification |
|---|---|---|---|---|
| Factory | STRING | Factory de module (~« classe ») | ||
| OUI | Type | STRING | "base64", "text" | Encodage de la documentation renvoyée |
| OUI | Language | STRING | "de", "en" | Version linguistique de la documentation renvoyée |
Valeur de retour
Documentation en STRING ou en BASE64
Exemple
< modules:factories:doc? factory
> <Dokumentation>
MODULES:FACTORIES:DOC:CHANGELOG?
Interrogation des change logs de modules joints
Paramètres
| Opt. | Paramètre | Type de données | Plage de valeurs | Signification |
|---|---|---|---|---|
| Factory | STRING | Factory de module (~« classe ») | ||
| OUI | Type | STRING | "base64", "text" | Encodage de la documentation renvoyée |
Valeur de retour
Change log en STRING ou en BASE64
Exemple
< modules:factories:doc:changelog? factory
> <ChangeLog>
MODULES:FACTORIES:GET?
Interrogation de la description de toutes les factories de modules (~« classes »)
Paramètres
AUCUN
Valeur de retour
Tableau JSON encodé en BASE64 d'objets JSON avec les clés suivantes
| Clé | Signification |
|---|---|
| description | description abstraite du module |
| fileName | nom de fichier du Shared Object chargé dans lequel se trouve le module |
| name | nom de la factory de module |
| version | version |
Exemple
< modules:factories:get?
> <BASE64 kodiertes JSON Array>
MODULES:FACTORIES:STATICCALLSCHEMA:GET?
Interrogation du schéma d'appel des fonctions d'interface d'appel liées à la factory de module (« classe ») d'une factory de module (« classe »)
Paramètres
| Opt. | Paramètre | Type de données | Plage de valeurs | Signification |
|---|---|---|---|---|
| Factory | STRING |
Valeur de retour
Schéma JSON encodé en BASE64
Exemple
< modules:factories:staticcallschema:get? factory
> <BASE64 kodiertes JSON Objekt>
MODULES:GET?
Paramètres
AUCUN
Valeur de retour
Objet JSON encodé en BASE64 représentant, sous forme de map, une association de tous les modules (« instances ») à leurs factories de modules (« classes ») respectives.
Exemple
< modules:get?
> <BASE64 kodiertes JSON Objekt>
SYSTEM:CHANGELOG?
Interrogation du change log système joint.
Paramètres
| Opt. | Paramètre | Type de données | Plage de valeurs | Signification |
|---|---|---|---|---|
| OUI | Type | STRING | "base64", "text" | Encodage de la documentation renvoyée |
Valeur de retour
Change log système en STRING ou en BASE64
Exemple
< system:changelog?
> <ChangeLog>
SYSTEM:ERROR?
Interrogation de la dernière erreur système
Paramètres
AUCUN
Valeur de retour
Liste (séparée par des virgules) de INT,STRING composée du code d'erreur (différent de 0 en cas d'erreur) et d'une description de l'erreur
Exemple
< system:error?
> 0, "No Error!"
SYSTEM:RESTART
Redémarrage de l'application smartCORE. Si le module SCPI se trouve dans le fichier de configuration redémarré, il est déchargé et la connexion est coupée.
Paramètres
| Opt. | Paramètre | Type de données | Plage de valeurs | Signification |
|---|---|---|---|---|
| Type de redémarrage | STRING | "ALL", "DYN" |
Valeur de retour
OK
Exemple
< system:restart all
> OK
SYSTEM:START
Démarrage de l'application smartCORE arrêtée. Si le module SCPI se trouve dans le fichier de configuration redémarré, la connexion est coupée.
Paramètres
| Opt. | Paramètre | Type de données | Plage de valeurs | Signification |
|---|---|---|---|---|
| Type de démarrage | STRING | "ALL", "DYN" |
Valeur de retour
OK
Exemple
< system:stop
> OK
[...]
< system:start all
> OK
SYSTEM:STATE?
Interrogation de l'état de fonctionnement de smartCORE.
Paramètres
AUCUN
Valeur de retour
STRING décrivant l'état de fonctionnement. Les valeurs possibles sont "Running" (fonctionnement de mesure actif), "Ready" (mode configuration, fonctionnement de mesure arrêté), ainsi que, plus rarement, "Error" (une erreur est survenue) ou d'autres états de fonctionnement.
Exemple
< system:state?
> Running
SYSTEM:STOP
Arrêt de l'application smartCORE. La connexion SCPI n'est PAS coupée.
Paramètres
AUCUN
Valeur de retour
OK
Exemple
< system:stop
> OK
SYSTEM:VERSION?
Interrogation de la version de smartCORE
Paramètres
AUCUN
Valeur de retour
STRING
Exemple
< system:version?
> 42.0
SYSTEM:VERSION:MAJOR?
Interrogation de la version majeure (Major) de smartCORE
Paramètres
AUCUN
Valeur de retour
STRING
Exemple
< system:version:major?
> 42
SYSTEM:VERSION:MINOR?
Interrogation de la version mineure (Minor) de smartCORE
Paramètres
AUCUN
Valeur de retour
STRING
Exemple
< system:version:minor?
> 0
TIMEOUT?
Interrogation du temps d'attente maximal pour une action/requête qui bloque l'interface.
Paramètres
AUCUN
Valeur de retour
STRING
Exemple
< timeout?
> 60000
TIMEOUT
Définition du temps d'attente maximal pour une action/requête qui bloque l'interface.
Paramètres
| Opt. | Paramètre | Type de données | Plage de valeurs | Signification |
|---|---|---|---|---|
| Timeout | INT | 1 - | Temps d'attente maximal |
Valeur de retour
OK, ERR
Exemple
< timeout 60000
> OK