shepherd-core 2024.11.1__tar.gz → 2024.11.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/PKG-INFO +1 -1
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/examples/experiment_generic_var1.py +1 -1
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/examples/experiment_generic_var2.py +1 -1
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/__init__.py +11 -13
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/content/__init__.py +3 -4
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/content/virtual_harvester.py +24 -4
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/experiment/__init__.py +4 -6
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/task/__init__.py +6 -9
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/testbed/__init__.py +7 -9
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/testbed/observer_fixture.yaml +27 -25
- shepherd_core-2024.11.1/shepherd_core/data_models/testbed/target_fixture.yaml → shepherd_core-2024.11.3/shepherd_core/data_models/testbed/target_fixture.old1 +1 -1
- shepherd_core-2024.11.3/shepherd_core/data_models/testbed/target_fixture.yaml +163 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/testbed/testbed_fixture.yaml +3 -3
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/fw_tools/__init__.py +14 -17
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/reader.py +21 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/version.py +1 -1
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/vsource/virtual_harvester_simulation.py +1 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/vsource/virtual_source_model.py +2 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/vsource/virtual_source_simulation.py +1 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core.egg-info/PKG-INFO +1 -1
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core.egg-info/SOURCES.txt +1 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/data_models/test_testbed_fixtures.py +1 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/vsource/test_converter.py +14 -6
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/vsource/test_harvester.py +31 -1
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/README.md +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/examples/eenv_generator.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/examples/experiment_from_yaml.yaml +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/examples/experiment_models.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/examples/firmware_model.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/examples/firmware_modification.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/examples/inventory.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/examples/simulate_vharvester.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/examples/simulate_vsource.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/examples/uart_decode_waveform.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/examples/uart_raw2.csv +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/examples/vsource_debug_sim.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/pyproject.toml +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/setup.cfg +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/__init__.py +10 -10
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/calibration_hw_def.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/commons.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/base/__init__.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/base/cal_measurement.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/base/calibration.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/base/content.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/base/shepherd.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/base/timezone.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/base/wrapper.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/content/_external_fixtures.yaml +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/content/energy_environment.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/content/energy_environment_fixture.yaml +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/content/firmware.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/content/firmware_datatype.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/content/virtual_harvester_fixture.yaml +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/content/virtual_source.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/content/virtual_source_fixture.yaml +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/experiment/experiment.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/experiment/observer_features.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/experiment/target_config.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/readme.md +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/task/emulation.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/task/firmware_mod.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/task/harvest.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/task/observer_tasks.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/task/programming.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/task/testbed_tasks.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/testbed/cape.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/testbed/cape_fixture.yaml +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/testbed/gpio.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/testbed/gpio_fixture.yaml +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/testbed/mcu.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/testbed/mcu_fixture.yaml +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/testbed/observer.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/testbed/target.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/testbed/testbed.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/virtual_source_doc.txt +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/decoder_waveform/__init__.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/decoder_waveform/uart.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/fw_tools/converter.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/fw_tools/converter_elf.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/fw_tools/patcher.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/fw_tools/validation.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/inventory/__init__.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/inventory/python.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/inventory/system.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/inventory/target.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/logger.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/testbed_client/__init__.py +2 -2
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/testbed_client/cache_path.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/testbed_client/client_abc_fix.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/testbed_client/client_web.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/testbed_client/fixtures.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/testbed_client/user_model.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/vsource/__init__.py +3 -3
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/vsource/target_model.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/vsource/virtual_converter_model.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/vsource/virtual_harvester_model.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/writer.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core.egg-info/dependency_links.txt +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core.egg-info/requires.txt +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core.egg-info/top_level.txt +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core.egg-info/zip-safe +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/__init__.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/conftest.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/data_models/__init__.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/data_models/conftest.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/data_models/example_cal_data.yaml +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/data_models/example_cal_data_faulty.yaml +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/data_models/example_cal_meas.yaml +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/data_models/example_cal_meas_faulty1.yaml +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/data_models/example_cal_meas_faulty2.yaml +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/data_models/example_config_emulator.yaml +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/data_models/example_config_experiment.yaml +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/data_models/example_config_experiment_alternative.yaml +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/data_models/example_config_harvester.yaml +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/data_models/example_config_testbed.yaml +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/data_models/example_config_virtsource.yaml +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/data_models/test_base_models.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/data_models/test_content_fixtures.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/data_models/test_content_models.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/data_models/test_examples.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/data_models/test_experiment_models.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/data_models/test_task_generation.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/data_models/test_task_models.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/data_models/test_testbed_models.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/decoder_waveform/__init__.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/decoder_waveform/test_decoder.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/fw_tools/__init__.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/fw_tools/build_msp.elf +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/fw_tools/build_nrf.elf +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/fw_tools/conftest.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/fw_tools/test_converter.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/fw_tools/test_patcher.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/fw_tools/test_validation.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/inventory/__init__.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/inventory/test_inventory.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/test_cal_hw.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/test_examples.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/test_logger.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/test_reader.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/test_writer.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/testbed_client/__init__.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/vsource/__init__.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/vsource/conftest.py +0 -0
- {shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/tests/vsource/test_z.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: shepherd_core
|
|
3
|
-
Version: 2024.11.
|
|
3
|
+
Version: 2024.11.3
|
|
4
4
|
Summary: Programming- and CLI-Interface for the h5-dataformat of the Shepherd-Testbed
|
|
5
5
|
Author-email: Ingmar Splitt <ingmar.splitt@tu-dresden.de>
|
|
6
6
|
Maintainer-email: Ingmar Splitt <ingmar.splitt@tu-dresden.de>
|
|
@@ -41,7 +41,7 @@ xp = Experiment(
|
|
|
41
41
|
duration=30,
|
|
42
42
|
target_configs=[
|
|
43
43
|
TargetConfig(
|
|
44
|
-
target_IDs=range(7,
|
|
44
|
+
target_IDs=range(7, 12),
|
|
45
45
|
custom_IDs=range(1, 100), # note: longer list is OK
|
|
46
46
|
energy_env=EnergyEnvironment(name="eenv_static_3000mV_50mA_3600s"),
|
|
47
47
|
firmware1=Firmware(
|
|
@@ -38,7 +38,7 @@ xp = Experiment(
|
|
|
38
38
|
duration=30,
|
|
39
39
|
target_configs=[
|
|
40
40
|
TargetConfig(
|
|
41
|
-
target_IDs=range(7,
|
|
41
|
+
target_IDs=range(7, 12),
|
|
42
42
|
custom_IDs=range(1, 100), # note: longer list is OK
|
|
43
43
|
energy_env=EnergyEnvironment(name="eenv_static_3000mV_50mA_3600s"),
|
|
44
44
|
firmware1=Firmware.from_firmware(
|
|
@@ -34,29 +34,27 @@ from .experiment.observer_features import SystemLogging
|
|
|
34
34
|
from .experiment.target_config import TargetConfig
|
|
35
35
|
|
|
36
36
|
__all__ = [
|
|
37
|
-
# Core
|
|
38
|
-
"CapeData",
|
|
39
37
|
"CalibrationCape",
|
|
40
38
|
"CalibrationEmulator",
|
|
41
39
|
"CalibrationHarvester",
|
|
42
|
-
"CalibrationSeries",
|
|
43
40
|
"CalibrationPair",
|
|
41
|
+
"CalibrationSeries",
|
|
42
|
+
"CapeData",
|
|
44
43
|
"ContentModel",
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
# User Content
|
|
44
|
+
"EnergyDType",
|
|
45
|
+
"EnergyEnvironment",
|
|
48
46
|
"Experiment",
|
|
49
|
-
"TargetConfig",
|
|
50
47
|
"Firmware",
|
|
51
48
|
"FirmwareDType",
|
|
52
|
-
"SystemLogging",
|
|
53
|
-
"PowerTracing",
|
|
54
|
-
"GpioTracing",
|
|
55
49
|
"GpioActuation",
|
|
56
50
|
"GpioEvent",
|
|
57
51
|
"GpioLevel",
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
52
|
+
"GpioTracing",
|
|
53
|
+
"PowerTracing",
|
|
54
|
+
"ShpModel",
|
|
55
|
+
"SystemLogging",
|
|
56
|
+
"TargetConfig",
|
|
61
57
|
"VirtualHarvesterConfig",
|
|
58
|
+
"VirtualSourceConfig",
|
|
59
|
+
"Wrapper",
|
|
62
60
|
]
|
{shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/content/__init__.py
RENAMED
|
@@ -11,11 +11,10 @@ from .virtual_harvester import VirtualHarvesterConfig
|
|
|
11
11
|
from .virtual_source import VirtualSourceConfig
|
|
12
12
|
|
|
13
13
|
__all__ = [
|
|
14
|
+
"EnergyDType",
|
|
14
15
|
"EnergyEnvironment",
|
|
15
|
-
"VirtualSourceConfig",
|
|
16
|
-
"VirtualHarvesterConfig",
|
|
17
16
|
"Firmware",
|
|
18
|
-
# Enums
|
|
19
|
-
"EnergyDType",
|
|
20
17
|
"FirmwareDType",
|
|
18
|
+
"VirtualHarvesterConfig",
|
|
19
|
+
"VirtualSourceConfig",
|
|
21
20
|
]
|
|
@@ -239,6 +239,7 @@ class HarvesterPRUConfig(ShpModel):
|
|
|
239
239
|
data: VirtualHarvesterConfig,
|
|
240
240
|
dtype_in: Optional[EnergyDType] = EnergyDType.ivsample,
|
|
241
241
|
window_size: Optional[u32] = None,
|
|
242
|
+
voltage_step_V: Optional[float] = None,
|
|
242
243
|
*,
|
|
243
244
|
for_emu: bool = False,
|
|
244
245
|
) -> Self:
|
|
@@ -247,17 +248,36 @@ class HarvesterPRUConfig(ShpModel):
|
|
|
247
248
|
if for_emu and dtype_in not in {EnergyDType.ivsample, EnergyDType.ivcurve}:
|
|
248
249
|
raise NotImplementedError
|
|
249
250
|
|
|
251
|
+
if for_emu and dtype_in == EnergyDType.ivcurve and voltage_step_V is None:
|
|
252
|
+
raise ValueError(
|
|
253
|
+
"For correct emulation specify voltage_step used by harvester "
|
|
254
|
+
"e.g. via file_src.get_voltage_step()"
|
|
255
|
+
)
|
|
256
|
+
|
|
257
|
+
if for_emu and dtype_in == EnergyDType.ivcurve and window_size is None:
|
|
258
|
+
raise ValueError(
|
|
259
|
+
"For correct emulation specify window_size used by harvester "
|
|
260
|
+
"e.g. via file_src.get_window_size()"
|
|
261
|
+
)
|
|
262
|
+
|
|
250
263
|
interval_ms, duration_ms = data.calc_timings_ms(for_emu=for_emu)
|
|
264
|
+
window_size = (
|
|
265
|
+
window_size
|
|
266
|
+
if window_size is not None
|
|
267
|
+
else data.calc_window_size(dtype_in, for_emu=for_emu)
|
|
268
|
+
)
|
|
269
|
+
voltage_step_mV = (
|
|
270
|
+
1e3 * voltage_step_V if voltage_step_V is not None else data.voltage_step_mV
|
|
271
|
+
)
|
|
272
|
+
|
|
251
273
|
return cls(
|
|
252
274
|
algorithm=data.calc_algorithm_num(for_emu=for_emu),
|
|
253
275
|
hrv_mode=data.calc_hrv_mode(for_emu=for_emu),
|
|
254
|
-
window_size=window_size
|
|
255
|
-
if window_size is not None
|
|
256
|
-
else data.calc_window_size(dtype_in, for_emu=for_emu),
|
|
276
|
+
window_size=window_size,
|
|
257
277
|
voltage_uV=round(data.voltage_mV * 10**3),
|
|
258
278
|
voltage_min_uV=round(data.voltage_min_mV * 10**3),
|
|
259
279
|
voltage_max_uV=round(data.voltage_max_mV * 10**3),
|
|
260
|
-
voltage_step_uV=round(
|
|
280
|
+
voltage_step_uV=round(voltage_step_mV * 10**3),
|
|
261
281
|
current_limit_nA=round(data.current_limit_uA * 10**3),
|
|
262
282
|
setpoint_n8=round(min(255, data.setpoint_n * 2**8)),
|
|
263
283
|
interval_n=round(interval_ms * samplerate_sps_default * 1e-3),
|
{shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/experiment/__init__.py
RENAMED
|
@@ -14,13 +14,11 @@ from .target_config import TargetConfig
|
|
|
14
14
|
|
|
15
15
|
__all__ = [
|
|
16
16
|
"Experiment",
|
|
17
|
-
"TargetConfig",
|
|
18
|
-
# Features
|
|
19
|
-
"PowerTracing",
|
|
20
|
-
"GpioTracing",
|
|
21
17
|
"GpioActuation",
|
|
22
18
|
"GpioEvent",
|
|
23
|
-
"SystemLogging",
|
|
24
|
-
# Enums
|
|
25
19
|
"GpioLevel",
|
|
20
|
+
"GpioTracing",
|
|
21
|
+
"PowerTracing",
|
|
22
|
+
"SystemLogging",
|
|
23
|
+
"TargetConfig",
|
|
26
24
|
]
|
{shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/task/__init__.py
RENAMED
|
@@ -22,18 +22,15 @@ from .programming import ProgrammingTask
|
|
|
22
22
|
from .testbed_tasks import TestbedTasks
|
|
23
23
|
|
|
24
24
|
__all__ = [
|
|
25
|
-
|
|
26
|
-
"TestbedTasks",
|
|
27
|
-
"ObserverTasks",
|
|
28
|
-
"FirmwareModTask",
|
|
29
|
-
"ProgrammingTask",
|
|
25
|
+
"Compression",
|
|
30
26
|
"EmulationTask",
|
|
27
|
+
"FirmwareModTask",
|
|
31
28
|
"HarvestTask",
|
|
32
|
-
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
"prepare_task",
|
|
29
|
+
"ObserverTasks",
|
|
30
|
+
"ProgrammingTask",
|
|
31
|
+
"TestbedTasks",
|
|
36
32
|
"extract_tasks",
|
|
33
|
+
"prepare_task",
|
|
37
34
|
]
|
|
38
35
|
|
|
39
36
|
|
{shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/data_models/testbed/__init__.py
RENAMED
|
@@ -16,17 +16,15 @@ from .target import Target
|
|
|
16
16
|
from .testbed import Testbed
|
|
17
17
|
|
|
18
18
|
__all__ = [
|
|
19
|
-
"Testbed",
|
|
20
|
-
"Observer",
|
|
21
|
-
"Cape",
|
|
22
|
-
"Target",
|
|
23
|
-
"MCU",
|
|
24
19
|
"GPIO",
|
|
25
|
-
|
|
26
|
-
"
|
|
20
|
+
"MCU",
|
|
21
|
+
"Cape",
|
|
27
22
|
"Direction",
|
|
28
|
-
"TargetPort",
|
|
29
|
-
# custom types
|
|
30
23
|
"IdInt16",
|
|
31
24
|
"MACStr",
|
|
25
|
+
"Observer",
|
|
26
|
+
"ProgrammerProtocol",
|
|
27
|
+
"Target",
|
|
28
|
+
"TargetPort",
|
|
29
|
+
"Testbed",
|
|
32
30
|
]
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
latitude: 0
|
|
15
15
|
cape:
|
|
16
16
|
name: cape53
|
|
17
|
-
target_a:
|
|
18
|
-
name: nRF52_FRAM_018
|
|
17
|
+
# target_a:
|
|
18
|
+
# name: nRF52_FRAM_018
|
|
19
19
|
created: 2022-12-12 12:12:12
|
|
20
20
|
active: false
|
|
21
21
|
- datatype: observer
|
|
@@ -24,13 +24,13 @@
|
|
|
24
24
|
name: sheep01
|
|
25
25
|
ip: 192.168.165.201
|
|
26
26
|
mac: 18:62:E4:E4:41:8D
|
|
27
|
-
room:
|
|
28
|
-
eth_port:
|
|
29
|
-
description: mid
|
|
27
|
+
room: II69
|
|
28
|
+
eth_port: B14
|
|
29
|
+
description: lower mid on east-side
|
|
30
30
|
cape:
|
|
31
31
|
name: cape51
|
|
32
32
|
target_a:
|
|
33
|
-
name:
|
|
33
|
+
name: nRF52_FRAM_1392_386
|
|
34
34
|
created: 2023-09-22 12:12:12
|
|
35
35
|
- datatype: observer
|
|
36
36
|
parameters:
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
cape:
|
|
45
45
|
name: cape52
|
|
46
46
|
target_a:
|
|
47
|
-
name:
|
|
47
|
+
name: nRF52_FRAM_1392_378
|
|
48
48
|
created: 2023-09-22 12:12:12
|
|
49
49
|
- datatype: observer
|
|
50
50
|
parameters:
|
|
@@ -57,9 +57,10 @@
|
|
|
57
57
|
description: north-east-corner
|
|
58
58
|
cape:
|
|
59
59
|
name: cape63
|
|
60
|
-
target_a:
|
|
61
|
-
name:
|
|
60
|
+
# target_a:
|
|
61
|
+
# name:
|
|
62
62
|
created: 2023-09-22 12:12:12
|
|
63
|
+
active: false
|
|
63
64
|
- datatype: observer
|
|
64
65
|
parameters:
|
|
65
66
|
id: 4
|
|
@@ -72,7 +73,7 @@
|
|
|
72
73
|
cape:
|
|
73
74
|
name: cape54
|
|
74
75
|
target_a:
|
|
75
|
-
name:
|
|
76
|
+
name: nRF52_FRAM_1392_395
|
|
76
77
|
created: 2023-09-22 12:12:12
|
|
77
78
|
- datatype: observer
|
|
78
79
|
parameters:
|
|
@@ -86,7 +87,7 @@
|
|
|
86
87
|
cape:
|
|
87
88
|
name: cape55
|
|
88
89
|
target_a:
|
|
89
|
-
name:
|
|
90
|
+
name: nRF52_FRAM_1392_393
|
|
90
91
|
target_b:
|
|
91
92
|
name: target_nRF52_01 # ONLY VIRTUAL - for unittests
|
|
92
93
|
created: 2023-09-22 12:12:12
|
|
@@ -102,7 +103,7 @@
|
|
|
102
103
|
cape:
|
|
103
104
|
name: cape56
|
|
104
105
|
target_a:
|
|
105
|
-
name:
|
|
106
|
+
name: nRF52_FRAM_1392_396
|
|
106
107
|
created: 2023-09-22 12:12:12
|
|
107
108
|
- datatype: observer
|
|
108
109
|
parameters:
|
|
@@ -116,7 +117,7 @@
|
|
|
116
117
|
cape:
|
|
117
118
|
name: cape57
|
|
118
119
|
target_a:
|
|
119
|
-
name:
|
|
120
|
+
name: nRF52_FRAM_1392_387
|
|
120
121
|
created: 2023-09-22 12:12:12
|
|
121
122
|
- datatype: observer
|
|
122
123
|
parameters:
|
|
@@ -129,8 +130,8 @@
|
|
|
129
130
|
description: north-east-corner
|
|
130
131
|
cape:
|
|
131
132
|
name: cape58
|
|
132
|
-
target_a:
|
|
133
|
-
name:
|
|
133
|
+
# target_a:
|
|
134
|
+
# name:
|
|
134
135
|
created: 2023-09-22 12:12:12
|
|
135
136
|
active: false # TODO: cape is broken for now
|
|
136
137
|
- datatype: observer
|
|
@@ -145,7 +146,7 @@
|
|
|
145
146
|
cape:
|
|
146
147
|
name: cape65
|
|
147
148
|
target_a:
|
|
148
|
-
name:
|
|
149
|
+
name: nRF52_FRAM_1392_385
|
|
149
150
|
created: 2023-09-22 12:12:12
|
|
150
151
|
- datatype: observer
|
|
151
152
|
parameters:
|
|
@@ -159,7 +160,7 @@
|
|
|
159
160
|
cape:
|
|
160
161
|
name: cape59
|
|
161
162
|
target_a:
|
|
162
|
-
name:
|
|
163
|
+
name: nRF52_FRAM_1392_377
|
|
163
164
|
created: 2023-09-22 12:12:12
|
|
164
165
|
- datatype: observer
|
|
165
166
|
parameters:
|
|
@@ -167,14 +168,15 @@
|
|
|
167
168
|
name: sheep11
|
|
168
169
|
ip: 192.168.165.211
|
|
169
170
|
mac: 18:62:E4:E4:0E:5D
|
|
170
|
-
room:
|
|
171
|
-
eth_port:
|
|
172
|
-
description:
|
|
171
|
+
room: tbd
|
|
172
|
+
eth_port: tbd
|
|
173
|
+
description: tbd
|
|
173
174
|
cape:
|
|
174
175
|
name: cape61
|
|
175
|
-
target_a:
|
|
176
|
-
name:
|
|
176
|
+
# target_a:
|
|
177
|
+
# name:
|
|
177
178
|
created: 2023-09-22 12:12:12
|
|
179
|
+
active: false
|
|
178
180
|
- datatype: observer
|
|
179
181
|
parameters:
|
|
180
182
|
id: 12
|
|
@@ -187,7 +189,7 @@
|
|
|
187
189
|
cape:
|
|
188
190
|
name: cape62
|
|
189
191
|
target_a:
|
|
190
|
-
name:
|
|
192
|
+
name: nRF52_FRAM_1392_384
|
|
191
193
|
created: 2023-09-22 12:12:12
|
|
192
194
|
- datatype: observer
|
|
193
195
|
parameters:
|
|
@@ -202,7 +204,7 @@
|
|
|
202
204
|
cape:
|
|
203
205
|
name: cape60
|
|
204
206
|
target_a:
|
|
205
|
-
name:
|
|
207
|
+
name: nRF52_FRAM_1392_379
|
|
206
208
|
created: 2023-09-22 12:12:12
|
|
207
209
|
- datatype: observer
|
|
208
210
|
parameters:
|
|
@@ -217,5 +219,5 @@
|
|
|
217
219
|
cape:
|
|
218
220
|
name: cape64
|
|
219
221
|
target_a:
|
|
220
|
-
name:
|
|
222
|
+
name: nRF52_FRAM_1392_390
|
|
221
223
|
created: 2023-09-22 12:12:12
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# https://github.com/orgua/shepherd_v2_planning/blob/main/doc_testbed/Target_pre-deployment-tests.xlsx
|
|
4
4
|
- datatype: target
|
|
5
5
|
parameters:
|
|
6
|
-
id: 6 # Outer ID - selected by user - can be rearranged
|
|
6
|
+
id: 6 # Outer ID - selected by user for XP - can be rearranged
|
|
7
7
|
name: nRF52_FRAM_001 # inner ID - used to link all parts together
|
|
8
8
|
version: v1.0
|
|
9
9
|
description: nRF52 as MCU + Radio, MSP430FR as SPI-FRAM or additional MCU
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
---
|
|
2
|
+
# more human-readable test-protocol @
|
|
3
|
+
# https://github.com/orgua/shepherd_v2_planning/blob/main/doc_testbed/Target_pre-deployment-tests.xlsx
|
|
4
|
+
- datatype: target
|
|
5
|
+
parameters:
|
|
6
|
+
id: 2 # Outer ID - selected by user for XP - can be rearranged
|
|
7
|
+
name: nRF52_FRAM_1392_377 # inner ID - used to link all parts together
|
|
8
|
+
version: v1.3
|
|
9
|
+
description: nRF52 as MCU + Radio, MSP430FR as SPI-FRAM or additional MCU
|
|
10
|
+
comment: slight scratches from manufacturing
|
|
11
|
+
created: 2024-11-29
|
|
12
|
+
mcu1:
|
|
13
|
+
name: nRF52
|
|
14
|
+
mcu2:
|
|
15
|
+
name: MSP430FR
|
|
16
|
+
- datatype: target
|
|
17
|
+
parameters:
|
|
18
|
+
inherit_from: nRF52_FRAM_1392_377
|
|
19
|
+
id: 8
|
|
20
|
+
name: nRF52_FRAM_1392_378
|
|
21
|
+
- datatype: target
|
|
22
|
+
parameters:
|
|
23
|
+
inherit_from: nRF52_FRAM_1392_377
|
|
24
|
+
id: 9
|
|
25
|
+
name: nRF52_FRAM_1392_379
|
|
26
|
+
- datatype: target
|
|
27
|
+
parameters:
|
|
28
|
+
inherit_from: nRF52_FRAM_1392_377
|
|
29
|
+
id: 1392380
|
|
30
|
+
name: nRF52_FRAM_1392_380
|
|
31
|
+
comment: msp fails to program
|
|
32
|
+
active: false
|
|
33
|
+
- datatype: target
|
|
34
|
+
parameters:
|
|
35
|
+
inherit_from: nRF52_FRAM_1392_377
|
|
36
|
+
id: 1392381
|
|
37
|
+
name: nRF52_FRAM_1392_381
|
|
38
|
+
comment: nrf failed to program in testbed (but was fine before)
|
|
39
|
+
- datatype: target
|
|
40
|
+
parameters:
|
|
41
|
+
inherit_from: nRF52_FRAM_1392_377
|
|
42
|
+
id: 1392382
|
|
43
|
+
name: nRF52_FRAM_1392_382
|
|
44
|
+
comment: msp fails to program
|
|
45
|
+
active: false
|
|
46
|
+
- datatype: target
|
|
47
|
+
parameters:
|
|
48
|
+
inherit_from: nRF52_FRAM_1392_377
|
|
49
|
+
id: 1392383
|
|
50
|
+
name: nRF52_FRAM_1392_383
|
|
51
|
+
comment: nrf failed to program in testbed (but was fine before)
|
|
52
|
+
- datatype: target
|
|
53
|
+
parameters:
|
|
54
|
+
inherit_from: nRF52_FRAM_1392_377
|
|
55
|
+
id: 4
|
|
56
|
+
name: nRF52_FRAM_1392_384
|
|
57
|
+
- datatype: target
|
|
58
|
+
parameters:
|
|
59
|
+
inherit_from: nRF52_FRAM_1392_377
|
|
60
|
+
id: 5
|
|
61
|
+
name: nRF52_FRAM_1392_385
|
|
62
|
+
- datatype: target
|
|
63
|
+
parameters:
|
|
64
|
+
inherit_from: nRF52_FRAM_1392_377
|
|
65
|
+
id: 6
|
|
66
|
+
name: nRF52_FRAM_1392_386
|
|
67
|
+
- datatype: target
|
|
68
|
+
parameters:
|
|
69
|
+
inherit_from: nRF52_FRAM_1392_377
|
|
70
|
+
id: 7
|
|
71
|
+
name: nRF52_FRAM_1392_387
|
|
72
|
+
- datatype: target
|
|
73
|
+
parameters:
|
|
74
|
+
inherit_from: nRF52_FRAM_1392_377
|
|
75
|
+
id: 1392388
|
|
76
|
+
name: nRF52_FRAM_1392_388
|
|
77
|
+
comment: msp fails to program, msp removed, in darmstadt
|
|
78
|
+
mcu2: null
|
|
79
|
+
active: false
|
|
80
|
+
- datatype: target
|
|
81
|
+
parameters:
|
|
82
|
+
inherit_from: nRF52_FRAM_1392_377
|
|
83
|
+
id: 1392389
|
|
84
|
+
name: nRF52_FRAM_1392_389
|
|
85
|
+
comment: msp fails to program, msp removed, in darmstadt
|
|
86
|
+
mcu2: null
|
|
87
|
+
active: false
|
|
88
|
+
- datatype: target
|
|
89
|
+
parameters:
|
|
90
|
+
inherit_from: nRF52_FRAM_1392_377
|
|
91
|
+
id: 10
|
|
92
|
+
name: nRF52_FRAM_1392_390
|
|
93
|
+
- datatype: target
|
|
94
|
+
parameters:
|
|
95
|
+
inherit_from: nRF52_FRAM_1392_377
|
|
96
|
+
id: 1392391
|
|
97
|
+
name: nRF52_FRAM_1392_391
|
|
98
|
+
comment: nrf failed to program in testbed (but was fine before)
|
|
99
|
+
- datatype: target
|
|
100
|
+
parameters:
|
|
101
|
+
inherit_from: nRF52_FRAM_1392_377
|
|
102
|
+
id: 1392392
|
|
103
|
+
name: nRF52_FRAM_1392_392
|
|
104
|
+
comment: msp fails to program
|
|
105
|
+
active: false
|
|
106
|
+
- datatype: target
|
|
107
|
+
parameters:
|
|
108
|
+
inherit_from: nRF52_FRAM_1392_377
|
|
109
|
+
id: 1
|
|
110
|
+
name: nRF52_FRAM_1392_393
|
|
111
|
+
- datatype: target
|
|
112
|
+
parameters:
|
|
113
|
+
inherit_from: nRF52_FRAM_1392_377
|
|
114
|
+
id: 1392394
|
|
115
|
+
name: nRF52_FRAM_1392_394
|
|
116
|
+
comment: msp fails to program
|
|
117
|
+
active: false
|
|
118
|
+
- datatype: target
|
|
119
|
+
parameters:
|
|
120
|
+
inherit_from: nRF52_FRAM_1392_377
|
|
121
|
+
id: 3
|
|
122
|
+
name: nRF52_FRAM_1392_395
|
|
123
|
+
comment: initial test unit
|
|
124
|
+
- datatype: target
|
|
125
|
+
parameters:
|
|
126
|
+
inherit_from: nRF52_FRAM_1392_377
|
|
127
|
+
id: 11
|
|
128
|
+
name: nRF52_FRAM_1392_396
|
|
129
|
+
- datatype: target
|
|
130
|
+
parameters:
|
|
131
|
+
inherit_from: nRF52_FRAM_1392_377
|
|
132
|
+
id: 1392397
|
|
133
|
+
name: nRF52_FRAM_1392_397
|
|
134
|
+
- datatype: target
|
|
135
|
+
parameters:
|
|
136
|
+
inherit_from: nRF52_FRAM_1392_377
|
|
137
|
+
id: 1392398
|
|
138
|
+
name: nRF52_FRAM_1392_398
|
|
139
|
+
- datatype: target
|
|
140
|
+
parameters:
|
|
141
|
+
inherit_from: nRF52_FRAM_1392_377
|
|
142
|
+
id: 1392399
|
|
143
|
+
name: nRF52_FRAM_1392_399
|
|
144
|
+
comment: LabPrototype
|
|
145
|
+
- datatype: target
|
|
146
|
+
parameters:
|
|
147
|
+
inherit_from: nRF52_FRAM_1392_377
|
|
148
|
+
id: 1392400
|
|
149
|
+
name: nRF52_FRAM_1392_400
|
|
150
|
+
comment: in darmstadt
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
- datatype: target
|
|
154
|
+
parameters:
|
|
155
|
+
id: 1001
|
|
156
|
+
name: target_nRF52_01
|
|
157
|
+
version: v2.1r0
|
|
158
|
+
description: single target PCB, v2.1r0
|
|
159
|
+
comment: ONLY VIRTUAL - NOT REAL - for unittests
|
|
160
|
+
mcu1:
|
|
161
|
+
name: nRF52
|
|
162
|
+
mcu2: null
|
|
163
|
+
created: 2022-12-12 12:12:12
|
|
@@ -11,15 +11,15 @@
|
|
|
11
11
|
observers:
|
|
12
12
|
- name: sheep01
|
|
13
13
|
- name: sheep02
|
|
14
|
-
- name: sheep03
|
|
14
|
+
# - name: sheep03
|
|
15
15
|
- name: sheep04
|
|
16
16
|
- name: sheep05
|
|
17
17
|
- name: sheep06
|
|
18
18
|
- name: sheep07
|
|
19
|
-
- name: sheep08
|
|
19
|
+
# - name: sheep08
|
|
20
20
|
- name: sheep09
|
|
21
21
|
- name: sheep10
|
|
22
|
-
- name: sheep11
|
|
22
|
+
# - name: sheep11
|
|
23
23
|
- name: sheep12
|
|
24
24
|
- name: sheep13
|
|
25
25
|
- name: sheep14
|
|
@@ -53,28 +53,25 @@ from .validation import is_hex_msp430
|
|
|
53
53
|
from .validation import is_hex_nrf52
|
|
54
54
|
|
|
55
55
|
__all__ = [
|
|
56
|
-
# patcher
|
|
57
|
-
"read_uid",
|
|
58
|
-
"modify_uid",
|
|
59
|
-
"modify_symbol_value",
|
|
60
|
-
"find_symbol",
|
|
61
|
-
"read_symbol",
|
|
62
|
-
"read_arch",
|
|
63
|
-
# converter
|
|
64
|
-
"elf_to_hex",
|
|
65
|
-
"file_to_base64",
|
|
66
56
|
"base64_to_file",
|
|
67
|
-
"file_to_hash",
|
|
68
57
|
"base64_to_hash",
|
|
58
|
+
"determine_arch",
|
|
59
|
+
"determine_type",
|
|
60
|
+
"elf_to_hex",
|
|
69
61
|
"extract_firmware",
|
|
62
|
+
"file_to_base64",
|
|
63
|
+
"file_to_hash",
|
|
64
|
+
"find_symbol",
|
|
70
65
|
"firmware_to_hex",
|
|
71
|
-
# validation
|
|
72
|
-
"is_hex",
|
|
73
|
-
"is_hex_msp430",
|
|
74
|
-
"is_hex_nrf52",
|
|
75
66
|
"is_elf",
|
|
76
67
|
"is_elf_msp430",
|
|
77
68
|
"is_elf_nrf52",
|
|
78
|
-
"
|
|
79
|
-
"
|
|
69
|
+
"is_hex",
|
|
70
|
+
"is_hex_msp430",
|
|
71
|
+
"is_hex_nrf52",
|
|
72
|
+
"modify_symbol_value",
|
|
73
|
+
"modify_uid",
|
|
74
|
+
"read_arch",
|
|
75
|
+
"read_symbol",
|
|
76
|
+
"read_uid",
|
|
80
77
|
]
|
|
@@ -270,6 +270,26 @@ class Reader:
|
|
|
270
270
|
else:
|
|
271
271
|
return None
|
|
272
272
|
|
|
273
|
+
def get_voltage_step(self) -> Optional[float]:
|
|
274
|
+
"""Informs about the voltage step (in volts) used during harvesting the ivcurve.
|
|
275
|
+
|
|
276
|
+
Options for figuring out the real step:
|
|
277
|
+
- look into config (if available)
|
|
278
|
+
- analyze recorded data for most often used delta
|
|
279
|
+
- calculate with 'steps_n * (1 + wait_cycles)' (done for calculating window_size)
|
|
280
|
+
"""
|
|
281
|
+
voltage_step: Optional[float] = (
|
|
282
|
+
self.get_config().get("virtual_harvester", {}).get("voltage_step_mV", None)
|
|
283
|
+
)
|
|
284
|
+
if voltage_step is None:
|
|
285
|
+
dsv = self.ds_voltage[0:2000]
|
|
286
|
+
diffs_np = np.unique(dsv[1:] - dsv[0:-1], return_counts=False)
|
|
287
|
+
diffs_ls = [_e for _e in list(np.array(diffs_np)) if _e > 0]
|
|
288
|
+
voltage_step = min(diffs_ls)
|
|
289
|
+
if voltage_step is not None:
|
|
290
|
+
voltage_step = 1e-3 * voltage_step
|
|
291
|
+
return voltage_step
|
|
292
|
+
|
|
273
293
|
def get_hrv_config(self) -> dict:
|
|
274
294
|
"""Essential info for harvester.
|
|
275
295
|
|
|
@@ -278,6 +298,7 @@ class Reader:
|
|
|
278
298
|
return {
|
|
279
299
|
"datatype": self.get_datatype(),
|
|
280
300
|
"window_samples": self.get_window_samples(),
|
|
301
|
+
"voltage_step_V": self.get_voltage_step(),
|
|
281
302
|
}
|
|
282
303
|
|
|
283
304
|
def is_valid(self) -> bool:
|
{shepherd_core-2024.11.1 → shepherd_core-2024.11.3}/shepherd_core/vsource/virtual_source_model.py
RENAMED
|
@@ -31,6 +31,7 @@ class VirtualSourceModel:
|
|
|
31
31
|
cal_emu: CalibrationEmulator,
|
|
32
32
|
dtype_in: EnergyDType = EnergyDType.ivsample,
|
|
33
33
|
window_size: Optional[int] = None,
|
|
34
|
+
voltage_step_V: Optional[float] = None,
|
|
34
35
|
*,
|
|
35
36
|
log_intermediate: bool = False,
|
|
36
37
|
) -> None:
|
|
@@ -50,6 +51,7 @@ class VirtualSourceModel:
|
|
|
50
51
|
for_emu=True,
|
|
51
52
|
dtype_in=dtype_in,
|
|
52
53
|
window_size=window_size,
|
|
54
|
+
voltage_step_V=voltage_step_V,
|
|
53
55
|
)
|
|
54
56
|
|
|
55
57
|
self.hrv: VirtualHarvesterModel = VirtualHarvesterModel(hrv_config)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: shepherd_core
|
|
3
|
-
Version: 2024.11.
|
|
3
|
+
Version: 2024.11.3
|
|
4
4
|
Summary: Programming- and CLI-Interface for the h5-dataformat of the Shepherd-Testbed
|
|
5
5
|
Author-email: Ingmar Splitt <ingmar.splitt@tu-dresden.de>
|
|
6
6
|
Maintainer-email: Ingmar Splitt <ingmar.splitt@tu-dresden.de>
|