pmokeDOCS
Configuration

Configuration Reference

Generated field reference for pmoke config schema version 5.

Generated from the typed config metadata registry. Manual edits are overwritten.

JSON Schema · pmoke config explain

version

PathTypeRequiredDefault / valuesDescription and constraints
versionintegerrequired5Configuration schema version. New and migrated configurations use schema version 5. Constraints: must equal 5

scope

PathTypeRequiredDefault / valuesDescription and constraints
scopetablerequired-Oscilloscope configuration. Selects one registered scope model and its transport URI.
scope.modelstringrequiredDHO5108Oscilloscope driver model. The model must match an oscilloscope registered by the instruments crate. Constraints: must be a registered oscilloscope model
scope.connectionconnection URIrequiredtcp://, visa:, gpib://Oscilloscope transport URI. DHO5108 normally uses direct TCP/IP and never uses a Prologix transport. Constraints: transport must be supported by the model and build features

generator

PathTypeRequiredDefault / valuesDescription and constraints
generatortableoptionalabsentOptional function-generator configuration. Required only by commands that trigger or automate a measurement. Constraints: required by trigger, autoshot, automeasure, and auto
generator.modelstringconditionalWF1946BFunction-generator driver model. Required when the generator table is present. Constraints: must be a registered generator model
generator.connectionconnection URIconditionalgpib://, prologix-tcp://, prologix-serial://Function-generator transport URI. The URI selects native GPIB or a Prologix TCP/serial controller. Constraints: transport must be supported by the model and build features

data

PathTypeRequiredDefault / valuesDescription and constraints
datatablerequired-Acquisition storage and analysis-input policy. Controls canonical waveform formats and optional screenshot capture.
data.outputstring enumrequiredcsv, raw, bothWaveform format written by acquisition. Raw is preferred for very large captures; both also writes CSV.
data.inputstring enumrequiredcsv, raw, autoWaveform source used by analysis. Auto selects available canonical data, preferring verified raw data.
data.screenshotbooleanoptionalfalse; true, falseOscilloscope screenshot capture. Capture requires a scope and transport that support display transfer. Constraints: DHO5108 capture requires TCP/IP or USB-TMC

sensors

PathTypeRequiredDefault / valuesDescription and constraints
sensorsarray of tablesconditional[]Sensor-channel metadata and scaling. Each entry assigns one channel and exactly one scaling strategy. Constraints: channels must not overlap reference or lock-in signal channels

sensors[]

PathTypeRequiredDefault / valuesDescription and constraints
sensors[].channelintegerrequired-Oscilloscope sensor channel. The current DHO5108 mapping accepts channels 1 through 8. Constraints: 1 <= value <= 8; must be unique across all channel roles
sensors[].scaleinline table unionrequired{ factor = ... }, { max_abs = ..., polarity = ... }Sensor conversion rule. Choose direct multiplication or maximum-absolute normalization. Constraints: factor and max_abs forms are mutually exclusive
sensors[].scale.factorfloatconditional-Linear sensor conversion factor. Multiplies the integrated sensor values directly. Constraints: must be finite and non-zero
sensors[].scale.max_absfloatconditional-Target maximum absolute sensor value. Normalizes the measured absolute maximum to this positive target. Constraints: must be finite and positive
sensors[].scale.polarityinteger enumconditional-1, 1Polarity for maximum-absolute scaling. Required with max_abs scaling. Constraints: must equal -1 or 1
sensors[].labelstringrequired-Plot label for the sensor. Matplotlib mathtext may be supplied as a TOML literal string. Constraints: must not be empty
sensors[].unitstringrequired-Output unit for the scaled sensor. Used in tables, plots, and saved analysis headers. Constraints: must not be empty

pulse

PathTypeRequiredDefault / valuesDescription and constraints
pulsetablerequired-Pulse background windows. Defines baseline regions before and after the pulse. Constraints: background windows must not overlap
pulse.background_beforeinline time window · srequired-Background window before the pulse. An inline table with finite start and end values. Constraints: start < end
pulse.background_afterinline time window · srequired-Background window after the pulse. An inline table with finite start and end values. Constraints: start < end

reference

PathTypeRequiredDefault / valuesDescription and constraints
referencetablerequired-Recorded EOM-drive signal analysis settings. Controls the channel that records the function-generator sine wave sent to the EOM, the FFT region, and fit decimation.
reference.channelintegerrequired-Recorded EOM-drive signal channel. The current DHO5108 mapping accepts channels 1 through 8; assign the function-generator sine wave sent to the EOM. Constraints: 1 <= value <= 8; must be unique across all channel roles
reference.fft_windowinline time window · srequired-Time range used by the EOM-drive FFT. Choose a stable segment of the recorded sine wave with finite start and end values. Constraints: start < end
reference.stride_samplesinteger · samplesrequired-EOM-drive sine-fit decimation stride. Larger values reduce fitting cost at the expense of temporal detail. Constraints: must be positive
reference.window_samplesinteger · samplesrequired-Local EOM-drive sine-fitting window size. Used around the FFT estimate by EOM-drive signal analysis. Constraints: must be positive

lockin

PathTypeRequiredDefault / valuesDescription and constraints
lockintablerequired-Numerical lock-in settings. Defines signal channels, parallelism, output stride, and low-pass filtering.
lockin.signal_channelsinteger arrayconditional-Channels demodulated by lock-in analysis. At least one channel is required by lock-in and downstream analysis. Constraints: each value must be in 1..=8; must be unique across all channel roles
lockin.workersintegerrequired-Parallel lock-in worker count. Values near the physical CPU count are a practical starting point. Constraints: must be positive
lockin.stride_samplesinteger · samplesrequired-Lock-in output stride in input samples. Input sample rate divided by this value gives the output sample rate. Constraints: must be positive
lockin.filtertagged inline tablerequired-Lock-in low-pass filter configuration. The current runtime accepts the boxcar_legacy kind; fields from other kinds are not part of schema v5. Constraints: fields from other filter kinds are rejected
lockin.filter.kindstring enumrequiredboxcar_legacyLock-in filter algorithm. boxcar_legacy is the only active LPF. Historical FIR and IIR kinds are readable only for migration diagnostics.
lockin.filter.half_window_cyclesfloat · reference cyclesrequired-Half-window scale in reference cycles. The boxcar integration window extends symmetrically by this many reference cycles. Constraints: must be finite and positive
lockin.debug_outputbooleanoptionalfalse; true, falseLock-in debug artifact output. Enable only for filter inspection because artifacts can be large.
lockin.debug_labelstringoptionalabsentSafe suffix for debug artifacts. The label is restricted to a short ASCII filename-safe subset. Constraints: 1-64 ASCII alphanumeric, '.', '_', or '-'; must not be '.' or '..'
lockin.debug_overwritebooleanoptionalfalse; true, falseDebug artifact overwrite policy. Allows replacement of an existing matching debug output.
lockin.snr_background_windowinline time window · soptionalabsentOptional background window for SNR diagnostics. An inline table with finite start and end values. Constraints: start < end
lockin.snr_signal_windowinline time window · soptionalabsentOptional signal window for SNR diagnostics. An inline table with finite start and end values. Constraints: start < end
lockin.save_npybooleanoptionalfalse; true, falseNumPy output for lock-in results. Writes NPY artifacts in addition to canonical CSV results.

phase

PathTypeRequiredDefault / valuesDescription and constraints
phasetablerequired-Phase-rotation settings. Contains offsets for the first six harmonic components.
phase.offsetsfloat or expression array · radrequired-Six harmonic phase offsets. Numeric expressions such as pi/2 are accepted. Constraints: must contain exactly 6 finite values

kerr

PathTypeRequiredDefault / valuesDescription and constraints
kerrtablerequired-Kerr-angle conversion settings. Specifies the calibration sensor, calculation method, and final factor.
kerr.sensorintegerrequired-Sensor channel used for Kerr-angle calibration. The channel must also exist in the sensors array. Constraints: must reference sensors[].channel
kerr.methodstring enumrequiredstandard, harmonicsKerr-angle calculation method. Selects the standard or harmonics-based analysis implementation.
kerr.factorfloatrequired-Final Kerr-angle conversion factor. Applied after the selected Kerr-angle calculation. Constraints: must be finite

plot

PathTypeRequiredDefault / valuesDescription and constraints
plottableoptionaldefaultsPlot generation settings. Controls display/save behavior, decimation, and error policy.
plot.modestring enumoptionalsave; off, save, interactive, bothPlot output mode. Batch use normally selects save; interactive opens Matplotlib windows.
plot.max_pointsinteger · points per seriesoptional100000Maximum points passed to plotting. Lower values improve Matplotlib responsiveness on large captures. Constraints: must be positive
plot.decimationstring enumoptionalstride; none, stride, min_maxPlot downsampling algorithm. min_max preserves narrow extrema better than stride decimation.
plot.on_errorstring enumoptionalwarn; warn, failPlot failure policy. Warn preserves successful analysis; fail makes plotting errors fatal.
plot.output_dirstringoptionalabsentDeprecated plot directory compatibility field. Version 5 accepts but ignores this field; artifacts use the canonical run layout. Constraints: ignored with a warning

On this page