Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Referencia

La orden crucible

$ crucible --help
Crucible — simulador de bancos de instrumentos SCPI por red

USO
  crucible                         arranca el banco por defecto (ver abajo)
  crucible <banco.yaml>            arranca todos los instrumentos del banco
  crucible <perfil.yaml> [puerto]  arranca un solo instrumento (puerto 5025)
  crucible --validar <fichero>     comprueba un banco o perfil sin arrancarlo
  crucible --version

BANCO POR DEFECTO (sin argumentos), el primero que exista de:
  1. banco.yaml en el directorio actual
  2. banco/banco.yaml junto al ejecutable            (instalación Windows)
  3. ../share/crucible/banco/banco.yaml               (instalación Linux)

Cada instrumento tiene su dirección. Desde VISA:
  TCPIP0::127.0.0.1::<puerto>::SOCKET  (transporte tcp)
  TCPIP0::127.0.0.2::inst0::INSTR      (transporte vxi11)

Como en un banco real, cada instrumento puede tener su propia IP: en Linux
todo 127.x.x.x es local y no hay que configurar nada; en Windows solo
responde 127.0.0.1, y ahí se distinguen por el puerto.

Los instrumentos vxi11 necesitan además el portmapper en UDP 111 de su IP,
que es un puerto privilegiado: en Linux hace falta sudo o setcap.

Manual: https://anlaco.github.io/Crucible/
FormaQué hace
crucibleArranca el primer banco que encuentra: banco.yaml en la carpeta actual, luego junto al ejecutable, luego el de la instalación.
crucible <banco.yaml>Arranca todos los instrumentos del banco.
crucible <perfil.yaml> [puerto]Arranca un solo instrumento, sin banco. Puerto 5025 si no se indica.
crucible --validar <fichero>Comprueba un banco o un perfil sin abrir puertos. Sale con código 1 si hay errores.
crucible --versionLa versión.
crucible --helpLa ayuda. También -h y --ayuda.

Si el fichero es un banco o un perfil lo decide su contenido, no una opción: tiene banco: o tiene dispositivo:.

Cualquier error hace que crucible salga con código 1. Sin argumentos —normalmente un doble clic en Windows— espera además a que pulses Enter, para que la ventana no se cierre antes de leer el motivo.

banco.yaml

banco:
  nombre: <texto>                   # opcional
  dispositivos:
    - id: <texto>                   # obligatorio
      perfil: <ruta>                # obligatorio; relativa a banco.yaml
      transporte:
        tipo: tcp                   # obligatorio; hoy solo tcp
        puerto: <número>            # obligatorio; distinto en cada dispositivo
        host: <dirección>           # opcional; 127.0.0.1 por defecto
      estado_inicial:               # opcional
        <variable>: <valor>

host decide en qué interfaz escucha el dispositivo. Por defecto 127.0.0.1, solo el propio equipo. Con host: 0.0.0.0 escucha en todas, y otro equipo de la red puede conectarse; en ese caso la tabla del arranque muestra TCPIP0::0.0.0.0::…, que no es una dirección válida para conectar: usa la IP del equipo que ejecuta Crucible. El acceso desde otro equipo está no verificado en este manual.

Perfil

dispositivo:
  modelo: <texto>                   # obligatorio
  idn: <texto>                      # respuesta de *IDN?
protocolo: scpi                     # obligatorio

estado:
  <variable>: <número | true | false | texto>

comandos:
  - patron: <cabecera>              # obligatorio; sin '?' ni argumentos, sin '*'
    query: <true | false>           # false por defecto
    args: [<nombre>, ...]
    muta: { <variable>: <valor | "<arg>"> }
    respuesta: <texto con {variable} y <arg>>   # consultas
    modelo: <nombre de modelo>                  # consultas

modelos:
  <nombre>:
    tipo: formula                   # obligatorio
    expr: <fórmula>                 # obligatorio
    cuando: { <variable>: <valor> }
    fallback: <número | texto>      # 0.0 por defecto
    formato: <entero | fijo:N | cientifico:N>

Fórmulas

ElementoEjemplos
Variablestension, carga_ohm
Números10, 0.5, 1e-3, 2.5E+2
Operadores+ - * /, paréntesis, signo negativo
Funcionesgauss(media, sigma), abs(x), sqrt(x), min(a, b), max(a, b)

Errores SCPI que verás

ErrorCuándo
0,"No error"La cola está vacía.
-113,"Undefined header;…"La cabecera no está en el perfil, o no como orden o consulta.
-200,"Execution error;…"Una fórmula no se pudo evaluar, p. ej. por una variable que no está en estado.