Source code for RsSmw.Implementations.Source.Bb

from ....Internal.Core import Core
from ....Internal.CommandsGroup import CommandsGroup
from ....Internal import Conversions
from .... import enums


# noinspection PyPep8Naming,PyAttributeOutsideInit,SpellCheckingInspection
class BbCls:
	"""
	| Commands in total: 10753
	| Subgroups: 40
	| Direct child commands: 7
	"""

	def __init__(self, core: Core, parent):
		self._core = core
		self._cmd_group = CommandsGroup("bb", core, parent)

	@property
	def arbitrary(self):
		"""
		| Commands in total: 174
		| Subgroups: 13
		| Direct child commands: 3
		"""
		if not hasattr(self, '_arbitrary'):
			from .Arbitrary import ArbitraryCls
			self._arbitrary = ArbitraryCls(self._core, self._cmd_group)
		return self._arbitrary

	@property
	def btooth(self):
		"""
		| Commands in total: 401
		| Subgroups: 21
		| Direct child commands: 18
		"""
		if not hasattr(self, '_btooth'):
			from .Btooth import BtoothCls
			self._btooth = BtoothCls(self._core, self._cmd_group)
		return self._btooth

	@property
	def c2K(self):
		"""
		| Commands in total: 150
		| Subgroups: 13
		| Direct child commands: 5
		"""
		if not hasattr(self, '_c2K'):
			from .C2K import C2KCls
			self._c2K = C2KCls(self._core, self._cmd_group)
		return self._c2K

	@property
	def coder(self):
		"""
		| Commands in total: 1
		| Subgroups: 0
		| Direct child commands: 1
		"""
		if not hasattr(self, '_coder'):
			from .Coder import CoderCls
			self._coder = CoderCls(self._core, self._cmd_group)
		return self._coder

	@property
	def dab(self):
		"""
		| Commands in total: 54
		| Subgroups: 11
		| Direct child commands: 7
		"""
		if not hasattr(self, '_dab'):
			from .Dab import DabCls
			self._dab = DabCls(self._core, self._cmd_group)
		return self._dab

	@property
	def dm(self):
		"""
		| Commands in total: 112
		| Subgroups: 20
		| Direct child commands: 8
		"""
		if not hasattr(self, '_dm'):
			from .Dm import DmCls
			self._dm = DmCls(self._core, self._cmd_group)
		return self._dm

	@property
	def dvb(self):
		"""
		| Commands in total: 381
		| Subgroups: 13
		| Direct child commands: 3
		"""
		if not hasattr(self, '_dvb'):
			from .Dvb import DvbCls
			self._dvb = DvbCls(self._core, self._cmd_group)
		return self._dvb

	@property
	def esequencer(self):
		"""
		| Commands in total: 147
		| Subgroups: 14
		| Direct child commands: 6
		"""
		if not hasattr(self, '_esequencer'):
			from .Esequencer import EsequencerCls
			self._esequencer = EsequencerCls(self._core, self._cmd_group)
		return self._esequencer

	@property
	def eutra(self):
		"""
		| Commands in total: 1296
		| Subgroups: 20
		| Direct child commands: 8
		"""
		if not hasattr(self, '_eutra'):
			from .Eutra import EutraCls
			self._eutra = EutraCls(self._core, self._cmd_group)
		return self._eutra

	@property
	def evdo(self):
		"""
		| Commands in total: 156
		| Subgroups: 13
		| Direct child commands: 8
		"""
		if not hasattr(self, '_evdo'):
			from .Evdo import EvdoCls
			self._evdo = EvdoCls(self._core, self._cmd_group)
		return self._evdo

	@property
	def gbas(self):
		"""
		| Commands in total: 192
		| Subgroups: 8
		| Direct child commands: 9
		"""
		if not hasattr(self, '_gbas'):
			from .Gbas import GbasCls
			self._gbas = GbasCls(self._core, self._cmd_group)
		return self._gbas

	@property
	def gnpr(self):
		"""
		| Commands in total: 1
		| Subgroups: 1
		| Direct child commands: 0
		"""
		if not hasattr(self, '_gnpr'):
			from .Gnpr import GnprCls
			self._gnpr = GnprCls(self._core, self._cmd_group)
		return self._gnpr

	@property
	def gnss(self):
		"""
		| Commands in total: 2498
		| Subgroups: 29
		| Direct child commands: 6
		"""
		if not hasattr(self, '_gnss'):
			from .Gnss import GnssCls
			self._gnss = GnssCls(self._core, self._cmd_group)
		return self._gnss

	@property
	def graphics(self):
		"""
		| Commands in total: 10
		| Subgroups: 3
		| Direct child commands: 5
		"""
		if not hasattr(self, '_graphics'):
			from .Graphics import GraphicsCls
			self._graphics = GraphicsCls(self._core, self._cmd_group)
		return self._graphics

	@property
	def gsm(self):
		"""
		| Commands in total: 111
		| Subgroups: 19
		| Direct child commands: 8
		"""
		if not hasattr(self, '_gsm'):
			from .Gsm import GsmCls
			self._gsm = GsmCls(self._core, self._cmd_group)
		return self._gsm

	@property
	def huwb(self):
		"""
		| Commands in total: 64
		| Subgroups: 8
		| Direct child commands: 4
		"""
		if not hasattr(self, '_huwb'):
			from .Huwb import HuwbCls
			self._huwb = HuwbCls(self._core, self._cmd_group)
		return self._huwb

	@property
	def impairment(self):
		"""
		| Commands in total: 34
		| Subgroups: 5
		| Direct child commands: 0
		"""
		if not hasattr(self, '_impairment'):
			from .Impairment import ImpairmentCls
			self._impairment = ImpairmentCls(self._core, self._cmd_group)
		return self._impairment

	@property
	def info(self):
		"""
		| Commands in total: 1
		| Subgroups: 0
		| Direct child commands: 1
		"""
		if not hasattr(self, '_info'):
			from .Info import InfoCls
			self._info = InfoCls(self._core, self._cmd_group)
		return self._info

	@property
	def kuiper(self):
		"""
		| Commands in total: 44
		| Subgroups: 6
		| Direct child commands: 2
		"""
		if not hasattr(self, '_kuiper'):
			from .Kuiper import KuiperCls
			self._kuiper = KuiperCls(self._core, self._cmd_group)
		return self._kuiper

	@property
	def lora(self):
		"""
		| Commands in total: 60
		| Subgroups: 7
		| Direct child commands: 6
		"""
		if not hasattr(self, '_lora'):
			from .Lora import LoraCls
			self._lora = LoraCls(self._core, self._cmd_group)
		return self._lora

	@property
	def lrWpan(self):
		"""
		| Commands in total: 380
		| Subgroups: 13
		| Direct child commands: 4
		"""
		if not hasattr(self, '_lrWpan'):
			from .LrWpan import LrWpanCls
			self._lrWpan = LrWpanCls(self._core, self._cmd_group)
		return self._lrWpan

	@property
	def mccw(self):
		"""
		| Commands in total: 53
		| Subgroups: 7
		| Direct child commands: 2
		"""
		if not hasattr(self, '_mccw'):
			from .Mccw import MccwCls
			self._mccw = MccwCls(self._core, self._cmd_group)
		return self._mccw

	@property
	def measurement(self):
		"""
		| Commands in total: 16
		| Subgroups: 1
		| Direct child commands: 0
		"""
		if not hasattr(self, '_measurement'):
			from .Measurement import MeasurementCls
			self._measurement = MeasurementCls(self._core, self._cmd_group)
		return self._measurement

	@property
	def nfc(self):
		"""
		| Commands in total: 193
		| Subgroups: 10
		| Direct child commands: 12
		"""
		if not hasattr(self, '_nfc'):
			from .Nfc import NfcCls
			self._nfc = NfcCls(self._core, self._cmd_group)
		return self._nfc

	@property
	def nr5G(self):
		"""
		| Commands in total: 1473
		| Subgroups: 28
		| Direct child commands: 7
		"""
		if not hasattr(self, '_nr5G'):
			from .Nr5G import Nr5GCls
			self._nr5G = Nr5GCls(self._core, self._cmd_group)
		return self._nr5G

	@property
	def ofdm(self):
		"""
		| Commands in total: 122
		| Subgroups: 16
		| Direct child commands: 21
		"""
		if not hasattr(self, '_ofdm'):
			from .Ofdm import OfdmCls
			self._ofdm = OfdmCls(self._core, self._cmd_group)
		return self._ofdm

	@property
	def oneweb(self):
		"""
		| Commands in total: 408
		| Subgroups: 14
		| Direct child commands: 6
		"""
		if not hasattr(self, '_oneweb'):
			from .Oneweb import OnewebCls
			self._oneweb = OnewebCls(self._core, self._cmd_group)
		return self._oneweb

	@property
	def packet(self):
		"""
		| Commands in total: 3
		| Subgroups: 2
		| Direct child commands: 0
		"""
		if not hasattr(self, '_packet'):
			from .Packet import PacketCls
			self._packet = PacketCls(self._core, self._cmd_group)
		return self._packet

	@property
	def path(self):
		"""
		| Commands in total: 1
		| Subgroups: 0
		| Direct child commands: 1
		"""
		if not hasattr(self, '_path'):
			from .Path import PathCls
			self._path = PathCls(self._core, self._cmd_group)
		return self._path

	@property
	def power(self):
		"""
		| Commands in total: 2
		| Subgroups: 0
		| Direct child commands: 2
		"""
		if not hasattr(self, '_power'):
			from .Power import PowerCls
			self._power = PowerCls(self._core, self._cmd_group)
		return self._power

	@property
	def pramp(self):
		"""
		| Commands in total: 48
		| Subgroups: 5
		| Direct child commands: 2
		"""
		if not hasattr(self, '_pramp'):
			from .Pramp import PrampCls
			self._pramp = PrampCls(self._core, self._cmd_group)
		return self._pramp

	@property
	def progress(self):
		"""
		| Commands in total: 5
		| Subgroups: 1
		| Direct child commands: 0
		"""
		if not hasattr(self, '_progress'):
			from .Progress import ProgressCls
			self._progress = ProgressCls(self._core, self._cmd_group)
		return self._progress

	@property
	def tdscdma(self):
		"""
		| Commands in total: 360
		| Subgroups: 12
		| Direct child commands: 6
		"""
		if not hasattr(self, '_tdscdma'):
			from .Tdscdma import TdscdmaCls
			self._tdscdma = TdscdmaCls(self._core, self._cmd_group)
		return self._tdscdma

	@property
	def tetra(self):
		"""
		| Commands in total: 108
		| Subgroups: 11
		| Direct child commands: 9
		"""
		if not hasattr(self, '_tetra'):
			from .Tetra import TetraCls
			self._tetra = TetraCls(self._core, self._cmd_group)
		return self._tetra

	@property
	def trigger(self):
		"""
		| Commands in total: 3
		| Subgroups: 2
		| Direct child commands: 1
		"""
		if not hasattr(self, '_trigger'):
			from .Trigger import TriggerCls
			self._trigger = TriggerCls(self._core, self._cmd_group)
		return self._trigger

	@property
	def v5G(self):
		"""
		| Commands in total: 641
		| Subgroups: 15
		| Direct child commands: 6
		"""
		if not hasattr(self, '_v5G'):
			from .V5G import V5GCls
			self._v5G = V5GCls(self._core, self._cmd_group)
		return self._v5G

	@property
	def w3Gpp(self):
		"""
		| Commands in total: 564
		| Subgroups: 14
		| Direct child commands: 5
		"""
		if not hasattr(self, '_w3Gpp'):
			from .W3Gpp import W3GppCls
			self._w3Gpp = W3GppCls(self._core, self._cmd_group)
		return self._w3Gpp

	@property
	def wlad(self):
		"""
		| Commands in total: 112
		| Subgroups: 8
		| Direct child commands: 6
		"""
		if not hasattr(self, '_wlad'):
			from .Wlad import WladCls
			self._wlad = WladCls(self._core, self._cmd_group)
		return self._wlad

	@property
	def wlay(self):
		"""
		| Commands in total: 32
		| Subgroups: 1
		| Direct child commands: 0
		"""
		if not hasattr(self, '_wlay'):
			from .Wlay import WlayCls
			self._wlay = WlayCls(self._core, self._cmd_group)
		return self._wlay

	@property
	def wlnn(self):
		"""
		| Commands in total: 335
		| Subgroups: 9
		| Direct child commands: 8
		"""
		if not hasattr(self, '_wlnn'):
			from .Wlnn import WlnnCls
			self._wlnn = WlnnCls(self._core, self._cmd_group)
		return self._wlnn

[docs] def get_cfactor(self) -> float: """ ``[SOURce<HW>]:BB:CFACtor`` \n Snippet: ``value: float = driver.source.bb.get_cfactor()`` \n Queries the crest factor of the baseband signal. :return: cfactor: float Range: 0 to 100, Unit: dB """ response = self._core.io.query_str('SOURce<HwInstance>:BB:CFACtor?') return Conversions.str_to_float(response)
[docs] def get_foffset(self) -> float: """ ``[SOURce<HW>]:BB:FOFFset`` \n Snippet: ``value: float = driver.source.bb.get_foffset()`` \n Sets a frequency offset for the internal or external baseband signal. The offset affects the generated baseband signal. :return: foffset: float Range: depends on options , Unit: Hz E.g. -60 MHz to +60 MHz (R&S SMW-B10) """ response = self._core.io.query_str('SOURce<HwInstance>:BB:FOFFset?') return Conversions.str_to_float(response)
[docs] def set_foffset(self, foffset: float) -> None: """ ``[SOURce<HW>]:BB:FOFFset`` \n Snippet: ``driver.source.bb.set_foffset(foffset = 1.0)`` \n Sets a frequency offset for the internal or external baseband signal. The offset affects the generated baseband signal. :param foffset: float Range: depends on options , Unit: Hz E.g. -60 MHz to +60 MHz (R&S SMW-B10) """ param = Conversions.decimal_value_to_str(foffset) self._core.io.write(f'SOURce<HwInstance>:BB:FOFFset {param}')
# noinspection PyTypeChecker
[docs] def get_iq_gain(self) -> enums.IqGainAll: """ ``[SOURce<HW>]:BB:IQGain`` \n Snippet: ``value: enums.IqGainAll = driver.source.bb.get_iq_gain()`` \n Sets the baseband gain for a wide dynamic range. You can amplify the baseband signal power level (positive gain) or attenuate this level (negative gain) to optimize the I/Q modulation performance. The optimization is a trade-off between signal distortion and signal-to-noise ratio (SNR) . """ response = self._core.io.query_str('SOURce<HwInstance>:BB:IQGain?') return Conversions.str_to_scalar_enum(response, enums.IqGainAll)
[docs] def set_iq_gain(self, ipartq_gain: enums.IqGainAll) -> None: """ ``[SOURce<HW>]:BB:IQGain`` \n Snippet: ``driver.source.bb.set_iq_gain(ipartq_gain = enums.IqGainAll.AUTO)`` \n Sets the baseband gain for a wide dynamic range. You can amplify the baseband signal power level (positive gain) or attenuate this level (negative gain) to optimize the I/Q modulation performance. The optimization is a trade-off between signal distortion and signal-to-noise ratio (SNR) . :param ipartq_gain: DBM4 | DBM2 | DB0 | DB2 | DB4 | DB8 | DB6 | DBM3 | DB3 | AUTO Dynamic range of 16 dB divided into 2 dB steps. DBM2 | DBM4 '-4 dB'/'-2 dB' Attenuates the baseband signal internally to minimize signal distortions and optimize the intermodulation characteristics of the modulated signal. But the SNR decreases, the signal noise increases. DB0 0 dB No changes on the baseband signal, applies no optimization. DB2 | DB4 | DB6 | DB8 '2 dB'/'4 dB'/'6 dB'/'8 dB' Amplifies the baseband signal internally to maximize the SNR while minimizing the signal noise is minimized. But the signal distortions increase. DBM3 | DB3 (Setting only) Provided only for backward compatibility with other Rohde & Schwarz signal generators. The R&S SMW200A accepts these values and maps them automatically as follows: DBM3 = DBM2, DB3 = DB2 AUTO Requires a connected R&S SZU. The R&S SMW200A automatically sets the gain with optimized adjustment data from the R&S SZU. """ param = Conversions.enum_scalar_to_str(ipartq_gain, enums.IqGainAll) self._core.io.write(f'SOURce<HwInstance>:BB:IQGain {param}')
[docs] def get_mfp_correction(self) -> float: """ ``[SOURce<HW>]:BB:MFPCorrection`` \n Snippet: ``value: float = driver.source.bb.get_mfp_correction()`` \n No help available """ response = self._core.io.query_str('SOURce<HwInstance>:BB:MFPCorrection?') return Conversions.str_to_float(response)
[docs] def get_pgain(self) -> float: """ ``[SOURce<HW>]:BB:PGAin`` \n Snippet: ``value: float = driver.source.bb.get_pgain()`` \n Sets the relative path gain for the selected baseband signal compared to the baseband signal of the other baseband sources. The gain affects the signal on the baseband block output. Applies for the other paths or the external baseband. :return: pgain: float Range: depends on options to depends on options """ response = self._core.io.query_str('SOURce<HwInstance>:BB:PGAin?') return Conversions.str_to_float(response)
[docs] def set_pgain(self, pgain: float) -> None: """ ``[SOURce<HW>]:BB:PGAin`` \n Snippet: ``driver.source.bb.set_pgain(pgain = 1.0)`` \n Sets the relative path gain for the selected baseband signal compared to the baseband signal of the other baseband sources. The gain affects the signal on the baseband block output. Applies for the other paths or the external baseband. :param pgain: float Range: depends on options to depends on options """ param = Conversions.decimal_value_to_str(pgain) self._core.io.write(f'SOURce<HwInstance>:BB:PGAin {param}')
[docs] def get_poffset(self) -> float: """ ``[SOURce<HW>]:BB:POFFset`` \n Snippet: ``value: float = driver.source.bb.get_poffset()`` \n Sets the relative phase offset for the selected baseband signal. The latter applies for the other paths or the external baseband. :return: poffset: float Range: 0 to 359.9, Unit: DEG """ response = self._core.io.query_str('SOURce<HwInstance>:BB:POFFset?') return Conversions.str_to_float(response)
[docs] def set_poffset(self, poffset: float) -> None: """ ``[SOURce<HW>]:BB:POFFset`` \n Snippet: ``driver.source.bb.set_poffset(poffset = 1.0)`` \n Sets the relative phase offset for the selected baseband signal. The latter applies for the other paths or the external baseband. :param poffset: float Range: 0 to 359.9, Unit: DEG """ param = Conversions.decimal_value_to_str(poffset) self._core.io.write(f'SOURce<HwInstance>:BB:POFFset {param}')
# noinspection PyTypeChecker
[docs] def get_route(self) -> enums.PathUniCodBbin: """ ``[SOURce<HW>]:BB:ROUTe`` \n Snippet: ``value: enums.PathUniCodBbin = driver.source.bb.get_route()`` \n Selects the signal route for the internal/external baseband signal. The internal and external signals are summed, if necessary. :return: route: A | B| AB """ response = self._core.io.query_str('SOURce<HwInstance>:BB:ROUTe?') return Conversions.str_to_scalar_enum(response, enums.PathUniCodBbin)
[docs] def set_route(self, route: enums.PathUniCodBbin) -> None: """ ``[SOURce<HW>]:BB:ROUTe`` \n Snippet: ``driver.source.bb.set_route(route = enums.PathUniCodBbin.A)`` \n Selects the signal route for the internal/external baseband signal. The internal and external signals are summed, if necessary. :param route: A | B| AB """ param = Conversions.enum_scalar_to_str(route, enums.PathUniCodBbin) self._core.io.write(f'SOURce<HwInstance>:BB:ROUTe {param}')
def clone(self) -> 'BbCls': """ 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 = BbCls(self._core, self._cmd_group.parent) self._cmd_group.synchronize_repcaps(new_group) return new_group