mirror of
https://github.com/ARM-software/workload-automation.git
synced 2025-01-31 10:11:17 +00:00
instrument/energy: add support for Juno on-board measurement
Add support for JunoEnergyInstrument backend that utilizes the on-board Juno sensors.
This commit is contained in:
parent
ed691a5335
commit
f9df5195b9
@ -25,6 +25,7 @@ from devlib.instrument.energy_probe import EnergyProbeInstrument
|
|||||||
from devlib.instrument.daq import DaqInstrument
|
from devlib.instrument.daq import DaqInstrument
|
||||||
from devlib.instrument.acmecape import AcmeCapeInstrument
|
from devlib.instrument.acmecape import AcmeCapeInstrument
|
||||||
from devlib.instrument.monsoon import MonsoonInstrument
|
from devlib.instrument.monsoon import MonsoonInstrument
|
||||||
|
from devlib.platform.arm import JunoEnergyInstrument
|
||||||
from devlib.utils.misc import which
|
from devlib.utils.misc import which
|
||||||
|
|
||||||
from wa import Instrument, Parameter
|
from wa import Instrument, Parameter
|
||||||
@ -152,6 +153,7 @@ class EnergyProbeBackend(EnergyInstrumentBackend):
|
|||||||
msg = 'Number of Energy Probe port labels does not match the number of resistor values.'
|
msg = 'Number of Energy Probe port labels does not match the number of resistor values.'
|
||||||
raise ConfigError(msg)
|
raise ConfigError(msg)
|
||||||
|
|
||||||
|
|
||||||
class AcmeCapeBackend(EnergyInstrumentBackend):
|
class AcmeCapeBackend(EnergyInstrumentBackend):
|
||||||
|
|
||||||
name = 'acme_cape'
|
name = 'acme_cape'
|
||||||
@ -221,6 +223,12 @@ class MonsoonBackend(EnergyInstrumentBackend):
|
|||||||
instrument = MonsoonInstrument
|
instrument = MonsoonInstrument
|
||||||
|
|
||||||
|
|
||||||
|
class JunoEnergyBackend(EnergyInstrumentBackend):
|
||||||
|
|
||||||
|
name = 'juno_readenergy'
|
||||||
|
instrument = JunoEnergyInstrument
|
||||||
|
|
||||||
|
|
||||||
class EnergyMeasurement(Instrument):
|
class EnergyMeasurement(Instrument):
|
||||||
|
|
||||||
name = 'energy_measurement'
|
name = 'energy_measurement'
|
||||||
@ -232,7 +240,7 @@ class EnergyMeasurement(Instrument):
|
|||||||
|
|
||||||
parameters = [
|
parameters = [
|
||||||
Parameter('instrument', kind=str, mandatory=True,
|
Parameter('instrument', kind=str, mandatory=True,
|
||||||
allowed_values=['daq', 'energy_probe', 'acme_cape', 'monsoon'],
|
allowed_values=['daq', 'energy_probe', 'acme_cape', 'monsoon', 'juno_readenergy'],
|
||||||
description="""
|
description="""
|
||||||
Specify the energy instrumentation to be enabled.
|
Specify the energy instrumentation to be enabled.
|
||||||
"""),
|
"""),
|
||||||
@ -284,9 +292,10 @@ class EnergyMeasurement(Instrument):
|
|||||||
self.instruments = self.backend.get_instruments(self.target, **self.params)
|
self.instruments = self.backend.get_instruments(self.target, **self.params)
|
||||||
|
|
||||||
for instrument in self.instruments.itervalues():
|
for instrument in self.instruments.itervalues():
|
||||||
if instrument.mode != CONTINUOUS:
|
if not (instrument.mode & CONTINUOUS):
|
||||||
msg = '{} instrument does not support continuous measurement collection'
|
msg = '{} instrument does not support continuous measurement collection'
|
||||||
raise ConfigError(msg.format(self.instrument))
|
raise ConfigError(msg.format(self.instrument))
|
||||||
|
instrument.setup()
|
||||||
|
|
||||||
for channel in self.channels or []:
|
for channel in self.channels or []:
|
||||||
# Check that the expeccted channels exist.
|
# Check that the expeccted channels exist.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user