Skip to content

Commit

Permalink
Improved markdown on experimental tests
Browse files Browse the repository at this point in the history
  • Loading branch information
daquintero committed Aug 1, 2024
1 parent 4f3b1bc commit 1d6c4c3
Show file tree
Hide file tree
Showing 10 changed files with 75 additions and 39 deletions.
9 changes: 9 additions & 0 deletions piel/experimental/measurements.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
def compose_measurement_from_experiment_instance():
"""
This function is meant to be run after the measurements have been collected and the data exists within the measurement directories.
Each experiment instance should correspond to a list of measurement configurations, ie the specific set of measurements
that are required at each directory generated for the experimental instance. Hence, for this function to work properly,
it is required to have a mapping between experiment configuration types and measurement classes accordingly.
The mapping will be between a given MeasurementConfiguration type and a Measurement class which has the references
of the data containers accordingly.
"""
10 changes: 7 additions & 3 deletions piel/experimental/types/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
from .device import (
Device,
DeviceConfiguration,
DeviceMeasurementConfiguration,
MeasurementDevice,
)

Expand All @@ -22,12 +21,15 @@
from .frequency import (
VNA,
VNAConfiguration,
VNAMeasurement,
)

from .measurements.core import MeasurementConfiguration

from .measurements.frequency import (
VNASParameterMeasurementConfiguration,
VNAPowerSweepMeasurementConfiguration,
)


from .measurements.propagation import (
PropagationDelayMeasurement,
PropagationDelayMeasurementSweep,
Expand All @@ -38,6 +40,8 @@
PropagationDelayMeasurementSweepData,
)

from .measurements.generic import MeasurementTypes

from .time import (
Oscilloscope,
OscilloscopeConfiguration,
Expand Down
12 changes: 2 additions & 10 deletions piel/experimental/types/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,7 @@

from typing import Optional
from ...types import PielBaseModel, PhysicalComponent, PathTypes


class DeviceMeasurementConfiguration(PielBaseModel):
"""
Standard definition for a measurement configuration.
"""

name: Optional[str] = None
parent_directory: Optional[PathTypes] = None
from .measurements.core import MeasurementConfiguration


class DeviceMeasurement(PielBaseModel):
Expand All @@ -38,7 +30,7 @@ class Device(PhysicalComponent):


class MeasurementDevice(Device):
measurement: Optional[DeviceMeasurementConfiguration] = None
measurement: Optional[MeasurementConfiguration] = None
"""
Contains the measurement information.
"""
3 changes: 3 additions & 0 deletions piel/experimental/types/experiment.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from typing import Optional
from ...types import Instance, ComponentTypes, ConnectionTypes
from .measurements.generic import MeasurementTypes


class ExperimentInstance(Instance):
Expand Down Expand Up @@ -44,6 +45,8 @@ class ExperimentInstance(Instance):
The date the experiment was measured.
"""

measurement_configuration_list: list[MeasurementTypes] = None


class Experiment(Instance):
name: str
Expand Down
27 changes: 3 additions & 24 deletions piel/experimental/types/frequency.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,10 @@
from typing import Optional
from ...types import PathTypes, PhysicalPort
from ...types import PhysicalPort
from .device import (
DeviceMeasurementConfiguration,
DeviceConfiguration,
Device,
)


class VNASParameterMeasurementConfiguration(DeviceMeasurementConfiguration):
frequency_range_Hz: tuple[float, float] = None
sweep_points: int = None
test_port_power_dBm: float = None


class VNAPowerSweepMeasurementConfiguration(DeviceMeasurementConfiguration):
base_frequency_Hz: float = None
power_range_dBm: tuple[float, float] = None
from .measurements.generic import FrequencyMeasurementConfigurationTypes


class VNAConfiguration(DeviceConfiguration):
Expand All @@ -25,9 +14,7 @@ class VNAConfiguration(DeviceConfiguration):
"""

calibration_setting_name: Optional[str] = None
measurement_configuration: (
VNASParameterMeasurementConfiguration | VNAPowerSweepMeasurementConfiguration
) = None
measurement_configuration: FrequencyMeasurementConfigurationTypes = None


class VNA(Device):
Expand All @@ -47,11 +34,3 @@ class VNA(Device):
"""
Defaults to a two-port VNA, defined as PORT1 and PORT2.
"""


class VNAMeasurement(DeviceMeasurementConfiguration):
"""
Standard definition for a collection of files that are part of a VNA measurement.
"""

spectrum_file: PathTypes
11 changes: 11 additions & 0 deletions piel/experimental/types/measurements/core.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
from ....types import PielBaseModel, PathTypes


class MeasurementConfiguration(PielBaseModel):
"""
Standard definition for a measurement configuration.
"""

name: str = None
parent_directory: PathTypes = None
measurement_type: str = None
21 changes: 21 additions & 0 deletions piel/experimental/types/measurements/frequency.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
from ....types import PathTypes
from .core import MeasurementConfiguration


class VNASParameterMeasurementConfiguration(MeasurementConfiguration):
frequency_range_Hz: tuple[float, float] = None
sweep_points: int = None
test_port_power_dBm: float = None


class VNAPowerSweepMeasurementConfiguration(MeasurementConfiguration):
base_frequency_Hz: float = None
power_range_dBm: tuple[float, float] = None


class VNAMeasurement:
"""
Standard definition for a collection of files that are part of a VNA measurement.
"""

spectrum_file: PathTypes
11 changes: 11 additions & 0 deletions piel/experimental/types/measurements/generic.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
from .frequency import (
VNASParameterMeasurementConfiguration,
VNAPowerSweepMeasurementConfiguration,
)
from .propagation import PropagationDelayMeasurement

FrequencyMeasurementConfigurationTypes = (
VNASParameterMeasurementConfiguration | VNAPowerSweepMeasurementConfiguration
)
MeasurementConfigurationTypes = FrequencyMeasurementConfigurationTypes
MeasurementTypes = PropagationDelayMeasurement
1 change: 1 addition & 0 deletions piel/experimental/types/measurements/map.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
configuration_to_measurement_map = {}
9 changes: 7 additions & 2 deletions piel/experimental/types/measurements/propagation.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
from ....types import Instance, PathTypes
from ..device import DeviceMeasurement
from ..experiment import ExperimentInstance
from .core import MeasurementConfiguration


class PropagationDelayMeasurementConfiguration(MeasurementConfiguration):
pass


class PropagationDelayMeasurement(DeviceMeasurement):
Expand All @@ -10,7 +14,7 @@ class PropagationDelayMeasurement(DeviceMeasurement):
This configuration requires a device waveform, a measurement file and a reference waveform as per a propagation delay measurement.
TODO add link to the documentation of the propagation delay measurement.
"""
experiment_instance: ExperimentInstance

dut_waveform_prefix: PathTypes
reference_waveform_prefix: PathTypes
measurement_file_prefix: PathTypes
Expand All @@ -21,4 +25,5 @@ class PropagationDelayMeasurementSweep(Instance):
This class is used to define a collection of PropagationDelayFileCollection that are part of a sweep of a parameter
as defined within each PropagationDelayFileCollection.
"""

measurements: list[PropagationDelayMeasurement]

0 comments on commit 1d6c4c3

Please sign in to comment.