From e98289d9ef980dd825fb2cb3462e65c746cc1753 Mon Sep 17 00:00:00 2001 From: Anthony Romaniello Date: Fri, 22 Dec 2023 15:41:21 -0500 Subject: [PATCH 1/6] Add abstract methods for firmware and API versions --- scos_actions/hardware/sigan_iface.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/scos_actions/hardware/sigan_iface.py b/scos_actions/hardware/sigan_iface.py index a12c1d67..f312dfbb 100644 --- a/scos_actions/hardware/sigan_iface.py +++ b/scos_actions/hardware/sigan_iface.py @@ -70,6 +70,18 @@ def plugin_version(self) -> str: """Returns the version of the SCOS plugin defining this interface.""" pass + @property + @abstractmethod + def firmware_version(self) -> str: + """Returns the version of the signal analyzer firmware.""" + pass + + @property + @abstractmethod + def api_version(self) -> str: + """Returns the version of the underlying signal analyzer API.""" + pass + @abstractmethod def acquire_time_domain_samples( self, From 624d5b264f855d63d3ccd0b06a1c5f4523df9f69 Mon Sep 17 00:00:00 2001 From: Anthony Romaniello Date: Fri, 22 Dec 2023 15:42:03 -0500 Subject: [PATCH 2/6] Bump minor version to 7.1.0 --- scos_actions/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scos_actions/__init__.py b/scos_actions/__init__.py index fb16410a..54ccb5d2 100644 --- a/scos_actions/__init__.py +++ b/scos_actions/__init__.py @@ -1 +1 @@ -__version__ = "7.0.1" +__version__ = "7.1.0" From 69d621e1edb87031dd10a1949f873df7f4cc59f1 Mon Sep 17 00:00:00 2001 From: Anthony Romaniello Date: Fri, 22 Dec 2023 15:44:15 -0500 Subject: [PATCH 3/6] Update ntia-diagnostics software struct for 2.1.0 --- scos_actions/metadata/structs/ntia_diagnostics.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scos_actions/metadata/structs/ntia_diagnostics.py b/scos_actions/metadata/structs/ntia_diagnostics.py index 8c144299..def0cbd5 100644 --- a/scos_actions/metadata/structs/ntia_diagnostics.py +++ b/scos_actions/metadata/structs/ntia_diagnostics.py @@ -179,6 +179,8 @@ class Software(msgspec.Struct, **SIGMF_OBJECT_KWARGS): :param scos_sigan_plugin: `ScosPlugin` object describing the plugin which defines the signal analyzer interface. :param preselector_api_version: Version of the NTIA `preselector` package. + :param sigan_firmware_version: Version of the signal analyzer firmware. + :param sigan_api_version: Version of the signal analyzer API. """ system_platform: Optional[str] = None @@ -187,6 +189,8 @@ class Software(msgspec.Struct, **SIGMF_OBJECT_KWARGS): scos_actions_version: Optional[str] = None scos_sigan_plugin: Optional[ScosPlugin] = None preselector_api_version: Optional[str] = None + sigan_firmware_version: Optional[str] = None + sigan_api_version: Optional[str] = None class Diagnostics(msgspec.Struct, **SIGMF_OBJECT_KWARGS): From 1b996b59f316c654400e89d457010e72d1b217af Mon Sep 17 00:00:00 2001 From: Anthony Romaniello Date: Fri, 22 Dec 2023 15:47:07 -0500 Subject: [PATCH 4/6] Add sigan API and firmware versions to SEA action metadata --- scos_actions/actions/acquire_sea_data_product.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scos_actions/actions/acquire_sea_data_product.py b/scos_actions/actions/acquire_sea_data_product.py index c36caa94..ade1c917 100644 --- a/scos_actions/actions/acquire_sea_data_product.py +++ b/scos_actions/actions/acquire_sea_data_product.py @@ -660,7 +660,8 @@ def capture_diagnostics(self, action_start_tic: float, cpu_speeds: list) -> None start time, and SCOS uptime. Software versions: the OS platform, Python version, scos_actions - version, and preselector API version. + version, the preselector API version, the signal analyzer API + version, and the signal analyzer firmware version. The total action runtime is also recorded. @@ -773,6 +774,8 @@ def capture_diagnostics(self, action_start_tic: float, cpu_speeds: list) -> None name="scos_tekrsa", version=self.sigan.plugin_version ), "preselector_api_version": PRESELECTOR_API_VERSION, + "sigan_firmware_version": self.sigan.firmware_version, + "sigan_api_version": self.sigan.api_version, } toc = perf_counter() From f796d327045245fbf9fe6e3aa65b84d5eb4a3501 Mon Sep 17 00:00:00 2001 From: Anthony Romaniello Date: Tue, 26 Dec 2023 16:39:00 -0500 Subject: [PATCH 5/6] Add firmware and API version properties to mock sigan --- scos_actions/hardware/mocks/mock_sigan.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/scos_actions/hardware/mocks/mock_sigan.py b/scos_actions/hardware/mocks/mock_sigan.py index 46b8f2ec..29942705 100644 --- a/scos_actions/hardware/mocks/mock_sigan.py +++ b/scos_actions/hardware/mocks/mock_sigan.py @@ -38,6 +38,8 @@ def __init__(self, randomize_values=False): self._capture_time = None self._is_available = True self._plugin_version = SCOS_ACTIONS_VERSION + self._firmware_version = "1.2.3" + self._api_version = "v1.2.3" # Simulate returning less than the requested number of samples from # self.recv_num_samps @@ -55,6 +57,14 @@ def is_available(self): @property def plugin_version(self): return self._plugin_version + + @property + def firmware_version(self): + return self._firmware_version + + @property + def api_version(self): + return self._api_version @property def sample_rate(self): From 13d930ab7174d672864746e04ea0121f1f859ae7 Mon Sep 17 00:00:00 2001 From: Anthony Romaniello Date: Thu, 4 Jan 2024 12:02:59 -0500 Subject: [PATCH 6/6] Do not require API and firmware versions for sigans --- scos_actions/hardware/sigan_iface.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/scos_actions/hardware/sigan_iface.py b/scos_actions/hardware/sigan_iface.py index f312dfbb..ee6a43e0 100644 --- a/scos_actions/hardware/sigan_iface.py +++ b/scos_actions/hardware/sigan_iface.py @@ -71,16 +71,14 @@ def plugin_version(self) -> str: pass @property - @abstractmethod def firmware_version(self) -> str: """Returns the version of the signal analyzer firmware.""" - pass + return "Unknown" @property - @abstractmethod def api_version(self) -> str: """Returns the version of the underlying signal analyzer API.""" - pass + return "Unknown" @abstractmethod def acquire_time_domain_samples(