from ....Internal.Core import Core
from ....Internal.CommandsGroup import CommandsGroup
from ....Internal import Conversions
from .... import enums
# noinspection PyPep8Naming,PyAttributeOutsideInit,SpellCheckingInspection
[docs]class PowerCls:
"""Power commands group definition. 40 total commands, 8 Subgroups, 10 group commands"""
def __init__(self, core: Core, parent):
self._core = core
self._cmd_group = CommandsGroup("power", core, parent)
@property
def alc(self):
"""alc commands group. 1 Sub-classes, 6 commands."""
if not hasattr(self, '_alc'):
from .Alc import AlcCls
self._alc = AlcCls(self._core, self._cmd_group)
return self._alc
@property
def attenuation(self):
"""attenuation commands group. 1 Sub-classes, 2 commands."""
if not hasattr(self, '_attenuation'):
from .Attenuation import AttenuationCls
self._attenuation = AttenuationCls(self._core, self._cmd_group)
return self._attenuation
@property
def emf(self):
"""emf commands group. 0 Sub-classes, 1 commands."""
if not hasattr(self, '_emf'):
from .Emf import EmfCls
self._emf = EmfCls(self._core, self._cmd_group)
return self._emf
@property
def limit(self):
"""limit commands group. 0 Sub-classes, 1 commands."""
if not hasattr(self, '_limit'):
from .Limit import LimitCls
self._limit = LimitCls(self._core, self._cmd_group)
return self._limit
@property
def range(self):
"""range commands group. 0 Sub-classes, 2 commands."""
if not hasattr(self, '_range'):
from .Range import RangeCls
self._range = RangeCls(self._core, self._cmd_group)
return self._range
@property
def spc(self):
"""spc commands group. 2 Sub-classes, 8 commands."""
if not hasattr(self, '_spc'):
from .Spc import SpcCls
self._spc = SpcCls(self._core, self._cmd_group)
return self._spc
@property
def step(self):
"""step commands group. 0 Sub-classes, 2 commands."""
if not hasattr(self, '_step'):
from .Step import StepCls
self._step = StepCls(self._core, self._cmd_group)
return self._step
@property
def level(self):
"""level commands group. 1 Sub-classes, 0 commands."""
if not hasattr(self, '_level'):
from .Level import LevelCls
self._level = LevelCls(self._core, self._cmd_group)
return self._level
[docs] def get_iq_pep(self) -> float:
"""SCPI: [SOURce<HW>]:POWer:IQPep \n
Snippet: value: float = driver.source.power.get_iq_pep() \n
No command help available \n
:return: ipart_qpep: No help available
"""
response = self._core.io.query_str('SOURce<HwInstance>:POWer:IQPep?')
return Conversions.str_to_float(response)
# noinspection PyTypeChecker
[docs] def get_lbehaviour(self) -> enums.PowLevBehaviour:
"""SCPI: [SOURce<HW>]:POWer:LBEHaviour \n
Snippet: value: enums.PowLevBehaviour = driver.source.power.get_lbehaviour() \n
Selects the level behavior at the RF output over time. \n
:return: behaviour: AUTO| UNINterrupted| MONotone| CVSWr| USER| CPHase UNINterrupted|MONotone Do not use the uninterrupted level settings and strictly monotone modes in combination with the high-quality optimization mode (see [:SOURcehw]:BB:IMPairment:OPTimization:MODE) . CWSWr Constant VSWR
"""
response = self._core.io.query_str('SOURce<HwInstance>:POWer:LBEHaviour?')
return Conversions.str_to_scalar_enum(response, enums.PowLevBehaviour)
[docs] def set_lbehaviour(self, behaviour: enums.PowLevBehaviour) -> None:
"""SCPI: [SOURce<HW>]:POWer:LBEHaviour \n
Snippet: driver.source.power.set_lbehaviour(behaviour = enums.PowLevBehaviour.AUTO) \n
Selects the level behavior at the RF output over time. \n
:param behaviour: AUTO| UNINterrupted| MONotone| CVSWr| USER| CPHase UNINterrupted|MONotone Do not use the uninterrupted level settings and strictly monotone modes in combination with the high-quality optimization mode (see [:SOURcehw]:BB:IMPairment:OPTimization:MODE) . CWSWr Constant VSWR
"""
param = Conversions.enum_scalar_to_str(behaviour, enums.PowLevBehaviour)
self._core.io.write(f'SOURce<HwInstance>:POWer:LBEHaviour {param}')
# noinspection PyTypeChecker
[docs] def get_lmode(self) -> enums.PowLevMode:
"""SCPI: [SOURce<HW>]:POWer:LMODe \n
Snippet: value: enums.PowLevMode = driver.source.power.get_lmode() \n
No command help available \n
:return: lev_mode: No help available
"""
response = self._core.io.query_str('SOURce<HwInstance>:POWer:LMODe?')
return Conversions.str_to_scalar_enum(response, enums.PowLevMode)
[docs] def set_lmode(self, lev_mode: enums.PowLevMode) -> None:
"""SCPI: [SOURce<HW>]:POWer:LMODe \n
Snippet: driver.source.power.set_lmode(lev_mode = enums.PowLevMode.LOWDistortion) \n
No command help available \n
:param lev_mode: No help available
"""
param = Conversions.enum_scalar_to_str(lev_mode, enums.PowLevMode)
self._core.io.write(f'SOURce<HwInstance>:POWer:LMODe {param}')
[docs] def get_manual(self) -> float:
"""SCPI: [SOURce<HW>]:POWer:MANual \n
Snippet: value: float = driver.source.power.get_manual() \n
Sets the level for the subsequent sweep step if [:SOURce<hw>]:SWEep:POWer:MODE. Use a separate command for each sweep
step. \n
:return: manual: float You can select any level within the setting range, where: STARt is set with [:SOURcehw]:POWer:STARt STOP is set with [:SOURcehw]:POWer:STOP OFFSet is set with [:SOURcehw]:POWer[:LEVel][:IMMediate]:OFFSet Range: (STARt + OFFSet) to (STOP + OFFSet) , Unit: dBm
"""
response = self._core.io.query_str('SOURce<HwInstance>:POWer:MANual?')
return Conversions.str_to_float(response)
[docs] def set_manual(self, manual: float) -> None:
"""SCPI: [SOURce<HW>]:POWer:MANual \n
Snippet: driver.source.power.set_manual(manual = 1.0) \n
Sets the level for the subsequent sweep step if [:SOURce<hw>]:SWEep:POWer:MODE. Use a separate command for each sweep
step. \n
:param manual: float You can select any level within the setting range, where: STARt is set with [:SOURcehw]:POWer:STARt STOP is set with [:SOURcehw]:POWer:STOP OFFSet is set with [:SOURcehw]:POWer[:LEVel][:IMMediate]:OFFSet Range: (STARt + OFFSet) to (STOP + OFFSet) , Unit: dBm
"""
param = Conversions.decimal_value_to_str(manual)
self._core.io.write(f'SOURce<HwInstance>:POWer:MANual {param}')
# noinspection PyTypeChecker
[docs] def get_mode(self) -> enums.LfFreqMode:
"""SCPI: [SOURce<HW>]:POWer:MODE \n
Snippet: value: enums.LfFreqMode = driver.source.power.get_mode() \n
Selects the operating mode of the instrument to set the output level. \n
:return: mode: CW| FIXed| SWEep CW|FIXed Operates at a constant level. CW and FIXed are synonyms. To set the output level value, use the command [:SOURcehw]:POWer[:LEVel][:IMMediate][:AMPLitude]. SWEep Sets sweep mode. Set the range and current level with the commands: [:SOURcehw]:POWer:STARt and [:SOURcehw]:POWer:STOP, [:SOURcehw]:POWer:MANual.
"""
response = self._core.io.query_str('SOURce<HwInstance>:POWer:MODE?')
return Conversions.str_to_scalar_enum(response, enums.LfFreqMode)
[docs] def set_mode(self, mode: enums.LfFreqMode) -> None:
"""SCPI: [SOURce<HW>]:POWer:MODE \n
Snippet: driver.source.power.set_mode(mode = enums.LfFreqMode.CW) \n
Selects the operating mode of the instrument to set the output level. \n
:param mode: CW| FIXed| SWEep CW|FIXed Operates at a constant level. CW and FIXed are synonyms. To set the output level value, use the command [:SOURcehw]:POWer[:LEVel][:IMMediate][:AMPLitude]. SWEep Sets sweep mode. Set the range and current level with the commands: [:SOURcehw]:POWer:STARt and [:SOURcehw]:POWer:STOP, [:SOURcehw]:POWer:MANual.
"""
param = Conversions.enum_scalar_to_str(mode, enums.LfFreqMode)
self._core.io.write(f'SOURce<HwInstance>:POWer:MODE {param}')
[docs] def get_pep(self) -> float:
"""SCPI: [SOURce<HW>]:POWer:PEP \n
Snippet: value: float = driver.source.power.get_pep() \n
Queries the PEP 'Peak Envelope Power) of digital modulation or digital standards at the RF output. This value corresponds
to the level specification, displayed in the status bar (header) . \n
:return: pep: float
"""
response = self._core.io.query_str('SOURce<HwInstance>:POWer:PEP?')
return Conversions.str_to_float(response)
[docs] def get_power(self) -> float:
"""SCPI: [SOURce<HW>]:POWer:POWer \n
Snippet: value: float = driver.source.power.get_power() \n
Sets the level at the RF output connector. This value does not consider a specified offset.
The command [:SOURce<hw>]:POWer[:LEVel][:IMMediate][:AMPLitude] sets the level of the 'Level' display, that means the
level containing offset. See 'RF frequency and level display with a downstream instrument'. \n
:return: power: float Level at the RF output, without level offset Range: See data sheet , Unit: dBm
"""
response = self._core.io.query_str('SOURce<HwInstance>:POWer:POWer?')
return Conversions.str_to_float(response)
[docs] def set_power(self, power: float) -> None:
"""SCPI: [SOURce<HW>]:POWer:POWer \n
Snippet: driver.source.power.set_power(power = 1.0) \n
Sets the level at the RF output connector. This value does not consider a specified offset.
The command [:SOURce<hw>]:POWer[:LEVel][:IMMediate][:AMPLitude] sets the level of the 'Level' display, that means the
level containing offset. See 'RF frequency and level display with a downstream instrument'. \n
:param power: float Level at the RF output, without level offset Range: See data sheet , Unit: dBm
"""
param = Conversions.decimal_value_to_str(power)
self._core.io.write(f'SOURce<HwInstance>:POWer:POWer {param}')
[docs] def get_start(self) -> float:
"""SCPI: [SOURce<HW>]:POWer:STARt \n
Snippet: value: float = driver.source.power.get_start() \n
Sets the RF start/stop level in sweep mode. \n
:return: start: No help available
"""
response = self._core.io.query_str('SOURce<HwInstance>:POWer:STARt?')
return Conversions.str_to_float(response)
[docs] def set_start(self, start: float) -> None:
"""SCPI: [SOURce<HW>]:POWer:STARt \n
Snippet: driver.source.power.set_start(start = 1.0) \n
Sets the RF start/stop level in sweep mode. \n
:param start: float Sets the setting range calculated as follows: (Level_min + OFFSet) to (Level_max + OFFSet) Where the values are set with the commands: [:SOURcehw]:POWer[:LEVel][:IMMediate]:OFFSet [:SOURcehw]:POWer:STARt [:SOURcehw]:POWer:STOP Range: Minimum level to maximum level , Unit: dBm
"""
param = Conversions.decimal_value_to_str(start)
self._core.io.write(f'SOURce<HwInstance>:POWer:STARt {param}')
[docs] def get_stop(self) -> float:
"""SCPI: [SOURce<HW>]:POWer:STOP \n
Snippet: value: float = driver.source.power.get_stop() \n
Sets the RF start/stop level in sweep mode. \n
:return: stop: float Sets the setting range calculated as follows: (Level_min + OFFSet) to (Level_max + OFFSet) Where the values are set with the commands: [:SOURcehw]:POWer[:LEVel][:IMMediate]:OFFSet [:SOURcehw]:POWer:STARt [:SOURcehw]:POWer:STOP Range: Minimum level to maximum level , Unit: dBm
"""
response = self._core.io.query_str('SOURce<HwInstance>:POWer:STOP?')
return Conversions.str_to_float(response)
[docs] def set_stop(self, stop: float) -> None:
"""SCPI: [SOURce<HW>]:POWer:STOP \n
Snippet: driver.source.power.set_stop(stop = 1.0) \n
Sets the RF start/stop level in sweep mode. \n
:param stop: float Sets the setting range calculated as follows: (Level_min + OFFSet) to (Level_max + OFFSet) Where the values are set with the commands: [:SOURcehw]:POWer[:LEVel][:IMMediate]:OFFSet [:SOURcehw]:POWer:STARt [:SOURcehw]:POWer:STOP Range: Minimum level to maximum level , Unit: dBm
"""
param = Conversions.decimal_value_to_str(stop)
self._core.io.write(f'SOURce<HwInstance>:POWer:STOP {param}')
[docs] def get_wignore(self) -> bool:
"""SCPI: [SOURce]:POWer:WIGNore \n
Snippet: value: bool = driver.source.power.get_wignore() \n
Ignores level range warnings. \n
:return: state: 1| ON| 0| OFF
"""
response = self._core.io.query_str('SOURce:POWer:WIGNore?')
return Conversions.str_to_bool(response)
[docs] def set_wignore(self, state: bool) -> None:
"""SCPI: [SOURce]:POWer:WIGNore \n
Snippet: driver.source.power.set_wignore(state = False) \n
Ignores level range warnings. \n
:param state: 1| ON| 0| OFF
"""
param = Conversions.bool_to_str(state)
self._core.io.write(f'SOURce:POWer:WIGNore {param}')
def clone(self) -> 'PowerCls':
"""Clones the group by creating new object from it and its whole existing subgroups
Also copies all the existing default Repeated Capabilities setting,
which you can change independently without affecting the original group"""
new_group = PowerCls(self._core, self._cmd_group.parent)
self._cmd_group.synchronize_repcaps(new_group)
return new_group