Comunicación SCPI
Descripción
Se permite la comunicación con la aplicación smartCORE mediante el protocolo SCPI a través del servidor SCPI integrado.
Interfaces y protocolos utilizados
- SCPI
Conjunto de comandos SCPI
A continuación se presenta el conjunto de comandos SCPI admitido. IMPORTANTE: si se utiliza, por ejemplo, telnet para la comunicación, la entrada/salida está limitada al límite máximo de longitud de línea (por lo general, 4096 caracteres). En ese caso se recomienda recurrir a otros clientes.
*IDN?
Identificación del equipo de medición
Parámetros
NINGUNO
Valor devuelto
Lista SCPI (separada por comas) de valores SCPI en el siguiente orden
| Parámetro | Tipo de datos |
|---|---|
| Fabricante | STRING |
| Producto | STRING |
| Aplicación | STRING |
| Versión del protocolo | INT |
| Número de serie del dispositivo | STRING |
| Nombre de host de la interfaz SCPI (en comunicación) | STRING |
| Puerto de la interfaz SCPI (en comunicación) | INT |
| Versión de la aplicación | STRING |
| Fecha de fabricación del dispositivo | STRING |
| Nombre del dispositivo | STRING |
| Comentario | STRING |
Ejemplo
< *IDN?
> "optiMEAS GmbH", "smartCORE", "smartcore", 0, "10000012345", "::ffff:127.0.0.1", 5024, "0.174", "19700101", "", "",
CONFIG:GET?
Consulta del contenido de los archivos de configuración
Parámetros
| Opc. | Parámetro | Tipo de datos | Rango de valores | Significado |
|---|---|---|---|---|
| Tipo de configuración | STRING | "STAT", "DYN" | Selección de la configuración estática/dinámica |
Valor devuelto
Configuración JSON codificada en BASE64
Ejemplo
< config:get? stat
> <BASE64 Konfiguration>
CONFIG:SCHEMA?
Consulta del esquema JSON de los archivos de configuración
Parámetros
| Opc. | Parámetro | Tipo de datos | Rango de valores | Significado |
|---|---|---|---|---|
| Tipo de configuración | STRING | "STAT", "DYN" | Selección del esquema de configuración estático/dinámico |
Valor devuelto
Esquema de configuración JSON codificado en BASE64
Ejemplo
< config:schema? stat
> <BASE64 Konfigurationsschema>
CONFIG:SET
Sustitución de los archivos de configuración
Parámetros
| Opc. | Parámetro | Tipo de datos | Rango de valores | Significado |
|---|---|---|---|---|
| Tipo de origen | STRING | "BASE64", "FILE", "URL" | Selección del origen de la configuración | |
| Tipo de configuración | STRING | "STAT", "DYN" | Selección de la configuración estática/dinámica que se va a sustituir | |
| Configuración | STRING | véase más abajo | Descripción de la configuración |
Valor devuelto
OK o ERR
Ejemplos
< 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?
Consulta del número de canales configurados
Parámetros
| Opc. | Parámetro | Tipo de datos | Rango de valores | Significado |
|---|---|---|---|---|
| SÍ | Selección de canales | STRING | Expresión regular para la selección de canales |
Valor devuelto
INT
Ejemplos
< data:count?
> 42
< data:count? ^gps.*$
> 6
DATA:INFOS?
Consulta de las descripciones de los canales
Parámetros
| Opc. | Parámetro | Tipo de datos | Rango de valores | Significado |
|---|---|---|---|---|
| SÍ | Selección de canales | STRING[] | Lista de nombres de canal |
Valor devuelto
Descripción de los canales codificada en BASE64
Ejemplos
< data:infos?
> <BASE64 kodierte Beschreibung der Kanäle>
< data:infos? Kanalname 1,Kanalname 2
> <BASE64 kodierte Beschreibung der Kanäle>
DATA:INFOS:REGEX?
Consulta de las descripciones de los canales
Parámetros
| Opc. | Parámetro | Tipo de datos | Rango de valores | Significado |
|---|---|---|---|---|
| SÍ | Selección de canales | STRING[] | Lista de nombres de canal (como RegEx) |
Valor devuelto
Descripción de los canales codificada en BASE64
Ejemplos
< data:infos:regex?
> <BASE64 kodierte Beschreibung der Kanäle>
< data:infos:regex? ^can.*$,^modbus.*$
> <BASE64 kodierte Beschreibung der Kanäle>
DATA:NAMES?
Consulta de los nombres de canal
Parámetros
| Opc. | Parámetro | Tipo de datos | Rango de valores | Significado |
|---|---|---|---|---|
| SÍ | Selección de canales | STRING[] | Lista de nombres de canal |
Valor devuelto
STRING[] de nombres de canal existentes
Ejemplos
< data:names?
> "temperature 1","canbus 2","modbus 3"
< data:names? canbus 2,modbus 3
> "canbus 2","modbus 3"
DATA:NAMES:REGEX?
Consulta de los nombres de canal
Parámetros
| Opc. | Parámetro | Tipo de datos | Rango de valores | Significado |
|---|---|---|---|---|
| SÍ | Selección de canales | STRING[] | Lista de nombres de canal (como RegEx) |
Valor devuelto
STRING[] de nombres de canal existentes
Ejemplos
< data:names:regex?
> "temperature 1","canbus 2","modbus 3"
< data:names:regex? ^can.*$,^modbus.*$
> "canbus 2","modbus 3"
DATA:VALUES?
Consulta de los valores actuales de los canales
Parámetros
| Opc. | Parámetro | Tipo de datos | Rango de valores | Significado |
|---|---|---|---|---|
| SÍ | Selección de canales | STRING[] | Lista de nombres de canal |
Valor devuelto
Array JSON codificado en BASE64 de objetos JSON que contienen la marca de tiempo "t" y el valor "v" de todos los valores de los canales.
Ejemplos
< data:values?
> <BASE64 kodiertes JSON Array>
< data:values? Kanalname 1,Kanalname 2
> <BASE64 kodiertes JSON Array>
DATA:VALUES:REGEX?
Consulta de los valores actuales de los canales y de la marca de tiempo de la última actualización
Parámetros
| Opc. | Parámetro | Tipo de datos | Rango de valores | Significado |
|---|---|---|---|---|
| SÍ | Selección de canales | STRING[] | Lista de nombres de canal (como RegEx) |
Valor devuelto
Array JSON codificado en BASE64 de objetos JSON que contienen la marca de tiempo "t" y el valor "v" de todos los valores de los canales.
Ejemplos
< data:values:regex?
> <BASE64 kodiertes JSON Array>
< data:values:regex? ^can.*$,^modbus.*$
> <BASE64 kodiertes JSON Array>
DATA:VALUES:SET
Producción de un valor de canal (p. ej., establecer una variable de proceso)
Parámetros
| Opc. | Parámetro | Tipo de datos | Rango de valores | Significado |
|---|---|---|---|---|
| Muestra (Sample) | STRING | véase más abajo | Descripción de la muestra que se va a producir |
La muestra se define en forma de objeto JSON con las claves "channelName" y "value". Este debe codificarse a continuación en BASE64. El canal especificado mediante "channelName" debe existir ya.
Valor devuelto
OK o ERR
Ejemplo
< data:values:set <BASE64 kodiertes JSON Objekt mit Sample-Beschreibung>
> OK
ERROR?
Consulta del último error SCPI
Parámetros
NINGUNO
Valor devuelto
Lista (separada por comas) de INT,STRING formada por el código de error (distinto de 0 en caso de error) y una descripción del error
Ejemplo
< err?
> 0, "No Error!"
GPS:DATETIME?
Devolución de la hora GPS del primer módulo GPS configurado.
Parámetros
NINGUNO
Valor devuelto
Hora ZULU
Ejemplo
< gps:datetime?
> 0000-00-00T00:00:00.000Z
GPS:LOCATION?
Devolución de la posición GPS del primer módulo GPS configurado.
Parámetros
NINGUNO
Valor devuelto
FLOAT[] formado por latitud, longitud y altitud sobre el nivel del mar.
Ejemplo
< gps:location?
> 0.00000000, 0.00000000, 0
MODULES:CALL:FACTORY?
Llamada a una función estática de la interfaz de llamada (Call-Interface) de la factory (~«clase») de un módulo
Parámetros
Lista (separada por comas) de los siguientes argumentos:
| Opc. | Parámetro | Tipo de datos | Rango de valores | Significado |
|---|---|---|---|---|
| Factory | STRING | |||
| Función | STRING | |||
| SÍ | Parámetros | STRING[] | véase más abajo |
Los parámetros denominados «Parámetros» son opcionales. Se indican como pares clave-valor.
Valor devuelto
Objeto JSON codificado en BASE64 que representa el valor devuelto por la función de la Call-Interface
Ejemplo
< 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?
Llamada a una función estática de la interfaz de llamada (Call-Interface) de la factory (~«clase») de un módulo
Parámetros
Lista (separada por comas) de los siguientes argumentos:
| Opc. | Parámetro | Tipo de datos | Rango de valores | Significado |
|---|---|---|---|---|
| Factory | STRING | |||
| Función | STRING | |||
| Parámetros | STRING | véase más abajo |
Como «Parámetros» debe transmitirse un objeto JSON codificado en BASE64 en forma de STRING. Este consta (normalmente) de pares clave-valor de los parámetros de la función. Pueden representarse estructuras jerárquicas.
Valor devuelto
Objeto JSON codificado en BASE64 que representa el valor devuelto por la función de la Call-Interface
Ejemplo
< modules:call:factory:json? factory,function,<BASE64 kodiertes JSON Objekt mit Parametern>
> <BASE64 kodiertes JSON Objekt>
MODULES:CALL:INSTANCE?
Llamada a una función de la interfaz de llamada (Call-Interface) del módulo instanciado.
Parámetros
Lista (separada por comas) de los siguientes argumentos:
| Opc. | Parámetro | Tipo de datos | Rango de valores | Significado |
|---|---|---|---|---|
| Tipo de configuración | STRING | "STAT", "DYN" | Tipo de la configuración que instancia el módulo | |
| Nombre del módulo | STRING | |||
| Función | STRING | |||
| SÍ | Parámetros | STRING[] | véase más abajo |
Los parámetros denominados «Parámetros» son opcionales. Se indican como pares clave-valor.
Valor devuelto
Objeto JSON codificado en BASE64 que representa el valor devuelto por la función de la Call-Interface
Ejemplo
< 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?
Llamada a una función de la interfaz de llamada (Call-Interface) del módulo instanciado.
Parámetros
Lista (separada por comas) de los siguientes argumentos:
| Opc. | Parámetro | Tipo de datos | Rango de valores | Significado |
|---|---|---|---|---|
| Tipo de configuración | STRING | "STAT", "DYN" | Tipo de la configuración que instancia el módulo | |
| Factory | STRING | |||
| Función | STRING | |||
| Parámetros | STRING | véase más abajo |
Como «Parámetros» debe transmitirse un objeto JSON codificado en BASE64 en forma de STRING. Este consta (normalmente) de pares clave-valor de los parámetros de la función. Pueden representarse estructuras jerárquicas.
Valor devuelto
Objeto JSON codificado en BASE64 que representa el valor devuelto por la función de la Call-Interface
Ejemplo
< modules:call:instance:json? dyn,instance,function,<BASE64 kodiertes JSON Objekt mit Parametern>
> <BASE64 kodiertes JSON Objekt>
MODULES:FACTORIES:CALLSCHEMA:GET?
Consulta del esquema de llamada de las funciones de la Call-Interface relativas al módulo («instancia») de una factory de módulo («clase»)
Parámetros
| Opc. | Parámetro | Tipo de datos | Rango de valores | Significado |
|---|---|---|---|---|
| Factory | STRING |
Valor devuelto
Esquema JSON codificado en BASE64
Ejemplo
< modules:factories:callschema:get? factory
> <BASE64 kodiertes JSON Objekt>
MODULES:FACTORIES:CONFIGSCHEMA:GET?
Consulta del esquema de configuración de una factory de módulo (~«clase»)
Parámetros
| Opc. | Parámetro | Tipo de datos | Rango de valores | Significado |
|---|---|---|---|---|
| Factory | STRING |
Valor devuelto
Esquema JSON codificado en BASE64
Ejemplo
< modules:factories:configschema:get? factory
> <BASE64 kodiertes JSON Objekt>
MODULES:FACTORIES:COUNT?
Consulta del número de todas las factories de módulo (~«clases»)
Parámetros
NINGUNO
Valor devuelto
INT
Ejemplo
< modules:factories:count?
> 42
MODULES:FACTORIES:DOC?
Consulta de las documentaciones de módulo incluidas
Parámetros
| Opc. | Parámetro | Tipo de datos | Rango de valores | Significado |
|---|---|---|---|---|
| Factory | STRING | Factory de módulo (~«clase») | ||
| SÍ | Type | STRING | "base64", "text" | Codificación de la documentación devuelta |
| SÍ | Language | STRING | "de", "en" | Versión de idioma de la documentación devuelta |
Valor devuelto
Documentación como STRING o BASE64
Ejemplo
< modules:factories:doc? factory
> <Dokumentation>
MODULES:FACTORIES:DOC:CHANGELOG?
Consulta de los registros de cambios (Change Logs) incluidos de los módulos
Parámetros
| Opc. | Parámetro | Tipo de datos | Rango de valores | Significado |
|---|---|---|---|---|
| Factory | STRING | Factory de módulo (~«clase») | ||
| SÍ | Type | STRING | "base64", "text" | Codificación de la documentación devuelta |
Valor devuelto
Change Log como STRING o BASE64
Ejemplo
< modules:factories:doc:changelog? factory
> <ChangeLog>
MODULES:FACTORIES:GET?
Consulta de la descripción de todas las factories de módulo (~«clases»)
Parámetros
NINGUNO
Valor devuelto
Array JSON codificado en BASE64 de objetos JSON con las siguientes claves
| Clave | Significado |
|---|---|
| description | descripción abstracta del módulo |
| fileName | nombre de archivo del Shared Object cargado en el que se encuentra el módulo |
| name | nombre de la factory de módulo |
| version | versión |
Ejemplo
< modules:factories:get?
> <BASE64 kodiertes JSON Array>
MODULES:FACTORIES:STATICCALLSCHEMA:GET?
Consulta del esquema de llamada de las funciones de la Call-Interface relativas a la factory de módulo («clase») de una factory de módulo («clase»)
Parámetros
| Opc. | Parámetro | Tipo de datos | Rango de valores | Significado |
|---|---|---|---|---|
| Factory | STRING |
Valor devuelto
Esquema JSON codificado en BASE64
Ejemplo
< modules:factories:staticcallschema:get? factory
> <BASE64 kodiertes JSON Objekt>
MODULES:GET?
Parámetros
NINGUNO
Valor devuelto
Objeto JSON codificado en BASE64 que representa, en forma de mapa (Map), una asignación de todos los módulos («instancias») a sus respectivas factories de módulo («clases»).
Ejemplo
< modules:get?
> <BASE64 kodiertes JSON Objekt>
SYSTEM:CHANGELOG?
Consulta del Change Log del sistema incluido.
Parámetros
| Opc. | Parámetro | Tipo de datos | Rango de valores | Significado |
|---|---|---|---|---|
| SÍ | Type | STRING | "base64", "text" | Codificación de la documentación devuelta |
Valor devuelto
System Change Log como STRING o BASE64
Ejemplo
< system:changelog?
> <ChangeLog>
SYSTEM:ERROR?
Consulta del último error del sistema
Parámetros
NINGUNO
Valor devuelto
Lista (separada por comas) de INT,STRING formada por el código de error (distinto de 0 en caso de error) y una descripción del error
Ejemplo
< system:error?
> 0, "No Error!"
SYSTEM:RESTART
Reinicio de la aplicación smartCORE. Si el módulo SCPI se encuentra en el archivo de configuración reiniciado, este se descarga y la conexión se interrumpe.
Parámetros
| Opc. | Parámetro | Tipo de datos | Rango de valores | Significado |
|---|---|---|---|---|
| Tipo de reinicio | STRING | "ALL", "DYN" |
Valor devuelto
OK
Ejemplo
< system:restart all
> OK
SYSTEM:START
Inicio de la aplicación smartCORE detenida. Si el módulo SCPI se encuentra en el archivo de configuración reiniciado, la conexión se interrumpe.
Parámetros
| Opc. | Parámetro | Tipo de datos | Rango de valores | Significado |
|---|---|---|---|---|
| Tipo de inicio | STRING | "ALL", "DYN" |
Valor devuelto
OK
Ejemplo
< system:stop
> OK
[...]
< system:start all
> OK
SYSTEM:STATE?
Consulta del estado de funcionamiento del smartCORE.
Parámetros
NINGUNO
Valor devuelto
Descripción del estado de funcionamiento como STRING. Los valores posibles son "Running" (modo de medición activo), "Ready" (modo de configuración, modo de medición detenido) y, con menor frecuencia, "Error" (se ha producido un error) u otros estados de funcionamiento.
Ejemplo
< system:state?
> Running
SYSTEM:STOP
Detención de la aplicación smartCORE. La conexión SCPI NO se interrumpe.
Parámetros
NINGUNO
Valor devuelto
OK
Ejemplo
< system:stop
> OK
SYSTEM:VERSION?
Consulta de la versión del smartCORE
Parámetros
NINGUNO
Valor devuelto
STRING
Ejemplo
< system:version?
> 42.0
SYSTEM:VERSION:MAJOR?
Consulta de la versión mayor (Major) del smartCORE
Parámetros
NINGUNO
Valor devuelto
STRING
Ejemplo
< system:version:major?
> 42
SYSTEM:VERSION:MINOR?
Consulta de la versión menor (Minor) del smartCORE
Parámetros
NINGUNO
Valor devuelto
STRING
Ejemplo
< system:version:minor?
> 0
TIMEOUT?
Consulta del tiempo de espera máximo para una acción/consulta que bloquea la interfaz.
Parámetros
NINGUNO
Valor devuelto
STRING
Ejemplo
< timeout?
> 60000
TIMEOUT
Establecimiento del tiempo de espera máximo para una acción/consulta que bloquea la interfaz.
Parámetros
| Opc. | Parámetro | Tipo de datos | Rango de valores | Significado |
|---|---|---|---|---|
| Timeout | INT | 1 - | Tiempo de espera máximo |
Valor devuelto
OK, ERR
Ejemplo
< timeout 60000
> OK