shepherd-core 2024.11.3__tar.gz → 2025.2.2__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.3 → shepherd_core-2025.2.2}/PKG-INFO +2 -2
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/content/firmware.py +2 -1
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/task/__init__.py +1 -2
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/task/programming.py +1 -1
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/fw_tools/validation.py +8 -10
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/inventory/system.py +1 -1
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/reader.py +7 -1
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/testbed_client/client_web.py +1 -1
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/version.py +1 -1
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core.egg-info/PKG-INFO +2 -2
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/README.md +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/examples/eenv_generator.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/examples/experiment_from_yaml.yaml +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/examples/experiment_generic_var1.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/examples/experiment_generic_var2.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/examples/experiment_models.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/examples/firmware_model.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/examples/firmware_modification.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/examples/inventory.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/examples/simulate_vharvester.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/examples/simulate_vsource.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/examples/uart_decode_waveform.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/examples/uart_raw2.csv +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/examples/vsource_debug_sim.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/pyproject.toml +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/setup.cfg +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/__init__.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/calibration_hw_def.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/commons.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/__init__.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/base/__init__.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/base/cal_measurement.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/base/calibration.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/base/content.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/base/shepherd.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/base/timezone.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/base/wrapper.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/content/__init__.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/content/_external_fixtures.yaml +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/content/energy_environment.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/content/energy_environment_fixture.yaml +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/content/firmware_datatype.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/content/virtual_harvester.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/content/virtual_harvester_fixture.yaml +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/content/virtual_source.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/content/virtual_source_fixture.yaml +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/experiment/__init__.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/experiment/experiment.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/experiment/observer_features.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/experiment/target_config.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/readme.md +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/task/emulation.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/task/firmware_mod.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/task/harvest.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/task/observer_tasks.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/task/testbed_tasks.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/testbed/__init__.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/testbed/cape.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/testbed/cape_fixture.yaml +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/testbed/gpio.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/testbed/gpio_fixture.yaml +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/testbed/mcu.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/testbed/mcu_fixture.yaml +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/testbed/observer.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/testbed/observer_fixture.yaml +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/testbed/target.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/testbed/target_fixture.old1 +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/testbed/target_fixture.yaml +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/testbed/testbed.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/testbed/testbed_fixture.yaml +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/virtual_source_doc.txt +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/decoder_waveform/__init__.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/decoder_waveform/uart.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/fw_tools/__init__.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/fw_tools/converter.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/fw_tools/converter_elf.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/fw_tools/patcher.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/inventory/__init__.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/inventory/python.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/inventory/target.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/logger.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/testbed_client/__init__.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/testbed_client/cache_path.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/testbed_client/client_abc_fix.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/testbed_client/fixtures.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/testbed_client/user_model.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/vsource/__init__.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/vsource/target_model.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/vsource/virtual_converter_model.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/vsource/virtual_harvester_model.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/vsource/virtual_harvester_simulation.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/vsource/virtual_source_model.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/vsource/virtual_source_simulation.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/writer.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core.egg-info/SOURCES.txt +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core.egg-info/dependency_links.txt +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core.egg-info/requires.txt +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core.egg-info/top_level.txt +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core.egg-info/zip-safe +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/__init__.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/conftest.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/__init__.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/conftest.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/example_cal_data.yaml +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/example_cal_data_faulty.yaml +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/example_cal_meas.yaml +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/example_cal_meas_faulty1.yaml +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/example_cal_meas_faulty2.yaml +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/example_config_emulator.yaml +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/example_config_experiment.yaml +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/example_config_experiment_alternative.yaml +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/example_config_harvester.yaml +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/example_config_testbed.yaml +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/example_config_virtsource.yaml +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/test_base_models.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/test_content_fixtures.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/test_content_models.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/test_examples.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/test_experiment_models.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/test_task_generation.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/test_task_models.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/test_testbed_fixtures.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/test_testbed_models.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/decoder_waveform/__init__.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/decoder_waveform/test_decoder.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/fw_tools/__init__.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/fw_tools/build_msp.elf +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/fw_tools/build_nrf.elf +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/fw_tools/conftest.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/fw_tools/test_converter.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/fw_tools/test_patcher.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/fw_tools/test_validation.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/inventory/__init__.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/inventory/test_inventory.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/test_cal_hw.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/test_examples.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/test_logger.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/test_reader.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/test_writer.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/testbed_client/__init__.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/vsource/__init__.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/vsource/conftest.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/vsource/test_converter.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/vsource/test_harvester.py +0 -0
- {shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/vsource/test_z.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: shepherd_core
|
|
3
|
-
Version:
|
|
3
|
+
Version: 2025.2.2
|
|
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>
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/content/firmware.py
RENAMED
|
@@ -127,8 +127,9 @@ class Firmware(ContentModel, title="Firmware of Target"):
|
|
|
127
127
|
arch = fw_tools.read_arch(file)
|
|
128
128
|
if "msp430" in arch and not fw_tools.is_elf_msp430(file):
|
|
129
129
|
raise ValueError("File is not a ELF for msp430")
|
|
130
|
-
if "nrf52" in arch and not fw_tools.is_elf_nrf52(file):
|
|
130
|
+
if ("nrf52" in arch or "arm" in arch) and not fw_tools.is_elf_nrf52(file):
|
|
131
131
|
raise ValueError("File is not a ELF for nRF52")
|
|
132
|
+
logger.debug("ELF-File '%s' has arch: %s", file.name, arch)
|
|
132
133
|
if "mcu" not in kwargs:
|
|
133
134
|
kwargs["mcu"] = arch_to_mcu[arch]
|
|
134
135
|
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/task/__init__.py
RENAMED
|
@@ -59,8 +59,7 @@ def prepare_task(config: Union[ShpModel, Path, str], observer: Optional[str] = N
|
|
|
59
59
|
if shp_wrap.datatype == TestbedTasks.__name__:
|
|
60
60
|
if observer is None:
|
|
61
61
|
logger.debug(
|
|
62
|
-
"Task-Set contained TestbedTasks & no observer was provided "
|
|
63
|
-
"-> will return TB-Tasks"
|
|
62
|
+
"Task-Set contained TestbedTasks & no observer was provided -> will return TB-Tasks"
|
|
64
63
|
)
|
|
65
64
|
return shp_wrap
|
|
66
65
|
tbt = TestbedTasks(**shp_wrap.parameters)
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/task/programming.py
RENAMED
|
@@ -31,7 +31,7 @@ class ProgrammingTask(ShpModel):
|
|
|
31
31
|
mcu_type: SafeStr
|
|
32
32
|
# ⤷ must be either "nrf52" or "msp430" ATM, TODO: clean xp to tasks
|
|
33
33
|
voltage: Annotated[float, Field(ge=1, lt=5)] = 3
|
|
34
|
-
datarate: Annotated[int, Field(gt=0, le=1_000_000)] =
|
|
34
|
+
datarate: Annotated[int, Field(gt=0, le=1_000_000)] = 200_000
|
|
35
35
|
protocol: ProgrammerProtocol
|
|
36
36
|
|
|
37
37
|
simulate: bool = False
|
|
@@ -66,16 +66,14 @@ def is_hex_nrf52(file: Path) -> bool:
|
|
|
66
66
|
"""Try to detect specifics for that MCU.
|
|
67
67
|
|
|
68
68
|
Observations:
|
|
69
|
-
- addresses begin at 0x0
|
|
69
|
+
- addresses begin mostly at 0x0 (no must)
|
|
70
70
|
- only one segment (.get_segments), todo
|
|
71
71
|
"""
|
|
72
72
|
if is_hex(file):
|
|
73
73
|
ih = IntelHex(file.as_posix())
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
# conservative test for now - should be well below 1 MB + 256 kB
|
|
78
|
-
return ih.get_memory_size() < 1310720
|
|
74
|
+
# conservative test for now - should be between 0 and 1 MB + 256 kB,
|
|
75
|
+
# but lately showed much higher values > 4 MB
|
|
76
|
+
return ih.get_memory_size() > 0
|
|
79
77
|
return False
|
|
80
78
|
|
|
81
79
|
|
|
@@ -145,15 +143,15 @@ def determine_arch(file: Path) -> str:
|
|
|
145
143
|
"""Figure out arch (msp430 or nrf52)."""
|
|
146
144
|
file_t = determine_type(file)
|
|
147
145
|
if file_t == FirmwareDType.path_elf:
|
|
148
|
-
if is_elf_nrf52(file):
|
|
149
|
-
return "nrf52"
|
|
150
146
|
if is_elf_msp430(file):
|
|
151
147
|
return "msp430"
|
|
148
|
+
if is_elf_nrf52(file):
|
|
149
|
+
return "nrf52"
|
|
152
150
|
raise ValueError("Arch of ELF '%s' could not be determined", file.name)
|
|
153
151
|
if file_t == FirmwareDType.path_hex:
|
|
154
|
-
if is_hex_nrf52(file):
|
|
155
|
-
return "nrf52"
|
|
156
152
|
if is_hex_msp430(file):
|
|
157
153
|
return "msp430"
|
|
154
|
+
if is_hex_nrf52(file):
|
|
155
|
+
return "nrf52"
|
|
158
156
|
raise ValueError("Arch of HEX '%s' could not be determined", file.name)
|
|
159
157
|
raise ValueError("Arch of file '%s' could not be determined", file.name)
|
|
@@ -93,7 +93,7 @@ class SystemInventory(ShpModel):
|
|
|
93
93
|
reply = subprocess.run( # noqa: S603
|
|
94
94
|
ptp_cmd, timeout=30, capture_output=True, check=False
|
|
95
95
|
)
|
|
96
|
-
ptp_out = f"{
|
|
96
|
+
ptp_out = f"{reply.stdout}, {reply.stderr}"
|
|
97
97
|
# alternative: check_output - seems to be lighter
|
|
98
98
|
|
|
99
99
|
model_dict = {
|
|
@@ -172,7 +172,10 @@ class Reader:
|
|
|
172
172
|
"""Update internal states, helpful after resampling or other changes in data-group."""
|
|
173
173
|
self.h5file.flush()
|
|
174
174
|
sample_count = self.ds_time.shape[0]
|
|
175
|
-
duration_raw =
|
|
175
|
+
duration_raw = (
|
|
176
|
+
(int(self.ds_time[sample_count - 1]) - int(self.ds_time[0])) if sample_count > 0 else 0
|
|
177
|
+
)
|
|
178
|
+
# above's typecasting prevents overflow in u64-format
|
|
176
179
|
if (sample_count > 0) and (duration_raw > 0):
|
|
177
180
|
# this assumes iso-chronous sampling
|
|
178
181
|
duration_s = self._cal.time.raw_to_si(duration_raw)
|
|
@@ -285,6 +288,9 @@ class Reader:
|
|
|
285
288
|
dsv = self.ds_voltage[0:2000]
|
|
286
289
|
diffs_np = np.unique(dsv[1:] - dsv[0:-1], return_counts=False)
|
|
287
290
|
diffs_ls = [_e for _e in list(np.array(diffs_np)) if _e > 0]
|
|
291
|
+
# static voltages have 0 steps, so
|
|
292
|
+
if len(diffs_ls) == 0:
|
|
293
|
+
return None # or is 0 better? that may provoke div0
|
|
288
294
|
voltage_step = min(diffs_ls)
|
|
289
295
|
if voltage_step is not None:
|
|
290
296
|
voltage_step = 1e-3 * voltage_step
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/testbed_client/client_web.py
RENAMED
|
@@ -36,7 +36,7 @@ class WebClient(AbcClient):
|
|
|
36
36
|
super().__init__()
|
|
37
37
|
if not hasattr(self, "_token"):
|
|
38
38
|
# add default values
|
|
39
|
-
self._token: str = "basic_public_access"
|
|
39
|
+
self._token: str = "basic_public_access" # noqa: S105
|
|
40
40
|
self._server: str = testbed_server_default
|
|
41
41
|
self._user: Optional[User] = None
|
|
42
42
|
self._key: Optional[str] = None
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: shepherd_core
|
|
3
|
-
Version:
|
|
3
|
+
Version: 2025.2.2
|
|
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>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/base/__init__.py
RENAMED
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/base/cal_measurement.py
RENAMED
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/base/calibration.py
RENAMED
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/base/content.py
RENAMED
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/base/shepherd.py
RENAMED
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/base/timezone.py
RENAMED
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/base/wrapper.py
RENAMED
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/content/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/experiment/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/task/emulation.py
RENAMED
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/task/firmware_mod.py
RENAMED
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/task/harvest.py
RENAMED
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/task/observer_tasks.py
RENAMED
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/task/testbed_tasks.py
RENAMED
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/testbed/__init__.py
RENAMED
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/testbed/cape.py
RENAMED
|
File without changes
|
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/testbed/gpio.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/testbed/observer.py
RENAMED
|
File without changes
|
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/testbed/target.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/testbed/testbed.py
RENAMED
|
File without changes
|
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/data_models/virtual_source_doc.txt
RENAMED
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/decoder_waveform/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/testbed_client/cache_path.py
RENAMED
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/testbed_client/client_abc_fix.py
RENAMED
|
File without changes
|
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/testbed_client/user_model.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/vsource/virtual_converter_model.py
RENAMED
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/vsource/virtual_harvester_model.py
RENAMED
|
File without changes
|
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core/vsource/virtual_source_model.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/shepherd_core.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/example_cal_data_faulty.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/example_cal_meas_faulty1.yaml
RENAMED
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/example_cal_meas_faulty2.yaml
RENAMED
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/example_config_emulator.yaml
RENAMED
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/example_config_experiment.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/example_config_harvester.yaml
RENAMED
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/example_config_testbed.yaml
RENAMED
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/example_config_virtsource.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/test_content_fixtures.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/test_experiment_models.py
RENAMED
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/test_task_generation.py
RENAMED
|
File without changes
|
|
File without changes
|
{shepherd_core-2024.11.3 → shepherd_core-2025.2.2}/tests/data_models/test_testbed_fixtures.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|