Aller au contenu principal

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ètreType de données
FabricantSTRING
ProduitSTRING
ApplicationSTRING
Version du protocoleINT
Numéro de série de l'appareilSTRING
Nom d'hôte de l'interface SCPI (communicante)STRING
Port de l'interface SCPI (communicante)INT
Version de l'applicationSTRING
Date de fabrication de l'appareilSTRING
Nom de l'appareilSTRING
CommentaireSTRING

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ètreType de donnéesPlage de valeursSignification
Type de configurationSTRING"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ètreType de donnéesPlage de valeursSignification
Type de configurationSTRING"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ètreType de donnéesPlage de valeursSignification
Type de sourceSTRING"BASE64", "FILE", "URL"Sélection de la source de configuration
Type de configurationSTRING"STAT", "DYN"Sélection de la configuration statique/dynamique à remplacer
ConfigurationSTRINGvoir ci-dessousDescription 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ètreType de donnéesPlage de valeursSignification
OUISélection de canauxSTRINGExpression 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ètreType de donnéesPlage de valeursSignification
OUISélection de canauxSTRING[]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ètreType de donnéesPlage de valeursSignification
OUISélection de canauxSTRING[]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ètreType de donnéesPlage de valeursSignification
OUISélection de canauxSTRING[]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ètreType de donnéesPlage de valeursSignification
OUISélection de canauxSTRING[]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ètreType de donnéesPlage de valeursSignification
OUISélection de canauxSTRING[]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ètreType de donnéesPlage de valeursSignification
OUISélection de canauxSTRING[]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ètreType de donnéesPlage de valeursSignification
SampleSTRINGvoir ci-dessousDescription 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ètreType de donnéesPlage de valeursSignification
FactorySTRING
FonctionSTRING
OUIParamètreSTRING[]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ètreType de donnéesPlage de valeursSignification
FactorySTRING
FonctionSTRING
ParamètreSTRINGvoir 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ètreType de donnéesPlage de valeursSignification
Type de configurationSTRING"STAT", "DYN"Type de la configuration qui instancie le module
Nom du moduleSTRING
FonctionSTRING
OUIParamètreSTRING[]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ètreType de donnéesPlage de valeursSignification
Type de configurationSTRING"STAT", "DYN"Type de la configuration qui instancie le module
FactorySTRING
FonctionSTRING
ParamètreSTRINGvoir 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ètreType de donnéesPlage de valeursSignification
FactorySTRING

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ètreType de donnéesPlage de valeursSignification
FactorySTRING

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ètreType de donnéesPlage de valeursSignification
FactorySTRINGFactory de module (~« classe »)
OUITypeSTRING"base64", "text"Encodage de la documentation renvoyée
OUILanguageSTRING"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ètreType de donnéesPlage de valeursSignification
FactorySTRINGFactory de module (~« classe »)
OUITypeSTRING"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
descriptiondescription abstraite du module
fileNamenom de fichier du Shared Object chargé dans lequel se trouve le module
namenom de la factory de module
versionversion

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ètreType de donnéesPlage de valeursSignification
FactorySTRING

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ètreType de donnéesPlage de valeursSignification
OUITypeSTRING"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ètreType de donnéesPlage de valeursSignification
Type de redémarrageSTRING"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ètreType de donnéesPlage de valeursSignification
Type de démarrageSTRING"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ètreType de donnéesPlage de valeursSignification
TimeoutINT1 -Temps d'attente maximal

Valeur de retour​

OK, ERR

Exemple​

< timeout 60000
> OK