MSC immunity and emission data

This page documents the concrete persisted paths of MSC workflows. See Immunity results and EUT assessment for the shared semantics of structured EUT events and criteria A, B, and C.

Shared indices

Received-power, field, and status data use the form:

data[frequency][tuner_position][position][sample]

frequency is numeric in Hz. tuner_position is the string representation of a coordinate list, for example "[0, 30]". position and sample are integer indices. An entry fundamentally has value, pfwd, and pbwd. Received and power values are power quantities; field values are vectors of three field-strength quantities.

MSC immunity raw data

Access starts with:

raw = history.rawData_Immunity[description]

pref contains corrected reference-antenna power, efield optional field probe values, and noise the noise measurement. eutstatus uses the same index. Its entries add testfield and optionally eut_event and monitor_diagnostics. value remains the legacy-compatible EUT status, while eut_event is the structured observation.

Further top-level keys are performance_criterion, eut_event_policy, and post_exposure_timeout. mg is the persisted measurement-graph description, not an open device connection.

When the threshold kernel is used, threshold_search[frequency] contains its structured frequency result. Keys such as status, tested field levels, the identified threshold, and the related eut_event are kernel-specific and additive. Applications evaluating only standard exposures may ignore this field.

MSC immunity evaluation

Evaluate_Immunity writes to processedData_Immunity[description]:

Evaluation keys

Key

Meaning

PMaxRec, PAveRec

Maximum and average received power at [frequency][antenna_position].

RelLoading

Relative EUT loading against the maximum considered chamber loading, by frequency.

EUTImmunityThreshold

List of threshold indications by frequency.

performance_criterion

Applied criterion A, B, or C.

performance_assessment_by_exposure

Assessment keyed by (frequency, tuner_position, position) tuples.

performance_assessment_by_frequency

Summary by frequency.

performance_assessment

Summary for the entire dataset.

Each EUTImmunityThreshold[frequency] entry has TestField, Field from Pfwd, and EUT. The first two are field-strength quantities. When no impairment was detected, EUT == "Maximum testfield reached" only indicates that the highest tested level was reached; it is not a numerically identified failure threshold.

MSC emission raw data

Access starts with:

raw = history.rawData_Emission[description]

pref contains corrected received power using the shared index. noise uses the same path but is normally measured at only one tuner position. Both entry types contain value, pfwd, and pbwd; the two power keys are normally None for receiver acquisition. mg holds the measurement-graph description.

MSC emission evaluation

Evaluate_Emission writes to processedData_Emission[description]. All domain result fields are indexed by frequency and, where applicable, antenna position:

PMaxRec, PAveRec

Maximum and average received power.

PRad_from_CCF, PRad_from_CLF

Radiated power derived from the average chamber calibration factor and the loading/insertion-loss approach, respectively.

ERad_from_CCF, ERad_from_CLF

Field strength derived at the assumed evaluation location.

PRad_noise, ERad_noise

Noise-related power and field floor, indexed only by frequency.

RelLoading

Relative EUT loading by frequency.

Evaluation assumptions are stored in Gmax_Model ("FAR" or "OATS"), Assumed_hg, and Assumed_RH. The historical keys Asumed_Distance and Asumed_Directivity[frequency] contain distance and directivity. Their single-s spelling is an established data contract and must not be corrected silently.

Emission results can only be interpreted with the main, loading, and EUT calibrations used. Their names are currently not stored in a dedicated provenance block of the processed dataset and must therefore accompany an external export.

Optional RC routing and RX capture provenance

All five MSC measurement methods accept optional graph_context. For example, {"tmode": "AMP", "rmode": "PMATT"} selects amplified TX and the RX powermeter; RECATT selects the receiver in an emission measurement. Explicit routing requires a context-capable switch and currently supports one RX device/antenna pair. An autocorrelation run without an RX readout may still select the routing. Existing frequency-only configurations may omit the parameter.

Each independent capture starts with the additional 20 dB RX attenuator. A valid positive device-input power at least 40 dB below MAXIN permits an unattenuated follow-up at unchanged frequency, generator level and tuner position. Equality is included (with floating-point roundoff tolerance). The calibrated difference between both paths is checked without moving the switch before physically bypassing attenuation; this also protects against a continuously emitting EUT. Missing MAXIN keeps the attenuator; invalid readings or exceeded limits abort with RF off. The full selected device group is reacquired, so forward/reflected powers and probe samples belong to the final capture, not its screening read.

Switching uses ApplyContext and therefore switches generator RF off. Settling waits after switching are at least 0.5 s, or the measurement delay if longer. Protection is restored before returning from each capture, before later level, frequency or tuner changes. Capture failures and interrupts leave RF off; external state mismatches are not silently reapplied. These waits and RF gaps are equipment-response time, not EUT dwell time. Existing immunity kernels perform their dwell after capture; EUT monitoring and manual intervention remain active. The 40 dB rule is a laboratory policy, not an IEC acceptance criterion. Reference: the maintained IEC 61000-4-21 draft, clause 7, D.3.2.1 and D.4 (equipment response, dwell and power recording), and E.4 (receiver observation).

New noise, pref and efield sample bundles may contain optional rx_capture metadata in addition to unchanged value, pfwd, pbwd and acquisition fields. This also applies to calibration and autocorrelation bundles when an RX device was captured. Older bundles omit the field. It records the selected final capture, even though the operational graph has already returned to its attenuated state:

rx_capture schema version 1

Key

Meaning

schema_version

Integer 1.

frequency, tmode, rmode

Frequency in Hz and actual logical TX/RX modes of the stored capture.

device, source

Physical RX device node and antenna-feed graph node.

attenuation_db

Nominal additional attenuation, 20 or 0; not the full calibrated loss.

screening_input_power

Attenuated screening power at the device input, a Quantity in watts.

maxin

Device-input limit as a Quantity in watts, or None when unavailable.

input_power

Final device-input power as a Quantity in watts, before path correction.

path_correction

Actual dimensionless power transmission (POWERRATIO) used to divide input power to obtain antenna-feed power; no second nominal 20 dB factor.

threshold_db

Integer 40, the required screening distance below MAXIN.

impedance_ohm

Port resistance used for voltage-to-power conversion, default 50 ohms.

decision

bypass, keep or maxin_unavailable.

measurement_acquisitions[*].run_configuration.graph_context stores the requested routing dictionary (empty for legacy frequency-only operation). rx_impedance_ohm is an optional graph_context setting for voltage readings: power is RMS voltage squared divided by this positive resistance. It is the instrument port resistance, not a chamber or free-space wave impedance. The configuration snapshot still records exact DOT/INI/calibration sources. No existing index hierarchy, correction formula or processed-result key changes.

Receiver MAXIN uses a named extra INI channel with NAME = MAXIN, FILE and INTERPOLATION, like powermeter safety limits. Values should be power quantities (e.g. a data file with UNIT: dBm); the limit is read through GetSafetyLimit("MAXIN") rather than a measurement-data query. RX scalar capture requires a receiver driver such as rec_rs_esu.py. The spectrum trace driver sa_rs_esu.py does not implement this interface and is rejected before hardware initialization when explicit routing is requested.

Existing transmitting MSC workflows (main/EUT calibration, autocorrelation, immunity) still require amplifier and forward/reflected-power paths and accept only tmode=AMP here. DIRECT and termination modes remain available through MGraph for dedicated path/amplifier tests. Unconnected power meters are therefore not treated as valid forward-power readings. Emission runs may terminate TX.