Source code for ska_low_cbf_fpga.hardware_info

# -*- coding: utf-8 -*-
#
# Copyright (c) 2023 CSIRO Space and Astronomy.
#
# Distributed under the terms of the CSIRO Open Source Software Licence
# Agreement. See LICENSE for more info.
"""
Hardware monitoring interface
"""
from abc import ABC, abstractmethod

from ska_low_cbf_fpga.icl_field import IclField


[docs] class FpgaHardwareInfo(ABC): """ Hardware monitoring interface definition. The properties defined here must be implemented in driver-specific derived classes. """ @property @abstractmethod def fpga_power(self) -> IclField[float]: """ Get FPGA power consumption in Watts. """ raise NotImplementedError @property @abstractmethod def fpga_temperature(self) -> IclField[int]: """ Get FPGA temperature in degrees Celsius. """ raise NotImplementedError @property @abstractmethod def hbm_temperature(self) -> IclField[int]: """ Get HBM temperature in degrees Celsius. """ raise NotImplementedError @property @abstractmethod def mac_addresses(self) -> IclField[str]: """ Get Ethernet MAC addresses. :returns: Array of str, formatted like "00:01:02:03:04:05". """ raise NotImplementedError @property @abstractmethod def pcie_12v_current(self) -> IclField[float]: """ Get PCIe 12V power rail's current. """ raise NotImplementedError @property @abstractmethod def pcie_12v_voltage(self) -> IclField[float]: """ Get PCIe 12V power rail voltage reading. """ raise NotImplementedError @property @abstractmethod def power_supply_12v_current(self) -> IclField[float]: """ Get 12V power rail's current. """ raise NotImplementedError @property @abstractmethod def power_supply_12v_voltage(self) -> IclField[float]: """ Get power rail 12 volt reading. """ raise NotImplementedError