Passa al contenuto principale

Comunicazione SCPI

Descrizione​

La comunicazione con l'applicazione smartCORE tramite protocollo SCPI è resa possibile da un server SCPI integrato.

Interfacce e protocolli utilizzati​

  • SCPI

Set di comandi SCPI​

Di seguito viene illustrato il set di comandi SCPI supportato. IMPORTANTE: se per la comunicazione si utilizza ad es. telnet, l'ingresso/uscita è limitato al limite massimo di lunghezza della riga (in genere 4096 caratteri). In tal caso si raccomanda di ricorrere ad altri client.

*IDN?​

Identificazione del dispositivo di misura

Parametri​

NESSUNO

Valore restituito​

Lista SCPI (separata da virgole) di valori SCPI nel seguente ordine

ParametroTipo di dati
ProduttoreSTRING
ProdottoSTRING
ApplicazioneSTRING
Versione del protocolloINT
Numero di serie del dispositivoSTRING
Hostname dell'interfaccia SCPI (in comunicazione)STRING
Porta dell'interfaccia SCPI (in comunicazione)INT
Versione dell'applicazioneSTRING
Data di produzione del dispositivoSTRING
Nome del dispositivoSTRING
CommentoSTRING

Esempio​

< *IDN?
> "optiMEAS GmbH", "smartCORE", "smartcore", 0, "10000012345", "::ffff:127.0.0.1", 5024, "0.174", "19700101", "", "",

CONFIG:GET?​

Interrogazione dei contenuti dei file di configurazione

Parametri​

Opz.ParametroTipo di datiIntervallo di valoriSignificato
Tipo di configurazioneSTRING"STAT", "DYN"Selezione della configurazione statica/dinamica

Valore restituito​

Configurazione JSON codificata in BASE64

Esempio​

< config:get? stat
> <BASE64 Konfiguration>

CONFIG:SCHEMA?​

Interrogazione dello schema JSON dei file di configurazione

Parametri​

Opz.ParametroTipo di datiIntervallo di valoriSignificato
Tipo di configurazioneSTRING"STAT", "DYN"Selezione dello schema di configurazione statico/dinamico

Valore restituito​

Schema di configurazione JSON codificato in BASE64

Esempio​

< config:schema? stat
> <BASE64 Konfigurationsschema>

CONFIG:SET​

Sostituzione dei file di configurazione

Parametri​

Opz.ParametroTipo di datiIntervallo di valoriSignificato
Tipo di sorgenteSTRING"BASE64", "FILE", "URL"Selezione della sorgente della configurazione
Tipo di configurazioneSTRING"STAT", "DYN"Selezione della configurazione statica/dinamica da sostituire
ConfigurazioneSTRINGvedere sottoDescrizione della configurazione

Valore restituito​

OK oppure ERR

Esempi​

< 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?​

Interrogazione del numero di canali configurati

Parametri​

Opz.ParametroTipo di datiIntervallo di valoriSignificato
SÌSelezione dei canaliSTRINGEspressione regolare per la selezione dei canali

Valore restituito​

INT

Esempi​

< data:count?
> 42

< data:count? ^gps.*$
> 6

DATA:INFOS?​

Interrogazione delle descrizioni dei canali

Parametri​

Opz.ParametroTipo di datiIntervallo di valoriSignificato
SÌSelezione dei canaliSTRING[]Elenco di nomi di canale

Valore restituito​

Descrizione dei canali codificata in BASE64

Esempi​

< data:infos?
> <BASE64 kodierte Beschreibung der Kanäle>

< data:infos? Kanalname 1,Kanalname 2
> <BASE64 kodierte Beschreibung der Kanäle>

DATA:INFOS:REGEX?​

Interrogazione delle descrizioni dei canali

Parametri​

Opz.ParametroTipo di datiIntervallo di valoriSignificato
SÌSelezione dei canaliSTRING[]Elenco di nomi di canale (come RegEx)

Valore restituito​

Descrizione dei canali codificata in BASE64

Esempi​

< data:infos:regex?
> <BASE64 kodierte Beschreibung der Kanäle>

< data:infos:regex? ^can.*$,^modbus.*$
> <BASE64 kodierte Beschreibung der Kanäle>

DATA:NAMES?​

Interrogazione dei nomi dei canali

Parametri​

Opz.ParametroTipo di datiIntervallo di valoriSignificato
SÌSelezione dei canaliSTRING[]Elenco di nomi di canale

Valore restituito​

STRING[] di nomi di canale esistenti

Esempi​

< data:names?
> "temperature 1","canbus 2","modbus 3"

< data:names? canbus 2,modbus 3
> "canbus 2","modbus 3"

DATA:NAMES:REGEX?​

Interrogazione dei nomi dei canali

Parametri​

Opz.ParametroTipo di datiIntervallo di valoriSignificato
SÌSelezione dei canaliSTRING[]Elenco di nomi di canale (come RegEx)

Valore restituito​

STRING[] di nomi di canale esistenti

Esempi​

< data:names:regex?
> "temperature 1","canbus 2","modbus 3"

< data:names:regex? ^can.*$,^modbus.*$
> "canbus 2","modbus 3"

DATA:VALUES?​

Interrogazione dei valori correnti dei canali

Parametri​

Opz.ParametroTipo di datiIntervallo di valoriSignificato
SÌSelezione dei canaliSTRING[]Elenco di nomi di canale

Valore restituito​

Array JSON codificato in BASE64 di oggetti JSON che contengono il timestamp "t" e il valore "v" per tutti i valori dei canali.

Esempi​

< data:values?
> <BASE64 kodiertes JSON Array>

< data:values? Kanalname 1,Kanalname 2
> <BASE64 kodiertes JSON Array>

DATA:VALUES:REGEX?​

Interrogazione dei valori correnti dei canali e dei timestamp dell'ultimo aggiornamento

Parametri​

Opz.ParametroTipo di datiIntervallo di valoriSignificato
SÌSelezione dei canaliSTRING[]Elenco di nomi di canale (come RegEx)

Valore restituito​

Array JSON codificato in BASE64 di oggetti JSON che contengono il timestamp "t" e il valore "v" per tutti i valori dei canali.

Esempi​

< data:values:regex?
> <BASE64 kodiertes JSON Array>

< data:values:regex? ^can.*$,^modbus.*$
> <BASE64 kodiertes JSON Array>

DATA:VALUES:SET​

Produzione di un valore di canale (ad es. impostazione di una variabile di processo)

Parametri​

Opz.ParametroTipo di datiIntervallo di valoriSignificato
SampleSTRINGvedere sottoDescrizione del sample da produrre

Il sample viene definito sotto forma di oggetto JSON con le chiavi "channelName" e "value". Questo oggetto deve poi essere codificato in BASE64. Il canale specificato tramite "channelName" deve già esistere.

Valore restituito​

OK oppure ERR

Esempio​

< data:values:set <BASE64 kodiertes JSON Objekt mit Sample-Beschreibung>
> OK

ERROR?​

Interrogazione dell'ultimo errore SCPI

Parametri​

NESSUNO

Valore restituito​

Lista (separata da virgole) di INT,STRING composta da un codice di errore (diverso da 0 in caso di errore) e da una descrizione dell'errore

Esempio​

< err?
> 0, "No Error!"

GPS:DATETIME?​

Restituzione dell'ora GPS del primo modulo GPS configurato.

Parametri​

NESSUNO

Valore restituito​

Ora ZULU

Esempio​

< gps:datetime?
> 0000-00-00T00:00:00.000Z

GPS:LOCATION?​

Restituzione della posizione GPS del primo modulo GPS configurato.

Parametri​

NESSUNO

Valore restituito​

FLOAT[] composto da latitudine, longitudine e altitudine sul livello del mare.

Esempio​

< gps:location?
> 0.00000000, 0.00000000, 0

MODULES:CALL:FACTORY?​

Chiamata di una funzione call-interface (statica) dalla factory (~"classe") di un modulo

Parametri​

Lista (separata da virgole) dei seguenti argomenti:

Opz.ParametroTipo di datiIntervallo di valoriSignificato
FactorySTRING
FunzioneSTRING
SÌParametriSTRING[]vedere sotto

I parametri denominati "Parametri" sono opzionali. Vengono indicate coppie chiave-valore.

Valore restituito​

Oggetto JSON codificato in BASE64 che rappresenta il valore restituito della funzione call-interface

Esempio​

< 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?​

Chiamata di una funzione call-interface (statica) dalla factory (~"classe") di un modulo

Parametri​

Lista (separata da virgole) dei seguenti argomenti:

Opz.ParametroTipo di datiIntervallo di valoriSignificato
FactorySTRING
FunzioneSTRING
ParametriSTRINGvedere sotto

Come "Parametri" deve essere passato un oggetto JSON codificato in BASE64 sotto forma di STRING. Questo è composto (normalmente) da coppie chiave-valore dei parametri della funzione. È possibile rappresentare strutture gerarchiche.

Valore restituito​

Oggetto JSON codificato in BASE64 che rappresenta il valore restituito della funzione call-interface

Esempio​

< modules:call:factory:json? factory,function,<BASE64 kodiertes JSON Objekt mit Parametern>
> <BASE64 kodiertes JSON Objekt>

MODULES:CALL:INSTANCE?​

Chiamata di una funzione call-interface dal modulo istanziato.

Parametri​

Lista (separata da virgole) dei seguenti argomenti:

Opz.ParametroTipo di datiIntervallo di valoriSignificato
Tipo di configurazioneSTRING"STAT", "DYN"Tipo di configurazione che istanzia il modulo
Nome del moduloSTRING
FunzioneSTRING
SÌParametriSTRING[]vedere sotto

I parametri denominati "Parametri" sono opzionali. Vengono indicate coppie chiave-valore.

Valore restituito​

Oggetto JSON codificato in BASE64 che rappresenta il valore restituito della funzione call-interface

Esempio​

< 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?​

Chiamata di una funzione call-interface dal modulo istanziato.

Parametri​

Lista (separata da virgole) dei seguenti argomenti:

Opz.ParametroTipo di datiIntervallo di valoriSignificato
Tipo di configurazioneSTRING"STAT", "DYN"Tipo di configurazione che istanzia il modulo
FactorySTRING
FunzioneSTRING
ParametriSTRINGvedere sotto

Come "Parametri" deve essere passato un oggetto JSON codificato in BASE64 sotto forma di STRING. Questo è composto (normalmente) da coppie chiave-valore dei parametri della funzione. È possibile rappresentare strutture gerarchiche.

Valore restituito​

Oggetto JSON codificato in BASE64 che rappresenta il valore restituito della funzione call-interface

Esempio​

< modules:call:instance:json? dyn,instance,function,<BASE64 kodiertes JSON Objekt mit Parametern>
> <BASE64 kodiertes JSON Objekt>

MODULES:FACTORIES:CALLSCHEMA:GET?​

Interrogazione dello schema di chiamata delle funzioni call-interface relative al modulo ("istanza") di una factory di moduli ("classe")

Parametri​

Opz.ParametroTipo di datiIntervallo di valoriSignificato
FactorySTRING

Valore restituito​

Schema JSON codificato in BASE64

Esempio​

< modules:factories:callschema:get? factory
> <BASE64 kodiertes JSON Objekt>

MODULES:FACTORIES:CONFIGSCHEMA:GET?​

Interrogazione dello schema di configurazione di una factory di moduli (~"classe")

Parametri​

Opz.ParametroTipo di datiIntervallo di valoriSignificato
FactorySTRING

Valore restituito​

Schema JSON codificato in BASE64

Esempio​

< modules:factories:configschema:get? factory
> <BASE64 kodiertes JSON Objekt>

MODULES:FACTORIES:COUNT?​

Interrogazione del numero di tutte le factory di moduli (~"classi")

Parametri​

NESSUNO

Valore restituito​

INT

Esempio​

< modules:factories:count?
> 42

MODULES:FACTORIES:DOC?​

Interrogazione delle documentazioni dei moduli allegate

Parametri​

Opz.ParametroTipo di datiIntervallo di valoriSignificato
FactorySTRINGFactory di moduli (~"classe")
SÌTypeSTRING"base64", "text"Codifica della documentazione restituita
SÌLanguageSTRING"de", "en"Versione linguistica della documentazione restituita

Valore restituito​

Documentazione STRING o BASE64

Esempio​

< modules:factories:doc? factory
> <Dokumentation>

MODULES:FACTORIES:DOC:CHANGELOG?​

Interrogazione dei change log dei moduli allegati

Parametri​

Opz.ParametroTipo di datiIntervallo di valoriSignificato
FactorySTRINGFactory di moduli (~"classe")
SÌTypeSTRING"base64", "text"Codifica della documentazione restituita

Valore restituito​

Change log STRING o BASE64

Esempio​

< modules:factories:doc:changelog? factory
> <ChangeLog>

MODULES:FACTORIES:GET?​

Interrogazione della descrizione di tutte le factory di moduli (~"classi")

Parametri​

NESSUNO

Valore restituito​

Array JSON codificato in BASE64 di oggetti JSON con le seguenti chiavi

ChiaveSignificato
descriptiondescrizione astratta del modulo
fileNamenome del file dello shared object caricato in cui si trova il modulo
namenome della factory del modulo
versionversione

Esempio​

< modules:factories:get?
> <BASE64 kodiertes JSON Array>

MODULES:FACTORIES:STATICCALLSCHEMA:GET?​

Interrogazione dello schema di chiamata delle funzioni call-interface relative alla factory di moduli ("classe") di una factory di moduli ("classe")

Parametri​

Opz.ParametroTipo di datiIntervallo di valoriSignificato
FactorySTRING

Valore restituito​

Schema JSON codificato in BASE64

Esempio​

< modules:factories:staticcallschema:get? factory
> <BASE64 kodiertes JSON Objekt>

MODULES:GET?​

Parametri​

NESSUNO

Valore restituito​

Oggetto JSON codificato in BASE64 che rappresenta, sotto forma di mappa, un'associazione di tutti i moduli ("istanze") alle rispettive factory di moduli ("classi").

Esempio​

< modules:get?
> <BASE64 kodiertes JSON Objekt>

SYSTEM:CHANGELOG?​

Interrogazione del change log di sistema allegato.

Parametri​

Opz.ParametroTipo di datiIntervallo di valoriSignificato
SÌTypeSTRING"base64", "text"Codifica della documentazione restituita

Valore restituito​

Change log di sistema STRING o BASE64

Esempio​

< system:changelog?
> <ChangeLog>

SYSTEM:ERROR?​

Interrogazione dell'ultimo errore di sistema

Parametri​

NESSUNO

Valore restituito​

Lista (separata da virgole) di INT,STRING composta da un codice di errore (diverso da 0 in caso di errore) e da una descrizione dell'errore

Esempio​

< system:error?
> 0, "No Error!"

SYSTEM:RESTART​

Riavvio dell'applicazione smartCORE. Se il modulo SCPI si trova nel file di configurazione riavviato, viene scaricato e la connessione viene interrotta.

Parametri​

Opz.ParametroTipo di datiIntervallo di valoriSignificato
Tipo di riavvioSTRING"ALL", "DYN"

Valore restituito​

OK

Esempio​

< system:restart all
> OK

SYSTEM:START​

Avvio dell'applicazione smartCORE arrestata. Se il modulo SCPI si trova nel file di configurazione riavviato, la connessione viene interrotta.

Parametri​

Opz.ParametroTipo di datiIntervallo di valoriSignificato
Tipo di avvioSTRING"ALL", "DYN"

Valore restituito​

OK

Esempio​

< system:stop
> OK
[...]
< system:start all
> OK

SYSTEM:STATE?​

Interrogazione dello stato operativo di smartCORE.

Parametri​

NESSUNO

Valore restituito​

STRING con la descrizione dello stato operativo. I valori possibili sono "Running" (esercizio di misura attivo), "Ready" (modalità di configurazione, esercizio di misura arrestato) nonché, più raramente, "Error" (si è verificato un errore) o altri stati operativi.

Esempio​

< system:state?
> Running

SYSTEM:STOP​

Arresto dell'applicazione smartCORE. La connessione SCPI NON viene interrotta.

Parametri​

NESSUNO

Valore restituito​

OK

Esempio​

< system:stop
> OK

SYSTEM:VERSION?​

Interrogazione della versione di smartCORE

Parametri​

NESSUNO

Valore restituito​

STRING

Esempio​

< system:version?
> 42.0

SYSTEM:VERSION:MAJOR?​

Interrogazione della versione major di smartCORE

Parametri​

NESSUNO

Valore restituito​

STRING

Esempio​

< system:version:major?
> 42

SYSTEM:VERSION:MINOR?​

Interrogazione della versione minor di smartCORE

Parametri​

NESSUNO

Valore restituito​

STRING

Esempio​

< system:version:minor?
> 0

TIMEOUT?​

Interrogazione del tempo di attesa massimo per un'azione/interrogazione che blocca l'interfaccia.

Parametri​

NESSUNO

Valore restituito​

STRING

Esempio​

< timeout?
> 60000

TIMEOUT​

Impostazione del tempo di attesa massimo per un'azione/interrogazione che blocca l'interfaccia.

Parametri​

Opz.ParametroTipo di datiIntervallo di valoriSignificato
TimeoutINT1 -Tempo di attesa massimo

Valore restituito​

OK, ERR

Esempio​

< timeout 60000
> OK