# pylint: disable=line-too-long
"""The measurement commands module.

These commands are used in the following models:
LPD6, MSO4, MSO4B, MSO5, MSO5B, MSO5LP, MSO6, MSO6B

THIS FILE IS AUTO-GENERATED, IT SHOULD NOT BE MANUALLY MODIFIED.

Please report an issue if one is found.

Commands and Queries:
    ```
    - MEASUrement:ADDMEAS {ACCOMMONMODE|ACPR|ACRMS|AMPLITUDE|AREA|BASE|BITAMPLITUDE|BITHIGH|BITLOW|BURSTWIDTH|CCJITTER|COMMONMODE|CPOWER|DATARATE|DCD|DDJ|DDRAOS|DDRAOSPERTCK|DDRAOSPERUI|DDRAUS|DDRAUSPERTCK|DDRAUSPERUI|DDRHOLDDIFF|DDRSETUPDIFF|DDRTCHABS|DDRTCHAVERAGE|DDRTCKAVERAGE|DDRTCLABS|DDRTCLAVERAGE|DDRTERRMN|DDRTERRN|DDRTJITCC|DDRTJITDUTY|DDRTJITPER|DDRTPST|DDRTRPRE|DDRTWPRE|DDRVIXAC|DDRTDQSCK|DELAY|DJ|DJDIRAC|DPMPSIJ|EYEHIGH|EYELOW|FALLSLEWRATE|FALLTIME|FREQUENCY|F2|F4|F8|HEIGHT|HEIGHTBER|HIGH|HIGHTIME|HOLD|IMDAANGLE|IMDADIRECTION|IMDADQ0|IMDAEFFICIENCY|IMDAHARMONICS|IMDAMECHPWR|IMDAPOWERQUALITY|IMDASPEED|IMDASYSEFF|IMDATORQUE|ISI|JITTERSUMMARY|J2|J9|LOW|LOWTIME|MAXIMUM|MEAN|MINIMUM|NDUty|NOVERSHOOT|NPERIOD|NPJ|NWIDTH|OBW|PATTERNLENGTH|PDUTY|PERIOD|PHASE|PHASENOISE|PJ|PK2Pk|POVERSHOOT|PWIDTH|QFACTOR|RISESLEWRATE|RISETIME|RJ|RJDIRAC|RMS|SETUP|SKEW|SRJ|SSCFREQDEV|SSCMODRATE|SSCSLEWRATE|TIE|TIMEOUTSIDELEVEL|TIMETOMAX|TIMETOMIN|TJBER|TNTRATIO|TOP|UNITINTERVAL|VDIFFXOVR|WBGDDT|WBGDIODEDDT|WBGEOFF|WBGEON|WBGERR|WBGIPEAK|WBGIRRM|WBGQOSS|WBGQRR|WBGTDOFF|WBGTDON|WBGTF|WBGTON|WBGTOFF|WBGTR|WBGTRR|WBGTDT|WBGVPEAK|WIDTH|WIDTHBER}
    - MEASUrement:ADDNew <QString>
    - MEASUrement:ANNOTate {OFF|AUTO}
    - MEASUrement:ANNOTate?
    - MEASUrement:AUTOset {DPMAutoset|DPMPReset|EXECute|THREEPHASEAUTOset|WBGDeskewexec|WBGPREset|WBGGSTIM}
    - MEASUrement:CH<x>:REFLevels:ABSolute:FALLHigh M <NR3>
    - MEASUrement:CH<x>:REFLevels:ABSolute:FALLHigh?
    - MEASUrement:CH<x>:REFLevels:ABSolute:FALLLow <NR3>
    - MEASUrement:CH<x>:REFLevels:ABSolute:FALLLow?
    - MEASUrement:CH<x>:REFLevels:ABSolute:FALLMid <NR3>
    - MEASUrement:CH<x>:REFLevels:ABSolute:FALLMid?
    - MEASUrement:CH<x>:REFLevels:ABSolute:HYSTeresis <NR3>
    - MEASUrement:CH<x>:REFLevels:ABSolute:HYSTeresis?
    - MEASUrement:CH<x>:REFLevels:ABSolute:RISEHigh <NR3>
    - MEASUrement:CH<x>:REFLevels:ABSolute:RISEHigh?
    - MEASUrement:CH<x>:REFLevels:ABSolute:RISELow <NR3>
    - MEASUrement:CH<x>:REFLevels:ABSolute:RISELow?
    - MEASUrement:CH<x>:REFLevels:ABSolute:RISEMid <NR3>
    - MEASUrement:CH<x>:REFLevels:ABSolute:RISEMid?
    - MEASUrement:CH<x>:REFLevels:ABSolute:TYPE {SAME|UNIQue}
    - MEASUrement:CH<x>:REFLevels:ABSolute:TYPE?
    - MEASUrement:CH<x>:REFLevels:BASETop {AUTO|MINMax|MEANhistogram|MODEhistogram|EYEhistogram}
    - MEASUrement:CH<x>:REFLevels:BASETop?
    - MEASUrement:CH<x>:REFLevels:METHod {PERCent|ABSolute}
    - MEASUrement:CH<x>:REFLevels:METHod?
    - MEASUrement:CH<x>:REFLevels:PERCent:FALLHigh <NR3>
    - MEASUrement:CH<x>:REFLevels:PERCent:FALLHigh?
    - MEASUrement:CH<x>:REFLevels:PERCent:FALLLow <NR3>
    - MEASUrement:CH<x>:REFLevels:PERCent:FALLLow?
    - MEASUrement:CH<x>:REFLevels:PERCent:FALLMid <NR3>
    - MEASUrement:CH<x>:REFLevels:PERCent:FALLMid?
    - MEASUrement:CH<x>:REFLevels:PERCent:HYSTeresis <NR3>
    - MEASUrement:CH<x>:REFLevels:PERCent:HYSTeresis?
    - MEASUrement:CH<x>:REFLevels:PERCent:RISEHigh <NR3>
    - MEASUrement:CH<x>:REFLevels:PERCent:RISEHigh?
    - MEASUrement:CH<x>:REFLevels:PERCent:RISELow <NR3>
    - MEASUrement:CH<x>:REFLevels:PERCent:RISELow?
    - MEASUrement:CH<x>:REFLevels:PERCent:RISEMid <NR3>
    - MEASUrement:CH<x>:REFLevels:PERCent:RISEMid?
    - MEASUrement:CH<x>:REFLevels:PERCent:TYPE {TENNinety|TWENtyeighty|CUSTom}
    - MEASUrement:CH<x>:REFLevels:PERCent:TYPE?
    - MEASUrement:CLOCKRecovery:ADVanced:METHod {NONE|NOMinal|PATTern}
    - MEASUrement:CLOCKRecovery:ADVanced:METHod?
    - MEASUrement:CLOCKRecovery:CLOCKFrequency <NR3>
    - MEASUrement:CLOCKRecovery:CLOCKFrequency?
    - MEASUrement:CLOCKRecovery:CLOCKMultiplier <NR3>
    - MEASUrement:CLOCKRecovery:CLOCKMultiplier?
    - MEASUrement:CLOCKRecovery:CONSTCLOCKMODe {MEAN|MEDian|FIXed}
    - MEASUrement:CLOCKRecovery:CONSTCLOCKMODe?
    - MEASUrement:CLOCKRecovery:DAMPing <NR3>
    - MEASUrement:CLOCKRecovery:DAMPing?
    - MEASUrement:CLOCKRecovery:DATAPath <QString>
    - MEASUrement:CLOCKRecovery:DATAPath?
    - MEASUrement:CLOCKRecovery:DATARate <NR3>
    - MEASUrement:CLOCKRecovery:DATARate?
    - MEASUrement:CLOCKRecovery:EXPLICITCLOCKMODe {EDGE|PLL}
    - MEASUrement:CLOCKRecovery:EXPLICITCLOCKMODe?
    - MEASUrement:CLOCKRecovery:JTFBandwidth <NR3>
    - MEASUrement:CLOCKRecovery:JTFBandwidth?
    - MEASUrement:CLOCKRecovery:LOOPBandwidth <NR3>
    - MEASUrement:CLOCKRecovery:LOOPBandwidth?
    - MEASUrement:CLOCKRecovery:MEANAUTOCalculate {FIRST|EVERY}
    - MEASUrement:CLOCKRecovery:MEANAUTOCalculate?
    - MEASUrement:CLOCKRecovery:METHod {PLL|CONSTANTCLOCK|EXPLICITCLOCK}
    - MEASUrement:CLOCKRecovery:METHod?
    - MEASUrement:CLOCKRecovery:MODel TYPE<x>
    - MEASUrement:CLOCKRecovery:MODel?
    - MEASUrement:CLOCKRecovery:NOMINALOFFset <NR3>
    - MEASUrement:CLOCKRecovery:NOMINALOFFset:SELECTIONtype {AUTO|MANUAL}
    - MEASUrement:CLOCKRecovery:NOMINALOFFset:SELECTIONtype?
    - MEASUrement:CLOCKRecovery:NOMINALOFFset?
    - MEASUrement:CLOCKRecovery:STAndard {CUSTom|ENET100|FW1394BS400B|FW1394BS800B|FW1394BS1600B|FBD1|FBD2|FBD3|FC133|FC266|FC531|FC1063|FC2125|FC4250|FC8500|ENET1000|IBA2500|IBA_GEN2|OC1|OC3|OC12|OC48|PCIE_GEN1|PCIE_GEN2|PCIE_GEN3|RIO125|RIO250|RIO3125|SAS15_NOSSC|SAS3_NOSSC|SAS6_NOSSC|SAS12_NOSSC|SAS15_SSC|SAS3_SSC|SAS6_SSC|SAS12_SSC|SATA_GEN1|SATA_GEN2|SATA_GEN3|USB3|XAUI|XAUI_GEN2}
    - MEASUrement:CLOCKRecovery:STAndard?
    - MEASUrement:CLOCKRecovery:TDCOMPensation {1|0}
    - MEASUrement:CLOCKRecovery:TDCOMPensation?
    - MEASUrement:DDJMethod {SPECtraldomain|TIMDomain}
    - MEASUrement:DDJMethod?
    - MEASUrement:DELETEALL
    - MEASUrement:DELete <QString>
    - MEASUrement:DIRacmodel {PCIExpress|FIBREchannel}
    - MEASUrement:DIRacmodel?
    - MEASUrement:DISPLAYUnits {SEConds|UNITINtervals}
    - MEASUrement:DISPLAYUnits?
    - MEASUrement:EDGE<x> {RISE|FALL|BOTH}
    - MEASUrement:EDGE<x>?
    - MEASUrement:ENABLEPjitter {ON|OFF|1|0}
    - MEASUrement:ENABLEPjitter?
    - MEASUrement:EYERENDER {ON|OFF|<NR1>}
    - MEASUrement:EYERENDER?
    - MEASUrement:FILTers:BLANKingtime <NR3>
    - MEASUrement:FILTers:BLANKingtime?
    - MEASUrement:FILTers:HIGHPass:FREQ <NR3>
    - MEASUrement:FILTers:HIGHPass:FREQ?
    - MEASUrement:FILTers:HIGHPass:SPEC {NONE|FIRST|SECOND|THIRD}
    - MEASUrement:FILTers:HIGHPass:SPEC?
    - MEASUrement:FILTers:LOWPass:FREQ <NR3>
    - MEASUrement:FILTers:LOWPass:FREQ?
    - MEASUrement:FILTers:LOWPass:SPEC {NONE|FIRST|SECOND|THIRD}
    - MEASUrement:FILTers:LOWPass:SPEC?
    - MEASUrement:FILTers:RAMPtime <NR3>
    - MEASUrement:FILTers:RAMPtime?
    - MEASUrement:GATing {NONE|SCREEN|CURSor|LOGic|SEARch|TIMe}
    - MEASUrement:GATing:ACTive {HIGH|LOW}
    - MEASUrement:GATing:ACTive?
    - MEASUrement:GATing:ENDtime <NR3>
    - MEASUrement:GATing:ENDtime?
    - MEASUrement:GATing:HYSTeresis <NR3>
    - MEASUrement:GATing:HYSTeresis?
    - MEASUrement:GATing:LOGICSource {CH<x>|MATH<x>|REF<x>}
    - MEASUrement:GATing:LOGICSource?
    - MEASUrement:GATing:MIDRef <NR3>
    - MEASUrement:GATing:MIDRef?
    - MEASUrement:GATing:SEARCHSource SEARCH<x>
    - MEASUrement:GATing:SEARCHSource?
    - MEASUrement:GATing:STARTtime <NR3>
    - MEASUrement:GATing:STARTtime?
    - MEASUrement:GATing?
    - MEASUrement:HIGHLEVel:CONFIGuration {INPUT|OUTPUT}
    - MEASUrement:HIGHLEVel:CONFIGuration?
    - MEASUrement:HIGHLEVel:EDGEQUALifier {CH<x>|MATH<x>|REF<x>}
    - MEASUrement:HIGHLEVel:EDGEQUALifier?
    - MEASUrement:HIGHLEVel:INLOWPass:FREQ <NR3>
    - MEASUrement:HIGHLEVel:INLOWPass:FREQ?
    - MEASUrement:HIGHLEVel:INLOWPass:SPEC {NONE|FIRST|SECOND|THIRD}
    - MEASUrement:HIGHLEVel:INLOWPass:SPEC?
    - MEASUrement:HIGHLEVel:L2LTOL2N {0|1}
    - MEASUrement:HIGHLEVel:L2LTOL2N?
    - MEASUrement:HIGHLEVel:LINESelected {ABCB|ACBC|BACA|AN|BN|CN}
    - MEASUrement:HIGHLEVel:LINESelected?
    - MEASUrement:HIGHLEVel:OUTEDGEQUALifier {CH<x>|MATH<x>|REF<x>}
    - MEASUrement:HIGHLEVel:OUTEDGEQUALifier?
    - MEASUrement:HIGHLEVel:OUTL2LTOL2N {0|1}
    - MEASUrement:HIGHLEVel:OUTL2LTOL2N?
    - MEASUrement:HIGHLEVel:OUTLINESelected {XYZY|XZYZ|YXZX|XN|YN|ZN}
    - MEASUrement:HIGHLEVel:OUTLINESelected?
    - MEASUrement:HIGHLEVel:OUTLOWPass:FREQ <NR3>
    - MEASUrement:HIGHLEVel:OUTLOWPass:FREQ?
    - MEASUrement:HIGHLEVel:OUTLOWPass:SPEC {NONE|FIRST|SECOND|THIRD}
    - MEASUrement:HIGHLEVel:OUTLOWPass:SPEC?
    - MEASUrement:HIGHLEVel:OUTSOURCE {CH<x>|MATH<x>|REF<x>}
    - MEASUrement:HIGHLEVel:OUTSOURCE?
    - MEASUrement:HIGHLEVel:OUTWIRing {P1W2V1I1|P3W3V2I2|P3W3V3I3|P3W3|DCP1W2}
    - MEASUrement:HIGHLEVel:OUTWIRing?
    - MEASUrement:HIGHLEVel:SOURCE {CH<x>|MATH<x>|REF<x>}
    - MEASUrement:HIGHLEVel:SOURCE?
    - MEASUrement:HIGHLEVel:WIRing {P1W2V1I1|P1W3V2I2|P3W3V2I2|P3W3V3I3|P3W3|DCP1W2}
    - MEASUrement:HIGHLEVel:WIRing?
    - MEASUrement:INTERp {AUTO|SINX|LINear}
    - MEASUrement:INTERp?
    - MEASUrement:JITTermodel {SPECTRAL|SPECTRALBUJ}
    - MEASUrement:JITTermodel?
    - MEASUrement:LIST?
    - MEASUrement:LOCKRJ {ON|OFF|1|0}
    - MEASUrement:LOCKRJ?
    - MEASUrement:LOCKRJValue <NR3>
    - MEASUrement:LOCKRJValue?
    - MEASUrement:MATH<x>:REFLevels:ABSolute:FALLHigh <NR3>
    - MEASUrement:MATH<x>:REFLevels:ABSolute:FALLHigh?
    - MEASUrement:MATH<x>:REFLevels:ABSolute:FALLLow <NR3>
    - MEASUrement:MATH<x>:REFLevels:ABSolute:FALLLow?
    - MEASUrement:MATH<x>:REFLevels:ABSolute:FALLMid <NR3>
    - MEASUrement:MATH<x>:REFLevels:ABSolute:FALLMid?
    - MEASUrement:MATH<x>:REFLevels:ABSolute:HYSTeresis <NR3>
    - MEASUrement:MATH<x>:REFLevels:ABSolute:HYSTeresis?
    - MEASUrement:MATH<x>:REFLevels:ABSolute:RISEHigh <NR3>
    - MEASUrement:MATH<x>:REFLevels:ABSolute:RISEHigh?
    - MEASUrement:MATH<x>:REFLevels:ABSolute:RISELow <NR3>
    - MEASUrement:MATH<x>:REFLevels:ABSolute:RISELow?
    - MEASUrement:MATH<x>:REFLevels:ABSolute:RISEMid <NR3>
    - MEASUrement:MATH<x>:REFLevels:ABSolute:RISEMid?
    - MEASUrement:MATH<x>:REFLevels:ABSolute:TYPE {SAME|UNIQue}
    - MEASUrement:MATH<x>:REFLevels:ABSolute:TYPE?
    - MEASUrement:MATH<x>:REFLevels:BASETop {AUTO|MINMax|MEANhistogram|MODEhistogram|EYEhistogram}
    - MEASUrement:MATH<x>:REFLevels:BASETop?
    - MEASUrement:MATH<x>:REFLevels:METHod {PERCent|ABSolute}
    - MEASUrement:MATH<x>:REFLevels:METHod?
    - MEASUrement:MATH<x>:REFLevels:PERCent:FALLHigh <NR3>
    - MEASUrement:MATH<x>:REFLevels:PERCent:FALLHigh?
    - MEASUrement:MATH<x>:REFLevels:PERCent:FALLLow <NR3>
    - MEASUrement:MATH<x>:REFLevels:PERCent:FALLLow?
    - MEASUrement:MATH<x>:REFLevels:PERCent:FALLMid <NR3>
    - MEASUrement:MATH<x>:REFLevels:PERCent:FALLMid?
    - MEASUrement:MATH<x>:REFLevels:PERCent:HYSTeresis <NR3>
    - MEASUrement:MATH<x>:REFLevels:PERCent:HYSTeresis?
    - MEASUrement:MATH<x>:REFLevels:PERCent:RISEHigh <NR3>
    - MEASUrement:MATH<x>:REFLevels:PERCent:RISEHigh?
    - MEASUrement:MATH<x>:REFLevels:PERCent:RISELow <NR3>
    - MEASUrement:MATH<x>:REFLevels:PERCent:RISELow?
    - MEASUrement:MATH<x>:REFLevels:PERCent:RISEMid <NR3>
    - MEASUrement:MATH<x>:REFLevels:PERCent:RISEMid?
    - MEASUrement:MATH<x>:REFLevels:PERCent:TYPE {TENNinety|TWENtyeighty|CUSTom}
    - MEASUrement:MATH<x>:REFLevels:PERCent:TYPE?
    - MEASUrement:MEAS<x>:ABANdwidth <NR3>
    - MEASUrement:MEAS<x>:ABANdwidth?
    - MEASUrement:MEAS<x>:ACHANnels <NR3>
    - MEASUrement:MEAS<x>:ACHANnels?
    - MEASUrement:MEAS<x>:AMEThod {PARAmetric|HISTogram}
    - MEASUrement:MEAS<x>:AMEThod?
    - MEASUrement:MEAS<x>:BCOunt <NR3>
    - MEASUrement:MEAS<x>:BCOunt?
    - MEASUrement:MEAS<x>:BDELay <NR3>
    - MEASUrement:MEAS<x>:BDELay?
    - MEASUrement:MEAS<x>:BER <NR3>
    - MEASUrement:MEAS<x>:BER:TARGETBER <NR3>
    - MEASUrement:MEAS<x>:BER:TARGETBER?
    - MEASUrement:MEAS<x>:BER?
    - MEASUrement:MEAS<x>:BIN <NR3>
    - MEASUrement:MEAS<x>:BIN?
    - MEASUrement:MEAS<x>:BITAbsolute <NR3>
    - MEASUrement:MEAS<x>:BITAbsolute?
    - MEASUrement:MEAS<x>:BITCfgmode {MEAN|MODE}
    - MEASUrement:MEAS<x>:BITCfgmode?
    - MEASUrement:MEAS<x>:BITEnd <NR3>
    - MEASUrement:MEAS<x>:BITEnd?
    - MEASUrement:MEAS<x>:BITPcnt <NR3>
    - MEASUrement:MEAS<x>:BITPcnt?
    - MEASUrement:MEAS<x>:BITSTart <NR3>
    - MEASUrement:MEAS<x>:BITSTart?
    - MEASUrement:MEAS<x>:BITType {ALLBits|TRANSition|NONTRANsition}
    - MEASUrement:MEAS<x>:BITType?
    - MEASUrement:MEAS<x>:BMTYPe {TIE|PERIOD|NUInterval}
    - MEASUrement:MEAS<x>:BMTYPe?
    - MEASUrement:MEAS<x>:BURSTEDGTYPe {RISE|FALL}
    - MEASUrement:MEAS<x>:BURSTEDGTYPe?
    - MEASUrement:MEAS<x>:BVOLTage <NR3>
    - MEASUrement:MEAS<x>:BVOLTage?
    - MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MAXimum?
    - MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MEAN?
    - MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MINimum?
    - MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:PK2PK?
    - MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:POPUlation?
    - MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:STDDev?
    - MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MAXimum?
    - MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MEAN?
    - MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MINimum?
    - MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:PK2PK?
    - MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:POPUlation?
    - MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:STDDev?
    - MEASUrement:MEAS<x>:CF<x>Val <NR3>
    - MEASUrement:MEAS<x>:CF<x>Val?
    - MEASUrement:MEAS<x>:CLOCKRecovery:ADVanced:METHod {NONE|NOMinal|PATTern}
    - MEASUrement:MEAS<x>:CLOCKRecovery:ADVanced:METHod?
    - MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKFrequency <NR3>
    - MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKFrequency?
    - MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKMultiplier <NR3>
    - MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKMultiplier?
    - MEASUrement:MEAS<x>:CLOCKRecovery:CONSTCLOCKMODe {MEAN|MEDian|FIXed}
    - MEASUrement:MEAS<x>:CLOCKRecovery:DAMPing <NR3>
    - MEASUrement:MEAS<x>:CLOCKRecovery:DAMPing?
    - MEASUrement:MEAS<x>:CLOCKRecovery:DATAPath <QString>
    - MEASUrement:MEAS<x>:CLOCKRecovery:DATAPath?
    - MEASUrement:MEAS<x>:CLOCKRecovery:DATARate <NR3>
    - MEASUrement:MEAS<x>:CLOCKRecovery:DATARate?
    - MEASUrement:MEAS<x>:CLOCKRecovery:EXPLICITCLOCKMODe {EDGE|PLL}
    - MEASUrement:MEAS<x>:CLOCKRecovery:EXPLICITCLOCKMODe?
    - MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal {ON|OFF|1|0}
    - MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal?
    - MEASUrement:MEAS<x>:CLOCKRecovery:JTFBandwidth <NR3>
    - MEASUrement:MEAS<x>:CLOCKRecovery:JTFBandwidth?
    - MEASUrement:MEAS<x>:CLOCKRecovery:LOOPBandwidth <NR3>
    - MEASUrement:MEAS<x>:CLOCKRecovery:LOOPBandwidth?
    - MEASUrement:MEAS<x>:CLOCKRecovery:MEANAUTOCalculate {FIRST|EVERY}
    - MEASUrement:MEAS<x>:CLOCKRecovery:MEANAUTOCalculate?
    - MEASUrement:MEAS<x>:CLOCKRecovery:METHod {PLL|CONSTANTCLOCK|EXPLICITCLOCK}
    - MEASUrement:MEAS<x>:CLOCKRecovery:METHod?
    - MEASUrement:MEAS<x>:CLOCKRecovery:MODel TYPE<x>
    - MEASUrement:MEAS<x>:CLOCKRecovery:MODel?
    - MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset <NR3>
    - MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset:SELECTIONtype {AUTO|MANUAL}
    - MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset:SELECTIONtype?
    - MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset?
    - MEASUrement:MEAS<x>:CLOCKRecovery:STAndard {CUSTom|ENET100|FW1394BS400B|FW1394BS800B|FW1394BS1600B|FBD1|FBD2|FBD3|FC133|FC266|FC531|FC1063|FC2125|FC4250|FC8500|ENET1000|IBA2500|IBA_GEN2|OC1|OC3|OC12|OC48|PCIE_GEN1|PCIE_GEN2|PCIE_GEN3|RIO125|RIO250|RIO3125|SAS15_NOSSC|SAS3_NOSSC|SAS6_NOSSC|SAS12_NOSSC|SAS15_SSC|SAS3_SSC|SAS6_SSC|SAS12_SSC|SATA_GEN1|SATA_GEN2|SATA_GEN3|USB3|XAUI|XAUI_GEN2}
    - MEASUrement:MEAS<x>:CLOCKRecovery:TDCOMPensation {0|1}
    - MEASUrement:MEAS<x>:CLOCKRecovery:TDCOMPensation?
    - MEASUrement:MEAS<x>:COMMONMode:FILTers:STATE {ON|OFF|1|0}
    - MEASUrement:MEAS<x>:COMMONMode:FILTers:STATE?
    - MEASUrement:MEAS<x>:COMMONMode:SOURCEs {SINGLE|DOUBLE}
    - MEASUrement:MEAS<x>:COMMONMode:SOURCEs?
    - MEASUrement:MEAS<x>:COVer {FFREQuency|AFREQuencies}
    - MEASUrement:MEAS<x>:COVer?
    - MEASUrement:MEAS<x>:CPWIDTh <NR3>
    - MEASUrement:MEAS<x>:CPWIDTh?
    - MEASUrement:MEAS<x>:CSPACing <NR3>
    - MEASUrement:MEAS<x>:CSPACing?
    - MEASUrement:MEAS<x>:CUSTOMLIMITSFile <QString>
    - MEASUrement:MEAS<x>:CUSTOMLIMITSFile?
    - MEASUrement:MEAS<x>:CYCLemode {RECORD|CYCLE|ROTATION}
    - MEASUrement:MEAS<x>:CYCLemode?
    - MEASUrement:MEAS<x>:DBDown <NR3>
    - MEASUrement:MEAS<x>:DBDown?
    - MEASUrement:MEAS<x>:DELay:EDGE<x> {FALL|RISe|BOTH|SAMEas|OPPositeas}
    - MEASUrement:MEAS<x>:DELay:EDGE<x>?
    - MEASUrement:MEAS<x>:DISPlaystat:ENABle {ON|OFF|<NR1>}
    - MEASUrement:MEAS<x>:DISPlaystat:ENABle?
    - MEASUrement:MEAS<x>:DMEThod {AUTO|MANual}
    - MEASUrement:MEAS<x>:DMEThod?
    - MEASUrement:MEAS<x>:DVDS {OFF|ON}
    - MEASUrement:MEAS<x>:DVDS?
    - MEASUrement:MEAS<x>:EDGE<x> {RISE|FALL|BOTH}
    - MEASUrement:MEAS<x>:EDGE<x>?
    - MEASUrement:MEAS<x>:EDGEIncre <NR3>
    - MEASUrement:MEAS<x>:EDGEIncre?
    - MEASUrement:MEAS<x>:EDGEQUALONE <QString>
    - MEASUrement:MEAS<x>:EDGEQUALONE?
    - MEASUrement:MEAS<x>:EDGEQUALTWO <QString>
    - MEASUrement:MEAS<x>:EDGEQUALTWO?
    - MEASUrement:MEAS<x>:EDGEQUALifier {CH<x>|MATH<x>|REF<x>}
    - MEASUrement:MEAS<x>:EDGEQUALifier?
    - MEASUrement:MEAS<x>:EDGES:FROMLevel {MID|LOW|HIGH}
    - MEASUrement:MEAS<x>:EDGES:FROMLevel?
    - MEASUrement:MEAS<x>:EDGES:LEVel {HIGH|LOW|BOTH}
    - MEASUrement:MEAS<x>:EDGES:LEVel?
    - MEASUrement:MEAS<x>:EDGES:LOWERFREQuency <NR3>
    - MEASUrement:MEAS<x>:EDGES:LOWERFREQuency?
    - MEASUrement:MEAS<x>:EDGES:N <NR3>
    - MEASUrement:MEAS<x>:EDGES:N?
    - MEASUrement:MEAS<x>:EDGES:SLEWRATEMethod {NOMinal|DDR}
    - MEASUrement:MEAS<x>:EDGES:SLEWRATEMethod?
    - MEASUrement:MEAS<x>:EDGES:TOLevel {HIGH|MID|LOW}
    - MEASUrement:MEAS<x>:EDGES:TOLevel?
    - MEASUrement:MEAS<x>:EDGES:UPPERFREQuency <NR3>
    - MEASUrement:MEAS<x>:EDGES:UPPERFREQuency?
    - MEASUrement:MEAS<x>:EEQUal {ON|OFF}
    - MEASUrement:MEAS<x>:EEQUal?
    - MEASUrement:MEAS<x>:EINDuctance <NR3>
    - MEASUrement:MEAS<x>:EINDuctance?
    - MEASUrement:MEAS<x>:EINTerpolation {ON|OFF}
    - MEASUrement:MEAS<x>:EINTerpolation?
    - MEASUrement:MEAS<x>:EXTENDuis <NR1>
    - MEASUrement:MEAS<x>:EXTENDuis?
    - MEASUrement:MEAS<x>:EYERender {FAst|COMPlete}
    - MEASUrement:MEAS<x>:EYERender?
    - MEASUrement:MEAS<x>:FAILCount?
    - MEASUrement:MEAS<x>:FCOunt <NR3>
    - MEASUrement:MEAS<x>:FCOunt?
    - MEASUrement:MEAS<x>:FILTERRANGEFROM <NR3>
    - MEASUrement:MEAS<x>:FILTERRANGEFROM?
    - MEASUrement:MEAS<x>:FILTERRANGETO <NR3>
    - MEASUrement:MEAS<x>:FILTERRANGETO?
    - MEASUrement:MEAS<x>:FILTers:BLANKingtime <NR3>
    - MEASUrement:MEAS<x>:FILTers:BLANKingtime?
    - MEASUrement:MEAS<x>:FILTers:GLOBal {ON|OFF|1|0}
    - MEASUrement:MEAS<x>:FILTers:GLOBal?
    - MEASUrement:MEAS<x>:FILTers:HIGHPass:FREQ <NR3>
    - MEASUrement:MEAS<x>:FILTers:HIGHPass:FREQ?
    - MEASUrement:MEAS<x>:FILTers:HIGHPass:SPEC {NONE|FIRST|SECOND|THIRD}
    - MEASUrement:MEAS<x>:FILTers:HIGHPass:SPEC?
    - MEASUrement:MEAS<x>:FILTers:LOWPass:FREQ <NR3>
    - MEASUrement:MEAS<x>:FILTers:LOWPass:FREQ?
    - MEASUrement:MEAS<x>:FILTers:LOWPass:SPEC {NONE|FIRST|SECOND|THIRD}
    - MEASUrement:MEAS<x>:FILTers:LOWPass:SPEC?
    - MEASUrement:MEAS<x>:FILTers:RAMPtime <NR3>
    - MEASUrement:MEAS<x>:FILTers:RAMPtime?
    - MEASUrement:MEAS<x>:FORDer <NR3>
    - MEASUrement:MEAS<x>:FORDer?
    - MEASUrement:MEAS<x>:FPARAmeter <NR3>
    - MEASUrement:MEAS<x>:FPARAmeter?
    - MEASUrement:MEAS<x>:FREQ <NR3>
    - MEASUrement:MEAS<x>:FREQ?
    - MEASUrement:MEAS<x>:FROMEDGESEARCHDIRect {FORWard|BACKWard}
    - MEASUrement:MEAS<x>:FROMEDGESEARCHDIRect?
    - MEASUrement:MEAS<x>:FROMSymbol:LOGIC2SOUrce {H|L|X}
    - MEASUrement:MEAS<x>:FROMSymbol:LOGIC2SOUrce?
    - MEASUrement:MEAS<x>:FROMSymbol:LOGIC3SOUrce {H|L|X}
    - MEASUrement:MEAS<x>:FROMSymbol:LOGIC3SOUrce?
    - MEASUrement:MEAS<x>:FROMSymbol:LOGIC4SOUrce {H|L|X}
    - MEASUrement:MEAS<x>:FROMSymbol:LOGIC4SOUrce?
    - MEASUrement:MEAS<x>:FROMSymbol:LOGIC5SOUrce {H|L|X}
    - MEASUrement:MEAS<x>:FROMSymbol:LOGIC5SOUrce?
    - MEASUrement:MEAS<x>:FROMSymbol:MEASUREAT {Start|Stop|ClockEdge}
    - MEASUrement:MEAS<x>:FROMSymbol:MEASUREAT?
    - MEASUrement:MEAS<x>:FROMedge {RISe|FALL|BOTH}
    - MEASUrement:MEAS<x>:FROMedge?
    - MEASUrement:MEAS<x>:FTYPe {True|False}
    - MEASUrement:MEAS<x>:FTYPe?
    - MEASUrement:MEAS<x>:FUNDCURRent <NR3>
    - MEASUrement:MEAS<x>:FUNDCURRent?
    - MEASUrement:MEAS<x>:GATing {NONE|SCREEN|CURSor|LOGic|SEARch|TIMe}
    - MEASUrement:MEAS<x>:GATing:ACTive {HIGH|LOW}
    - MEASUrement:MEAS<x>:GATing:ACTive?
    - MEASUrement:MEAS<x>:GATing:ENDtime <NR3>
    - MEASUrement:MEAS<x>:GATing:ENDtime?
    - MEASUrement:MEAS<x>:GATing:GLOBal {ON|OFF|1|0}
    - MEASUrement:MEAS<x>:GATing:GLOBal?
    - MEASUrement:MEAS<x>:GATing:HYSTeresis <NR3>
    - MEASUrement:MEAS<x>:GATing:HYSTeresis?
    - MEASUrement:MEAS<x>:GATing:LOGICSource {CH<x>|MATH<x>|REF<x>}
    - MEASUrement:MEAS<x>:GATing:MIDRef <NR3>
    - MEASUrement:MEAS<x>:GATing:MIDRef?
    - MEASUrement:MEAS<x>:GATing:SEARCHSource SEARCH1
    - MEASUrement:MEAS<x>:GATing:SEARCHSource?
    - MEASUrement:MEAS<x>:GATing:STARTtime <NR3>
    - MEASUrement:MEAS<x>:GATing:STARTtime?
    - MEASUrement:MEAS<x>:GATing?
    - MEASUrement:MEAS<x>:GLOBalref {ON|OFF|1|0}
    - MEASUrement:MEAS<x>:GLOBalref?
    - MEASUrement:MEAS<x>:HARMONICSCLass {CLASSA|CLASSB|CLASSC|CLASSD}
    - MEASUrement:MEAS<x>:HARMONICSCLass?
    - MEASUrement:MEAS<x>:HARMONICSSOURce {CURRENT|VOLTAGE}
    - MEASUrement:MEAS<x>:HARMONICSSOURce?
    - MEASUrement:MEAS<x>:HARMONICSStd {NONE|IEC|IEEE519|CUSTOM|REVIEEE5192022}
    - MEASUrement:MEAS<x>:HARMONICSStd?
    - MEASUrement:MEAS<x>:HARMONICSUNits {LOGARITHM|LINEAR}
    - MEASUrement:MEAS<x>:HARMONICSUNits?
    - MEASUrement:MEAS<x>:HIGHLEVel:CONFIGuration {INPUT|OUTPUT}
    - MEASUrement:MEAS<x>:HIGHLEVel:CONFIGuration?
    - MEASUrement:MEAS<x>:HIGHLEVel:L2LTOL2N {0|1}
    - MEASUrement:MEAS<x>:HIGHLEVel:L2LTOL2N?
    - MEASUrement:MEAS<x>:HIGHLEVel:LINESelected {ABCB|ACBC|BACA|AN|BN|CN}
    - MEASUrement:MEAS<x>:HIGHLEVel:LINESelected?
    - MEASUrement:MEAS<x>:HIGHLEVel:OUTL2LTOL2N {0|1}
    - MEASUrement:MEAS<x>:HIGHLEVel:OUTL2LTOL2N?
    - MEASUrement:MEAS<x>:HIGHLEVel:OUTLINESelected {XYZY|XZYZ|YXZX|XN|YN|ZN}
    - MEASUrement:MEAS<x>:HIGHLEVel:OUTLINESelected?
    - MEASUrement:MEAS<x>:HIGHLEVel:OUTWIRing {P1W2V1I1|P1W3V2I2|P3W3V3I3|P3W4|DCP1W2}
    - MEASUrement:MEAS<x>:HIGHLEVel:OUTWIRing?
    - MEASUrement:MEAS<x>:HIGHLEVel:USEGLOBAL {ON|OFF|1|0}
    - MEASUrement:MEAS<x>:HIGHLEVel:USEGLOBAL?
    - MEASUrement:MEAS<x>:HIGHLEVel:WIRing {P1W2V1I1|P1W3V2I2|P3W3V2I2|P3W3V3I3|P3W3|DCP1W2}
    - MEASUrement:MEAS<x>:HIGHLEVel:WIRing?
    - MEASUrement:MEAS<x>:HIGHREFVoltage <NR3>
    - MEASUrement:MEAS<x>:HIGHREFVoltage?
    - MEASUrement:MEAS<x>:HLEVel:OUTPut:UGLobal {ON|OFF}
    - MEASUrement:MEAS<x>:HLEVel:OUTPut:UGLobal?
    - MEASUrement:MEAS<x>:HTORque <NR1>
    - MEASUrement:MEAS<x>:HTORque?
    - MEASUrement:MEAS<x>:HVOLtage <NR1>
    - MEASUrement:MEAS<x>:HVOLtage?
    - MEASUrement:MEAS<x>:IDLETime <NR3>
    - MEASUrement:MEAS<x>:IDLETime?
    - MEASUrement:MEAS<x>:INPUTLEVel <NR2>
    - MEASUrement:MEAS<x>:INPUTLEVel?
    - MEASUrement:MEAS<x>:INPUTPOwer <NR3>
    - MEASUrement:MEAS<x>:INPUTPOwer?
    - MEASUrement:MEAS<x>:JITTERSummary:DCD {0|1}
    - MEASUrement:MEAS<x>:JITTERSummary:DCD?
    - MEASUrement:MEAS<x>:JITTERSummary:DDJ {0|1}
    - MEASUrement:MEAS<x>:JITTERSummary:DDJ?
    - MEASUrement:MEAS<x>:JITTERSummary:DJ {0|1}
    - MEASUrement:MEAS<x>:JITTERSummary:DJ?
    - MEASUrement:MEAS<x>:JITTERSummary:DJDD {0|1}
    - MEASUrement:MEAS<x>:JITTERSummary:DJDD?
    - MEASUrement:MEAS<x>:JITTERSummary:DR {0|1}
    - MEASUrement:MEAS<x>:JITTERSummary:DR?
    - MEASUrement:MEAS<x>:JITTERSummary:EYEWIDTHBER {0|1}
    - MEASUrement:MEAS<x>:JITTERSummary:EYEWIDTHBER?
    - MEASUrement:MEAS<x>:JITTERSummary:ISI {0|1}
    - MEASUrement:MEAS<x>:JITTERSummary:ISI?
    - MEASUrement:MEAS<x>:JITTERSummary:NPJ {0|1}
    - MEASUrement:MEAS<x>:JITTERSummary:NPJ?
    - MEASUrement:MEAS<x>:JITTERSummary:PJ {0|1}
    - MEASUrement:MEAS<x>:JITTERSummary:PJ?
    - MEASUrement:MEAS<x>:JITTERSummary:PL {0|1}
    - MEASUrement:MEAS<x>:JITTERSummary:PL?
    - MEASUrement:MEAS<x>:JITTERSummary:RJ {0|1}
    - MEASUrement:MEAS<x>:JITTERSummary:RJ?
    - MEASUrement:MEAS<x>:JITTERSummary:RJDD {0|1}
    - MEASUrement:MEAS<x>:JITTERSummary:RJDD?
    - MEASUrement:MEAS<x>:JITTERSummary:TIE {0|1}
    - MEASUrement:MEAS<x>:JITTERSummary:TIE?
    - MEASUrement:MEAS<x>:JITTERSummary:TJBER {0|1}
    - MEASUrement:MEAS<x>:JITTERSummary:TJBER?
    - MEASUrement:MEAS<x>:LABel <QString>
    - MEASUrement:MEAS<x>:LABel?
    - MEASUrement:MEAS<x>:LINESelected {ABCB|ACBC|BACA|XYZY|XZYZ|YXZX}
    - MEASUrement:MEAS<x>:LINESelected?
    - MEASUrement:MEAS<x>:LOWREFVoltage <NR3>
    - MEASUrement:MEAS<x>:LOWREFVoltage?
    - MEASUrement:MEAS<x>:LTORque <NR1>
    - MEASUrement:MEAS<x>:LTORque?
    - MEASUrement:MEAS<x>:LTYPe {AUTO|CUSTom}
    - MEASUrement:MEAS<x>:LTYPe?
    - MEASUrement:MEAS<x>:LUNITs {PERCent|ABSolute}
    - MEASUrement:MEAS<x>:LUNITs?
    - MEASUrement:MEAS<x>:LVOLtage <NR1>
    - MEASUrement:MEAS<x>:LVOLtage?
    - MEASUrement:MEAS<x>:MATime <NR3>
    - MEASUrement:MEAS<x>:MATime?
    - MEASUrement:MEAS<x>:MAXCUrrent <NR3>
    - MEASUrement:MEAS<x>:MAXCUrrent?
    - MEASUrement:MEAS<x>:MAXCycle <NR1>
    - MEASUrement:MEAS<x>:MAXCycle?
    - MEASUrement:MEAS<x>:MAXG1Voltage <NR3>
    - MEASUrement:MEAS<x>:MAXG1Voltage?
    - MEASUrement:MEAS<x>:MAXG2Voltage <NR3>
    - MEASUrement:MEAS<x>:MAXG2Voltage?
    - MEASUrement:MEAS<x>:MAXGVoltage <NR3>
    - MEASUrement:MEAS<x>:MAXGVoltage?
    - MEASUrement:MEAS<x>:MAXVoltage <NR2>
    - MEASUrement:MEAS<x>:MAXVoltage?
    - MEASUrement:MEAS<x>:MEASRange:GLOBal {ON|OFF|1|0}
    - MEASUrement:MEAS<x>:MEASRange:GLOBal?
    - MEASUrement:MEAS<x>:MEASRange:MAX <NR3>
    - MEASUrement:MEAS<x>:MEASRange:MAX?
    - MEASUrement:MEAS<x>:MEASRange:MIN <NR3>
    - MEASUrement:MEAS<x>:MEASRange:MIN?
    - MEASUrement:MEAS<x>:MEASRange:STATE {ON|OFF|1|0}
    - MEASUrement:MEAS<x>:MEASRange:STATE?
    - MEASUrement:MEAS<x>:MECH:EINDexz {ON|OFF|1|0}
    - MEASUrement:MEAS<x>:MECH:EINDexz?
    - MEASUrement:MEAS<x>:MECH:GRATio <NR3>
    - MEASUrement:MEAS<x>:MECH:GRATio?
    - MEASUrement:MEAS<x>:MECH:MUNits {NM|OZINCH|FTLB|INCHLB|DEGREES|RADIANS}
    - MEASUrement:MEAS<x>:MECH:MUNits?
    - MEASUrement:MEAS<x>:MECH:PPAirs <NR1>
    - MEASUrement:MEAS<x>:MECH:PPAirs?
    - MEASUrement:MEAS<x>:MECH:PPRotation <NR1>
    - MEASUrement:MEAS<x>:MECH:PPRotation?
    - MEASUrement:MEAS<x>:MECH:STYPe {HSENSOR|QEI|RESOLVER}
    - MEASUrement:MEAS<x>:MECH:STYPe?
    - MEASUrement:MEAS<x>:MINCycle <NR1>
    - MEASUrement:MEAS<x>:MINCycle?
    - MEASUrement:MEAS<x>:NVALUe <N>
    - MEASUrement:MEAS<x>:NVALUe?
    - MEASUrement:MEAS<x>:OBWMethod {percOfPwr|dBDown}
    - MEASUrement:MEAS<x>:OBWMethod?
    - MEASUrement:MEAS<x>:ODDEVen {ALL|EVEN|ODD}
    - MEASUrement:MEAS<x>:ODDEVen?
    - MEASUrement:MEAS<x>:OFILters:LOWPass:FREQ <NR3>
    - MEASUrement:MEAS<x>:OFILters:LOWPass:FREQ?
    - MEASUrement:MEAS<x>:OFILters:LOWPass:SPEC {NONE|FIRST|SECOND|THIRD}
    - MEASUrement:MEAS<x>:OFILters:LOWPass:SPEC?
    - MEASUrement:MEAS<x>:OSANgle <NR1>
    - MEASUrement:MEAS<x>:OSANgle?
    - MEASUrement:MEAS<x>:OUTEDGEQUALifier {CH<x>|MATH<x>|REF<x>}
    - MEASUrement:MEAS<x>:OUTEDGEQUALifier?
    - MEASUrement:MEAS<x>:OUTFILTers:LOWPass:FREQ <NR2>
    - MEASUrement:MEAS<x>:OUTFILTers:LOWPass:FREQ?
    - MEASUrement:MEAS<x>:OUTFILTers:LOWPass:SPEC {NONE|FIRST|SECOND|THIRD}
    - MEASUrement:MEAS<x>:OUTFILTers:LOWPass:SPEC?
    - MEASUrement:MEAS<x>:OUTPUT<x>VOLTage <NR2>
    - MEASUrement:MEAS<x>:OUTPUT<x>VOLTage?
    - MEASUrement:MEAS<x>:PASSFAILENabled <NR1>
    - MEASUrement:MEAS<x>:PASSFAILENabled?
    - MEASUrement:MEAS<x>:PASSFAILHIGHlimit <NR2>
    - MEASUrement:MEAS<x>:PASSFAILHIGHlimit?
    - MEASUrement:MEAS<x>:PASSFAILLIMit <NR2>
    - MEASUrement:MEAS<x>:PASSFAILLIMit?
    - MEASUrement:MEAS<x>:PASSFAILLOWlimit <NR2>
    - MEASUrement:MEAS<x>:PASSFAILLOWlimit?
    - MEASUrement:MEAS<x>:PASSFAILMARgin <NR2>
    - MEASUrement:MEAS<x>:PASSFAILMARgin?
    - MEASUrement:MEAS<x>:PASSFAILWHEN {LESSthan|GREATERthan|Equals|NOTEQuals|INSIDErange|OUTSIDErange}
    - MEASUrement:MEAS<x>:PASSFAILWHEN?
    - MEASUrement:MEAS<x>:PATTERNDETECTION {AUTO|MANUAL}
    - MEASUrement:MEAS<x>:PATTERNDETECTION?
    - MEASUrement:MEAS<x>:PATTERNLENgth <NR3>
    - MEASUrement:MEAS<x>:PATTERNLENgth?
    - MEASUrement:MEAS<x>:PATTERNTYPe {REPeating|ARBitrary}
    - MEASUrement:MEAS<x>:PATTERNTYPe?
    - MEASUrement:MEAS<x>:PCOUNt <NR3>
    - MEASUrement:MEAS<x>:PCOUNt?
    - MEASUrement:MEAS<x>:PERFREQ:EDGE {FIRST|RISE|FALL}
    - MEASUrement:MEAS<x>:PERFREQ:EDGE?
    - MEASUrement:MEAS<x>:PFREquency <NR3>
    - MEASUrement:MEAS<x>:PFREquency?
    - MEASUrement:MEAS<x>:POLarity {NORMal|INVerted}
    - MEASUrement:MEAS<x>:POLarity?
    - MEASUrement:MEAS<x>:POPUlation:GLOBal {ON|OFF|1|0}
    - MEASUrement:MEAS<x>:POPUlation:GLOBal?
    - MEASUrement:MEAS<x>:POPUlation:LIMIT:STATE {ON|OFF|1|0}
    - MEASUrement:MEAS<x>:POPUlation:LIMIT:STATE?
    - MEASUrement:MEAS<x>:POPUlation:LIMIT:VALue <NR3>
    - MEASUrement:MEAS<x>:POPUlation:LIMIT:VALue?
    - MEASUrement:MEAS<x>:POPower <NR3>
    - MEASUrement:MEAS<x>:POPower?
    - MEASUrement:MEAS<x>:POWERFACtor <NR2>
    - MEASUrement:MEAS<x>:POWERFACtor?
    - MEASUrement:MEAS<x>:PREGion {FPULse|SPULse|MPULse}
    - MEASUrement:MEAS<x>:PREGion?
    - MEASUrement:MEAS<x>:PRESistance <NR3>
    - MEASUrement:MEAS<x>:PRESistance?
    - MEASUrement:MEAS<x>:PTHReshold <NR3>
    - MEASUrement:MEAS<x>:PTHReshold?
    - MEASUrement:MEAS<x>:PWIDth <NR3>
    - MEASUrement:MEAS<x>:PWIDth?
    - MEASUrement:MEAS<x>:REDGe {ON|OFF}
    - MEASUrement:MEAS<x>:REDGe?
    - MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLLow <NR3>
    - MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLLow?
    - MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLMid <NR3>
    - MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLMid?
    - MEASUrement:MEAS<x>:REFLevels1:ABSolute:HYSTeresis <NR3>
    - MEASUrement:MEAS<x>:REFLevels1:ABSolute:HYSTeresis?
    - MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEHigh <NR3>
    - MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEHigh?
    - MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISELow <NR3>
    - MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISELow?
    - MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEMid <NR3>
    - MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEMid?
    - MEASUrement:MEAS<x>:REFLevels1:ABSolute:TYPE {SAME|UNIQue}
    - MEASUrement:MEAS<x>:REFLevels1:ABSolute:TYPE?
    - MEASUrement:MEAS<x>:REFLevels1:BASETop {AUTO|MINMax|MEANhistogram|MODEhistogram|EYEhistogram}
    - MEASUrement:MEAS<x>:REFLevels1:BASETop?
    - MEASUrement:MEAS<x>:REFLevels1:METHod {PERCent|ABSolute}
    - MEASUrement:MEAS<x>:REFLevels1:METHod?
    - MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLHigh <NR3>
    - MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLHigh?
    - MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLLow <NR3>
    - MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLLow?
    - MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLMid <NR3>
    - MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLMid?
    - MEASUrement:MEAS<x>:REFLevels1:PERCent:HYSTeresis <NR3>
    - MEASUrement:MEAS<x>:REFLevels1:PERCent:HYSTeresis?
    - MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEHigh <NR3>
    - MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEHigh?
    - MEASUrement:MEAS<x>:REFLevels1:PERCent:RISELow <NR3>
    - MEASUrement:MEAS<x>:REFLevels1:PERCent:RISELow?
    - MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEMid <NR3>
    - MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEMid?
    - MEASUrement:MEAS<x>:REFLevels1:PERCent:TYPE {TENNinety|TWENtyeighty|CUSTom}
    - MEASUrement:MEAS<x>:REFLevels1:PERCent:TYPE?
    - MEASUrement:MEAS<x>:REFLevels:ABSolute:FALLHigh <NR3>
    - MEASUrement:MEAS<x>:REFLevels:ABSolute:FALLHigh?
    - MEASUrement:MEAS<x>:REFMode {AUTO|MANual}
    - MEASUrement:MEAS<x>:REFMode?
    - MEASUrement:MEAS<x>:REFVOLTAGE<x>Val <NR2>
    - MEASUrement:MEAS<x>:REFVOLTAGE<x>Val?
    - MEASUrement:MEAS<x>:REFVoltage <NR3>
    - MEASUrement:MEAS<x>:REFVoltage?
    - MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MAXimum?
    - MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MEAN?
    - MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MINimum?
    - MEASUrement:MEAS<x>:RESUlts:ALLAcqs:PK2PK?
    - MEASUrement:MEAS<x>:RESUlts:ALLAcqs:POPUlation?
    - MEASUrement:MEAS<x>:RESUlts:ALLAcqs:STDDev?
    - MEASUrement:MEAS<x>:RESUlts:CURRentacq:MAXimum?
    - MEASUrement:MEAS<x>:RESUlts:CURRentacq:MEAN?
    - MEASUrement:MEAS<x>:RESUlts:CURRentacq:MINimum?
    - MEASUrement:MEAS<x>:RESUlts:CURRentacq:PK2PK?
    - MEASUrement:MEAS<x>:RESUlts:CURRentacq:POPUlation?
    - MEASUrement:MEAS<x>:RESUlts:CURRentacq:STDDev?
    - MEASUrement:MEAS<x>:RESUlts:HISTory:MAXimum?
    - MEASUrement:MEAS<x>:RESUlts:HISTory:MEAN?
    - MEASUrement:MEAS<x>:RESUlts:HISTory:MINimum?
    - MEASUrement:MEAS<x>:RESUlts:HISTory:PK2PK?
    - MEASUrement:MEAS<x>:RESUlts:HISTory:POPUlation?
    - MEASUrement:MEAS<x>:RESUlts:HISTory:STDDev?
    - MEASUrement:MEAS<x>:RFREquency <NR3>
    - MEASUrement:MEAS<x>:RFREquency?
    - MEASUrement:MEAS<x>:RIPPLEFREQ<x>Val <NR3>
    - MEASUrement:MEAS<x>:RIPPLEFREQ<x>Val?
    - MEASUrement:MEAS<x>:RRANGE <NR3>
    - MEASUrement:MEAS<x>:RRANGE?
    - MEASUrement:MEAS<x>:SEQuence {ABC|ACB}
    - MEASUrement:MEAS<x>:SEQuence?
    - MEASUrement:MEAS<x>:SIGNALFREQUEncy {AUTO|FIFTYHZ|SIXTYHZ|FOURHUNDREDHZ|CUSTOM}
    - MEASUrement:MEAS<x>:SIGNALFREQUEncy?
    - MEASUrement:MEAS<x>:SIGNALType {CLOCK|DATA|AUTO}
    - MEASUrement:MEAS<x>:SIGNALType?
    - MEASUrement:MEAS<x>:SLABs <NR3>
    - MEASUrement:MEAS<x>:SLABs?
    - MEASUrement:MEAS<x>:SLPCt <NR3>
    - MEASUrement:MEAS<x>:SLPCt?
    - MEASUrement:MEAS<x>:SLTYpe {VDS|ID|VGE|VCE|IC}
    - MEASUrement:MEAS<x>:SLTYpe?
    - MEASUrement:MEAS<x>:SMOOTHINGFILTER <NR1>
    - MEASUrement:MEAS<x>:SOURCE {CH<x>|MATH<x>|REF<x>}
    - MEASUrement:MEAS<x>:SOUrce1
    - MEASUrement:MEAS<x>:SOUrce1?
    - MEASUrement:MEAS<x>:SPAN<x>Val <NR3>
    - MEASUrement:MEAS<x>:SPAN<x>Val?
    - MEASUrement:MEAS<x>:SRATe <NR3>
    - MEASUrement:MEAS<x>:SRATe?
    - MEASUrement:MEAS<x>:SRHo {ON|OFF}
    - MEASUrement:MEAS<x>:SRHo?
    - MEASUrement:MEAS<x>:SSC:NOMinalfreq <NR3>
    - MEASUrement:MEAS<x>:SSC:NOMinalfreq:SELECTIONtype {AUTO|MANual}
    - MEASUrement:MEAS<x>:SSC:NOMinalfreq:SELECTIONtype?
    - MEASUrement:MEAS<x>:SSC:NOMinalfreq?
    - MEASUrement:MEAS<x>:SSDirection {FORWARD|BACKWARD}
    - MEASUrement:MEAS<x>:SSDirection?
    - MEASUrement:MEAS<x>:STATUS?
    - MEASUrement:MEAS<x>:STLABs <NR3>
    - MEASUrement:MEAS<x>:STLABs?
    - MEASUrement:MEAS<x>:STLPct <NR3>
    - MEASUrement:MEAS<x>:STLPct?
    - MEASUrement:MEAS<x>:STLTYpe {VDS|ID|VGE|VCE|IC}
    - MEASUrement:MEAS<x>:STLTYpe?
    - MEASUrement:MEAS<x>:STSDirection {FORWARD|BACKWARD}
    - MEASUrement:MEAS<x>:STSDirection?
    - MEASUrement:MEAS<x>:STYPe {VOLTage|CURRent|DIFFERENTIAL|SINGLE}
    - MEASUrement:MEAS<x>:STYPe?
    - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MAXimum? <QString>
    - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MEAN? <QString>
    - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MINimum? <QString>
    - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:PK2PK? <QString>
    - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:POPUlation? <QString>
    - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:STDDev? <QString>
    - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MAXimum? <QString>
    - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MEAN? <QString>
    - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MINimum? <QString>
    - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:PK2PK? <QString>
    - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:POPUlation? <QString>
    - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:STDDev? <QString>
    - MEASUrement:MEAS<x>:SUNits {RPM|HZ}
    - MEASUrement:MEAS<x>:SUNits?
    - MEASUrement:MEAS<x>:TCKAVG <NR3>
    - MEASUrement:MEAS<x>:TCKAVG?
    - MEASUrement:MEAS<x>:TCONstant <NR1>
    - MEASUrement:MEAS<x>:TCONstant?
    - MEASUrement:MEAS<x>:TDRPreset {EXECUTE}
    - MEASUrement:MEAS<x>:TIMINGMode {EACHCLOCKCYCLE|TWOCLOCKCYCLES}
    - MEASUrement:MEAS<x>:TIMINGMode?
    - MEASUrement:MEAS<x>:TLEVel {PERCent|ABSolute}
    - MEASUrement:MEAS<x>:TLEVel?
    - MEASUrement:MEAS<x>:TMEThod {SENSOR|CURRENT}
    - MEASUrement:MEAS<x>:TMEThod?
    - MEASUrement:MEAS<x>:TOEDGESEARCHDIRect {FORWard|BACKWard}
    - MEASUrement:MEAS<x>:TOEDGESEARCHDIRect?
    - MEASUrement:MEAS<x>:TOEdge {SAMEas|OPPositeas|RISe|FALL|BOTH}
    - MEASUrement:MEAS<x>:TOEdge?
    - MEASUrement:MEAS<x>:TOSYmbol:LOGIC2SOUrce {H|L|X}
    - MEASUrement:MEAS<x>:TOSYmbol:LOGIC2SOUrce?
    - MEASUrement:MEAS<x>:TOSYmbol:LOGIC3SOUrce {H|L|X}
    - MEASUrement:MEAS<x>:TOSYmbol:LOGIC3SOUrce?
    - MEASUrement:MEAS<x>:TOSYmbol:LOGIC4SOUrce {H|L|X}
    - MEASUrement:MEAS<x>:TOSYmbol:LOGIC4SOUrce?
    - MEASUrement:MEAS<x>:TOSYmbol:LOGIC5SOUrce {H|L|X}
    - MEASUrement:MEAS<x>:TOSYmbol:LOGIC5SOUrce?
    - MEASUrement:MEAS<x>:TOSYmbol:MEASUREAT {Start|Stop|ClockEdge}
    - MEASUrement:MEAS<x>:TOSYmbol:MEASUREAT?
    - MEASUrement:MEAS<x>:TRANSition {ON|OFF|<NR1>}
    - MEASUrement:MEAS<x>:TYPe {ACCOMMONMODE|ACPR|ACRMS|AMPLITUDE|AREA|BASE|BITAMPLITUDE|BITHIGH|BITLOW|BURSTWIDTH|COMMONMODE|CPOWER|DATARATE|DCD|DDJ|DDRAOS|DDRAOSPERTCK|DDRAOSPERUI|DDRAUS|DDRAUSPERTCK|DDRAUSPERUI|DDRHOLDDIFF|DDRSETUPDIFF|DDRTCHABS|DDRTCHAVERAGE|DDRTCKAVERAGE|DDRTCLABS|DDRTCLAVERAGE|DDRTERRMN|DDRTERRN|DDRTJITCC|DDRTJITDUTY|DDRTJITPER|DDRTPST|DDRTRPRE|DDRTWPRE|DDRVIXAC|DDRTDQSCK|DELAY|DJ|DJDIRAC|DPMOVERSHOOT|DPMPSIJ|DPMUNDERSHOOT|DPMRIPPLE|DPMTURNOFFTIME|DPMTURNONTIME|EYEHIGH|EYELOW|FALLSLEWRATE|FALLTIME|FREQUENCY|F2|F4|F8|HIGH|HEIGHT|HEIGHTBER|HIGHTIME|HOLD|IMDAANGLE|IMDADIRECTION|IMDADQ0|IMDAEFFICIENCY|IMDAHARMONICS|IMDAMECHPWR|IMDAPOWERQUALITY|IMDASPEED|IMDASYSEFF|IMDATORQUE|ISI|JITTERSUMMARY|J2|J9|LOW|LOWTIME|MAXIMUM|MEAN|MINIMUM|NDUtY|NPERIOD|NPJ|NOVERSHOOT|NWIDTH|OBW|PATTERNLENGTH|PDUTTY|PERIOD|PHASE|PHASENOISE|PJ|PK2Pk|POVERSHOOT|PWIDTH|QFACTOR|RDSON|RISESLEWRATE|RISETIME|RJ|RJDIRAC|RMS|SRJ|SSCFREQDEV|SSCMODRATE|SSCSLEWRATE|SETUP|SKEW|TDR|TIE|TIMEOUTSIDELEVEL|TJBER|TNTRATIO|TOP|UNITINTERVAL|VDIFFXOVR|WBGDDT|WBGDIODEDDT|WBGEOFF|WBGEON|WBGERR|WBGIPEAK|WBGIRRM|WBGQOSS|WBGQRR|WBGTDOFF|WBGTDON|WBGTF|WBGTON|WBGTOFF|WBGTR|WBGTRR|WBGTDT|WBGVPEAK|WIDTH|WIDTHBER}
    - MEASUrement:MEAS<x>:TYPe?
    - MEASUrement:MEAS<x>:VLEVel {PERCent|ABSolute}
    - MEASUrement:MEAS<x>:VLEVel?
    - MEASUrement:MEAS<x>:WAITTime <NR2>
    - MEASUrement:MEAS<x>:WAITTime?
    - MEASUrement:MEAS<x>:WBG:AFGSetup {CONNECT|RUN}
    - MEASUrement:MEAS<x>:WBG:AFGaddress <QString>
    - MEASUrement:MEAS<x>:WBG:AFGaddress?
    - MEASUrement:MEAS<x>:WBG:CSTatus?
    - MEASUrement:MEAS<x>:WBG:GTYPe {AFG31000|OTHER}
    - MEASUrement:MEAS<x>:WBG:GTYPe?
    - MEASUrement:MEAS<x>:WBG:HIGH <NR3>
    - MEASUrement:MEAS<x>:WBG:HIGH?
    - MEASUrement:MEAS<x>:WBG:LOAD {FIFTY|HIGHZ}
    - MEASUrement:MEAS<x>:WBG:LOAD?
    - MEASUrement:MEAS<x>:WBG:LOW <NR3>
    - MEASUrement:MEAS<x>:WBG:LOW?
    - MEASUrement:MEAS<x>:WBG:NPULs <NR1>
    - MEASUrement:MEAS<x>:WBG:NPULs?
    - MEASUrement:MEAS<x>:WBG:PG<x>Val <NR3>
    - MEASUrement:MEAS<x>:WBG:PG<x>Val?
    - MEASUrement:MEAS<x>:WBG:PW<x>Val <NR3>
    - MEASUrement:MEAS<x>:WBG:PW<x>Val?
    - MEASUrement:MEAS<x>:WBG:TIMer <NR3>
    - MEASUrement:MEAS<x>:WBG:TIMer?
    - MEASUrement:MEAS<x>:WIDTh <NR1>
    - MEASUrement:MEAS<x>:WIDTh?
    - MEASUrement:MEAS<x>:WINDOWLENgth <NR3>
    - MEASUrement:MEAS<x>:WINDOWLENgth?
    - MEASUrement:MEAS<x>:XUNIT?
    - MEASUrement:MEAS<x>:YUNIT?
    - MEASUrement:MEASRange:MAX <NR3>
    - MEASUrement:MEASRange:MAX?
    - MEASUrement:MEASRange:MIN <NR3>
    - MEASUrement:MEASRange:MIN?
    - MEASUrement:MEASRange:STATE {ON|OFF|1|0}
    - MEASUrement:MEASRange:STATE?
    - MEASUrement:MECH:EINDexz {ON|OFF|1|0}
    - MEASUrement:MECH:EINDexz?
    - MEASUrement:MECH:GRATio <NR3>
    - MEASUrement:MECH:GRATio?
    - MEASUrement:MECH:MUNits {NM|OZINCH|FTLB|INCHLB|DEGREES|RADIANS}
    - MEASUrement:MECH:MUNits?
    - MEASUrement:MECH:PPAirs <NR1>
    - MEASUrement:MECH:PPAirs?
    - MEASUrement:MECH:PPRotation <NR1>
    - MEASUrement:MECH:PPRotation?
    - MEASUrement:MECH:SOUrce1 {CH<x>|MATH<x>|REF<x>|CH<x>_D<x>}
    - MEASUrement:MECH:SOUrce1?
    - MEASUrement:MECH:STYPe {HSENSOR|QEI|RESOLVER}
    - MEASUrement:MECH:STYPe?
    - MEASUrement:MINUI <NR3>
    - MEASUrement:MINUI?
    - MEASUrement:POPUlation:LIMIT:STATE {OFF|ON|0|1 }
    - MEASUrement:POPUlation:LIMIT:STATE?
    - MEASUrement:POPUlation:LIMIT:VALue <NR1>
    - MEASUrement:POPUlation:LIMIT:VALue?
    - MEASUrement:REF<x>:REFLevels:ABSolute:FALLHigh <NR3>
    - MEASUrement:REF<x>:REFLevels:ABSolute:FALLHigh?
    - MEASUrement:REF<x>:REFLevels:ABSolute:FALLLow <NR3>
    - MEASUrement:REF<x>:REFLevels:ABSolute:FALLLow?
    - MEASUrement:REF<x>:REFLevels:ABSolute:FALLMid <NR3>
    - MEASUrement:REF<x>:REFLevels:ABSolute:FALLMid?
    - MEASUrement:REF<x>:REFLevels:ABSolute:HYSTeresis <NR3>
    - MEASUrement:REF<x>:REFLevels:ABSolute:HYSTeresis?
    - MEASUrement:REF<x>:REFLevels:ABSolute:RISEHigh <NR3>
    - MEASUrement:REF<x>:REFLevels:ABSolute:RISEHigh?
    - MEASUrement:REF<x>:REFLevels:ABSolute:RISELow <NR3>
    - MEASUrement:REF<x>:REFLevels:ABSolute:RISELow?
    - MEASUrement:REF<x>:REFLevels:ABSolute:RISEMid <NR3>
    - MEASUrement:REF<x>:REFLevels:ABSolute:RISEMid?
    - MEASUrement:REF<x>:REFLevels:ABSolute:TYPE {SAME|UNIQue}
    - MEASUrement:REF<x>:REFLevels:ABSolute:TYPE?
    - MEASUrement:REF<x>:REFLevels:BASETop {AUTO|MINMax|MEANhistogram|MODEhistogram|EYEhistogram}
    - MEASUrement:REF<x>:REFLevels:BASETop?
    - MEASUrement:REF<x>:REFLevels:METHod {PERCent|ABSolute}
    - MEASUrement:REF<x>:REFLevels:METHod?
    - MEASUrement:REF<x>:REFLevels:PERCent:FALLHigh <NR3>
    - MEASUrement:REF<x>:REFLevels:PERCent:FALLHigh?
    - MEASUrement:REF<x>:REFLevels:PERCent:FALLLow <NR3>
    - MEASUrement:REF<x>:REFLevels:PERCent:FALLLow?
    - MEASUrement:REF<x>:REFLevels:PERCent:FALLMid <NR3>
    - MEASUrement:REF<x>:REFLevels:PERCent:FALLMid?
    - MEASUrement:REF<x>:REFLevels:PERCent:HYSTeresis <NR3>
    - MEASUrement:REF<x>:REFLevels:PERCent:HYSTeresis?
    - MEASUrement:REF<x>:REFLevels:PERCent:RISEHigh <NR3>
    - MEASUrement:REF<x>:REFLevels:PERCent:RISEHigh?
    - MEASUrement:REF<x>:REFLevels:PERCent:RISELow <NR3>
    - MEASUrement:REF<x>:REFLevels:PERCent:RISELow?
    - MEASUrement:REF<x>:REFLevels:PERCent:RISEMid <NR3>
    - MEASUrement:REF<x>:REFLevels:PERCent:RISEMid?
    - MEASUrement:REF<x>:REFLevels:PERCent:TYPE {TENNinety|TWENtyeighty|CUSTom}
    - MEASUrement:REF<x>:REFLevels:PERCent:TYPE?
    - MEASUrement:REFLevels:ABSolute:FALLHigh <NR3>
    - MEASUrement:REFLevels:ABSolute:FALLHigh?
    - MEASUrement:REFLevels:ABSolute:FALLLow <NR3>
    - MEASUrement:REFLevels:ABSolute:FALLLow?
    - MEASUrement:REFLevels:ABSolute:FALLMid <NR3>
    - MEASUrement:REFLevels:ABSolute:FALLMid?
    - MEASUrement:REFLevels:ABSolute:HYSTeresis <NR3>
    - MEASUrement:REFLevels:ABSolute:HYSTeresis?
    - MEASUrement:REFLevels:ABSolute:RISEHigh <NR3>
    - MEASUrement:REFLevels:ABSolute:RISEHigh?
    - MEASUrement:REFLevels:ABSolute:RISELow <NR3>
    - MEASUrement:REFLevels:ABSolute:RISELow?
    - MEASUrement:REFLevels:ABSolute:RISEMid <NR3>
    - MEASUrement:REFLevels:ABSolute:RISEMid?
    - MEASUrement:REFLevels:ABSolute:TYPE {SAME|UNIQue}
    - MEASUrement:REFLevels:ABSolute:TYPE?
    - MEASUrement:REFLevels:BASETop {AUTO|MINMax|MEANhistogram|MODEhistogram|EYEhistogram}
    - MEASUrement:REFLevels:BASETop?
    - MEASUrement:REFLevels:JITTERMODE {CONTinuous|LATCh}
    - MEASUrement:REFLevels:JITTERMODE?
    - MEASUrement:REFLevels:METHod {PERCent|ABSolute}
    - MEASUrement:REFLevels:METHod?
    - MEASUrement:REFLevels:MODE {LATCh|CONTinuous}
    - MEASUrement:REFLevels:MODE?
    - MEASUrement:REFLevels:PERCent:FALLHigh <NR3>
    - MEASUrement:REFLevels:PERCent:FALLHigh?
    - MEASUrement:REFLevels:PERCent:FALLLow <NR3>
    - MEASUrement:REFLevels:PERCent:FALLLow?
    - MEASUrement:REFLevels:PERCent:FALLMid <NR3>
    - MEASUrement:REFLevels:PERCent:FALLMid?
    - MEASUrement:REFLevels:PERCent:HYSTeresis <NR3>
    - MEASUrement:REFLevels:PERCent:HYSTeresis?
    - MEASUrement:REFLevels:PERCent:RISEHigh <NR3>
    - MEASUrement:REFLevels:PERCent:RISEHigh?
    - MEASUrement:REFLevels:PERCent:RISELow <NR3>
    - MEASUrement:REFLevels:PERCent:RISELow?
    - MEASUrement:REFLevels:PERCent:RISEMid <NR3>
    - MEASUrement:REFLevels:PERCent:RISEMid?
    - MEASUrement:REFLevels:PERCent:TYPE {TENNinety|TWENtyeighty|CUSTom}
    - MEASUrement:REFLevels:PERCent:TYPE?
    - MEASUrement:REFLevels:TYPE {GLOBal|PERSource}
    - MEASUrement:REFLevels:TYPE?
    - MEASUrement:RESUlts:HISTory:STARt <NR1>
    - MEASUrement:RESUlts:HISTory:STARt?
    - MEASUrement:RESUlts:HISTory:STOP <NR1>
    - MEASUrement:RESUlts:HISTory:STOP?
    - MEASUrement:STATIstics:CYCLEMode {ON|OFF|1|0}
    - MEASUrement:STATIstics:CYCLEMode?
    - MEASUrement:WBG:PDEVice {IGBT|MOSFET}
    - MEASUrement:WBG:PDEVice?
    - MEASUrement?
    ```
"""  # noqa: E501

from typing import Dict, Optional, TYPE_CHECKING

from ..helpers import (
    DefaultDictPassKeyToFactory,
    SCPICmdRead,
    SCPICmdReadWithArguments,
    SCPICmdWrite,
    SCPICmdWriteNoArguments,
    ValidatedChannel,
    ValidatedDynamicNumberCmd,
)

if TYPE_CHECKING:
    from tm_devices.driver_mixins.device_control.pi_control import PIControl


class MeasurementWbgPdevice(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:WBG:PDEVice`` command.

    Description:
        - This command sets or returns the type of the Power device.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:WBG:PDEVice?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:WBG:PDEVice?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:WBG:PDEVice value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:WBG:PDEVice {IGBT|MOSFET}
        - MEASUrement:WBG:PDEVice?
        ```

    Info:
        - ``IGBT`` specifies the type of the Power device as IGBT.
        - ``MOSFET`` specifies the type of the Power device as MOSFET.
    """


class MeasurementWbg(SCPICmdRead):
    """The ``MEASUrement:WBG`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:WBG?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:WBG?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.pdevice``: The ``MEASUrement:WBG:PDEVice`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._pdevice = MeasurementWbgPdevice(device, f"{self._cmd_syntax}:PDEVice")

    @property
    def pdevice(self) -> MeasurementWbgPdevice:
        """Return the ``MEASUrement:WBG:PDEVice`` command.

        Description:
            - This command sets or returns the type of the Power device.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:WBG:PDEVice?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:WBG:PDEVice?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:WBG:PDEVice value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:WBG:PDEVice {IGBT|MOSFET}
            - MEASUrement:WBG:PDEVice?
            ```

        Info:
            - ``IGBT`` specifies the type of the Power device as IGBT.
            - ``MOSFET`` specifies the type of the Power device as MOSFET.
        """
        return self._pdevice


class MeasurementStatisticsCyclemode(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:STATIstics:CYCLEMode`` command.

    Description:
        - This command turns on and off cycle to cycle measurement statistics tracking and affects
          computation and display of cycle-cycle statistics in the Measurement Result table. It
          affects measurement statistics after being enabled and after new data is acquired and
          measured.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:STATIstics:CYCLEMode?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:STATIstics:CYCLEMode?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:STATIstics:CYCLEMode value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:STATIstics:CYCLEMode {ON|OFF|1|0}
        - MEASUrement:STATIstics:CYCLEMode?
        ```

    Info:
        - ``OFF`` turns off statistics for all measurements. This is the default value.
        - ``ON`` turns on statistics and displays all statistics for each measurement.
        - ``0`` turns off statistics for all measurements.
        - ``1`` turns on statistics and displays all statistics for each measurement.
    """


class MeasurementStatistics(SCPICmdRead):
    """The ``MEASUrement:STATIstics`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:STATIstics?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:STATIstics?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.cyclemode``: The ``MEASUrement:STATIstics:CYCLEMode`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._cyclemode = MeasurementStatisticsCyclemode(device, f"{self._cmd_syntax}:CYCLEMode")

    @property
    def cyclemode(self) -> MeasurementStatisticsCyclemode:
        """Return the ``MEASUrement:STATIstics:CYCLEMode`` command.

        Description:
            - This command turns on and off cycle to cycle measurement statistics tracking and
              affects computation and display of cycle-cycle statistics in the Measurement Result
              table. It affects measurement statistics after being enabled and after new data is
              acquired and measured.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:STATIstics:CYCLEMode?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:STATIstics:CYCLEMode?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:STATIstics:CYCLEMode value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:STATIstics:CYCLEMode {ON|OFF|1|0}
            - MEASUrement:STATIstics:CYCLEMode?
            ```

        Info:
            - ``OFF`` turns off statistics for all measurements. This is the default value.
            - ``ON`` turns on statistics and displays all statistics for each measurement.
            - ``0`` turns off statistics for all measurements.
            - ``1`` turns on statistics and displays all statistics for each measurement.
        """
        return self._cyclemode


class MeasurementResultsHistoryStop(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:RESUlts:HISTory:STOP`` command.

    Description:
        - This command sets or queries the last acquisition number that will be transferred for
          measurement history results.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:RESUlts:HISTory:STOP?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:RESUlts:HISTory:STOP?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:RESUlts:HISTory:STOP value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:RESUlts:HISTory:STOP <NR1>
        - MEASUrement:RESUlts:HISTory:STOP?
        ```

    Info:
        - ``<NR1>`` is the last acquisition that will be transferred, which ranges from 1 to the
          number of history acquisitions. Results will be transferred from
          ``MEASUrement:RESUlts:HISTory:STARt`` to <NR1>. A special value of 0 for <NR1> indicates
          that the stop position is always the last history acquisition.
    """


class MeasurementResultsHistoryStart(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:RESUlts:HISTory:STARt`` command.

    Description:
        - This command sets or queries the starting acquisition number for transferring measurement
          history results.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:RESUlts:HISTory:STARt?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:RESUlts:HISTory:STARt?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:RESUlts:HISTory:STARt value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:RESUlts:HISTory:STARt <NR1>
        - MEASUrement:RESUlts:HISTory:STARt?
        ```

    Info:
        - ``<NR1>`` is the first acquisition that will be transferred, which ranges from 1 to the
          number of history acquisitions. Results will be transferred from acquisitions <NR1> to
          ``MEASUrement:RESUlts:HISTory:STOP``.
    """


class MeasurementResultsHistory(SCPICmdRead):
    """The ``MEASUrement:RESUlts:HISTory`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:RESUlts:HISTory?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:RESUlts:HISTory?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.start``: The ``MEASUrement:RESUlts:HISTory:STARt`` command.
        - ``.stop``: The ``MEASUrement:RESUlts:HISTory:STOP`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._start = MeasurementResultsHistoryStart(device, f"{self._cmd_syntax}:STARt")
        self._stop = MeasurementResultsHistoryStop(device, f"{self._cmd_syntax}:STOP")

    @property
    def start(self) -> MeasurementResultsHistoryStart:
        """Return the ``MEASUrement:RESUlts:HISTory:STARt`` command.

        Description:
            - This command sets or queries the starting acquisition number for transferring
              measurement history results.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:RESUlts:HISTory:STARt?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:RESUlts:HISTory:STARt?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:RESUlts:HISTory:STARt value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:RESUlts:HISTory:STARt <NR1>
            - MEASUrement:RESUlts:HISTory:STARt?
            ```

        Info:
            - ``<NR1>`` is the first acquisition that will be transferred, which ranges from 1 to
              the number of history acquisitions. Results will be transferred from acquisitions
              <NR1> to ``MEASUrement:RESUlts:HISTory:STOP``.
        """
        return self._start

    @property
    def stop(self) -> MeasurementResultsHistoryStop:
        """Return the ``MEASUrement:RESUlts:HISTory:STOP`` command.

        Description:
            - This command sets or queries the last acquisition number that will be transferred for
              measurement history results.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:RESUlts:HISTory:STOP?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:RESUlts:HISTory:STOP?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:RESUlts:HISTory:STOP value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:RESUlts:HISTory:STOP <NR1>
            - MEASUrement:RESUlts:HISTory:STOP?
            ```

        Info:
            - ``<NR1>`` is the last acquisition that will be transferred, which ranges from 1 to the
              number of history acquisitions. Results will be transferred from
              ``MEASUrement:RESUlts:HISTory:STARt`` to <NR1>. A special value of 0 for <NR1>
              indicates that the stop position is always the last history acquisition.
        """
        return self._stop


class MeasurementResults(SCPICmdRead):
    """The ``MEASUrement:RESUlts`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:RESUlts?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:RESUlts?`` query and raise
          an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.history``: The ``MEASUrement:RESUlts:HISTory`` command tree.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._history = MeasurementResultsHistory(device, f"{self._cmd_syntax}:HISTory")

    @property
    def history(self) -> MeasurementResultsHistory:
        """Return the ``MEASUrement:RESUlts:HISTory`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:RESUlts:HISTory?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:RESUlts:HISTory?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.start``: The ``MEASUrement:RESUlts:HISTory:STARt`` command.
            - ``.stop``: The ``MEASUrement:RESUlts:HISTory:STOP`` command.
        """
        return self._history


class MeasurementReflevelsType(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REFLevels:TYPE`` command.

    Description:
        - This command sets or queries the shared reference level method used for sources of
          measurement calculations.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:TYPE?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:REFLevels:TYPE?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:REFLevels:TYPE value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:REFLevels:TYPE {GLOBal|PERSource}
        - MEASUrement:REFLevels:TYPE?
        ```

    Info:
        - ``GLOBal`` shares reference levels across measurements.
        - ``PERSource`` causes reference levels to be used on individual measurements.
    """


class MeasurementReflevelsPercentType(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REFLevels:PERCent:TYPE`` command.

    Description:
        - This command sets or queries the reference level percent type for the measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:PERCent:TYPE?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:REFLevels:PERCent:TYPE?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REFLevels:PERCent:TYPE value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REFLevels:PERCent:TYPE {TENNinety|TWENtyeighty|CUSTom}
        - MEASUrement:REFLevels:PERCent:TYPE?
        ```

    Info:
        - ``TENNinety`` sets the values for Low, Mid and High Ref to 10%, 50% and 90% respectively.
        - ``TWENtyeighty`` sets the values for Low, Mid and High Ref are set to 20%, 50% and 80%
          respectively.
        - ``CUSTom`` allows setting other reference level percents.
    """


class MeasurementReflevelsPercentRisemid(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REFLevels:PERCent:RISEMid`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the mid reference level of the rising edge when the measurement's
          ref level method is set to percent.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:PERCent:RISEMid?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REFLevels:PERCent:RISEMid?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REFLevels:PERCent:RISEMid value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REFLevels:PERCent:RISEMid <NR3>
        - MEASUrement:REFLevels:PERCent:RISEMid?
        ```

    Info:
        - ``<NR3>`` is the percentage used to calculate the mid reference level of the rising edge.
    """


class MeasurementReflevelsPercentRiselow(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REFLevels:PERCent:RISELow`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the low reference level of the rising edge when the measurement's
          ref level method is set to percent.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:PERCent:RISELow?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REFLevels:PERCent:RISELow?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REFLevels:PERCent:RISELow value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REFLevels:PERCent:RISELow <NR3>
        - MEASUrement:REFLevels:PERCent:RISELow?
        ```

    Info:
        - ``<NR3>`` is the percentage used to calculate the low reference level of the rising edge.
    """


class MeasurementReflevelsPercentRisehigh(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REFLevels:PERCent:RISEHigh`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the high reference level of the rising edge when the measurement's
          ref level method is set to percent.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:PERCent:RISEHigh?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REFLevels:PERCent:RISEHigh?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REFLevels:PERCent:RISEHigh value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REFLevels:PERCent:RISEHigh <NR3>
        - MEASUrement:REFLevels:PERCent:RISEHigh?
        ```

    Info:
        - ``<NR3>`` is the percentage used to calculate the high reference level of the rising edge.
    """


class MeasurementReflevelsPercentHysteresis(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REFLevels:PERCent:HYSTeresis`` command.

    Description:
        - This command sets or queries the percentage (where 100% is equal to MAX and 1% is equal to
          MIN) used to calculate the hysteresis of the reference level when the measurement's ref
          level method is set to percent.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:PERCent:HYSTeresis?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REFLevels:PERCent:HYSTeresis?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REFLevels:PERCent:HYSTeresis value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REFLevels:PERCent:HYSTeresis <NR3>
        - MEASUrement:REFLevels:PERCent:HYSTeresis?
        ```

    Info:
        - ``<NR3>`` is the percentage used to calculate the hysteresis of the reference level.
    """


class MeasurementReflevelsPercentFallmid(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REFLevels:PERCent:FALLMid`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the mid reference level of the falling edge when the measurement's
          ref level method is set to percent.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:PERCent:FALLMid?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REFLevels:PERCent:FALLMid?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REFLevels:PERCent:FALLMid value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REFLevels:PERCent:FALLMid <NR3>
        - MEASUrement:REFLevels:PERCent:FALLMid?
        ```

    Info:
        - ``<NR3>`` is the percentage used to calculate the mid reference level of the falling edge.
    """


class MeasurementReflevelsPercentFalllow(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REFLevels:PERCent:FALLLow`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the mid reference level of the falling edge when the measurement's
          ref level method is set to percent.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:PERCent:FALLLow?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REFLevels:PERCent:FALLLow?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REFLevels:PERCent:FALLLow value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REFLevels:PERCent:FALLLow <NR3>
        - MEASUrement:REFLevels:PERCent:FALLLow?
        ```

    Info:
        - ``<NR3>`` is the percentage used to calculate the mid reference level of the falling edge.
    """


class MeasurementReflevelsPercentFallhigh(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REFLevels:PERCent:FALLHigh`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the high reference level of the falling edge when the
          measurement's ref level method is set to percent.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:PERCent:FALLHigh?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REFLevels:PERCent:FALLHigh?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REFLevels:PERCent:FALLHigh value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REFLevels:PERCent:FALLHigh <NR3>
        - MEASUrement:REFLevels:PERCent:FALLHigh?
        ```

    Info:
        - ``<NR3>`` is the percentage used to calculate the high reference level of the falling
          edge.
    """


#  pylint: disable=too-many-instance-attributes
class MeasurementReflevelsPercent(SCPICmdRead):
    """The ``MEASUrement:REFLevels:PERCent`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:PERCent?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:REFLevels:PERCent?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.fallhigh``: The ``MEASUrement:REFLevels:PERCent:FALLHigh`` command.
        - ``.falllow``: The ``MEASUrement:REFLevels:PERCent:FALLLow`` command.
        - ``.fallmid``: The ``MEASUrement:REFLevels:PERCent:FALLMid`` command.
        - ``.hysteresis``: The ``MEASUrement:REFLevels:PERCent:HYSTeresis`` command.
        - ``.risehigh``: The ``MEASUrement:REFLevels:PERCent:RISEHigh`` command.
        - ``.riselow``: The ``MEASUrement:REFLevels:PERCent:RISELow`` command.
        - ``.risemid``: The ``MEASUrement:REFLevels:PERCent:RISEMid`` command.
        - ``.type``: The ``MEASUrement:REFLevels:PERCent:TYPE`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._fallhigh = MeasurementReflevelsPercentFallhigh(device, f"{self._cmd_syntax}:FALLHigh")
        self._falllow = MeasurementReflevelsPercentFalllow(device, f"{self._cmd_syntax}:FALLLow")
        self._fallmid = MeasurementReflevelsPercentFallmid(device, f"{self._cmd_syntax}:FALLMid")
        self._hysteresis = MeasurementReflevelsPercentHysteresis(
            device, f"{self._cmd_syntax}:HYSTeresis"
        )
        self._risehigh = MeasurementReflevelsPercentRisehigh(device, f"{self._cmd_syntax}:RISEHigh")
        self._riselow = MeasurementReflevelsPercentRiselow(device, f"{self._cmd_syntax}:RISELow")
        self._risemid = MeasurementReflevelsPercentRisemid(device, f"{self._cmd_syntax}:RISEMid")
        self._type = MeasurementReflevelsPercentType(device, f"{self._cmd_syntax}:TYPE")

    @property
    def fallhigh(self) -> MeasurementReflevelsPercentFallhigh:
        """Return the ``MEASUrement:REFLevels:PERCent:FALLHigh`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the high reference level of the falling edge when the
              measurement's ref level method is set to percent.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:REFLevels:PERCent:FALLHigh?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REFLevels:PERCent:FALLHigh?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REFLevels:PERCent:FALLHigh value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REFLevels:PERCent:FALLHigh <NR3>
            - MEASUrement:REFLevels:PERCent:FALLHigh?
            ```

        Info:
            - ``<NR3>`` is the percentage used to calculate the high reference level of the falling
              edge.
        """
        return self._fallhigh

    @property
    def falllow(self) -> MeasurementReflevelsPercentFalllow:
        """Return the ``MEASUrement:REFLevels:PERCent:FALLLow`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the mid reference level of the falling edge when the
              measurement's ref level method is set to percent.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:PERCent:FALLLow?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REFLevels:PERCent:FALLLow?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REFLevels:PERCent:FALLLow value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REFLevels:PERCent:FALLLow <NR3>
            - MEASUrement:REFLevels:PERCent:FALLLow?
            ```

        Info:
            - ``<NR3>`` is the percentage used to calculate the mid reference level of the falling
              edge.
        """
        return self._falllow

    @property
    def fallmid(self) -> MeasurementReflevelsPercentFallmid:
        """Return the ``MEASUrement:REFLevels:PERCent:FALLMid`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the mid reference level of the falling edge when the
              measurement's ref level method is set to percent.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:PERCent:FALLMid?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REFLevels:PERCent:FALLMid?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REFLevels:PERCent:FALLMid value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REFLevels:PERCent:FALLMid <NR3>
            - MEASUrement:REFLevels:PERCent:FALLMid?
            ```

        Info:
            - ``<NR3>`` is the percentage used to calculate the mid reference level of the falling
              edge.
        """
        return self._fallmid

    @property
    def hysteresis(self) -> MeasurementReflevelsPercentHysteresis:
        """Return the ``MEASUrement:REFLevels:PERCent:HYSTeresis`` command.

        Description:
            - This command sets or queries the percentage (where 100% is equal to MAX and 1% is
              equal to MIN) used to calculate the hysteresis of the reference level when the
              measurement's ref level method is set to percent.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:REFLevels:PERCent:HYSTeresis?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REFLevels:PERCent:HYSTeresis?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REFLevels:PERCent:HYSTeresis value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REFLevels:PERCent:HYSTeresis <NR3>
            - MEASUrement:REFLevels:PERCent:HYSTeresis?
            ```

        Info:
            - ``<NR3>`` is the percentage used to calculate the hysteresis of the reference level.
        """
        return self._hysteresis

    @property
    def risehigh(self) -> MeasurementReflevelsPercentRisehigh:
        """Return the ``MEASUrement:REFLevels:PERCent:RISEHigh`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the high reference level of the rising edge when the
              measurement's ref level method is set to percent.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:REFLevels:PERCent:RISEHigh?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REFLevels:PERCent:RISEHigh?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REFLevels:PERCent:RISEHigh value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REFLevels:PERCent:RISEHigh <NR3>
            - MEASUrement:REFLevels:PERCent:RISEHigh?
            ```

        Info:
            - ``<NR3>`` is the percentage used to calculate the high reference level of the rising
              edge.
        """
        return self._risehigh

    @property
    def riselow(self) -> MeasurementReflevelsPercentRiselow:
        """Return the ``MEASUrement:REFLevels:PERCent:RISELow`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the low reference level of the rising edge when the
              measurement's ref level method is set to percent.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:PERCent:RISELow?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REFLevels:PERCent:RISELow?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REFLevels:PERCent:RISELow value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REFLevels:PERCent:RISELow <NR3>
            - MEASUrement:REFLevels:PERCent:RISELow?
            ```

        Info:
            - ``<NR3>`` is the percentage used to calculate the low reference level of the rising
              edge.
        """
        return self._riselow

    @property
    def risemid(self) -> MeasurementReflevelsPercentRisemid:
        """Return the ``MEASUrement:REFLevels:PERCent:RISEMid`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the mid reference level of the rising edge when the
              measurement's ref level method is set to percent.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:PERCent:RISEMid?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REFLevels:PERCent:RISEMid?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REFLevels:PERCent:RISEMid value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REFLevels:PERCent:RISEMid <NR3>
            - MEASUrement:REFLevels:PERCent:RISEMid?
            ```

        Info:
            - ``<NR3>`` is the percentage used to calculate the mid reference level of the rising
              edge.
        """
        return self._risemid

    @property
    def type(self) -> MeasurementReflevelsPercentType:
        """Return the ``MEASUrement:REFLevels:PERCent:TYPE`` command.

        Description:
            - This command sets or queries the reference level percent type for the measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:PERCent:TYPE?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REFLevels:PERCent:TYPE?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REFLevels:PERCent:TYPE value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REFLevels:PERCent:TYPE {TENNinety|TWENtyeighty|CUSTom}
            - MEASUrement:REFLevels:PERCent:TYPE?
            ```

        Info:
            - ``TENNinety`` sets the values for Low, Mid and High Ref to 10%, 50% and 90%
              respectively.
            - ``TWENtyeighty`` sets the values for Low, Mid and High Ref are set to 20%, 50% and 80%
              respectively.
            - ``CUSTom`` allows setting other reference level percents.
        """
        return self._type


class MeasurementReflevelsMode(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REFLevels:MODE`` command.

    Description:
        - This command sets or queries how often reference levels are calculated.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:MODE?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:REFLevels:MODE?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:REFLevels:MODE value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:REFLevels:MODE {LATCh|CONTinuous}
        - MEASUrement:REFLevels:MODE?
        ```

    Info:
        - ``LATCh`` calculates reference levels only on the first acquisition after a statistics
          reset.
        - ``CONTinuous`` calculates reference levels on every acquisition.
    """


class MeasurementReflevelsMethod(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REFLevels:METHod`` command.

    Description:
        - This command sets or queries the method used to calculate reference levels for the
          measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:METHod?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:REFLevels:METHod?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:REFLevels:METHod value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:REFLevels:METHod {PERCent|ABSolute}
        - MEASUrement:REFLevels:METHod?
        ```

    Info:
        - ``PERCent`` specifies that the reference levels are calculated as a percent relative to
          HIGH and LOW. The percentages are defined using the
          ``MEASUrement:REFLevels:REFLevel:PERCent`` commands.
        - ``ABSolute`` specifies that the reference levels are set explicitly using the
          ``MEASUrement:REFLevels:REFLevel:ABSolute`` commands. This method is useful when precise
          values are required.
    """


class MeasurementReflevelsJittermode(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REFLevels:JITTERMODE`` command.

    Description:
        - This command sets or queries how often reference levels are calculated on Jitter
          measurements. If the mode is set to Latch, ref levels are calculated only on the first
          acquisition after a statistics reset. If it is set to Continuous, reference levels are
          calculated on every acquisition.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:JITTERMODE?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:REFLevels:JITTERMODE?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REFLevels:JITTERMODE value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REFLevels:JITTERMODE {CONTinuous|LATCh}
        - MEASUrement:REFLevels:JITTERMODE?
        ```

    Info:
        - ``CONTinuous`` specifies that reference levels are calculated on every acquisition.
        - ``LATCh`` specifies that reference levels are calculated only on the first acquisition
          after a statistics reset.
    """


class MeasurementReflevelsBasetop(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REFLevels:BASETop`` command.

    Description:
        - This command sets or queries the method used to calculate the TOP and BASE, used to
          calculate reference levels for the measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:BASETop?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:REFLevels:BASETop?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:REFLevels:BASETop value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:REFLevels:BASETop {AUTO|MINMax|MEANhistogram|MODEhistogram|EYEhistogram}
        - MEASUrement:REFLevels:BASETop?
        ```

    Info:
        - ``AUTO`` sets the base top method to AUTO.
        - ``MINMax`` sets the base top method to MINMax.
        - ``MEANhistogram`` sets the base top method to MEANhistogram.
        - ``MODEhistogram`` sets the base top method to MODEhistogram.
        - ``EYEhistogram`` sets the base top method to EYEhistogram.
    """


class MeasurementReflevelsAbsoluteType(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REFLevels:ABSolute:TYPE`` command.

    Description:
        - This command sets or queries the reference level type for the measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:ABSolute:TYPE?``
          query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:REFLevels:ABSolute:TYPE?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REFLevels:ABSolute:TYPE value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REFLevels:ABSolute:TYPE {SAME|UNIQue}
        - MEASUrement:REFLevels:ABSolute:TYPE?
        ```

    Info:
        - ``SAME`` specifies that the absolute levels are set the same.
        - ``UNIQue`` specifies that the absolute levels can be set independently.
    """


class MeasurementReflevelsAbsoluteRisemid(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REFLevels:ABSolute:RISEMid`` command.

    Description:
        - This command sets or queries the value used as the mid reference level of the rising edge
          when the measurement's ref level method is set to absolute.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:ABSolute:RISEMid?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REFLevels:ABSolute:RISEMid?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REFLevels:ABSolute:RISEMid value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REFLevels:ABSolute:RISEMid <NR3>
        - MEASUrement:REFLevels:ABSolute:RISEMid?
        ```

    Info:
        - ``<NR3>`` is the mid reference level of the rising edge.
    """


class MeasurementReflevelsAbsoluteRiselow(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REFLevels:ABSolute:RISELow`` command.

    Description:
        - This command sets or queries the value used as the low reference level of the rising edge
          when the measurement's ref level method is set to absolute.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:ABSolute:RISELow?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REFLevels:ABSolute:RISELow?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REFLevels:ABSolute:RISELow value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REFLevels:ABSolute:RISELow <NR3>
        - MEASUrement:REFLevels:ABSolute:RISELow?
        ```

    Info:
        - ``<NR3>`` is the value used as the low reference level of the rising edge.
    """


class MeasurementReflevelsAbsoluteRisehigh(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REFLevels:ABSolute:RISEHigh`` command.

    Description:
        - This command sets or queries the value used as the high reference level of the rising edge
          when the measurement's ref level method is set to absolute.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:ABSolute:RISEHigh?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REFLevels:ABSolute:RISEHigh?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REFLevels:ABSolute:RISEHigh value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REFLevels:ABSolute:RISEHigh <NR3>
        - MEASUrement:REFLevels:ABSolute:RISEHigh?
        ```

    Info:
        - ``<NR3>`` is the value used as the high reference level of the rising edge.
    """


class MeasurementReflevelsAbsoluteHysteresis(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REFLevels:ABSolute:HYSTeresis`` command.

    Description:
        - This command sets or queries the value of the hysteresis of the reference level when the
          measurement's ref level method is set to absolute.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:ABSolute:HYSTeresis?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REFLevels:ABSolute:HYSTeresis?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REFLevels:ABSolute:HYSTeresis value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REFLevels:ABSolute:HYSTeresis <NR3>
        - MEASUrement:REFLevels:ABSolute:HYSTeresis?
        ```

    Info:
        - ``<NR3>`` is the value of the hysteresis of the reference level.
    """


class MeasurementReflevelsAbsoluteFallmid(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REFLevels:ABSolute:FALLMid`` command.

    Description:
        - This command sets or queries the value used as the mid reference level of the falling edge
          when the measurement's ref level method is set to absolute.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:ABSolute:FALLMid?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REFLevels:ABSolute:FALLMid?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REFLevels:ABSolute:FALLMid value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REFLevels:ABSolute:FALLMid <NR3>
        - MEASUrement:REFLevels:ABSolute:FALLMid?
        ```

    Info:
        - ``<NR3>`` is the value used as the mid reference level of the falling edge.
    """


class MeasurementReflevelsAbsoluteFalllow(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REFLevels:ABSolute:FALLLow`` command.

    Description:
        - This command sets or queries the value used as the low reference level of the falling edge
          when the measurement's ref level method is set to absolute.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:ABSolute:FALLLow?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REFLevels:ABSolute:FALLLow?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REFLevels:ABSolute:FALLLow value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REFLevels:ABSolute:FALLLow <NR3>
        - MEASUrement:REFLevels:ABSolute:FALLLow?
        ```

    Info:
        - ``<NR3>`` is the value used as the low reference level of the falling edge.
    """


class MeasurementReflevelsAbsoluteFallhigh(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REFLevels:ABSolute:FALLHigh`` command.

    Description:
        - This command sets or queries the value used as the high reference level of the falling
          edge when the measurement's ref level method is set to absolute.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:ABSolute:FALLHigh?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REFLevels:ABSolute:FALLHigh?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REFLevels:ABSolute:FALLHigh value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REFLevels:ABSolute:FALLHigh <NR3>
        - MEASUrement:REFLevels:ABSolute:FALLHigh?
        ```

    Info:
        - ``<NR3>`` is the value used as the high reference level of the falling edge when the
          measurement's ref level method is set to absolute.
    """


#  pylint: disable=too-many-instance-attributes
class MeasurementReflevelsAbsolute(SCPICmdRead):
    """The ``MEASUrement:REFLevels:ABSolute`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:ABSolute?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:REFLevels:ABSolute?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.fallhigh``: The ``MEASUrement:REFLevels:ABSolute:FALLHigh`` command.
        - ``.falllow``: The ``MEASUrement:REFLevels:ABSolute:FALLLow`` command.
        - ``.fallmid``: The ``MEASUrement:REFLevels:ABSolute:FALLMid`` command.
        - ``.hysteresis``: The ``MEASUrement:REFLevels:ABSolute:HYSTeresis`` command.
        - ``.risehigh``: The ``MEASUrement:REFLevels:ABSolute:RISEHigh`` command.
        - ``.riselow``: The ``MEASUrement:REFLevels:ABSolute:RISELow`` command.
        - ``.risemid``: The ``MEASUrement:REFLevels:ABSolute:RISEMid`` command.
        - ``.type``: The ``MEASUrement:REFLevels:ABSolute:TYPE`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._fallhigh = MeasurementReflevelsAbsoluteFallhigh(
            device, f"{self._cmd_syntax}:FALLHigh"
        )
        self._falllow = MeasurementReflevelsAbsoluteFalllow(device, f"{self._cmd_syntax}:FALLLow")
        self._fallmid = MeasurementReflevelsAbsoluteFallmid(device, f"{self._cmd_syntax}:FALLMid")
        self._hysteresis = MeasurementReflevelsAbsoluteHysteresis(
            device, f"{self._cmd_syntax}:HYSTeresis"
        )
        self._risehigh = MeasurementReflevelsAbsoluteRisehigh(
            device, f"{self._cmd_syntax}:RISEHigh"
        )
        self._riselow = MeasurementReflevelsAbsoluteRiselow(device, f"{self._cmd_syntax}:RISELow")
        self._risemid = MeasurementReflevelsAbsoluteRisemid(device, f"{self._cmd_syntax}:RISEMid")
        self._type = MeasurementReflevelsAbsoluteType(device, f"{self._cmd_syntax}:TYPE")

    @property
    def fallhigh(self) -> MeasurementReflevelsAbsoluteFallhigh:
        """Return the ``MEASUrement:REFLevels:ABSolute:FALLHigh`` command.

        Description:
            - This command sets or queries the value used as the high reference level of the falling
              edge when the measurement's ref level method is set to absolute.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:REFLevels:ABSolute:FALLHigh?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REFLevels:ABSolute:FALLHigh?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REFLevels:ABSolute:FALLHigh value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REFLevels:ABSolute:FALLHigh <NR3>
            - MEASUrement:REFLevels:ABSolute:FALLHigh?
            ```

        Info:
            - ``<NR3>`` is the value used as the high reference level of the falling edge when the
              measurement's ref level method is set to absolute.
        """
        return self._fallhigh

    @property
    def falllow(self) -> MeasurementReflevelsAbsoluteFalllow:
        """Return the ``MEASUrement:REFLevels:ABSolute:FALLLow`` command.

        Description:
            - This command sets or queries the value used as the low reference level of the falling
              edge when the measurement's ref level method is set to absolute.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:REFLevels:ABSolute:FALLLow?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REFLevels:ABSolute:FALLLow?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REFLevels:ABSolute:FALLLow value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REFLevels:ABSolute:FALLLow <NR3>
            - MEASUrement:REFLevels:ABSolute:FALLLow?
            ```

        Info:
            - ``<NR3>`` is the value used as the low reference level of the falling edge.
        """
        return self._falllow

    @property
    def fallmid(self) -> MeasurementReflevelsAbsoluteFallmid:
        """Return the ``MEASUrement:REFLevels:ABSolute:FALLMid`` command.

        Description:
            - This command sets or queries the value used as the mid reference level of the falling
              edge when the measurement's ref level method is set to absolute.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:REFLevels:ABSolute:FALLMid?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REFLevels:ABSolute:FALLMid?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REFLevels:ABSolute:FALLMid value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REFLevels:ABSolute:FALLMid <NR3>
            - MEASUrement:REFLevels:ABSolute:FALLMid?
            ```

        Info:
            - ``<NR3>`` is the value used as the mid reference level of the falling edge.
        """
        return self._fallmid

    @property
    def hysteresis(self) -> MeasurementReflevelsAbsoluteHysteresis:
        """Return the ``MEASUrement:REFLevels:ABSolute:HYSTeresis`` command.

        Description:
            - This command sets or queries the value of the hysteresis of the reference level when
              the measurement's ref level method is set to absolute.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:REFLevels:ABSolute:HYSTeresis?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REFLevels:ABSolute:HYSTeresis?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REFLevels:ABSolute:HYSTeresis value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REFLevels:ABSolute:HYSTeresis <NR3>
            - MEASUrement:REFLevels:ABSolute:HYSTeresis?
            ```

        Info:
            - ``<NR3>`` is the value of the hysteresis of the reference level.
        """
        return self._hysteresis

    @property
    def risehigh(self) -> MeasurementReflevelsAbsoluteRisehigh:
        """Return the ``MEASUrement:REFLevels:ABSolute:RISEHigh`` command.

        Description:
            - This command sets or queries the value used as the high reference level of the rising
              edge when the measurement's ref level method is set to absolute.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:REFLevels:ABSolute:RISEHigh?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REFLevels:ABSolute:RISEHigh?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REFLevels:ABSolute:RISEHigh value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REFLevels:ABSolute:RISEHigh <NR3>
            - MEASUrement:REFLevels:ABSolute:RISEHigh?
            ```

        Info:
            - ``<NR3>`` is the value used as the high reference level of the rising edge.
        """
        return self._risehigh

    @property
    def riselow(self) -> MeasurementReflevelsAbsoluteRiselow:
        """Return the ``MEASUrement:REFLevels:ABSolute:RISELow`` command.

        Description:
            - This command sets or queries the value used as the low reference level of the rising
              edge when the measurement's ref level method is set to absolute.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:REFLevels:ABSolute:RISELow?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REFLevels:ABSolute:RISELow?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REFLevels:ABSolute:RISELow value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REFLevels:ABSolute:RISELow <NR3>
            - MEASUrement:REFLevels:ABSolute:RISELow?
            ```

        Info:
            - ``<NR3>`` is the value used as the low reference level of the rising edge.
        """
        return self._riselow

    @property
    def risemid(self) -> MeasurementReflevelsAbsoluteRisemid:
        """Return the ``MEASUrement:REFLevels:ABSolute:RISEMid`` command.

        Description:
            - This command sets or queries the value used as the mid reference level of the rising
              edge when the measurement's ref level method is set to absolute.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:REFLevels:ABSolute:RISEMid?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REFLevels:ABSolute:RISEMid?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REFLevels:ABSolute:RISEMid value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REFLevels:ABSolute:RISEMid <NR3>
            - MEASUrement:REFLevels:ABSolute:RISEMid?
            ```

        Info:
            - ``<NR3>`` is the mid reference level of the rising edge.
        """
        return self._risemid

    @property
    def type(self) -> MeasurementReflevelsAbsoluteType:
        """Return the ``MEASUrement:REFLevels:ABSolute:TYPE`` command.

        Description:
            - This command sets or queries the reference level type for the measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:ABSolute:TYPE?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REFLevels:ABSolute:TYPE?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REFLevels:ABSolute:TYPE value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REFLevels:ABSolute:TYPE {SAME|UNIQue}
            - MEASUrement:REFLevels:ABSolute:TYPE?
            ```

        Info:
            - ``SAME`` specifies that the absolute levels are set the same.
            - ``UNIQue`` specifies that the absolute levels can be set independently.
        """
        return self._type


class MeasurementReflevels(SCPICmdRead):
    """The ``MEASUrement:REFLevels`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REFLevels?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:REFLevels?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.absolute``: The ``MEASUrement:REFLevels:ABSolute`` command tree.
        - ``.basetop``: The ``MEASUrement:REFLevels:BASETop`` command.
        - ``.jittermode``: The ``MEASUrement:REFLevels:JITTERMODE`` command.
        - ``.method``: The ``MEASUrement:REFLevels:METHod`` command.
        - ``.mode``: The ``MEASUrement:REFLevels:MODE`` command.
        - ``.percent``: The ``MEASUrement:REFLevels:PERCent`` command tree.
        - ``.type``: The ``MEASUrement:REFLevels:TYPE`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._absolute = MeasurementReflevelsAbsolute(device, f"{self._cmd_syntax}:ABSolute")
        self._basetop = MeasurementReflevelsBasetop(device, f"{self._cmd_syntax}:BASETop")
        self._jittermode = MeasurementReflevelsJittermode(device, f"{self._cmd_syntax}:JITTERMODE")
        self._method = MeasurementReflevelsMethod(device, f"{self._cmd_syntax}:METHod")
        self._mode = MeasurementReflevelsMode(device, f"{self._cmd_syntax}:MODE")
        self._percent = MeasurementReflevelsPercent(device, f"{self._cmd_syntax}:PERCent")
        self._type = MeasurementReflevelsType(device, f"{self._cmd_syntax}:TYPE")

    @property
    def absolute(self) -> MeasurementReflevelsAbsolute:
        """Return the ``MEASUrement:REFLevels:ABSolute`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:ABSolute?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:REFLevels:ABSolute?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.fallhigh``: The ``MEASUrement:REFLevels:ABSolute:FALLHigh`` command.
            - ``.falllow``: The ``MEASUrement:REFLevels:ABSolute:FALLLow`` command.
            - ``.fallmid``: The ``MEASUrement:REFLevels:ABSolute:FALLMid`` command.
            - ``.hysteresis``: The ``MEASUrement:REFLevels:ABSolute:HYSTeresis`` command.
            - ``.risehigh``: The ``MEASUrement:REFLevels:ABSolute:RISEHigh`` command.
            - ``.riselow``: The ``MEASUrement:REFLevels:ABSolute:RISELow`` command.
            - ``.risemid``: The ``MEASUrement:REFLevels:ABSolute:RISEMid`` command.
            - ``.type``: The ``MEASUrement:REFLevels:ABSolute:TYPE`` command.
        """
        return self._absolute

    @property
    def basetop(self) -> MeasurementReflevelsBasetop:
        """Return the ``MEASUrement:REFLevels:BASETop`` command.

        Description:
            - This command sets or queries the method used to calculate the TOP and BASE, used to
              calculate reference levels for the measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:BASETop?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:REFLevels:BASETop?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REFLevels:BASETop value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REFLevels:BASETop {AUTO|MINMax|MEANhistogram|MODEhistogram|EYEhistogram}
            - MEASUrement:REFLevels:BASETop?
            ```

        Info:
            - ``AUTO`` sets the base top method to AUTO.
            - ``MINMax`` sets the base top method to MINMax.
            - ``MEANhistogram`` sets the base top method to MEANhistogram.
            - ``MODEhistogram`` sets the base top method to MODEhistogram.
            - ``EYEhistogram`` sets the base top method to EYEhistogram.
        """
        return self._basetop

    @property
    def jittermode(self) -> MeasurementReflevelsJittermode:
        """Return the ``MEASUrement:REFLevels:JITTERMODE`` command.

        Description:
            - This command sets or queries how often reference levels are calculated on Jitter
              measurements. If the mode is set to Latch, ref levels are calculated only on the first
              acquisition after a statistics reset. If it is set to Continuous, reference levels are
              calculated on every acquisition.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:JITTERMODE?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REFLevels:JITTERMODE?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REFLevels:JITTERMODE value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REFLevels:JITTERMODE {CONTinuous|LATCh}
            - MEASUrement:REFLevels:JITTERMODE?
            ```

        Info:
            - ``CONTinuous`` specifies that reference levels are calculated on every acquisition.
            - ``LATCh`` specifies that reference levels are calculated only on the first acquisition
              after a statistics reset.
        """
        return self._jittermode

    @property
    def method(self) -> MeasurementReflevelsMethod:
        """Return the ``MEASUrement:REFLevels:METHod`` command.

        Description:
            - This command sets or queries the method used to calculate reference levels for the
              measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:METHod?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:REFLevels:METHod?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REFLevels:METHod value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REFLevels:METHod {PERCent|ABSolute}
            - MEASUrement:REFLevels:METHod?
            ```

        Info:
            - ``PERCent`` specifies that the reference levels are calculated as a percent relative
              to HIGH and LOW. The percentages are defined using the
              ``MEASUrement:REFLevels:REFLevel:PERCent`` commands.
            - ``ABSolute`` specifies that the reference levels are set explicitly using the
              ``MEASUrement:REFLevels:REFLevel:ABSolute`` commands. This method is useful when
              precise values are required.
        """
        return self._method

    @property
    def mode(self) -> MeasurementReflevelsMode:
        """Return the ``MEASUrement:REFLevels:MODE`` command.

        Description:
            - This command sets or queries how often reference levels are calculated.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:MODE?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:REFLevels:MODE?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:REFLevels:MODE value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:REFLevels:MODE {LATCh|CONTinuous}
            - MEASUrement:REFLevels:MODE?
            ```

        Info:
            - ``LATCh`` calculates reference levels only on the first acquisition after a statistics
              reset.
            - ``CONTinuous`` calculates reference levels on every acquisition.
        """
        return self._mode

    @property
    def percent(self) -> MeasurementReflevelsPercent:
        """Return the ``MEASUrement:REFLevels:PERCent`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:PERCent?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:REFLevels:PERCent?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.fallhigh``: The ``MEASUrement:REFLevels:PERCent:FALLHigh`` command.
            - ``.falllow``: The ``MEASUrement:REFLevels:PERCent:FALLLow`` command.
            - ``.fallmid``: The ``MEASUrement:REFLevels:PERCent:FALLMid`` command.
            - ``.hysteresis``: The ``MEASUrement:REFLevels:PERCent:HYSTeresis`` command.
            - ``.risehigh``: The ``MEASUrement:REFLevels:PERCent:RISEHigh`` command.
            - ``.riselow``: The ``MEASUrement:REFLevels:PERCent:RISELow`` command.
            - ``.risemid``: The ``MEASUrement:REFLevels:PERCent:RISEMid`` command.
            - ``.type``: The ``MEASUrement:REFLevels:PERCent:TYPE`` command.
        """
        return self._percent

    @property
    def type(self) -> MeasurementReflevelsType:
        """Return the ``MEASUrement:REFLevels:TYPE`` command.

        Description:
            - This command sets or queries the shared reference level method used for sources of
              measurement calculations.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:REFLevels:TYPE?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:REFLevels:TYPE?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:REFLevels:TYPE value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:REFLevels:TYPE {GLOBal|PERSource}
            - MEASUrement:REFLevels:TYPE?
            ```

        Info:
            - ``GLOBal`` shares reference levels across measurements.
            - ``PERSource`` causes reference levels to be used on individual measurements.
        """
        return self._type


class MeasurementRefItemReflevelsPercentType(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REF<x>:REFLevels:PERCent:TYPE`` command.

    Description:
        - This command sets or queries the reference level percent type for the measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REF<x>:REFLevels:PERCent:TYPE?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:PERCent:TYPE?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:PERCent:TYPE value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REF<x>:REFLevels:PERCent:TYPE {TENNinety|TWENtyeighty|CUSTom}
        - MEASUrement:REF<x>:REFLevels:PERCent:TYPE?
        ```

    Info:
        - ``TENNinety`` sets the values for Low, Mid and High Ref to 10%, 50% and 90% respectively.
        - ``TWENtyeighty`` sets the values for Low, Mid and High Ref are set to 20%, 50% and 80%
          respectively.
        - ``CUSTom`` allows setting other reference level percents.
    """


class MeasurementRefItemReflevelsPercentRisemid(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REF<x>:REFLevels:PERCent:RISEMid`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the mid reference level of the rising edge when the measurement's
          ref level method is set to percent.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:REF<x>:REFLevels:PERCent:RISEMid?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:PERCent:RISEMid?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:PERCent:RISEMid value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REF<x>:REFLevels:PERCent:RISEMid <NR3>
        - MEASUrement:REF<x>:REFLevels:PERCent:RISEMid?
        ```

    Info:
        - ``<NR3>`` is the percentage used to calculate the mid reference level of the rising edge.
    """


class MeasurementRefItemReflevelsPercentRiselow(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REF<x>:REFLevels:PERCent:RISELow`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the low reference level of the rising edge when the measurement's
          ref level method is set to percent.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:REF<x>:REFLevels:PERCent:RISELow?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:PERCent:RISELow?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:PERCent:RISELow value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REF<x>:REFLevels:PERCent:RISELow <NR3>
        - MEASUrement:REF<x>:REFLevels:PERCent:RISELow?
        ```

    Info:
        - ``<NR3>`` is the percentage used to calculate the low reference level of the rising edge.
    """


class MeasurementRefItemReflevelsPercentRisehigh(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REF<x>:REFLevels:PERCent:RISEHigh`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the high reference level of the rising edge when the measurement's
          ref level method is set to percent.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:REF<x>:REFLevels:PERCent:RISEHigh?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:PERCent:RISEHigh?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:PERCent:RISEHigh value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REF<x>:REFLevels:PERCent:RISEHigh <NR3>
        - MEASUrement:REF<x>:REFLevels:PERCent:RISEHigh?
        ```

    Info:
        - ``<NR3>`` is the percentage used to calculate the high reference level of the rising edge.
    """


class MeasurementRefItemReflevelsPercentHysteresis(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REF<x>:REFLevels:PERCent:HYSTeresis`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to MAX and 1% is equal to
          MIN) used to calculate the hysteresis of the reference level when the measurement's ref
          level method is set to percent.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:REF<x>:REFLevels:PERCent:HYSTeresis?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:PERCent:HYSTeresis?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:PERCent:HYSTeresis value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REF<x>:REFLevels:PERCent:HYSTeresis <NR3>
        - MEASUrement:REF<x>:REFLevels:PERCent:HYSTeresis?
        ```

    Info:
        - ``<NR3>`` is the percentage used to calculate the hysteresis of the reference level.
    """


class MeasurementRefItemReflevelsPercentFallmid(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REF<x>:REFLevels:PERCent:FALLMid`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the mid reference level of the falling edge when the measurement's
          ref level method is set to percent.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:REF<x>:REFLevels:PERCent:FALLMid?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:PERCent:FALLMid?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:PERCent:FALLMid value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REF<x>:REFLevels:PERCent:FALLMid <NR3>
        - MEASUrement:REF<x>:REFLevels:PERCent:FALLMid?
        ```

    Info:
        - ``<NR3>`` is the percentage used to calculate the mid reference level of the falling edge.
    """


class MeasurementRefItemReflevelsPercentFalllow(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REF<x>:REFLevels:PERCent:FALLLow`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the low reference level of the falling edge when the measurement's
          ref level method is set to percent.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:REF<x>:REFLevels:PERCent:FALLLow?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:PERCent:FALLLow?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:PERCent:FALLLow value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REF<x>:REFLevels:PERCent:FALLLow <NR3>
        - MEASUrement:REF<x>:REFLevels:PERCent:FALLLow?
        ```

    Info:
        - ``<NR3>`` is the percentage used to calculate the low reference level.
    """


class MeasurementRefItemReflevelsPercentFallhigh(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REF<x>:REFLevels:PERCent:FALLHigh`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the high reference level of the falling edge when the
          measurement's ref level method is set to percent.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:REF<x>:REFLevels:PERCent:FALLHigh?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:PERCent:FALLHigh?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:PERCent:FALLHigh value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REF<x>:REFLevels:PERCent:FALLHigh <NR3>
        - MEASUrement:REF<x>:REFLevels:PERCent:FALLHigh?
        ```

    Info:
        - ``<NR3>`` is the percentage used to calculate the high reference level of the falling
          edge.
    """


#  pylint: disable=too-many-instance-attributes
class MeasurementRefItemReflevelsPercent(SCPICmdRead):
    """The ``MEASUrement:REF<x>:REFLevels:PERCent`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REF<x>:REFLevels:PERCent?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:PERCent?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.fallhigh``: The ``MEASUrement:REF<x>:REFLevels:PERCent:FALLHigh`` command.
        - ``.falllow``: The ``MEASUrement:REF<x>:REFLevels:PERCent:FALLLow`` command.
        - ``.fallmid``: The ``MEASUrement:REF<x>:REFLevels:PERCent:FALLMid`` command.
        - ``.hysteresis``: The ``MEASUrement:REF<x>:REFLevels:PERCent:HYSTeresis`` command.
        - ``.risehigh``: The ``MEASUrement:REF<x>:REFLevels:PERCent:RISEHigh`` command.
        - ``.riselow``: The ``MEASUrement:REF<x>:REFLevels:PERCent:RISELow`` command.
        - ``.risemid``: The ``MEASUrement:REF<x>:REFLevels:PERCent:RISEMid`` command.
        - ``.type``: The ``MEASUrement:REF<x>:REFLevels:PERCent:TYPE`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._fallhigh = MeasurementRefItemReflevelsPercentFallhigh(
            device, f"{self._cmd_syntax}:FALLHigh"
        )
        self._falllow = MeasurementRefItemReflevelsPercentFalllow(
            device, f"{self._cmd_syntax}:FALLLow"
        )
        self._fallmid = MeasurementRefItemReflevelsPercentFallmid(
            device, f"{self._cmd_syntax}:FALLMid"
        )
        self._hysteresis = MeasurementRefItemReflevelsPercentHysteresis(
            device, f"{self._cmd_syntax}:HYSTeresis"
        )
        self._risehigh = MeasurementRefItemReflevelsPercentRisehigh(
            device, f"{self._cmd_syntax}:RISEHigh"
        )
        self._riselow = MeasurementRefItemReflevelsPercentRiselow(
            device, f"{self._cmd_syntax}:RISELow"
        )
        self._risemid = MeasurementRefItemReflevelsPercentRisemid(
            device, f"{self._cmd_syntax}:RISEMid"
        )
        self._type = MeasurementRefItemReflevelsPercentType(device, f"{self._cmd_syntax}:TYPE")

    @property
    def fallhigh(self) -> MeasurementRefItemReflevelsPercentFallhigh:
        """Return the ``MEASUrement:REF<x>:REFLevels:PERCent:FALLHigh`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the high reference level of the falling edge when the
              measurement's ref level method is set to percent.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:REF<x>:REFLevels:PERCent:FALLHigh?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:PERCent:FALLHigh?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:PERCent:FALLHigh value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REF<x>:REFLevels:PERCent:FALLHigh <NR3>
            - MEASUrement:REF<x>:REFLevels:PERCent:FALLHigh?
            ```

        Info:
            - ``<NR3>`` is the percentage used to calculate the high reference level of the falling
              edge.
        """
        return self._fallhigh

    @property
    def falllow(self) -> MeasurementRefItemReflevelsPercentFalllow:
        """Return the ``MEASUrement:REF<x>:REFLevels:PERCent:FALLLow`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the low reference level of the falling edge when the
              measurement's ref level method is set to percent.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:REF<x>:REFLevels:PERCent:FALLLow?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:PERCent:FALLLow?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:PERCent:FALLLow value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REF<x>:REFLevels:PERCent:FALLLow <NR3>
            - MEASUrement:REF<x>:REFLevels:PERCent:FALLLow?
            ```

        Info:
            - ``<NR3>`` is the percentage used to calculate the low reference level.
        """
        return self._falllow

    @property
    def fallmid(self) -> MeasurementRefItemReflevelsPercentFallmid:
        """Return the ``MEASUrement:REF<x>:REFLevels:PERCent:FALLMid`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the mid reference level of the falling edge when the
              measurement's ref level method is set to percent.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:REF<x>:REFLevels:PERCent:FALLMid?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:PERCent:FALLMid?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:PERCent:FALLMid value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REF<x>:REFLevels:PERCent:FALLMid <NR3>
            - MEASUrement:REF<x>:REFLevels:PERCent:FALLMid?
            ```

        Info:
            - ``<NR3>`` is the percentage used to calculate the mid reference level of the falling
              edge.
        """
        return self._fallmid

    @property
    def hysteresis(self) -> MeasurementRefItemReflevelsPercentHysteresis:
        """Return the ``MEASUrement:REF<x>:REFLevels:PERCent:HYSTeresis`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to MAX and 1% is equal
              to MIN) used to calculate the hysteresis of the reference level when the measurement's
              ref level method is set to percent.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:REF<x>:REFLevels:PERCent:HYSTeresis?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:PERCent:HYSTeresis?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:PERCent:HYSTeresis value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REF<x>:REFLevels:PERCent:HYSTeresis <NR3>
            - MEASUrement:REF<x>:REFLevels:PERCent:HYSTeresis?
            ```

        Info:
            - ``<NR3>`` is the percentage used to calculate the hysteresis of the reference level.
        """
        return self._hysteresis

    @property
    def risehigh(self) -> MeasurementRefItemReflevelsPercentRisehigh:
        """Return the ``MEASUrement:REF<x>:REFLevels:PERCent:RISEHigh`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the high reference level of the rising edge when the
              measurement's ref level method is set to percent.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:REF<x>:REFLevels:PERCent:RISEHigh?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:PERCent:RISEHigh?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:PERCent:RISEHigh value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REF<x>:REFLevels:PERCent:RISEHigh <NR3>
            - MEASUrement:REF<x>:REFLevels:PERCent:RISEHigh?
            ```

        Info:
            - ``<NR3>`` is the percentage used to calculate the high reference level of the rising
              edge.
        """
        return self._risehigh

    @property
    def riselow(self) -> MeasurementRefItemReflevelsPercentRiselow:
        """Return the ``MEASUrement:REF<x>:REFLevels:PERCent:RISELow`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the low reference level of the rising edge when the
              measurement's ref level method is set to percent.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:REF<x>:REFLevels:PERCent:RISELow?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:PERCent:RISELow?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:PERCent:RISELow value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REF<x>:REFLevels:PERCent:RISELow <NR3>
            - MEASUrement:REF<x>:REFLevels:PERCent:RISELow?
            ```

        Info:
            - ``<NR3>`` is the percentage used to calculate the low reference level of the rising
              edge.
        """
        return self._riselow

    @property
    def risemid(self) -> MeasurementRefItemReflevelsPercentRisemid:
        """Return the ``MEASUrement:REF<x>:REFLevels:PERCent:RISEMid`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the mid reference level of the rising edge when the
              measurement's ref level method is set to percent.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:REF<x>:REFLevels:PERCent:RISEMid?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:PERCent:RISEMid?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:PERCent:RISEMid value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REF<x>:REFLevels:PERCent:RISEMid <NR3>
            - MEASUrement:REF<x>:REFLevels:PERCent:RISEMid?
            ```

        Info:
            - ``<NR3>`` is the percentage used to calculate the mid reference level of the rising
              edge.
        """
        return self._risemid

    @property
    def type(self) -> MeasurementRefItemReflevelsPercentType:
        """Return the ``MEASUrement:REF<x>:REFLevels:PERCent:TYPE`` command.

        Description:
            - This command sets or queries the reference level percent type for the measurement.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:REF<x>:REFLevels:PERCent:TYPE?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:PERCent:TYPE?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:PERCent:TYPE value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REF<x>:REFLevels:PERCent:TYPE {TENNinety|TWENtyeighty|CUSTom}
            - MEASUrement:REF<x>:REFLevels:PERCent:TYPE?
            ```

        Info:
            - ``TENNinety`` sets the values for Low, Mid and High Ref to 10%, 50% and 90%
              respectively.
            - ``TWENtyeighty`` sets the values for Low, Mid and High Ref are set to 20%, 50% and 80%
              respectively.
            - ``CUSTom`` allows setting other reference level percents.
        """
        return self._type


class MeasurementRefItemReflevelsMethod(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REF<x>:REFLevels:METHod`` command.

    Description:
        - This command sets or queries the method used to calculate reference levels for the
          measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REF<x>:REFLevels:METHod?``
          query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:REF<x>:REFLevels:METHod?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:METHod value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REF<x>:REFLevels:METHod {PERCent|ABSolute}
        - MEASUrement:REF<x>:REFLevels:METHod?
        ```

    Info:
        - ``PERCent`` specifies that the reference levels are calculated as a percent relative to
          HIGH and LOW. The percentages are defined using the
          ``MEASUrement:REF<x>:REFLevel:PERCent`` commands.
        - ``ABSolute`` specifies that the reference levels are set explicitly using the
          ``MEASUrement:REF<x>:REFLevel:ABSolute`` commands. This method is useful when precise
          values are required.
    """


class MeasurementRefItemReflevelsBasetop(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REF<x>:REFLevels:BASETop`` command.

    Description:
        - This command sets or queries the method used to calculate the TOP and BASE, used to
          calculate reference levels for the measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REF<x>:REFLevels:BASETop?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:BASETop?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:BASETop value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REF<x>:REFLevels:BASETop {AUTO|MINMax|MEANhistogram|MODEhistogram|EYEhistogram}
        - MEASUrement:REF<x>:REFLevels:BASETop?
        ```

    Info:
        - ``AUTO`` automatically chooses a reference level method.
        - ``MINMax`` specifies that reference levels are relative to the measurement MIN and MAX.
        - ``MEANhistogram`` specifies that reference levels are relative to the histogram mean BASE
          and TOP.
        - ``MODEhistogram`` specifies that reference levels are relative to the histogram mode BASE
          and TOP.
        - ``EYEhistogram`` specifies that reverence levels are relative to the eye histogram BASE
          and TOP.
    """  # noqa: E501


class MeasurementRefItemReflevelsAbsoluteType(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REF<x>:REFLevels:ABSolute:TYPE`` command.

    Description:
        - This command sets or queries the reference level type for the measurement.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:REF<x>:REFLevels:ABSolute:TYPE?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:ABSolute:TYPE?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:ABSolute:TYPE value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REF<x>:REFLevels:ABSolute:TYPE {SAME|UNIQue}
        - MEASUrement:REF<x>:REFLevels:ABSolute:TYPE?
        ```

    Info:
        - ``SAME`` specifies that the absolute levels are set the same.
        - ``UNIQue`` specifies that the absolute levels can be set independently.
    """


class MeasurementRefItemReflevelsAbsoluteRisemid(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REF<x>:REFLevels:ABSolute:RISEMid`` command.

    Description:
        - This command sets or queries the value used as the mid reference level of the rising edge
          when the measurement's ref level method is set to absolute.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:REF<x>:REFLevels:ABSolute:RISEMid?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:ABSolute:RISEMid?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:ABSolute:RISEMid value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REF<x>:REFLevels:ABSolute:RISEMid <NR3>
        - MEASUrement:REF<x>:REFLevels:ABSolute:RISEMid?
        ```

    Info:
        - ``<NR3>`` is the value used as the mid reference level of the rising edge when the
          measurement's ref level method is set to absolute.
    """


class MeasurementRefItemReflevelsAbsoluteRiselow(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REF<x>:REFLevels:ABSolute:RISELow`` command.

    Description:
        - This command sets or queries the value used as the low reference level of the rising edge
          when the measurement's ref level method is set to absolute.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:REF<x>:REFLevels:ABSolute:RISELow?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:ABSolute:RISELow?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:ABSolute:RISELow value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REF<x>:REFLevels:ABSolute:RISELow <NR3>
        - MEASUrement:REF<x>:REFLevels:ABSolute:RISELow?
        ```

    Info:
        - ``<NR3>`` is the value used as the low reference level of the rising edge when the
          measurement's ref level method is set to absolute.
    """


class MeasurementRefItemReflevelsAbsoluteRisehigh(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REF<x>:REFLevels:ABSolute:RISEHigh`` command.

    Description:
        - This command sets or queries the value used as the high reference level of the rising edge
          when the measurement's ref level method is set to absolute.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:REF<x>:REFLevels:ABSolute:RISEHigh?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:ABSolute:RISEHigh?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:ABSolute:RISEHigh value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REF<x>:REFLevels:ABSolute:RISEHigh <NR3>
        - MEASUrement:REF<x>:REFLevels:ABSolute:RISEHigh?
        ```

    Info:
        - ``<NR3>`` is the value used as the high reference level of the rising edge when the
          measurement's ref level method is set to absolute.
    """


class MeasurementRefItemReflevelsAbsoluteHysteresis(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REF<x>:REFLevels:ABSolute:HYSTeresis`` command.

    Description:
        - This command sets or queries the value of the hysteresis of the reference level when the
          measurement's ref level method is set to absolute.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:REF<x>:REFLevels:ABSolute:HYSTeresis?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:ABSolute:HYSTeresis?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:ABSolute:HYSTeresis value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REF<x>:REFLevels:ABSolute:HYSTeresis <NR3>
        - MEASUrement:REF<x>:REFLevels:ABSolute:HYSTeresis?
        ```

    Info:
        - ``<NR3>`` is the value of the hysteresis of the reference level when the measurement's ref
          level method is set to absolute.
    """


class MeasurementRefItemReflevelsAbsoluteFallmid(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLMid`` command.

    Description:
        - This command sets or queries the value used as the mid reference level of the falling edge
          when the measurement's ref level method is set to absolute.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLMid?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLMid?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLMid value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REF<x>:REFLevels:ABSolute:FALLMid <NR3>
        - MEASUrement:REF<x>:REFLevels:ABSolute:FALLMid?
        ```

    Info:
        - ``<NR3>`` is the value used as the mid reference level of the falling edge when the
          measurement's ref level method is set to absolute.
    """


class MeasurementRefItemReflevelsAbsoluteFalllow(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLLow`` command.

    Description:
        - This command sets or queries the value used as the low reference level of the falling edge
          when the measurement's ref level method is set to absolute.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLLow?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLLow?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLLow value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REF<x>:REFLevels:ABSolute:FALLLow <NR3>
        - MEASUrement:REF<x>:REFLevels:ABSolute:FALLLow?
        ```

    Info:
        - ``<NR3>`` is the value used as the low reference level of the falling edge when the
          measurement's ref level method is set to absolute.
    """


class MeasurementRefItemReflevelsAbsoluteFallhigh(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLHigh`` command.

    Description:
        - This command sets or queries the value used as the high reference level of the falling
          edge when the measurement's ref level method is set to absolute.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLHigh?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLHigh?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLHigh value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:REF<x>:REFLevels:ABSolute:FALLHigh <NR3>
        - MEASUrement:REF<x>:REFLevels:ABSolute:FALLHigh?
        ```

    Info:
        - ``<NR3>`` is the value used as the high reference level of the falling edge when the
          measurement's ref level method is set to absolute.
    """


#  pylint: disable=too-many-instance-attributes
class MeasurementRefItemReflevelsAbsolute(SCPICmdRead):
    """The ``MEASUrement:REF<x>:REFLevels:ABSolute`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REF<x>:REFLevels:ABSolute?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:REF<x>:REFLevels:ABSolute?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.fallhigh``: The ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLHigh`` command.
        - ``.falllow``: The ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLLow`` command.
        - ``.fallmid``: The ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLMid`` command.
        - ``.hysteresis``: The ``MEASUrement:REF<x>:REFLevels:ABSolute:HYSTeresis`` command.
        - ``.risehigh``: The ``MEASUrement:REF<x>:REFLevels:ABSolute:RISEHigh`` command.
        - ``.riselow``: The ``MEASUrement:REF<x>:REFLevels:ABSolute:RISELow`` command.
        - ``.risemid``: The ``MEASUrement:REF<x>:REFLevels:ABSolute:RISEMid`` command.
        - ``.type``: The ``MEASUrement:REF<x>:REFLevels:ABSolute:TYPE`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._fallhigh = MeasurementRefItemReflevelsAbsoluteFallhigh(
            device, f"{self._cmd_syntax}:FALLHigh"
        )
        self._falllow = MeasurementRefItemReflevelsAbsoluteFalllow(
            device, f"{self._cmd_syntax}:FALLLow"
        )
        self._fallmid = MeasurementRefItemReflevelsAbsoluteFallmid(
            device, f"{self._cmd_syntax}:FALLMid"
        )
        self._hysteresis = MeasurementRefItemReflevelsAbsoluteHysteresis(
            device, f"{self._cmd_syntax}:HYSTeresis"
        )
        self._risehigh = MeasurementRefItemReflevelsAbsoluteRisehigh(
            device, f"{self._cmd_syntax}:RISEHigh"
        )
        self._riselow = MeasurementRefItemReflevelsAbsoluteRiselow(
            device, f"{self._cmd_syntax}:RISELow"
        )
        self._risemid = MeasurementRefItemReflevelsAbsoluteRisemid(
            device, f"{self._cmd_syntax}:RISEMid"
        )
        self._type = MeasurementRefItemReflevelsAbsoluteType(device, f"{self._cmd_syntax}:TYPE")

    @property
    def fallhigh(self) -> MeasurementRefItemReflevelsAbsoluteFallhigh:
        """Return the ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLHigh`` command.

        Description:
            - This command sets or queries the value used as the high reference level of the falling
              edge when the measurement's ref level method is set to absolute.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLHigh?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLHigh?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLHigh value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REF<x>:REFLevels:ABSolute:FALLHigh <NR3>
            - MEASUrement:REF<x>:REFLevels:ABSolute:FALLHigh?
            ```

        Info:
            - ``<NR3>`` is the value used as the high reference level of the falling edge when the
              measurement's ref level method is set to absolute.
        """
        return self._fallhigh

    @property
    def falllow(self) -> MeasurementRefItemReflevelsAbsoluteFalllow:
        """Return the ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLLow`` command.

        Description:
            - This command sets or queries the value used as the low reference level of the falling
              edge when the measurement's ref level method is set to absolute.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLLow?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLLow?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLLow value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REF<x>:REFLevels:ABSolute:FALLLow <NR3>
            - MEASUrement:REF<x>:REFLevels:ABSolute:FALLLow?
            ```

        Info:
            - ``<NR3>`` is the value used as the low reference level of the falling edge when the
              measurement's ref level method is set to absolute.
        """
        return self._falllow

    @property
    def fallmid(self) -> MeasurementRefItemReflevelsAbsoluteFallmid:
        """Return the ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLMid`` command.

        Description:
            - This command sets or queries the value used as the mid reference level of the falling
              edge when the measurement's ref level method is set to absolute.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLMid?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLMid?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLMid value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REF<x>:REFLevels:ABSolute:FALLMid <NR3>
            - MEASUrement:REF<x>:REFLevels:ABSolute:FALLMid?
            ```

        Info:
            - ``<NR3>`` is the value used as the mid reference level of the falling edge when the
              measurement's ref level method is set to absolute.
        """
        return self._fallmid

    @property
    def hysteresis(self) -> MeasurementRefItemReflevelsAbsoluteHysteresis:
        """Return the ``MEASUrement:REF<x>:REFLevels:ABSolute:HYSTeresis`` command.

        Description:
            - This command sets or queries the value of the hysteresis of the reference level when
              the measurement's ref level method is set to absolute.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:REF<x>:REFLevels:ABSolute:HYSTeresis?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:ABSolute:HYSTeresis?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:ABSolute:HYSTeresis value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REF<x>:REFLevels:ABSolute:HYSTeresis <NR3>
            - MEASUrement:REF<x>:REFLevels:ABSolute:HYSTeresis?
            ```

        Info:
            - ``<NR3>`` is the value of the hysteresis of the reference level when the measurement's
              ref level method is set to absolute.
        """
        return self._hysteresis

    @property
    def risehigh(self) -> MeasurementRefItemReflevelsAbsoluteRisehigh:
        """Return the ``MEASUrement:REF<x>:REFLevels:ABSolute:RISEHigh`` command.

        Description:
            - This command sets or queries the value used as the high reference level of the rising
              edge when the measurement's ref level method is set to absolute.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:REF<x>:REFLevels:ABSolute:RISEHigh?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:ABSolute:RISEHigh?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:ABSolute:RISEHigh value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REF<x>:REFLevels:ABSolute:RISEHigh <NR3>
            - MEASUrement:REF<x>:REFLevels:ABSolute:RISEHigh?
            ```

        Info:
            - ``<NR3>`` is the value used as the high reference level of the rising edge when the
              measurement's ref level method is set to absolute.
        """
        return self._risehigh

    @property
    def riselow(self) -> MeasurementRefItemReflevelsAbsoluteRiselow:
        """Return the ``MEASUrement:REF<x>:REFLevels:ABSolute:RISELow`` command.

        Description:
            - This command sets or queries the value used as the low reference level of the rising
              edge when the measurement's ref level method is set to absolute.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:REF<x>:REFLevels:ABSolute:RISELow?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:ABSolute:RISELow?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:ABSolute:RISELow value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REF<x>:REFLevels:ABSolute:RISELow <NR3>
            - MEASUrement:REF<x>:REFLevels:ABSolute:RISELow?
            ```

        Info:
            - ``<NR3>`` is the value used as the low reference level of the rising edge when the
              measurement's ref level method is set to absolute.
        """
        return self._riselow

    @property
    def risemid(self) -> MeasurementRefItemReflevelsAbsoluteRisemid:
        """Return the ``MEASUrement:REF<x>:REFLevels:ABSolute:RISEMid`` command.

        Description:
            - This command sets or queries the value used as the mid reference level of the rising
              edge when the measurement's ref level method is set to absolute.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:REF<x>:REFLevels:ABSolute:RISEMid?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:ABSolute:RISEMid?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:ABSolute:RISEMid value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REF<x>:REFLevels:ABSolute:RISEMid <NR3>
            - MEASUrement:REF<x>:REFLevels:ABSolute:RISEMid?
            ```

        Info:
            - ``<NR3>`` is the value used as the mid reference level of the rising edge when the
              measurement's ref level method is set to absolute.
        """
        return self._risemid

    @property
    def type(self) -> MeasurementRefItemReflevelsAbsoluteType:
        """Return the ``MEASUrement:REF<x>:REFLevels:ABSolute:TYPE`` command.

        Description:
            - This command sets or queries the reference level type for the measurement.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:REF<x>:REFLevels:ABSolute:TYPE?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:ABSolute:TYPE?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:ABSolute:TYPE value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REF<x>:REFLevels:ABSolute:TYPE {SAME|UNIQue}
            - MEASUrement:REF<x>:REFLevels:ABSolute:TYPE?
            ```

        Info:
            - ``SAME`` specifies that the absolute levels are set the same.
            - ``UNIQue`` specifies that the absolute levels can be set independently.
        """
        return self._type


class MeasurementRefItemReflevels(SCPICmdRead):
    """The ``MEASUrement:REF<x>:REFLevels`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REF<x>:REFLevels?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:REF<x>:REFLevels?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.absolute``: The ``MEASUrement:REF<x>:REFLevels:ABSolute`` command tree.
        - ``.basetop``: The ``MEASUrement:REF<x>:REFLevels:BASETop`` command.
        - ``.method``: The ``MEASUrement:REF<x>:REFLevels:METHod`` command.
        - ``.percent``: The ``MEASUrement:REF<x>:REFLevels:PERCent`` command tree.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._absolute = MeasurementRefItemReflevelsAbsolute(device, f"{self._cmd_syntax}:ABSolute")
        self._basetop = MeasurementRefItemReflevelsBasetop(device, f"{self._cmd_syntax}:BASETop")
        self._method = MeasurementRefItemReflevelsMethod(device, f"{self._cmd_syntax}:METHod")
        self._percent = MeasurementRefItemReflevelsPercent(device, f"{self._cmd_syntax}:PERCent")

    @property
    def absolute(self) -> MeasurementRefItemReflevelsAbsolute:
        """Return the ``MEASUrement:REF<x>:REFLevels:ABSolute`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:REF<x>:REFLevels:ABSolute?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:ABSolute?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.fallhigh``: The ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLHigh`` command.
            - ``.falllow``: The ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLLow`` command.
            - ``.fallmid``: The ``MEASUrement:REF<x>:REFLevels:ABSolute:FALLMid`` command.
            - ``.hysteresis``: The ``MEASUrement:REF<x>:REFLevels:ABSolute:HYSTeresis`` command.
            - ``.risehigh``: The ``MEASUrement:REF<x>:REFLevels:ABSolute:RISEHigh`` command.
            - ``.riselow``: The ``MEASUrement:REF<x>:REFLevels:ABSolute:RISELow`` command.
            - ``.risemid``: The ``MEASUrement:REF<x>:REFLevels:ABSolute:RISEMid`` command.
            - ``.type``: The ``MEASUrement:REF<x>:REFLevels:ABSolute:TYPE`` command.
        """
        return self._absolute

    @property
    def basetop(self) -> MeasurementRefItemReflevelsBasetop:
        """Return the ``MEASUrement:REF<x>:REFLevels:BASETop`` command.

        Description:
            - This command sets or queries the method used to calculate the TOP and BASE, used to
              calculate reference levels for the measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:REF<x>:REFLevels:BASETop?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:BASETop?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:BASETop value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REF<x>:REFLevels:BASETop {AUTO|MINMax|MEANhistogram|MODEhistogram|EYEhistogram}
            - MEASUrement:REF<x>:REFLevels:BASETop?
            ```

        Info:
            - ``AUTO`` automatically chooses a reference level method.
            - ``MINMax`` specifies that reference levels are relative to the measurement MIN and
              MAX.
            - ``MEANhistogram`` specifies that reference levels are relative to the histogram mean
              BASE and TOP.
            - ``MODEhistogram`` specifies that reference levels are relative to the histogram mode
              BASE and TOP.
            - ``EYEhistogram`` specifies that reverence levels are relative to the eye histogram
              BASE and TOP.
        """  # noqa: E501
        return self._basetop

    @property
    def method(self) -> MeasurementRefItemReflevelsMethod:
        """Return the ``MEASUrement:REF<x>:REFLevels:METHod`` command.

        Description:
            - This command sets or queries the method used to calculate reference levels for the
              measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:REF<x>:REFLevels:METHod?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:METHod?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:METHod value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:REF<x>:REFLevels:METHod {PERCent|ABSolute}
            - MEASUrement:REF<x>:REFLevels:METHod?
            ```

        Info:
            - ``PERCent`` specifies that the reference levels are calculated as a percent relative
              to HIGH and LOW. The percentages are defined using the
              ``MEASUrement:REF<x>:REFLevel:PERCent`` commands.
            - ``ABSolute`` specifies that the reference levels are set explicitly using the
              ``MEASUrement:REF<x>:REFLevel:ABSolute`` commands. This method is useful when precise
              values are required.
        """
        return self._method

    @property
    def percent(self) -> MeasurementRefItemReflevelsPercent:
        """Return the ``MEASUrement:REF<x>:REFLevels:PERCent`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:REF<x>:REFLevels:PERCent?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:REF<x>:REFLevels:PERCent?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.fallhigh``: The ``MEASUrement:REF<x>:REFLevels:PERCent:FALLHigh`` command.
            - ``.falllow``: The ``MEASUrement:REF<x>:REFLevels:PERCent:FALLLow`` command.
            - ``.fallmid``: The ``MEASUrement:REF<x>:REFLevels:PERCent:FALLMid`` command.
            - ``.hysteresis``: The ``MEASUrement:REF<x>:REFLevels:PERCent:HYSTeresis`` command.
            - ``.risehigh``: The ``MEASUrement:REF<x>:REFLevels:PERCent:RISEHigh`` command.
            - ``.riselow``: The ``MEASUrement:REF<x>:REFLevels:PERCent:RISELow`` command.
            - ``.risemid``: The ``MEASUrement:REF<x>:REFLevels:PERCent:RISEMid`` command.
            - ``.type``: The ``MEASUrement:REF<x>:REFLevels:PERCent:TYPE`` command.
        """
        return self._percent


class MeasurementRefItem(ValidatedDynamicNumberCmd, SCPICmdRead):
    """The ``MEASUrement:REF<x>`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:REF<x>?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:REF<x>?`` query and raise
          an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.reflevels``: The ``MEASUrement:REF<x>:REFLevels`` command tree.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._reflevels = MeasurementRefItemReflevels(device, f"{self._cmd_syntax}:REFLevels")

    @property
    def reflevels(self) -> MeasurementRefItemReflevels:
        """Return the ``MEASUrement:REF<x>:REFLevels`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:REF<x>:REFLevels?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:REF<x>:REFLevels?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.absolute``: The ``MEASUrement:REF<x>:REFLevels:ABSolute`` command tree.
            - ``.basetop``: The ``MEASUrement:REF<x>:REFLevels:BASETop`` command.
            - ``.method``: The ``MEASUrement:REF<x>:REFLevels:METHod`` command.
            - ``.percent``: The ``MEASUrement:REF<x>:REFLevels:PERCent`` command tree.
        """
        return self._reflevels


class MeasurementPopulationLimitValue(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:POPUlation:LIMIT:VALue`` command.

    Description:
        - This command sets or queries the global population limit value for the measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:POPUlation:LIMIT:VALue?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:POPUlation:LIMIT:VALue?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:POPUlation:LIMIT:VALue value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:POPUlation:LIMIT:VALue <NR1>
        - MEASUrement:POPUlation:LIMIT:VALue?
        ```

    Info:
        - ``<NR1>`` is the current limit value.
    """


class MeasurementPopulationLimitState(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:POPUlation:LIMIT:STATE`` command.

    Description:
        - This command sets or queries the global population limit state for the measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:POPUlation:LIMIT:STATE?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:POPUlation:LIMIT:STATE?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:POPUlation:LIMIT:STATE value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:POPUlation:LIMIT:STATE {OFF|ON|0|1 }
        - MEASUrement:POPUlation:LIMIT:STATE?
        ```

    Info:
        - ``OFF`` turns off the population limit.
        - ``ON`` turns on the population limit.
        - ``0`` turns off the population limit.
        - ``1`` turns on the population limit.
    """


class MeasurementPopulationLimit(SCPICmdRead):
    """The ``MEASUrement:POPUlation:LIMIT`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:POPUlation:LIMIT?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:POPUlation:LIMIT?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.state``: The ``MEASUrement:POPUlation:LIMIT:STATE`` command.
        - ``.value``: The ``MEASUrement:POPUlation:LIMIT:VALue`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._state = MeasurementPopulationLimitState(device, f"{self._cmd_syntax}:STATE")
        self._value = MeasurementPopulationLimitValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def state(self) -> MeasurementPopulationLimitState:
        """Return the ``MEASUrement:POPUlation:LIMIT:STATE`` command.

        Description:
            - This command sets or queries the global population limit state for the measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:POPUlation:LIMIT:STATE?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:POPUlation:LIMIT:STATE?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:POPUlation:LIMIT:STATE value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:POPUlation:LIMIT:STATE {OFF|ON|0|1 }
            - MEASUrement:POPUlation:LIMIT:STATE?
            ```

        Info:
            - ``OFF`` turns off the population limit.
            - ``ON`` turns on the population limit.
            - ``0`` turns off the population limit.
            - ``1`` turns on the population limit.
        """
        return self._state

    @property
    def value(self) -> MeasurementPopulationLimitValue:
        """Return the ``MEASUrement:POPUlation:LIMIT:VALue`` command.

        Description:
            - This command sets or queries the global population limit value for the measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:POPUlation:LIMIT:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:POPUlation:LIMIT:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:POPUlation:LIMIT:VALue value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:POPUlation:LIMIT:VALue <NR1>
            - MEASUrement:POPUlation:LIMIT:VALue?
            ```

        Info:
            - ``<NR1>`` is the current limit value.
        """
        return self._value


class MeasurementPopulation(SCPICmdRead):
    """The ``MEASUrement:POPUlation`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:POPUlation?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:POPUlation?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.limit``: The ``MEASUrement:POPUlation:LIMIT`` command tree.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._limit = MeasurementPopulationLimit(device, f"{self._cmd_syntax}:LIMIT")

    @property
    def limit(self) -> MeasurementPopulationLimit:
        """Return the ``MEASUrement:POPUlation:LIMIT`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:POPUlation:LIMIT?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:POPUlation:LIMIT?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.state``: The ``MEASUrement:POPUlation:LIMIT:STATE`` command.
            - ``.value``: The ``MEASUrement:POPUlation:LIMIT:VALue`` command.
        """
        return self._limit


class MeasurementMinui(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MINUI`` command.

    Description:
        - This command sets or queries the minimum number of unit intervals required for BUJ
          analysis.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MINUI?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MINUI?`` query and raise
          an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MINUI value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MINUI <NR3>
        - MEASUrement:MINUI?
        ```

    Info:
        - ``<NR3>`` is the minimum number of unit intervals required for BUJ analysis.
    """


class MeasurementMechStype(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MECH:STYPe`` command.

    Description:
        - This command sets or queries the measurement sensor type.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MECH:STYPe?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MECH:STYPe?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MECH:STYPe value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MECH:STYPe {HSENSOR|QEI|RESOLVER}
        - MEASUrement:MECH:STYPe?
        ```

    Info:
        - ``HSENSOR`` specifies the sensor type as HSENSOR.
        - ``QEI`` specifies the sensor type as QEI.
        - ``RESOLVER`` specifies the sensor type as RESOLVER.
    """


class MeasurementMechSource1(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MECH:SOUrce1`` command.

    Description:
        - This command sets or queries the global mechanical source of the specified source number.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MECH:SOUrce1?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MECH:SOUrce1?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MECH:SOUrce1 value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MECH:SOUrce1 {CH<x>|MATH<x>|REF<x>|CH<x>_D<x>}
        - MEASUrement:MECH:SOUrce1?
        ```

    Info:
        - ``CH<x>`` specifies an analog channel as the source waveform.
        - ``MATH<x>`` specifies a math waveform as the source waveform.
        - ``REF<x>`` specifies an reference waveform as the source waveform.
        - ``CH<x>_D<x>`` specifies a digital channel as the source waveform.
    """


class MeasurementMechPprotation(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MECH:PPRotation`` command.

    Description:
        - This command sets or queries the global pulses per rotation of the measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MECH:PPRotation?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MECH:PPRotation?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MECH:PPRotation value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MECH:PPRotation <NR1>
        - MEASUrement:MECH:PPRotation?
        ```

    Info:
        - ``<NR1>`` defines the pulses per rotation of the measurement. The minimum to maximum range
          is 1 to 100000.
    """


class MeasurementMechPpairs(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MECH:PPAirs`` command.

    Description:
        - This command sets or queries the measurement number of pole pairs.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MECH:PPAirs?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MECH:PPAirs?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MECH:PPAirs value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MECH:PPAirs <NR1>
        - MEASUrement:MECH:PPAirs?
        ```

    Info:
        - ``<NR1>`` defines the number of pole pairs for the specified measurement. The minimum to
          maximum range is 1 to 20.
    """


class MeasurementMechMunits(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MECH:MUNits`` command.

    Description:
        - This command sets or queries the global mechanical measurement results units.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MECH:MUNits?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MECH:MUNits?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MECH:MUNits value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MECH:MUNits {NM|OZINCH|FTLB|INCHLB|DEGREES|RADIANS}
        - MEASUrement:MECH:MUNits?
        ```

    Info:
        - ``NM`` specifies the results units of mechanical Torque measurement as NM.
        - ``OZINCH`` specifies the results units of mechanical Torque measurement as OZINCH.
        - ``FTLB`` specifies the results units of mechanical Torque measurement as FTLB.
        - ``INCHLB`` specifies the results units of mechanical Torque measurement as INCHLB.
        - ``DEGREES`` specifies the results units of mechanical Torque measurement as DEGREES.
        - ``RADIANS`` specifies the results units of mechanical Torque measurement as RADIANS.
    """


class MeasurementMechGratio(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MECH:GRATio`` command.

    Description:
        - This command sets or queries the measurement gear ratio.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MECH:GRATio?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MECH:GRATio?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MECH:GRATio value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MECH:GRATio <NR3>
        - MEASUrement:MECH:GRATio?
        ```

    Info:
        - ``<NR3>`` specifies the gear ratio value for a specified measurement. The minimum and
          maximum values are 0.001 to 1000.
    """


class MeasurementMechEindexz(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MECH:EINDexz`` command.

    Description:
        - This command sets or queries the global mechanical Index Z source.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MECH:EINDexz?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MECH:EINDexz?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MECH:EINDexz value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MECH:EINDexz {ON|OFF|1|0}
        - MEASUrement:MECH:EINDexz?
        ```

    Info:
        - ``ON`` specifies the Index Z check box state as enabled.
        - ``OFF`` specifies the Index Z check box state as disabled.
        - ``1`` specifies the Index Z check box state as enabled.
        - ``0`` specifies the Index Z check box state as disabled.
    """


class MeasurementMech(SCPICmdRead):
    """The ``MEASUrement:MECH`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MECH?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MECH?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.eindexz``: The ``MEASUrement:MECH:EINDexz`` command.
        - ``.gratio``: The ``MEASUrement:MECH:GRATio`` command.
        - ``.munits``: The ``MEASUrement:MECH:MUNits`` command.
        - ``.ppairs``: The ``MEASUrement:MECH:PPAirs`` command.
        - ``.pprotation``: The ``MEASUrement:MECH:PPRotation`` command.
        - ``.source1``: The ``MEASUrement:MECH:SOUrce1`` command.
        - ``.stype``: The ``MEASUrement:MECH:STYPe`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._eindexz = MeasurementMechEindexz(device, f"{self._cmd_syntax}:EINDexz")
        self._gratio = MeasurementMechGratio(device, f"{self._cmd_syntax}:GRATio")
        self._munits = MeasurementMechMunits(device, f"{self._cmd_syntax}:MUNits")
        self._ppairs = MeasurementMechPpairs(device, f"{self._cmd_syntax}:PPAirs")
        self._pprotation = MeasurementMechPprotation(device, f"{self._cmd_syntax}:PPRotation")
        self._source1 = MeasurementMechSource1(device, f"{self._cmd_syntax}:SOUrce1")
        self._stype = MeasurementMechStype(device, f"{self._cmd_syntax}:STYPe")

    @property
    def eindexz(self) -> MeasurementMechEindexz:
        """Return the ``MEASUrement:MECH:EINDexz`` command.

        Description:
            - This command sets or queries the global mechanical Index Z source.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MECH:EINDexz?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MECH:EINDexz?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MECH:EINDexz value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MECH:EINDexz {ON|OFF|1|0}
            - MEASUrement:MECH:EINDexz?
            ```

        Info:
            - ``ON`` specifies the Index Z check box state as enabled.
            - ``OFF`` specifies the Index Z check box state as disabled.
            - ``1`` specifies the Index Z check box state as enabled.
            - ``0`` specifies the Index Z check box state as disabled.
        """
        return self._eindexz

    @property
    def gratio(self) -> MeasurementMechGratio:
        """Return the ``MEASUrement:MECH:GRATio`` command.

        Description:
            - This command sets or queries the measurement gear ratio.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MECH:GRATio?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MECH:GRATio?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MECH:GRATio value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MECH:GRATio <NR3>
            - MEASUrement:MECH:GRATio?
            ```

        Info:
            - ``<NR3>`` specifies the gear ratio value for a specified measurement. The minimum and
              maximum values are 0.001 to 1000.
        """
        return self._gratio

    @property
    def munits(self) -> MeasurementMechMunits:
        """Return the ``MEASUrement:MECH:MUNits`` command.

        Description:
            - This command sets or queries the global mechanical measurement results units.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MECH:MUNits?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MECH:MUNits?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MECH:MUNits value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MECH:MUNits {NM|OZINCH|FTLB|INCHLB|DEGREES|RADIANS}
            - MEASUrement:MECH:MUNits?
            ```

        Info:
            - ``NM`` specifies the results units of mechanical Torque measurement as NM.
            - ``OZINCH`` specifies the results units of mechanical Torque measurement as OZINCH.
            - ``FTLB`` specifies the results units of mechanical Torque measurement as FTLB.
            - ``INCHLB`` specifies the results units of mechanical Torque measurement as INCHLB.
            - ``DEGREES`` specifies the results units of mechanical Torque measurement as DEGREES.
            - ``RADIANS`` specifies the results units of mechanical Torque measurement as RADIANS.
        """
        return self._munits

    @property
    def ppairs(self) -> MeasurementMechPpairs:
        """Return the ``MEASUrement:MECH:PPAirs`` command.

        Description:
            - This command sets or queries the measurement number of pole pairs.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MECH:PPAirs?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MECH:PPAirs?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MECH:PPAirs value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MECH:PPAirs <NR1>
            - MEASUrement:MECH:PPAirs?
            ```

        Info:
            - ``<NR1>`` defines the number of pole pairs for the specified measurement. The minimum
              to maximum range is 1 to 20.
        """
        return self._ppairs

    @property
    def pprotation(self) -> MeasurementMechPprotation:
        """Return the ``MEASUrement:MECH:PPRotation`` command.

        Description:
            - This command sets or queries the global pulses per rotation of the measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MECH:PPRotation?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MECH:PPRotation?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MECH:PPRotation value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MECH:PPRotation <NR1>
            - MEASUrement:MECH:PPRotation?
            ```

        Info:
            - ``<NR1>`` defines the pulses per rotation of the measurement. The minimum to maximum
              range is 1 to 100000.
        """
        return self._pprotation

    @property
    def source1(self) -> MeasurementMechSource1:
        """Return the ``MEASUrement:MECH:SOUrce1`` command.

        Description:
            - This command sets or queries the global mechanical source of the specified source
              number.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MECH:SOUrce1?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MECH:SOUrce1?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MECH:SOUrce1 value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MECH:SOUrce1 {CH<x>|MATH<x>|REF<x>|CH<x>_D<x>}
            - MEASUrement:MECH:SOUrce1?
            ```

        Info:
            - ``CH<x>`` specifies an analog channel as the source waveform.
            - ``MATH<x>`` specifies a math waveform as the source waveform.
            - ``REF<x>`` specifies an reference waveform as the source waveform.
            - ``CH<x>_D<x>`` specifies a digital channel as the source waveform.
        """
        return self._source1

    @property
    def stype(self) -> MeasurementMechStype:
        """Return the ``MEASUrement:MECH:STYPe`` command.

        Description:
            - This command sets or queries the measurement sensor type.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MECH:STYPe?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MECH:STYPe?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MECH:STYPe value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MECH:STYPe {HSENSOR|QEI|RESOLVER}
            - MEASUrement:MECH:STYPe?
            ```

        Info:
            - ``HSENSOR`` specifies the sensor type as HSENSOR.
            - ``QEI`` specifies the sensor type as QEI.
            - ``RESOLVER`` specifies the sensor type as RESOLVER.
        """
        return self._stype


class MeasurementMeasrangeState(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEASRange:STATE`` command.

    Description:
        - This command sets or queries the global range state.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEASRange:STATE?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEASRange:STATE?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEASRange:STATE value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEASRange:STATE {ON|OFF|1|0}
        - MEASUrement:MEASRange:STATE?
        ```

    Info:
        - ``OFF`` specifies that the measurement results are not limited.
        - ``ON`` specifies that the measurement results are limited to results with values between
          the range minimum and maximum.
        - ``0`` specifies that the measurement results are not limited.
        - ``1`` specifies that the measurement results are limited to results with values between
          the range minimum and maximum.
    """


class MeasurementMeasrangeMin(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEASRange:MIN`` command.

    Description:
        - This command sets or queries the global range minimum value.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEASRange:MIN?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEASRange:MIN?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEASRange:MIN value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEASRange:MIN <NR3>
        - MEASUrement:MEASRange:MIN?
        ```

    Info:
        - ``<NR3>`` is the minimum measurement range limit value.
    """


class MeasurementMeasrangeMax(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEASRange:MAX`` command.

    Description:
        - This command sets or queries the global range maximum value.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEASRange:MAX?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEASRange:MAX?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEASRange:MAX value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEASRange:MAX <NR3>
        - MEASUrement:MEASRange:MAX?
        ```

    Info:
        - ``<NR3>`` is the maximum measurement range limit value.
    """


class MeasurementMeasrange(SCPICmdRead):
    """The ``MEASUrement:MEASRange`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEASRange?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEASRange?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.max``: The ``MEASUrement:MEASRange:MAX`` command.
        - ``.min``: The ``MEASUrement:MEASRange:MIN`` command.
        - ``.state``: The ``MEASUrement:MEASRange:STATE`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._max = MeasurementMeasrangeMax(device, f"{self._cmd_syntax}:MAX")
        self._min = MeasurementMeasrangeMin(device, f"{self._cmd_syntax}:MIN")
        self._state = MeasurementMeasrangeState(device, f"{self._cmd_syntax}:STATE")

    @property
    def max(self) -> MeasurementMeasrangeMax:
        """Return the ``MEASUrement:MEASRange:MAX`` command.

        Description:
            - This command sets or queries the global range maximum value.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEASRange:MAX?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEASRange:MAX?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEASRange:MAX value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEASRange:MAX <NR3>
            - MEASUrement:MEASRange:MAX?
            ```

        Info:
            - ``<NR3>`` is the maximum measurement range limit value.
        """
        return self._max

    @property
    def min(self) -> MeasurementMeasrangeMin:
        """Return the ``MEASUrement:MEASRange:MIN`` command.

        Description:
            - This command sets or queries the global range minimum value.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEASRange:MIN?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEASRange:MIN?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEASRange:MIN value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEASRange:MIN <NR3>
            - MEASUrement:MEASRange:MIN?
            ```

        Info:
            - ``<NR3>`` is the minimum measurement range limit value.
        """
        return self._min

    @property
    def state(self) -> MeasurementMeasrangeState:
        """Return the ``MEASUrement:MEASRange:STATE`` command.

        Description:
            - This command sets or queries the global range state.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEASRange:STATE?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEASRange:STATE?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEASRange:STATE value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEASRange:STATE {ON|OFF|1|0}
            - MEASUrement:MEASRange:STATE?
            ```

        Info:
            - ``OFF`` specifies that the measurement results are not limited.
            - ``ON`` specifies that the measurement results are limited to results with values
              between the range minimum and maximum.
            - ``0`` specifies that the measurement results are not limited.
            - ``1`` specifies that the measurement results are limited to results with values
              between the range minimum and maximum.
        """
        return self._state


class MeasurementMeasItemYunit(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:YUNIT`` command.

    Description:
        - Returns the vertical scale units of the specified measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:YUNIT?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:YUNIT?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:YUNIT?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
    """


class MeasurementMeasItemXunit(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:XUNIT`` command.

    Description:
        - Returns the horizontal scale units of the specified measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:XUNIT?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:XUNIT?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:XUNIT?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
    """


class MeasurementMeasItemWindowlength(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:WINDOWLENgth`` command.

    Description:
        - This command sets or queries the window length for the measurement. The measurement number
          is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:WINDOWLENgth?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:WINDOWLENgth?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:WINDOWLENgth value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:WINDOWLENgth <NR3>
        - MEASUrement:MEAS<x>:WINDOWLENgth?
        ```

    Info:
        - ``<NR3>`` is the value for the window length.
    """


class MeasurementMeasItemWidth(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:WIDTh`` command.

    Description:
        - This command sets or queries the histogram width in terms of percentage.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:WIDTh?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:WIDTh?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:WIDTh value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:WIDTh <NR1>
        - MEASUrement:MEAS<x>:WIDTh?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR1>`` is the value for the width.
    """


class MeasurementMeasItemWbgTimer(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:WBG:TIMer`` command.

    Description:
        - This command sets or returns the trigger interval of AFG for WBG measurements.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:WBG:TIMer?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:WBG:TIMer?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:WBG:TIMer value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:WBG:TIMer <NR3>
        - MEASUrement:MEAS<x>:WBG:TIMer?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` specifies the pulse gap of AFG for WBG measurements.
    """


class MeasurementMeasItemWbgPwvalItem(ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:WBG:PW<x>Val`` command.

    Description:
        - This command sets or returns the pulse width of AFG for WBG measurements.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:WBG:PW<x>Val?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:WBG:PW<x>Val?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:WBG:PW<x>Val value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:WBG:PW<x>Val <NR3>
        - MEASUrement:MEAS<x>:WBG:PW<x>Val?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``PG<x>`` specifies the number of pulse. The valid values are 1 to 8.
        - ``<NR3>`` specifies the pulse gap of AFG for WBG measurements.
    """


class MeasurementMeasItemWbgPgvalItem(ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:WBG:PG<x>Val`` command.

    Description:
        - This command sets or returns the pulse gap of AFG for WBG measurements.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:WBG:PG<x>Val?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:WBG:PG<x>Val?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:WBG:PG<x>Val value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:WBG:PG<x>Val <NR3>
        - MEASUrement:MEAS<x>:WBG:PG<x>Val?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``PG<x>`` specifies the number of pulse. The valid values are 1 to 8.
        - ``<NR3>`` specifies the pulse gap of AFG for WBG measurements.
    """


class MeasurementMeasItemWbgNpuls(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:WBG:NPULs`` command.

    Description:
        - This command sets or returns the number of pulse of AFG for WBG measurements.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:WBG:NPULs?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:WBG:NPULs?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:WBG:NPULs value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:WBG:NPULs <NR1>
        - MEASUrement:MEAS<x>:WBG:NPULs?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR1>`` specifies the number of pulse of AFG to generate pulse signal for WBG
          measurements.
    """


class MeasurementMeasItemWbgLow(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:WBG:LOW`` command.

    Description:
        - This command sets or returns the low voltage value of AFG for WBG measurements.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:WBG:LOW?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:WBG:LOW?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:WBG:LOW value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:WBG:LOW <NR3>
        - MEASUrement:MEAS<x>:WBG:LOW?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` specifies the low voltage of AFG for WBG measurements.
    """


class MeasurementMeasItemWbgLoad(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:WBG:LOAD`` command.

    Description:
        - This command sets or returns the load type of AFG for WBG measurements.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:WBG:LOAD?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:WBG:LOAD?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:WBG:LOAD value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:WBG:LOAD {FIFTY|HIGHZ}
        - MEASUrement:MEAS<x>:WBG:LOAD?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``FIFTY`` specifies the load type of AFG as Fifty for WBG measurements.
        - ``HIGHZ`` specifies the load type of AFG as High Z for WBG measurements.
    """


class MeasurementMeasItemWbgHigh(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:WBG:HIGH`` command.

    Description:
        - This command sets or returns the high voltage value of AFG for WBG measurements.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:WBG:HIGH?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:WBG:HIGH?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:WBG:HIGH value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:WBG:HIGH <NR3>
        - MEASUrement:MEAS<x>:WBG:HIGH?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` specifies the high voltage of AFG for WBG measurements.
    """


class MeasurementMeasItemWbgGtype(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:WBG:GTYPe`` command.

    Description:
        - This command sets or returns the generator type for WBG measurements.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:WBG:GTYPe?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:WBG:GTYPe?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:WBG:GTYPe value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:WBG:GTYPe {AFG31000|OTHER}
        - MEASUrement:MEAS<x>:WBG:GTYPe?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``AFG31000`` specifies the generator type for WBG measurement as AFG31000.
        - ``OTHER`` specifies the generator type for WBG measurement as OTHER.
    """


class MeasurementMeasItemWbgCstatus(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:WBG:CSTatus`` command.

    Description:
        - This command queries the AFG test connection status.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:WBG:CSTatus?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:WBG:CSTatus?``
          query and raise an AssertionError if the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:WBG:CSTatus?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
    """


class MeasurementMeasItemWbgAfgaddress(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:WBG:AFGaddress`` command.

    Description:
        - This command sets or returns the AFG address of external AFG connected for WBG
          measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:WBG:AFGaddress?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:WBG:AFGaddress?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:WBG:AFGaddress value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:WBG:AFGaddress <QString>
        - MEASUrement:MEAS<x>:WBG:AFGaddress?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<QString>`` specifies the AFG IP address to connect external AFG for WBG measurements.
    """

    _WRAP_ARG_WITH_QUOTES = True


class MeasurementMeasItemWbgAfgsetup(SCPICmdWrite):
    """The ``MEASUrement:MEAS<x>:WBG:AFGSetup`` command.

    Description:
        - This command executes AFG test connection or once AFG connection succeeded, Run will setup
          configuration on connected AFG.

    Usage:
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:WBG:AFGSetup value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:WBG:AFGSetup {CONNECT|RUN}
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``CONNECT`` executes AFG test connection.
        - ``RUN`` will setup AFG configuration.
    """


#  pylint: disable=too-many-instance-attributes
class MeasurementMeasItemWbg(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:WBG`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:WBG?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:WBG?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.afgsetup``: The ``MEASUrement:MEAS<x>:WBG:AFGSetup`` command.
        - ``.afgaddress``: The ``MEASUrement:MEAS<x>:WBG:AFGaddress`` command.
        - ``.cstatus``: The ``MEASUrement:MEAS<x>:WBG:CSTatus`` command.
        - ``.gtype``: The ``MEASUrement:MEAS<x>:WBG:GTYPe`` command.
        - ``.high``: The ``MEASUrement:MEAS<x>:WBG:HIGH`` command.
        - ``.load``: The ``MEASUrement:MEAS<x>:WBG:LOAD`` command.
        - ``.low``: The ``MEASUrement:MEAS<x>:WBG:LOW`` command.
        - ``.npuls``: The ``MEASUrement:MEAS<x>:WBG:NPULs`` command.
        - ``.pgval``: The ``MEASUrement:MEAS<x>:WBG:PG<x>Val`` command.
        - ``.pwval``: The ``MEASUrement:MEAS<x>:WBG:PW<x>Val`` command.
        - ``.timer``: The ``MEASUrement:MEAS<x>:WBG:TIMer`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._afgsetup = MeasurementMeasItemWbgAfgsetup(device, f"{self._cmd_syntax}:AFGSetup")
        self._afgaddress = MeasurementMeasItemWbgAfgaddress(
            device, f"{self._cmd_syntax}:AFGaddress"
        )
        self._cstatus = MeasurementMeasItemWbgCstatus(device, f"{self._cmd_syntax}:CSTatus")
        self._gtype = MeasurementMeasItemWbgGtype(device, f"{self._cmd_syntax}:GTYPe")
        self._high = MeasurementMeasItemWbgHigh(device, f"{self._cmd_syntax}:HIGH")
        self._load = MeasurementMeasItemWbgLoad(device, f"{self._cmd_syntax}:LOAD")
        self._low = MeasurementMeasItemWbgLow(device, f"{self._cmd_syntax}:LOW")
        self._npuls = MeasurementMeasItemWbgNpuls(device, f"{self._cmd_syntax}:NPULs")
        self._pgval: Dict[int, MeasurementMeasItemWbgPgvalItem] = DefaultDictPassKeyToFactory(
            lambda x: MeasurementMeasItemWbgPgvalItem(device, f"{self._cmd_syntax}:PG{x}Val")
        )
        self._pwval: Dict[int, MeasurementMeasItemWbgPwvalItem] = DefaultDictPassKeyToFactory(
            lambda x: MeasurementMeasItemWbgPwvalItem(device, f"{self._cmd_syntax}:PW{x}Val")
        )
        self._timer = MeasurementMeasItemWbgTimer(device, f"{self._cmd_syntax}:TIMer")

    @property
    def afgsetup(self) -> MeasurementMeasItemWbgAfgsetup:
        """Return the ``MEASUrement:MEAS<x>:WBG:AFGSetup`` command.

        Description:
            - This command executes AFG test connection or once AFG connection succeeded, Run will
              setup configuration on connected AFG.

        Usage:
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:WBG:AFGSetup value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:WBG:AFGSetup {CONNECT|RUN}
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``CONNECT`` executes AFG test connection.
            - ``RUN`` will setup AFG configuration.
        """
        return self._afgsetup

    @property
    def afgaddress(self) -> MeasurementMeasItemWbgAfgaddress:
        """Return the ``MEASUrement:MEAS<x>:WBG:AFGaddress`` command.

        Description:
            - This command sets or returns the AFG address of external AFG connected for WBG
              measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:WBG:AFGaddress?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:WBG:AFGaddress?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:WBG:AFGaddress value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:WBG:AFGaddress <QString>
            - MEASUrement:MEAS<x>:WBG:AFGaddress?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<QString>`` specifies the AFG IP address to connect external AFG for WBG
              measurements.
        """
        return self._afgaddress

    @property
    def cstatus(self) -> MeasurementMeasItemWbgCstatus:
        """Return the ``MEASUrement:MEAS<x>:WBG:CSTatus`` command.

        Description:
            - This command queries the AFG test connection status.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:WBG:CSTatus?``
              query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:WBG:CSTatus?``
              query and raise an AssertionError if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:WBG:CSTatus?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
        """
        return self._cstatus

    @property
    def gtype(self) -> MeasurementMeasItemWbgGtype:
        """Return the ``MEASUrement:MEAS<x>:WBG:GTYPe`` command.

        Description:
            - This command sets or returns the generator type for WBG measurements.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:WBG:GTYPe?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:WBG:GTYPe?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:WBG:GTYPe value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:WBG:GTYPe {AFG31000|OTHER}
            - MEASUrement:MEAS<x>:WBG:GTYPe?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``AFG31000`` specifies the generator type for WBG measurement as AFG31000.
            - ``OTHER`` specifies the generator type for WBG measurement as OTHER.
        """
        return self._gtype

    @property
    def high(self) -> MeasurementMeasItemWbgHigh:
        """Return the ``MEASUrement:MEAS<x>:WBG:HIGH`` command.

        Description:
            - This command sets or returns the high voltage value of AFG for WBG measurements.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:WBG:HIGH?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:WBG:HIGH?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:WBG:HIGH value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:WBG:HIGH <NR3>
            - MEASUrement:MEAS<x>:WBG:HIGH?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` specifies the high voltage of AFG for WBG measurements.
        """
        return self._high

    @property
    def load(self) -> MeasurementMeasItemWbgLoad:
        """Return the ``MEASUrement:MEAS<x>:WBG:LOAD`` command.

        Description:
            - This command sets or returns the load type of AFG for WBG measurements.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:WBG:LOAD?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:WBG:LOAD?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:WBG:LOAD value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:WBG:LOAD {FIFTY|HIGHZ}
            - MEASUrement:MEAS<x>:WBG:LOAD?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``FIFTY`` specifies the load type of AFG as Fifty for WBG measurements.
            - ``HIGHZ`` specifies the load type of AFG as High Z for WBG measurements.
        """
        return self._load

    @property
    def low(self) -> MeasurementMeasItemWbgLow:
        """Return the ``MEASUrement:MEAS<x>:WBG:LOW`` command.

        Description:
            - This command sets or returns the low voltage value of AFG for WBG measurements.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:WBG:LOW?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:WBG:LOW?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:WBG:LOW value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:WBG:LOW <NR3>
            - MEASUrement:MEAS<x>:WBG:LOW?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` specifies the low voltage of AFG for WBG measurements.
        """
        return self._low

    @property
    def npuls(self) -> MeasurementMeasItemWbgNpuls:
        """Return the ``MEASUrement:MEAS<x>:WBG:NPULs`` command.

        Description:
            - This command sets or returns the number of pulse of AFG for WBG measurements.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:WBG:NPULs?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:WBG:NPULs?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:WBG:NPULs value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:WBG:NPULs <NR1>
            - MEASUrement:MEAS<x>:WBG:NPULs?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR1>`` specifies the number of pulse of AFG to generate pulse signal for WBG
              measurements.
        """
        return self._npuls

    @property
    def pgval(self) -> Dict[int, MeasurementMeasItemWbgPgvalItem]:
        """Return the ``MEASUrement:MEAS<x>:WBG:PG<x>Val`` command.

        Description:
            - This command sets or returns the pulse gap of AFG for WBG measurements.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:WBG:PG<x>Val?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:WBG:PG<x>Val?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:WBG:PG<x>Val value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:WBG:PG<x>Val <NR3>
            - MEASUrement:MEAS<x>:WBG:PG<x>Val?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``PG<x>`` specifies the number of pulse. The valid values are 1 to 8.
            - ``<NR3>`` specifies the pulse gap of AFG for WBG measurements.
        """
        return self._pgval

    @property
    def pwval(self) -> Dict[int, MeasurementMeasItemWbgPwvalItem]:
        """Return the ``MEASUrement:MEAS<x>:WBG:PW<x>Val`` command.

        Description:
            - This command sets or returns the pulse width of AFG for WBG measurements.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:WBG:PW<x>Val?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:WBG:PW<x>Val?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:WBG:PW<x>Val value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:WBG:PW<x>Val <NR3>
            - MEASUrement:MEAS<x>:WBG:PW<x>Val?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``PG<x>`` specifies the number of pulse. The valid values are 1 to 8.
            - ``<NR3>`` specifies the pulse gap of AFG for WBG measurements.
        """
        return self._pwval

    @property
    def timer(self) -> MeasurementMeasItemWbgTimer:
        """Return the ``MEASUrement:MEAS<x>:WBG:TIMer`` command.

        Description:
            - This command sets or returns the trigger interval of AFG for WBG measurements.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:WBG:TIMer?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:WBG:TIMer?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:WBG:TIMer value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:WBG:TIMer <NR3>
            - MEASUrement:MEAS<x>:WBG:TIMer?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` specifies the pulse gap of AFG for WBG measurements.
        """
        return self._timer


class MeasurementMeasItemWaittime(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:WAITTime`` command.

    Description:
        - Sets or queries the wait time.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:WAITTime?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:WAITTime?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:WAITTime value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:WAITTime <NR2>
        - MEASUrement:MEAS<x>:WAITTime?
        ```

    Info:
        - ``MEAS<x>`` is the measurement number.
        - ``<NR2>`` is the wait time, in the range of 1 s to 500 s.
    """


class MeasurementMeasItemVlevel(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:VLEVel`` command.

    Description:
        - This command sets or queries whether histogram center is percentage relative to unit
          interval or an absolute value for eye width measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:VLEVel?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:VLEVel?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:VLEVel value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:VLEVel {PERCent|ABSolute}
        - MEASUrement:MEAS<x>:VLEVel?
        ```

    Info:
        - ``MEAS<x>`` is the measurement number.
        - ``PERCent`` sets the histogram center as a percentage relative to unit interval.
        - ``ABSolute`` sets the histogram center as an absolute value.
    """


class MeasurementMeasItemType(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:TYPe`` command.

    Description:
        - This command sets or queries the measurement type for the measurement specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:TYPe?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:TYPe?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:TYPe value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:TYPe {ACCOMMONMODE|ACPR|ACRMS|AMPLITUDE|AREA|BASE|BITAMPLITUDE|BITHIGH|BITLOW|BURSTWIDTH|COMMONMODE|CPOWER|DATARATE|DCD|DDJ|DDRAOS|DDRAOSPERTCK|DDRAOSPERUI|DDRAUS|DDRAUSPERTCK|DDRAUSPERUI|DDRHOLDDIFF|DDRSETUPDIFF|DDRTCHABS|DDRTCHAVERAGE|DDRTCKAVERAGE|DDRTCLABS|DDRTCLAVERAGE|DDRTERRMN|DDRTERRN|DDRTJITCC|DDRTJITDUTY|DDRTJITPER|DDRTPST|DDRTRPRE|DDRTWPRE|DDRVIXAC|DDRTDQSCK|DELAY|DJ|DJDIRAC|DPMOVERSHOOT|DPMPSIJ|DPMUNDERSHOOT|DPMRIPPLE|DPMTURNOFFTIME|DPMTURNONTIME|EYEHIGH|EYELOW|FALLSLEWRATE|FALLTIME|FREQUENCY|F2|F4|F8|HIGH|HEIGHT|HEIGHTBER|HIGHTIME|HOLD|IMDAANGLE|IMDADIRECTION|IMDADQ0|IMDAEFFICIENCY|IMDAHARMONICS|IMDAMECHPWR|IMDAPOWERQUALITY|IMDASPEED|IMDASYSEFF|IMDATORQUE|ISI|JITTERSUMMARY|J2|J9|LOW|LOWTIME|MAXIMUM|MEAN|MINIMUM|NDUtY|NPERIOD|NPJ|NOVERSHOOT|NWIDTH|OBW|PATTERNLENGTH|PDUTTY|PERIOD|PHASE|PHASENOISE|PJ|PK2Pk|POVERSHOOT|PWIDTH|QFACTOR|RDSON|RISESLEWRATE|RISETIME|RJ|RJDIRAC|RMS|SRJ|SSCFREQDEV|SSCMODRATE|SSCSLEWRATE|SETUP|SKEW|TDR|TIE|TIMEOUTSIDELEVEL|TJBER|TNTRATIO|TOP|UNITINTERVAL|VDIFFXOVR|WBGDDT|WBGDIODEDDT|WBGEOFF|WBGEON|WBGERR|WBGIPEAK|WBGIRRM|WBGQOSS|WBGQRR|WBGTDOFF|WBGTDON|WBGTF|WBGTON|WBGTOFF|WBGTR|WBGTRR|WBGTDT|WBGVPEAK|WIDTH|WIDTHBER}
        - MEASUrement:MEAS<x>:TYPe?
        ```

    Info:
        - ``ACCOMMONMODE`` AC Common Mode (Pk-Pk) is the peak-to-peak of the commonmode voltage of
          two sources. This measurement is made across the entire record.This measurement requires
          the DJA option and is not available on a 4 SeriesMSO instrument.
        - ``ACPR`` (Adjacent Channel Power Ratio) is the amount of power that leaks intoadjacent
          channels. This can be specified in terms of absolute power or a ratio ofadjacent channel
          power to the main channel power, called adjacent channel powerratio (ACPR) or adjacent
          channel leakage ratio (ACLR).
        - ``ACRMS`` (AC RMS) is the true Root Mean Square of the data points, about theMean. This
          measurement can be made across the entire record, or on each cyclein the record.
        - ``AMPLITUDE`` is the difference between the Top value and the Base value. This measurement
          can be made across the entire record, or on each cycle in the record.
        - ``AREA`` is the area under the curve, calculated by integrating the data points. The area
          measured above ground is positive. The area measured below ground is negative. This
          measurement can be made across the entire record, or on each cycle in the record.
        - ``BASE`` is the most common data value below the midpoint of the waveform. This
          measurement can be made across the entire record, or on each cycle in the record.
        - ``BITAMPLITUDE`` (Bit Amplitude) is the difference between the amplitudes of the 1 bit and
          the 0 bit surrounding a transition. The amplitude is measured over a user specified
          portion at the center of the recovered unit interval. This measurement is made on each
          transition bit in the record (Mean) or across the entire record (Mode). This measurement
          requires the DJA option and is not available on a 4 Series MSO instrument.
        - ``BITHIGH`` (Bit High) is the amplitude of a 1 bit. The amplitude is measured over a user
          specified portion at the center of the recovered unit interval. This measurement is made
          on each high bit in the record (Mean) or across the entire record (Mode). This measurement
          requires the DJA option and is not available on a 4 Series MSO instrument.
        - ``BITLOW`` (Bit Low) is the amplitude of a 0 bit. The amplitude is measured over a user
          specified portion at the center of the recovered unit interval. This measurement is made
          on each high bit in the record (Mean) or across the entire record (Mode). This measurement
          requires the DJA option and is not available on a 4 Series MSO instrument.
        - ``BURSTWIDTH`` (Burst Width) is the duration of a series of adjacent crossings of the Mid
          reference level (RM). Bursts are separated by a user-defined idle time (tI). This
          measurement is made on each burst in the record.
        - ``CCJITTER`` (Cycle-to-Cycle jitter) measures how much the clock period changes between
          any two adjacent cycles. Cycle-to-Cycle jitter is measured by applying a first order
          difference operation to the period jitter.
        - ``COMMONMODE`` (DC Common Mode) is the arithmetic mean of the common mode voltage of two
          sources. This measurement is made across the entire record. This measurement requires the
          DJA option and is not available on a 4 Series MSO instrument.
        - ``CPOWER`` (Channel Power) is the measurement of integrated power within a specified
          channel bandwidth for a RF signal. The resulting channel power is an absolute power
          measurement.
        - ``DATARATE`` (Data Rate) is the reciprocal of Unit Interval. This measurement is made on
          each bit in the record.
        - ``DCD`` (duty cycle distortion) is the peak-to-peak amplitude of the component of the
          deterministic jitter correlated with the signal polarity. This measurement is made across
          the entire record. This measurement requires the DJA option and is not available on a 4
          Series MSO instrument.
        - ``DDJ`` (data dependent jitter) is the peak-to-peak amplitude of the component of the
          deterministic jitter correlated with the data pattern in the waveform. This measurement is
          made across the entire record. This measurement requires the DJA option and is not
          available on a 4 Series MSO instrument.
        - ``DDRAOS`` (area above signal) is the total area of the signal above a specified reference
          level. This measurement is made across the entire record.
        - ``DDRAOSPERTCK`` (area over signal for tCK events) is the total area of the signal above a
          specified reference level calculated over consecutive tCK intervals. It is applicable to
          clock and address/command waveforms.
        - ``DDRAOSPERUI`` (area over signal for UI events) is the total area of the signal above a
          specified reference level calculated over consecutive unit intervals. It is applicable to
          data and data strobe waveforms.
        - ``DDRAUS`` (area under signal) is the total area of the signal below a specified reference
          level. This measurement is made across the entire record.
        - ``DDRAUSPERTCK`` (area under signal for tCK events) is the total area of the signal below
          a specified reference level calculated over consecutive tCK intervals. It is applicable to
          clock and address/command waveforms.
        - ``DDRAUSPERUI`` (area under signal for UI events) is the total area of the signal below a
          specified reference level calculated over consecutive unit intervals. It is applicable to
          data and data strobe waveforms.
        - ``DDRHOLDDIFF`` (hold difference) is the elapsed time between the specified edge of a
          single-ended clock waveform and the specified edge of a differential data waveform. The
          measurement uses the closest respective waveform edges that fall within the range
          limits.This measurement is made across the entire record.
        - ``DDRSETUPDIFF`` (setup difference) is the elapsed time between the specified edge of a
          single-ended clock waveform and when the specified edge of a differential data waveform
          crosses a specified level. The measurement uses the closest respective waveform edges that
          fall within the range limits. This measurement is made across the entire record.
        - ``DDRTCHABS`` (absolute high pulse width) is the absolute value of the high pulse width as
          measured from one rising edge to the next falling edge.
        - ``DDRTCHAVERAGE`` (average high pulse width) is the average value of the high pulse width
          as measured from one rising edge to the next falling edge, across 200 consecutive cycles.
          This measurement is made across the entire record.
        - ``DDRTCKAVERAGE`` (average clock period) is the average clock period calculated from
          rising edge to rising edge, across 200 consecutive cycles. This measurement is made across
          the entire record.
        - ``DDRTCLABS`` (absolute low pulse width) is the absolute value of the low pulse width as
          measured from a falling edge to the next rising edge. This measurement is made across the
          entire record.
        - ``DDRTCLAVERAGE`` (average low pulse width) is the average value of the low pulse width as
          measured from one falling edge to the next rising edge, across 200 consecutive cycles.
        - ``DDRTERRMN`` (cumulative error) is the cumulative error across multiple consecutive
          defined cycles from tCK(avg).
        - ``DDRTERRN`` (cumulative error) is the cumulative error across specified consecutive
          cycles from tCK(avg). In other words, this measures the time difference between the sum of
          the clock period from a 200 cycle window and n times tCK(avg).
        - ``DDRTJITCC`` (cycle to cycle jitter period) is the absolute difference in clock period
          between two consecutive clock cycles. This measurement is made across the entire record.
        - ``DDRTJITDUTY`` (half period jitter) is the largest elapsed time between tCH and tCH(avg),
          and tCL and tCL(avg), over 200 consecutive cycles.
        - ``DDRTJITPER`` (clock period jitter) is the largest deviation of any tCK signal from
          tCK(avg). This measurement is made across the entire record.
        - ``DDRTPST`` (read/write burst postamble) is the width of the Read or Write burst
          postamble, measured from the last falling edge of the mid reference level to the start of
          an undriven state. This measurement is made across the entire record.
        - ``DDRTRPRE`` (read burst preamble) is the width of the Read burst preamble, measured from
          exiting tristate levels to the first driving edge of the differential strobe. This
          measurement is made across the entire record.
        - ``DDRTWPRE`` is the width of theWrite burst preamble, measured from exiting tristate
          levels to the first driving edge of the differential strobe. This measurement is made
          across the entire record.
        - ``DDRVIXAC`` is the differential input cross-point voltage measured from the true state
          transition (and it's compliment) to a specified reference level, measured on a
          single-ended signal.
        - ``DDRTDQSCK`` is the strobe output access time, measured between the rising edge of the
          clock and before or after the differential strobe Read preamble time. Signal edges are
          determined by the mid-ref threshold level settings.
        - ``DELay`` is the time between the specified Mid reference level (RM) crossing on one
          source to a specified Mid reference level (RM) crossing on a second source. This
          measurement is made on the first occurrence in the record.
        - ``DJ`` (deterministic jitter) is the peak-to-peak amplitude of all timing errors that
          exhibit deterministic behavior. This measurement is made across the entire record. This
          measurement requires the DJA option and is not available on a 4 Series MSO instrument.
        - ``DJDIRAC`` (dual-dirac deterministic jitter) is deterministic jitter based on a
          simplifying assumption that the histogram of all deterministic jitter can be modeled as a
          pair of equal-magnitude Dirac functions. This measurement is made across the entire
          record. This measurement requires the DJA option and is not available on a 4 Series MSO
          instrument.
        - ``DPMPSIJ`` is the Power Supply Induced Jitter. This measurement helps in suppressing the
          jitter in high speed signals (victim) induced from power rail signals (aggressor).
        - ``EYEHIGH`` (Eye High) is the amplitude of a high (1) bit measured at a user specified
          location within the recovered unit interval. This measurement is made on each high bit in
          the record. This measurement requires the DJA option and is not available on a 4 Series
          MSO instrument.
        - ``EYELOW`` (Eye Low) is the amplitude of a low (0) bit measured at a user specified
          location within the recovered unit interval. This measurement is made on each low bit in
          the record. This measurement requires the DJA option and is not available on a 4 Series
          MSO instrument.
        - ``FALLSLEWRATE`` (Falling Slew Rate) is the rate of change in voltage as an edge
          transitions from the Top reference level (RT) to the Bottom reference level (RB). This
          measurement is made on each cycle in the record.
        - ``FALLTIME`` (Fall Time) is the time required for an edge to fall from the Top reference
          level (RT) to the Base reference level (RB). This measurement is made on each cycle in the
          record.
        - ``FREQuency`` is the reciprocal of Period. This measurement is made on each cycle in the
          record.
        - ``F2`` is the peak-to-peak amplitude of the periodic jitter occurring at a rate of Fb
          (data rate) divided by 2. This measurement is made across the entire record. This
          measurement requires the DJA option and is not available on a 4 Series MSO instrument.
        - ``F4`` is the peak-to-peak amplitude of the periodic jitter occurring at a rate of Fb
          (data rate) divided by 4. This measurement is made across the entire record. This
          measurement requires the DJA option and is not available on a 4 Series MSO instrument.
        - ``F8`` is the peak-to-peak amplitude of the periodic jitter occurring at a rate of Fb
          (data rate) divided by 8. This measurement is made across the entire record. This
          measurement requires the DJA option and is not available on a 4 Series MSO instrument.
        - ``HIGH`` (Eye High) is the amplitude of a high (1) bit measured at a user specified
          location within the recovered unit interval. This measurement is made on each high bit in
          the record.
        - ``HEIGHT`` (Eye Height) is the minimum vertical eye opening at the center of the recovered
          unit interval. This measurement is made across the entire record. This measurement
          requires the DJA option and is not available on a 4 Series MSO instrument.
        - ``HEIGHTBER`` (Eye Height@BER) is the predicted vertical eye opening that will be violated
          with a probability equal to the bit error rate. This measurement is made across the entire
          record. This measurement requires the DJA option and is not available on a 4 Series MSO
          instrument.
        - ``HIGHTIME`` (High Time) is the time the signal remains above the Top reference level
          (RT). This measurement is made on each cycle in the record.
        - ``HOLD`` (Hold Time) is the time between the specified Mid reference level crossing (RM)
          on the Clock source to the closest specified Mid reference level (RM) crossing on the Data
          source. This measurement is made on each specified Clock edge in the record.
        - ``IMDAANGLE`` (Angle) measures the phase angle. Configure QEI or Hall sensor to.
        - ``compute`` the angle measurement. Requires a IMDA-MECH License.
        - ``IMDADIRECTION`` (Direction) defines the direction of rotation of the motor. Set the
          direction A-B-C or A-C-B for Hall sensors and CW or CCW for QEI based on the motor
          configuration. Requires a IMDA-MECH License.
        - ``IMDADQ0`` measures the DQ0 values of the phasor plot. This measurement requires options
          IMDA and IMDA-DQ0. Requires a IMDA-MECH License.
        - ``IMDAEFFICIENCY`` (Efficiency) measures the ratio of sum of output power(s) to input
          power for respective input and output Voltage and Current pairs. Note: the current release
          cannot support 3V and 3I pairs, since this requires 12 channels. We restrict to 2V and 2I
          which needs 8 scope channels. Requires a IMDA-MECH License.
        - ``IMDAHARMONICS`` (Harmonics) plots the signal amplitude at the fundamental line frequency
          and its harmonics and measures the RMS amplitude and Total Harmonic Distortion of the
          signal. Requires a IMDA-MECH License.
        - ``IMDAMECHPWR`` (Mechanical Power) measures the mechanical power of the motor drive
          system. It is determined by the Speed and Torque. It is measured in watts. Requires a
          IMDA-MECH License.
        - ``IMDAPOWERQUALITY`` (Power Quality) measures the Frequency and RMS values of the voltage
          and current, Crest Factors of the voltage and current, True Power (PTRUE), Reactive Power
          (PRE), Apparent Power (PAPP), Power Factor, and Phase Angle (θ) of the AC signal. Requires
          a IMDA-MECH License.
        - ``IMDASPEED`` (Speed) measures the speed and acceleration. Requires a IMDA-MECH License.
        - ``IMDASYSEFF`` (System Efficiency) measures the total efficiency of the motor drive
          system. Requires a IMDA-MECH License.
        - ``IMDATORQUE`` (Torque) measures the torque of the motor. Configure Sensor (analog) or
          Current method to measure the torque. Requires a IMDA-MECH License.
        - ``ISI`` (Inter Symbol Interference) is defined as the range (difference between the
          maximum and minimum value) of DDJ-per-edge values appearing across all rising edges, or
          the range of DDJ-per-edge values across all falling edges, whichever is greater. This
          measurement requires the DJA option and is not available on a 4 Series MSO instrument.
        - ``JITTERSUMMARY`` (Jitter Summary) is a group consisting of the followingmeasurements:
          Data Rate, Pattern Length, TIE, TJ@BER, RJ, DJ, DJ-δδ, PJ,DDJ, DCD, Eye Width@BER and
          RJ-δδ. This measurement requires the DJAoption and is not available on a 4 Series MSO
          instrument.
        - ``JITTERSUMMARY`` (Jitter Summary) is a group consisting of the following measurements:
          TIE, TJ@BER, Eye Width@BER, Eye Height@BER, RJ-δδ, DJ-δδ, PJ, DDJ, DcD, F/2, F/4, F/8.
          This measurement requires the DJA option and is not available on a 4 Series MSO
          instrument.
        - ``J2`` is the total jitter at a bit error rate of 2.5e-3 (TJ@2.5e-3). This measurement is
          made across the entire record. This measurement requires the DJA option and is not
          available on a 4 Series MSO instrument.
        - ``J9`` is the total jitter at a bit error rate of 2.5e-10 (TJ@2.5e-10). This measurement
          is made across the entire record. This measurement requires the DJA option and is not
          available on a 4 Series MSO instrument.
        - ``LOW`` (Eye Low) is the amplitude of a low (0) bit measured at a user specified location
          within the recovered unit interval. This measurement is made on each low bit in the
          record.
        - ``LOWTIME`` (Low Time) is the time the signal remains below the Base reference level (RB).
          This measurement is made on each cycle in the record.
        - ``MAXimum`` is the maximum data point. This measurement can be made across the entire
          record, or on each cycle in the record.
        - ``MEAN`` is the arithmetic mean of the data points. This measurement can be made across
          the entire record, or on each cycle in the record.
        - ``MINImum`` is the minimum data point. This measurement can be made across the entire
          record, or on each cycle in the record.
        - ``NDUty`` (Negative Duty Cycle) is the ratio of the Negative Pulse Width to the Period.
          This measurement is made on each cycle in the record.
        - ``NPERIOD`` (Duration N-Periods) is the time required to complete N cycles. A cycle is the
          time between two adjacent (same direction) crossings of the Mid reference level (RM). This
          measurement is made on each cycle in the record.
        - ``NPJ`` (non-periodic jitter) is the portion of the BUJ (bounded uncorrelated jitter) that
          is random. BUJ excludes DDJ, DCD and RJ. This measurement is made across the entire
          record. This measurement requires the DJA option and is not available on a 4 Series MSO
          instrument.
        - ``NOVershoot`` (Negative Overshoot) is the difference between Minimum and Base, divided by
          the Amplitude. This measurement can be made across the entire record, or on each cycle in
          the record.
        - ``NWIDTH`` (Negative Pulse Width) is the time the signal remains below the Mid reference
          level (RM). This measurement is made on each cycle in the record.
        - ``OBW`` (Occupied Bandwidth) refers to the bandwidth, including energy of a certain
          proportion of the total transmitted power, with the center frequency of the specified
          channel as the center.
        - ``PATTERNLENGTH`` (Pattern Length) is the number of symbols that constitute onefull
          repetition of a sequence within a signal. This measurement requires the DJAoption and is
          not available on a 4 Series MSO instrument.
        - ``PDUTY`` (Positive Duty Cycle) is the ratio of the Positive Pulse Width to the Period.
          This measurement is made on each cycle in the record.
        - ``PERIOD`` is the time required to complete a cycle. A cycle is the time between two
          adjacent (same direction) crossings of the Mid reference level (RM). This measurement is
          made on each cycle in the record.
        - ``PHASE`` is the ratio of the Skew between two sources to the Period of the first source.
          This measurement is made on each cycle in the record.
        - ``PHASENOISE`` (Phase Noise) is the RMS magnitude of all integrated jitter falling within
          a user specified offset range of the fundamental clock frequency. This measurement is made
          across the entire record. This measurement is not available on a 4 Series MSO instrument.
        - ``PJ`` (periodic jitter) is the peak-to-peak amplitude of the uncorrelated sinusoidal
          components of the deterministic jitter. This measurement is made across the entire record.
          This measurement requires the DJA option and is not available on a 4 Series MSO
          instrument.
        - ``PK2Pk`` (Peak-to-peak) is the difference between Maximum and Minimum. This measurement
          can be made across the entire record, or on each cycle in the record.
        - ``POVERSHOOT`` (Positive Overshoot) is the difference between Maximum and Top, divided by
          the Amplitude. This measurement can be made across the entire record, or on each cycle in
          the record.
        - ``PWIDTH`` (Positive Pulse Width) is the time the signal remains above the Mid reference
          level (RM). This measurement is made on each cycle in the record.
        - ``QFACTOR`` (Q-Factor) is the ratio of the vertical eye opening to RMS vertical noise
          measured at a user specified location within the recovered unit interval. This measurement
          is made across the entire record. This measurement requires the DJA option and is not
          available on a 4 Series MSO instrument.
        - ``RDSON`` (Dynamic resistance) is the resistance offered by a switching device whendevice
          is in ON condition. RDS(on) measurement will provide trend of dynamicresistance on auto
          created math waveform.
        - ``RISESLEWRATE`` (Rising Slew Rate) is the rate of change in voltage as an edge
          transitions from the Base reference level (RB) to the Top reference level (RT). This
          measurement is made on each cycle in the record.
        - ``RISETIME`` Rise Time is the time required for an edge to rise from the Base reference
          level (RB) to the Top reference level (RT). This measurement is made on each cycle in the
          record.
        - ``RJ`` (random jitter) is the RMS magnitude of all random timing errors following a
          Gaussian distribution. This measurement is made across the entire record. This measurement
          requires the DJA option and is not available on a 4 Series MSO instrument.
        - ``RJDIRAC`` (dual-dirac random jitter) is random jitter based on a simplifying assumption
          that the histogram of all deterministic jitter can be modeled as a pair of equal-magnitude
          Dirac functions. This measurement is made across the entire record. This measurement
          requires the DJA option and is not available on a 4 Series MSO instrument.
        - ``RMS`` is the true Root Mean Square of the data points. This measurement can be made
          across the entire record, or on each cycle in the record.
        - ``SRJ`` (sub-rate jitter) is the composite jitter due to periodic components at 1/2, 1/4
          and 1/8 of the data rate. This measurement is made across the entire record. This
          measurement requires the DJA option and is not available on a 4 Series MSO instrument.
        - ``SSCFREQDEV`` (SSC Frequency Deviation) is the spread spectrum clock frequency deviation.
          This measurement enables a time trend plot of the spread spectrum clock modulation
          profile. This measurement is made on each cycle in the record. This measurement requires
          the DJA option and is not available on a 4 Series MSO instrument.
        - ``SSCMODRATE`` (SSC Modulation Rate) is the modulating frequency of a spread spectrum
          clock. This measurement is made on each cycle in the record. This measurement requires the
          DJA option and is not available on a 4 Series MSO instrument.
        - ``SSCSLEWRATE`` (SSC Slew Rate) is the rate of change of the modulating frequencyof a
          spread spectrum clock. This measurement is made on each cycle in therecord. This
          measurement requires the DJA option and is not available on a 4Series MSO instrument.
        - ``SETUP`` (Setup Time) is the time between the specified Mid reference level (R.
        - ``SKEW`` Skew is the time between the specified Mid reference level (R.
        - ``TIE`` (time interval error) is the difference, in time, between an edge in the source
          waveform and the corresponding edge in a recovered reference clock. This measurement is
          made on each edge in the waveform. This measurement is not available on a 4 Series MSO
          instrument.
        - ``TIMEOUTSIDELEVEL`` Time Outside Level is the time the signal remains above the Top
          reference level (RT) and/or below the Base reference level (R.
        - ``TIMETOMAX`` Time to Max is the amount of time from the trigger point to the maximum data
          point. This measurement can be made across the entire record or on each cycle in the
          record.
        - ``TIMETOMIN`` Time to Min is the amount of time from the trigger point to the minimum data
          point. This measurement can be made across the entire record or on each cycle in the
          record.
        - ``TJBER`` (total jitter at a specified bit error rate) is the predicted peak-to-peak
          amplitude of jitter that will only be exceeded with a probability equal to the bit error
          rate. This measurement is made across the entire record. This measurement requires the DJA
          option and is not available on a 4 Series MSO instrument.
        - ``TNTRATIO`` T/nT Ratio is the ratio of a non-transition bit voltage (2nd and subsequent
          bit voltage after a transition) to its nearest preceding transition bit voltage (1st bit
          voltage after the transition). Bit voltages are measured at the interpolated midpoint of
          the recovered unit interval. This measurement is made on each non-transition bit in the
          record. This measurement requires the DJA option and is not available on a 4 Series MSO
          instrument.
        - ``TOP`` is the most common data value above the midpoint of the waveform. This measurement
          can be made across the entire record, or on each cycle in the record.
        - ``UNITINTERVAL`` (Unit Interval) is the time difference between two successive bits. This
          measurement is made on each bit in the record.
        - ``VDIFFXOVR`` (Differential Crossover) is the voltage level of a differential signal pair
          at the crossover points. This measurement is made at each crossover point in the record.
          This measurement requires the DJA option and is not available on a 4 Series MSO
          instrument.
        - ``WBGDDT`` (d/dt) measures the rate of change of voltage or current (slew rate) from the
          configured start level to the stop level. Requires a WBG-DPT License.
        - ``WBGDIODEDDT`` (Diode d/dt) measures the rate of change of voltage or current (slew rate)
          during the specified start and stop integration levels. Diode d/dt can be measured during
          rising or falling edge. Requires a WBG-DPT License.
        - ``WBGEOFF`` (Eoff) measures the energy dissipated in the Power Device during off region
          using the configured levels. Requires a WBG-DPT License.
        - ``WBGEON`` (Eon) measures the energy dissipated in the Power Device during on region using
          the configured levels. Requires a WBG-DPT License.
        - ``WBGERR`` (Err) measures the reverse recovery energy dissipated in the Power Device using
          the configured levels. Requires a WBG-DPT License.
        - ``WBGIPEAK`` (Ipeak) measures the peak current of the Power Device in the on region.
          Requires a WBG-DPT License.
        - ``WBGIRRM`` (Irrm) measures the maximum current dissipated in the Power Device in the
          reverse recovery region. Requires a WBG-DPT License.
        - ``WBGQOSS`` (Qoss) is the charge that must be supplied to the output capacitance of the
          power device during a specified time interval. Requires a WBG-DPT License.
        - ``WBGQRR`` (Qrr) measures the reverse recovery charge in the Power Device using the
          configured levels. Requires a WBG-DPT License.
        - ``WBGTDOFF`` (Td(off)) measures the turn off delay time of the Power Device in the off
          region using the configured levels. Requires a WBG-DPT License.
        - ``WBGTDON`` (Td(on)) measures the turn on delay time of the Power Device in the on region
          using the configured levels. Requires a WBG-DPT License.
        - ``WBGTF`` (Tf) measures the fall time of the Power Device in the off region using the
          configured levels.
        - ``WBGTOFF`` (Toff) measures the turn off time of the Power Device. It is the sum of the
          turn off delay time and the fall time. Requires a WBG-DPT License.
        - ``WBGTON`` (Ton) measures the turn on time of the Power Device. It is the sum of the turn
          on delay time and the rise time. Requires a WBG-DPT License.
        - ``WBGTR`` (Tr) measures the rise time of the Power Device in the on region using the
          configured levels. Requires a WBG-DPT License.
        - ``WBGTRR`` (Trr) measures the reverse recovery time of the Power Device using the
          configured levels. Requires a WBG-DPT License.
        - ``WBGTDT`` (Tdt) the time delay between turn on time of the high side MOSFET and turn on
          time of the low side MOSFET during the simultaneous switching. Requires a WBG-DPT License.
        - ``WBGVPEAK`` (Vpeak) measures the peak voltage of the Power Device in the off region.
          Requires a WBG-DPT License.
        - ``WIDTH`` (Eye Width) is the minimum horizontal eye opening at the user specified
          reference level. This measurement is made across the entire record. This measurement
          requires the DJA option and is not available on a 4 Series MSO instrument.
        - ``WIDTHBER`` (Eye Width@BER) is the predicted horizontal eye opening that will be violated
          with a probability equal to the bit error rate. This measurement is made across the entire
          record. This measurement requires the DJA option and is not available on a 4 Series MSO
          instrument.
    """  # noqa: E501


class MeasurementMeasItemTransition(SCPICmdWrite):
    """The ``MEASUrement:MEAS<x>:TRANSition`` command.

    Description:
        - This command sets or queries the transition edges flag for the measurement. The
          measurement number is specified by x.

    Usage:
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:TRANSition value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:TRANSition {ON|OFF|<NR1>}
        ```

    Info:
        - ``<NR1>`` = 1, the measurement is computed on rising (if measurement type is rise time) or
          falling edges (if measurement type is fall time) following a double transition only. If it
          is set to 0, the measurement is computed on all rising (if measurement type is rise time)
          or falling (if measurement type is fall time) edges.
        - ``OFF`` computes the measurement on all rising (if measurement type is rise time) or
          falling (if measurement type is fall time) edges.
        - ``ON`` computes the measurement on rising (if measurement type is rise time) or falling
          edges (if measurement type is fall time) following a double transition only.
    """


class MeasurementMeasItemTosymbolMeasureat(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:TOSYmbol:MEASUREAT`` command.

    Description:
        - This command sets or queries the DDR digital measurement ToSymbol MeasureAT value.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:TOSYmbol:MEASUREAT?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:TOSYmbol:MEASUREAT?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:TOSYmbol:MEASUREAT value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:TOSYmbol:MEASUREAT {Start|Stop|ClockEdge}
        - MEASUrement:MEAS<x>:TOSYmbol:MEASUREAT?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``Start`` sets the ToSymbol MeasureAT to Start.
        - ``Stop`` sets the ToSymbol MeasureAT to Stop.
        - ``ClockEdge`` sets the sets the ToSymbol MeasureAT to ClockEdge.
    """


class MeasurementMeasItemTosymbolLogic5source(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC5SOUrce`` command.

    Description:
        - This command sets or queries the DDR digital measurement logic 4 source To Symbol.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC5SOUrce?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC5SOUrce?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC5SOUrce value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:TOSYmbol:LOGIC5SOUrce {H|L|X}
        - MEASUrement:MEAS<x>:TOSYmbol:LOGIC5SOUrce?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``H`` sets the logic source 4 To Symbol to H (High).
        - ``L`` sets the logic source 4 To Symbol to L (Low).
        - ``X`` sets the logic source 4 To Symbol to X (Don't care).
    """


class MeasurementMeasItemTosymbolLogic4source(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC4SOUrce`` command.

    Description:
        - This command sets or queries the DDR digital measurement logic 3 source To Symbol.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC4SOUrce?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC4SOUrce?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC4SOUrce value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:TOSYmbol:LOGIC4SOUrce {H|L|X}
        - MEASUrement:MEAS<x>:TOSYmbol:LOGIC4SOUrce?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``H`` sets the logic source 3 To Symbol to H (High).
        - ``L`` sets the logic source 3 To Symbol to L (Low).
        - ``X`` sets the logic source 3 To Symbol to X (Don't care).
    """


class MeasurementMeasItemTosymbolLogic3source(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC3SOUrce`` command.

    Description:
        - This command sets or queries the DDR digital measurement logic 2 source To Symbol.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC3SOUrce?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC3SOUrce?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC3SOUrce value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:TOSYmbol:LOGIC3SOUrce {H|L|X}
        - MEASUrement:MEAS<x>:TOSYmbol:LOGIC3SOUrce?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``H`` sets the logic source 2 To Symbol to H (High).
        - ``L`` sets the logic source 2 To Symbol to L (Low).
        - ``X`` sets the logic source 2 To Symbol to X (Don't care).
    """


class MeasurementMeasItemTosymbolLogic2source(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC2SOUrce`` command.

    Description:
        - This command sets or queries the DDR digital measurement logic 1 source To Symbol.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC2SOUrce?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC2SOUrce?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC2SOUrce value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:TOSYmbol:LOGIC2SOUrce {H|L|X}
        - MEASUrement:MEAS<x>:TOSYmbol:LOGIC2SOUrce?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``H`` sets the logic source 1 To Symbol to H (High).
        - ``L`` sets the logic source 1 To Symbol to L (Low).
        - ``X`` sets the logic source 1 To Symbol to X (Don't care).
    """


class MeasurementMeasItemTosymbol(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:TOSYmbol`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:TOSYmbol?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:TOSYmbol?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.logic2source``: The ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC2SOUrce`` command.
        - ``.logic3source``: The ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC3SOUrce`` command.
        - ``.logic4source``: The ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC4SOUrce`` command.
        - ``.logic5source``: The ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC5SOUrce`` command.
        - ``.measureat``: The ``MEASUrement:MEAS<x>:TOSYmbol:MEASUREAT`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._logic2source = MeasurementMeasItemTosymbolLogic2source(
            device, f"{self._cmd_syntax}:LOGIC2SOUrce"
        )
        self._logic3source = MeasurementMeasItemTosymbolLogic3source(
            device, f"{self._cmd_syntax}:LOGIC3SOUrce"
        )
        self._logic4source = MeasurementMeasItemTosymbolLogic4source(
            device, f"{self._cmd_syntax}:LOGIC4SOUrce"
        )
        self._logic5source = MeasurementMeasItemTosymbolLogic5source(
            device, f"{self._cmd_syntax}:LOGIC5SOUrce"
        )
        self._measureat = MeasurementMeasItemTosymbolMeasureat(
            device, f"{self._cmd_syntax}:MEASUREAT"
        )

    @property
    def logic2source(self) -> MeasurementMeasItemTosymbolLogic2source:
        """Return the ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC2SOUrce`` command.

        Description:
            - This command sets or queries the DDR digital measurement logic 1 source To Symbol.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC2SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC2SOUrce?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC2SOUrce value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:TOSYmbol:LOGIC2SOUrce {H|L|X}
            - MEASUrement:MEAS<x>:TOSYmbol:LOGIC2SOUrce?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``H`` sets the logic source 1 To Symbol to H (High).
            - ``L`` sets the logic source 1 To Symbol to L (Low).
            - ``X`` sets the logic source 1 To Symbol to X (Don't care).
        """
        return self._logic2source

    @property
    def logic3source(self) -> MeasurementMeasItemTosymbolLogic3source:
        """Return the ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC3SOUrce`` command.

        Description:
            - This command sets or queries the DDR digital measurement logic 2 source To Symbol.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC3SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC3SOUrce?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC3SOUrce value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:TOSYmbol:LOGIC3SOUrce {H|L|X}
            - MEASUrement:MEAS<x>:TOSYmbol:LOGIC3SOUrce?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``H`` sets the logic source 2 To Symbol to H (High).
            - ``L`` sets the logic source 2 To Symbol to L (Low).
            - ``X`` sets the logic source 2 To Symbol to X (Don't care).
        """
        return self._logic3source

    @property
    def logic4source(self) -> MeasurementMeasItemTosymbolLogic4source:
        """Return the ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC4SOUrce`` command.

        Description:
            - This command sets or queries the DDR digital measurement logic 3 source To Symbol.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC4SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC4SOUrce?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC4SOUrce value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:TOSYmbol:LOGIC4SOUrce {H|L|X}
            - MEASUrement:MEAS<x>:TOSYmbol:LOGIC4SOUrce?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``H`` sets the logic source 3 To Symbol to H (High).
            - ``L`` sets the logic source 3 To Symbol to L (Low).
            - ``X`` sets the logic source 3 To Symbol to X (Don't care).
        """
        return self._logic4source

    @property
    def logic5source(self) -> MeasurementMeasItemTosymbolLogic5source:
        """Return the ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC5SOUrce`` command.

        Description:
            - This command sets or queries the DDR digital measurement logic 4 source To Symbol.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC5SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC5SOUrce?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC5SOUrce value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:TOSYmbol:LOGIC5SOUrce {H|L|X}
            - MEASUrement:MEAS<x>:TOSYmbol:LOGIC5SOUrce?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``H`` sets the logic source 4 To Symbol to H (High).
            - ``L`` sets the logic source 4 To Symbol to L (Low).
            - ``X`` sets the logic source 4 To Symbol to X (Don't care).
        """
        return self._logic5source

    @property
    def measureat(self) -> MeasurementMeasItemTosymbolMeasureat:
        """Return the ``MEASUrement:MEAS<x>:TOSYmbol:MEASUREAT`` command.

        Description:
            - This command sets or queries the DDR digital measurement ToSymbol MeasureAT value.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:TOSYmbol:MEASUREAT?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:TOSYmbol:MEASUREAT?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:TOSYmbol:MEASUREAT value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:TOSYmbol:MEASUREAT {Start|Stop|ClockEdge}
            - MEASUrement:MEAS<x>:TOSYmbol:MEASUREAT?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``Start`` sets the ToSymbol MeasureAT to Start.
            - ``Stop`` sets the ToSymbol MeasureAT to Stop.
            - ``ClockEdge`` sets the sets the ToSymbol MeasureAT to ClockEdge.
        """
        return self._measureat


class MeasurementMeasItemToedge(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:TOEdge`` command.

    Description:
        - This command sets or queries the 'to edge' type for the measurement. The measurement
          number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:TOEdge?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:TOEdge?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:TOEdge value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:TOEdge {SAMEas|OPPositeas|RISe|FALL|BOTH}
        - MEASUrement:MEAS<x>:TOEdge?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``FALL`` specifies the falling edge of the waveform.
        - ``RISe`` specifies the rising edge of the waveform.
        - ``BOTH`` specifies both a rising and falling edge of the waveform.
        - ``SAMEas`` specifies that both edges of the waveform are the same.
        - ``OPPositeas`` specifies that the edges of the waveform are not the same.
    """


class MeasurementMeasItemToedgesearchdirect(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:TOEDGESEARCHDIRect`` command.

    Description:
        - This command sets or queries the to edge search direction for the measurement. The
          measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:TOEDGESEARCHDIRect?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:TOEDGESEARCHDIRect?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:TOEDGESEARCHDIRect value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:TOEDGESEARCHDIRect {FORWard|BACKWard}
        - MEASUrement:MEAS<x>:TOEDGESEARCHDIRect?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``FORWard`` specifies a forward search to the edge.
        - ``BACKWard`` specifies a backward search to the edge.
    """


class MeasurementMeasItemTmethod(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:TMEThod`` command.

    Description:
        - This command sets or queries the measurement torque method.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:TMEThod?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:TMEThod?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:TMEThod value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:TMEThod {SENSOR|CURRENT}
        - MEASUrement:MEAS<x>:TMEThod?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``SENSOR`` specifies the Torque Method as SENSOR.
        - ``CURRENT`` specifies the Torque Method as CURRENT.
    """


class MeasurementMeasItemTlevel(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:TLEVel`` command.

    Description:
        - This command sets or queries whether histogram center is percentage relative to unit
          amplitude or an absolute value, for eye height measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:TLEVel?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:TLEVel?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:TLEVel value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:TLEVel {PERCent|ABSolute}
        - MEASUrement:MEAS<x>:TLEVel?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``PERCent`` sets the histogram center as a percentage relative to unit amplitude.
        - ``ABSolute`` sets the histogram center as an absolute value.
    """


class MeasurementMeasItemTimingmode(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:TIMINGMode`` command.

    Description:
        - This command sets or queries the Timing mode for the specified DDR measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:TIMINGMode?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:TIMINGMode?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:TIMINGMode value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:TIMINGMode {EACHCLOCKCYCLE|TWOCLOCKCYCLES}
        - MEASUrement:MEAS<x>:TIMINGMode?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``EACHCLOCKCYCLE`` sets the DDR Timing Mode to use each clock cycle at a time.
        - ``TWOCLOCKCYCLES`` sets the DDR Timing Mode to use two cycles at a time.
    """


class MeasurementMeasItemTdrpreset(SCPICmdWrite):
    """The ``MEASUrement:MEAS<x>:TDRPreset`` command.

    Description:
        - This command executes the preset for TDR measurement.

    Usage:
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:TDRPreset value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:TDRPreset {EXECUTE}
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``EXECUTE`` executes the preset for TDR measurement.
    """


class MeasurementMeasItemTconstant(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:TCONstant`` command.

    Description:
        - This command sets or queries the measurement Torque Constant.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:TCONstant?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:TCONstant?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:TCONstant value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:TCONstant <NR1>
        - MEASUrement:MEAS<x>:TCONstant?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``NR1`` specifies the current multiplier value of the measurement in the range of 0 to
          100.
    """


class MeasurementMeasItemTckavg(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:TCKAVG`` command.

    Description:
        - This command sets or queries the average clock period value used in DDR measurements.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:TCKAVG?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:TCKAVG?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:TCKAVG value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:TCKAVG <NR3>
        - MEASUrement:MEAS<x>:TCKAVG?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is a floating point number that represents the DDR average clock period in
          seconds.
    """


class MeasurementMeasItemSunits(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:SUNits`` command.

    Description:
        - This command sets or queries the speed units for the specific measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SUNits?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:SUNits?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:SUNits value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:SUNits {RPM|HZ}
        - MEASUrement:MEAS<x>:SUNits?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``RPM`` defines the speed measurement units as RPM.
        - ``HZ`` defines the speed measurement units as HZ.
    """


class MeasurementMeasItemSubgroupResultsCurrentacqStddev(SCPICmdReadWithArguments):
    r"""The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:STDDev`` command.

    Description:
        - This query returns the standard deviation value of the measurement specified by the
          string, for the current acquisition.

    Usage:
        - Using the ``.query(argument)`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:STDDev? argument`` query.
        - Using the ``.verify(argument, value)`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:STDDev? argument`` query and raise an
          AssertionError if the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:STDDev? <QString>
        ```

    Info:
        - ``<QString>`` = INPUT\|OUTPUT1\|OUTPUT2\|OUTPUT3\|OUTPUT4\|OUTPUT5\|OUTPUT6\|OUTPUT7\|
          RAIL1DPMOVERSHOOT\|RAIL1DPMUNDERSHOOT\|RAIL1FREQUENCY \|RAIL1PK2PK
          \|RAIL1RMS\|RAIL1RMSFULL\|RAIL2FREQUENCY \|RAIL2PK2PK \|RAIL2RMS\|RAIL2RMSFULL
          \|RAIL3FREQUENCY \|RAIL3PK2PK\|RAIL3RMS\|RAIL3RMSFULL \|RAIL4FREQUENCY
          \|RAIL4PK2PK\|RAIL4RMS \|RAIL4RMSFULL \|RAIL5FREQUENCY\|RAIL5PK2PK\|RAIL5RMS
          \|RAIL5RMSFULL \|RAIL6FREQUENCY\|RAIL6PK2PK \|RAIL6RMS \|RAIL6RMSFULL
          \|RAIL7DPMOVERSHOOT\|RAIL7DPMUNDERSHOOT \|RAIL7FREQUENCY \|RAIL7PK2PK\|RAIL7RMS
          \|RAIL7RMSFULL.
    """


class MeasurementMeasItemSubgroupResultsCurrentacqPopulation(SCPICmdReadWithArguments):
    r"""The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:POPUlation`` command.

    Description:
        - This query returns the population value of the measurement specified by the string, for
          the current acquisition.

    Usage:
        - Using the ``.query(argument)`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:POPUlation? argument`` query.
        - Using the ``.verify(argument, value)`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:POPUlation? argument`` query and raise
          an AssertionError if the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:POPUlation? <QString>
        ```

    Info:
        - ``<QString>`` = INPUT\|OUTPUT1\|OUTPUT2\|OUTPUT3\|OUTPUT4\|OUTPUT5\|OUTPUT6\|OUTPUT7\|
          RAIL1DPMOVERSHOOT\|RAIL1DPMUNDERSHOOT\|RAIL1FREQUENCY \|RAIL1PK2PK
          \|RAIL1RMS\|RAIL1RMSFULL\|RAIL2FREQUENCY \|RAIL2PK2PK \|RAIL2RMS\|RAIL2RMSFULL
          \|RAIL3FREQUENCY \|RAIL3PK2PK\|RAIL3RMS\|RAIL3RMSFULL \|RAIL4FREQUENCY
          \|RAIL4PK2PK\|RAIL4RMS \|RAIL4RMSFULL \|RAIL5FREQUENCY\|RAIL5PK2PK\|RAIL5RMS
          \|RAIL5RMSFULL \|RAIL6FREQUENCY\|RAIL6PK2PK \|RAIL6RMS \|RAIL6RMSFULL
          \|RAIL7DPMOVERSHOOT\|RAIL7DPMUNDERSHOOT \|RAIL7FREQUENCY \|RAIL7PK2PK\|RAIL7RMS
          \|RAIL7RMSFULL.
    """


class MeasurementMeasItemSubgroupResultsCurrentacqPk2pk(SCPICmdReadWithArguments):
    r"""The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:PK2PK`` command.

    Description:
        - This query returns the peak-to-peak value of the measurement specified by the string, for
          the current acquisition.

    Usage:
        - Using the ``.query(argument)`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:PK2PK? argument`` query.
        - Using the ``.verify(argument, value)`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:PK2PK? argument`` query and raise an
          AssertionError if the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:PK2PK? <QString>
        ```

    Info:
        - ``<QString>`` = INPUT\|OUTPUT1\|OUTPUT2\|OUTPUT3\|OUTPUT4\|OUTPUT5\|OUTPUT6\|OUTPUT7\|
          RAIL1DPMOVERSHOOT\|RAIL1DPMUNDERSHOOT\|RAIL1FREQUENCY \|RAIL1PK2PK
          \|RAIL1RMS\|RAIL1RMSFULL\|RAIL2FREQUENCY \|RAIL2PK2PK \|RAIL2RMS\|RAIL2RMSFULL
          \|RAIL3FREQUENCY \|RAIL3PK2PK\|RAIL3RMS\|RAIL3RMSFULL \|RAIL4FREQUENCY
          \|RAIL4PK2PK\|RAIL4RMS \|RAIL4RMSFULL \|RAIL5FREQUENCY\|RAIL5PK2PK\|RAIL5RMS
          \|RAIL5RMSFULL \|RAIL6FREQUENCY\|RAIL6PK2PK \|RAIL6RMS \|RAIL6RMSFULL
          \|RAIL7DPMOVERSHOOT\|RAIL7DPMUNDERSHOOT \|RAIL7FREQUENCY \|RAIL7PK2PK\|RAIL7RMS
          \|RAIL7RMSFULL is the path and filename, in quotes, of the file containing the data
          pattern.
    """


class MeasurementMeasItemSubgroupResultsCurrentacqMinimum(SCPICmdReadWithArguments):
    r"""The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MINimum`` command.

    Description:
        - This query returns the minimum value of the measurement specified by the string, for the
          current acquisition.

    Usage:
        - Using the ``.query(argument)`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MINimum? argument`` query.
        - Using the ``.verify(argument, value)`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MINimum? argument`` query and raise an
          AssertionError if the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MINimum? <QString>
        ```

    Info:
        - ``<QString>`` = INPUT\|OUTPUT1\|OUTPUT2\|OUTPUT3\|OUTPUT4\|OUTPUT5\|OUTPUT6\|OUTPUT7\|
          RAIL1DPMOVERSHOOT\|RAIL1DPMUNDERSHOOT\|RAIL1FREQUENCY \|RAIL1PK2PK
          \|RAIL1RMS\|RAIL1RMSFULL\|RAIL2FREQUENCY \|RAIL2PK2PK \|RAIL2RMS\|RAIL2RMSFULL
          \|RAIL3FREQUENCY \|RAIL3PK2PK\|RAIL3RMS\|RAIL3RMSFULL \|RAIL4FREQUENCY
          \|RAIL4PK2PK\|RAIL4RMS \|RAIL4RMSFULL \|RAIL5FREQUENCY\|RAIL5PK2PK\|RAIL5RMS
          \|RAIL5RMSFULL \|RAIL6FREQUENCY\|RAIL6PK2PK \|RAIL6RMS \|RAIL6RMSFULL
          \|RAIL7DPMOVERSHOOT\|RAIL7DPMUNDERSHOOT \|RAIL7FREQUENCY \|RAIL7PK2PK\|RAIL7RMS
          \|RAIL7RMSFULL \|SPEED \|ACCELERATION \|DIRECTION\|ANGLE \|TORQUE \|POWER \|ELECPWR
          \|MECHPWR \|SYSTEMEFFICIENCY\|EON \|EOFF \|TDON \|TDOFF \|startlevel \|stoplevel \|TRR
          \|QRR \|TA \|TB \|RSF\|VPEAK \|IPEAK \|TR \|ERR \|TF \|TON \|TOFF \|IRRM \|DBYDT \|fft
          \|tiespectra\|subspectra \|beforetie \|beforepj \|beforeeyeheight \|beforeeyewidth
          \|reconst \|aftertie\|afterpj \|aftereyeheight \|aftereyewidth \|freq \|qoss \|PH1TDD
          \|PH2TDD \|PH3TDD\|TDT \|zmean \|cmean \|lmean.
    """


class MeasurementMeasItemSubgroupResultsCurrentacqMean(SCPICmdReadWithArguments):
    r"""The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MEAN`` command.

    Description:
        - This query returns the mean value of the measurement specified by the string, for the
          current acquisition.

    Usage:
        - Using the ``.query(argument)`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MEAN? argument`` query.
        - Using the ``.verify(argument, value)`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MEAN? argument`` query and raise an
          AssertionError if the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MEAN? <QString>
        ```

    Info:
        - ``<QString>`` = INPUT \|OUTPUT1 \|OUTPUT2 \|OUTPUT3 \|OUTPUT4\|OUTPUT5 \|OUTPUT6 \|OUTPUT7
          \|RAIL1DPMOVERSHOOT\|RAIL1DPMUNDERSHOOT \|RAIL1FREQUENCY \|RAIL1PK2PK\|RAIL1RMS
          \|RAIL1RMSFULL \|RAIL2FREQUENCY \|RAIL2PK2PK\|RAIL2RMS \|RAIL2RMSFULL \|RAIL3FREQUENCY
          \|RAIL3PK2PK\|RAIL3RMS \|RAIL3RMSFULL \|RAIL4FREQUENCY \|RAIL4PK2PK\|RAIL4RMS
          \|RAIL4RMSFULL \|RAIL5FREQUENCY \|RAIL5PK2PK\|RAIL5RMS \|RAIL5RMSFULL \|RAIL6FREQUENCY
          \|RAIL6PK2PK\|RAIL6RMS \|RAIL6RMSFULL \|RAIL7DPMOVERSHOOT\|RAIL7DPMUNDERSHOOT
          \|RAIL7FREQUENCY \|RAIL7PK2PK\|RAIL7RMS \|RAIL7RMSFULL \|L2LPH1VRMS
          \|L2LPH1VCFactor\|L2LPH1TruePwr \|L2LPH1RePwr \|L2LPH1AppPwr
          \|L2LPH1PwrFactor\|L2LPH1PhaseDiff \|L2LPH1VPhase \|L2LPH2VRMS
          \|L2LPH2VCFactor\|L2LPH2TruePwr \|L2LPH2RePwr \|L2LPH2AppPwr
          \|L2LPH2PwrFactor\|L2LPH2PhaseDiff \|L2LPH2VPhase \|L2LPH3VRMS
          \|L2LPH3VCFactor\|L2LPH3TruePwr \|L2LPH3RePwr \|L2LPH3AppPwr
          \|L2LPH3PwrFactor\|L2LPH3PhaseDiff \|L2LPH3VPhase \|L2NPH1VRMS
          \|L2NPH1VCFactor\|L2NPH1TruePwr \|L2NPH1RePwr \|L2NPH1AppPwr
          \|L2NPH1PwrFactor\|L2NPH1PhaseDiff \|L2NPH1VPhase \|L2NPH2VRMS
          \|L2NPH2VCFactor\|L2NPH2TruePwr \|L2NPH2RePwr \|L2NPH2AppPwr
          \|L2NPH2PwrFactor\|L2NPH2PhaseDiff \|L2NPH2VPhase \|L2NPH3VRMS
          \|L2NPH3VCFactor\|L2NPH3TruePwr \|L2NPH3RePwr \|L2NPH3AppPwr
          \|L2NPH3PwrFactor\|L2NPH3PhaseDiff \|L2NPH3VPhase \|PH1IRMS \|PH1IPhase
          \|PH1ICFactor\|PH2IRMS \|PH2IPhase \|PH2ICFactor \|PH3IRMS \|PH3IPhase
          \|PH3ICFactor\|Frequency \|L2LPH1F1Mag \|L2LPH1F3Mag \|L2LPH1THDF \|L2LPH1THDR\|L2LPH1RMS
          \|L2LPH1IRMS \|L2LPH1Status \|L2LPH1HarmonicsNumber\|L2LPH1Frequency \|L2LPH1MagnitudeAbs
          \|L2LPH1MagnitudePct\|L2LPH1Phase \|L2LPH1Limits \|L2LPH1PassFail
          \|L2LPH1Margin\|L2LPH2F1Mag \|L2LPH2F3Mag \|L2LPH2THDF \|L2LPH2THDR\|L2LPH2RMS
          \|L2LPH2IRMS \|L2LPH2Status \|L2LPH2HarmonicsNumber\|L2LPH2Frequency \|L2LPH2MagnitudeAbs
          \|L2LPH2MagnitudePct\|L2LPH2Phase \|L2LPH2Limits \|L2LPH2PassFail
          \|L2LPH2Margin\|L2LPH3F1Mag \|L2LPH3F3Mag \|L2LPH3THDF \|L2LPH3THDR
          \|L2LPH3RMS\|L2LPH3IRMS \|L2LPH3Status \|L2LPH3HarmonicsNumber
          \|L2LPH3Frequency\|L2LPH3MagnitudeAbs \|L2LPH3MagnitudePct \|L2LPH3Phase
          \|L2LPH3Limits\|L2LPH3PassFail \|L2LPH3Margin \|L2NPH1F1Mag \|L2NPH1F3Mag\|L2NPH1THDF
          \|L2NPH1THDR \|L2NPH1RMS \|L2NPH1IRMS\|L2NPH1Status \|L2NPH1HarmonicsNumber
          \|L2NPH1Frequency\|L2NPH1MagnitudeAbs \|L2NPH1MagnitudePct
          \|L2NPH1Phase\|L2NPH1Limits\|L2NPH1PassFail\|L2NPH1Margin
          \|L2NPH2F1Mag\|L2NPH2F3Mag\|L2NPH2THDF\|L2NPH2THDR \|L2NPH2RMS\|L2NPH2IRMS\|L2NPH2Status
          \|L2NPH2HarmonicsNumber \|L2NPH2Frequency\|L2NPH2MagnitudeAbs \|L2NPH2MagnitudePct
          \|L2NPH2Phase\|L2NPH2Limits\|L2NPH2PassFail\|L2NPH2Margin \|L2NPH3F1Mag
          \|L2NPH3F3Mag\|L2NPH3THDF \|L2NPH3THDR \|L2NPH3RMS \|L2NPH3IRMS
          \|L2NPH3Status\|L2NPH3HarmonicsNumber \|L2NPH3Frequency
          \|L2NPH3MagnitudeAbs\|L2NPH3MagnitudePct \|L2NPH3Phase \|L2NPH3Limits
          \|L2NPH3PassFail\|L2NPH3Margin \|ORDER\|PH1INPwr \|PH1OUTPwr \|PH1Efficiency
          \|PH2INPwr\|PH2OUTPwr \|PH2Efficiency \|TotalEfficiency \|PH1LRIPRMS
          \|PH1LRIPPK2PK\|PH2LRIPRMS \|PH2LRIPPK2PK \|PH3LRIPRMS \|PH3LRIPPK2PK\|PH1SWRIPRMS
          \|PH1SWRIPPK2PK \|PH2SWRIPRMS \|PH2SWRIPPK2PK\|PH3SWRIPRMS \|PH3SWRIPPK2PK \|TruePwrSum
          \|RePwrSum \|AppPwrSum\|InPwrSum \|OutPwrSum \|SPEED \|ACCELERATION \|DIRECTION
          \|ANGLE\|TORQUE \|POWER \|ELECPWR \|MECHPWR \|SYSTEMEFFICIENCY \|EON\|EOFF \|TDON \|TDOFF
          \|startlevel \|stoplevel \|TRR \|QRR \|TA \|TB \|RSF \|VPEAK\|IPEAK \|TR \|ERR \|TF \|TON
          \|TOFF \|IRRM \|DBYDT \|fft \|tiespectra \|subspectra\|beforetie \|beforepj
          \|beforeeyeheight \|beforeeyewidth \|reconst \|aftertie \|afterpj\|aftereyeheight
          \|aftereyewidth \|freq \|qoss \|PH1TDD \|PH2TDD \|PH3TDD \|TDT\|zmean \|cmean \|lmean.
    """


class MeasurementMeasItemSubgroupResultsCurrentacqMaximum(SCPICmdReadWithArguments):
    r"""The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MAXimum`` command.

    Description:
        - This query returns the maximum value of the measurement specified by the string, for the
          current acquisition.

    Usage:
        - Using the ``.query(argument)`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MAXimum? argument`` query.
        - Using the ``.verify(argument, value)`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MAXimum? argument`` query and raise an
          AssertionError if the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MAXimum? <QString>
        ```

    Info:
        - ``<QString>`` = INPUT\|OUTPUT1\|OUTPUT2\|OUTPUT3\|OUTPUT4\|OUTPUT5\|OUTPUT6\|OUTPUT7\|
          RAIL1DPMOVERSHOOT\|RAIL1DPMUNDERSHOOT\|RAIL1FREQUENCY \|RAIL1PK2PK
          \|RAIL1RMS\|RAIL1RMSFULL\|RAIL2FREQUENCY \|RAIL2PK2PK \|RAIL2RMS\|RAIL2RMSFULL
          \|RAIL3FREQUENCY \|RAIL3PK2PK\|RAIL3RMS\|RAIL3RMSFULL \|RAIL4FREQUENCY
          \|RAIL4PK2PK\|RAIL4RMS \|RAIL4RMSFULL \|RAIL5FREQUENCY\|RAIL5PK2PK\|RAIL5RMS
          \|RAIL5RMSFULL \|RAIL6FREQUENCY\|RAIL6PK2PK \|RAIL6RMS \|RAIL6RMSFULL
          \|RAIL7DPMOVERSHOOT\|RAIL7DPMUNDERSHOOT \|RAIL7FREQUENCY \|RAIL7PK2PK\|RAIL7RMS
          \|RAIL7RMSFULL.
    """


class MeasurementMeasItemSubgroupResultsCurrentacq(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq`` command tree.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.maximum``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MAXimum`` command.
        - ``.mean``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MEAN`` command.
        - ``.minimum``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MINimum`` command.
        - ``.pk2pk``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:PK2PK`` command.
        - ``.population``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:POPUlation``
          command.
        - ``.stddev``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:STDDev`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._maximum = MeasurementMeasItemSubgroupResultsCurrentacqMaximum(
            device, f"{self._cmd_syntax}:MAXimum"
        )
        self._mean = MeasurementMeasItemSubgroupResultsCurrentacqMean(
            device, f"{self._cmd_syntax}:MEAN"
        )
        self._minimum = MeasurementMeasItemSubgroupResultsCurrentacqMinimum(
            device, f"{self._cmd_syntax}:MINimum"
        )
        self._pk2pk = MeasurementMeasItemSubgroupResultsCurrentacqPk2pk(
            device, f"{self._cmd_syntax}:PK2PK"
        )
        self._population = MeasurementMeasItemSubgroupResultsCurrentacqPopulation(
            device, f"{self._cmd_syntax}:POPUlation"
        )
        self._stddev = MeasurementMeasItemSubgroupResultsCurrentacqStddev(
            device, f"{self._cmd_syntax}:STDDev"
        )

    @property
    def maximum(self) -> MeasurementMeasItemSubgroupResultsCurrentacqMaximum:
        r"""Return the ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MAXimum`` command.

        Description:
            - This query returns the maximum value of the measurement specified by the string, for
              the current acquisition.

        Usage:
            - Using the ``.query(argument)`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MAXimum? argument`` query.
            - Using the ``.verify(argument, value)`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MAXimum? argument`` query and raise
              an AssertionError if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MAXimum? <QString>
            ```

        Info:
            - ``<QString>`` = INPUT\|OUTPUT1\|OUTPUT2\|OUTPUT3\|OUTPUT4\|OUTPUT5\|OUTPUT6\|OUTPUT7\|
              RAIL1DPMOVERSHOOT\|RAIL1DPMUNDERSHOOT\|RAIL1FREQUENCY \|RAIL1PK2PK
              \|RAIL1RMS\|RAIL1RMSFULL\|RAIL2FREQUENCY \|RAIL2PK2PK \|RAIL2RMS\|RAIL2RMSFULL
              \|RAIL3FREQUENCY \|RAIL3PK2PK\|RAIL3RMS\|RAIL3RMSFULL \|RAIL4FREQUENCY
              \|RAIL4PK2PK\|RAIL4RMS \|RAIL4RMSFULL \|RAIL5FREQUENCY\|RAIL5PK2PK\|RAIL5RMS
              \|RAIL5RMSFULL \|RAIL6FREQUENCY\|RAIL6PK2PK \|RAIL6RMS \|RAIL6RMSFULL
              \|RAIL7DPMOVERSHOOT\|RAIL7DPMUNDERSHOOT \|RAIL7FREQUENCY \|RAIL7PK2PK\|RAIL7RMS
              \|RAIL7RMSFULL.
        """
        return self._maximum

    @property
    def mean(self) -> MeasurementMeasItemSubgroupResultsCurrentacqMean:
        r"""Return the ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MEAN`` command.

        Description:
            - This query returns the mean value of the measurement specified by the string, for the
              current acquisition.

        Usage:
            - Using the ``.query(argument)`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MEAN? argument`` query.
            - Using the ``.verify(argument, value)`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MEAN? argument`` query and raise an
              AssertionError if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MEAN? <QString>
            ```

        Info:
            - ``<QString>`` = INPUT \|OUTPUT1 \|OUTPUT2 \|OUTPUT3 \|OUTPUT4\|OUTPUT5 \|OUTPUT6
              \|OUTPUT7 \|RAIL1DPMOVERSHOOT\|RAIL1DPMUNDERSHOOT \|RAIL1FREQUENCY
              \|RAIL1PK2PK\|RAIL1RMS \|RAIL1RMSFULL \|RAIL2FREQUENCY \|RAIL2PK2PK\|RAIL2RMS
              \|RAIL2RMSFULL \|RAIL3FREQUENCY \|RAIL3PK2PK\|RAIL3RMS \|RAIL3RMSFULL \|RAIL4FREQUENCY
              \|RAIL4PK2PK\|RAIL4RMS \|RAIL4RMSFULL \|RAIL5FREQUENCY \|RAIL5PK2PK\|RAIL5RMS
              \|RAIL5RMSFULL \|RAIL6FREQUENCY \|RAIL6PK2PK\|RAIL6RMS \|RAIL6RMSFULL
              \|RAIL7DPMOVERSHOOT\|RAIL7DPMUNDERSHOOT \|RAIL7FREQUENCY \|RAIL7PK2PK\|RAIL7RMS
              \|RAIL7RMSFULL \|L2LPH1VRMS \|L2LPH1VCFactor\|L2LPH1TruePwr \|L2LPH1RePwr
              \|L2LPH1AppPwr \|L2LPH1PwrFactor\|L2LPH1PhaseDiff \|L2LPH1VPhase \|L2LPH2VRMS
              \|L2LPH2VCFactor\|L2LPH2TruePwr \|L2LPH2RePwr \|L2LPH2AppPwr
              \|L2LPH2PwrFactor\|L2LPH2PhaseDiff \|L2LPH2VPhase \|L2LPH3VRMS
              \|L2LPH3VCFactor\|L2LPH3TruePwr \|L2LPH3RePwr \|L2LPH3AppPwr
              \|L2LPH3PwrFactor\|L2LPH3PhaseDiff \|L2LPH3VPhase \|L2NPH1VRMS
              \|L2NPH1VCFactor\|L2NPH1TruePwr \|L2NPH1RePwr \|L2NPH1AppPwr
              \|L2NPH1PwrFactor\|L2NPH1PhaseDiff \|L2NPH1VPhase \|L2NPH2VRMS
              \|L2NPH2VCFactor\|L2NPH2TruePwr \|L2NPH2RePwr \|L2NPH2AppPwr
              \|L2NPH2PwrFactor\|L2NPH2PhaseDiff \|L2NPH2VPhase \|L2NPH3VRMS
              \|L2NPH3VCFactor\|L2NPH3TruePwr \|L2NPH3RePwr \|L2NPH3AppPwr
              \|L2NPH3PwrFactor\|L2NPH3PhaseDiff \|L2NPH3VPhase \|PH1IRMS \|PH1IPhase
              \|PH1ICFactor\|PH2IRMS \|PH2IPhase \|PH2ICFactor \|PH3IRMS \|PH3IPhase
              \|PH3ICFactor\|Frequency \|L2LPH1F1Mag \|L2LPH1F3Mag \|L2LPH1THDF
              \|L2LPH1THDR\|L2LPH1RMS \|L2LPH1IRMS \|L2LPH1Status
              \|L2LPH1HarmonicsNumber\|L2LPH1Frequency \|L2LPH1MagnitudeAbs
              \|L2LPH1MagnitudePct\|L2LPH1Phase \|L2LPH1Limits \|L2LPH1PassFail
              \|L2LPH1Margin\|L2LPH2F1Mag \|L2LPH2F3Mag \|L2LPH2THDF \|L2LPH2THDR\|L2LPH2RMS
              \|L2LPH2IRMS \|L2LPH2Status \|L2LPH2HarmonicsNumber\|L2LPH2Frequency
              \|L2LPH2MagnitudeAbs \|L2LPH2MagnitudePct\|L2LPH2Phase \|L2LPH2Limits \|L2LPH2PassFail
              \|L2LPH2Margin\|L2LPH3F1Mag \|L2LPH3F3Mag \|L2LPH3THDF \|L2LPH3THDR
              \|L2LPH3RMS\|L2LPH3IRMS \|L2LPH3Status \|L2LPH3HarmonicsNumber
              \|L2LPH3Frequency\|L2LPH3MagnitudeAbs \|L2LPH3MagnitudePct \|L2LPH3Phase
              \|L2LPH3Limits\|L2LPH3PassFail \|L2LPH3Margin \|L2NPH1F1Mag \|L2NPH1F3Mag\|L2NPH1THDF
              \|L2NPH1THDR \|L2NPH1RMS \|L2NPH1IRMS\|L2NPH1Status \|L2NPH1HarmonicsNumber
              \|L2NPH1Frequency\|L2NPH1MagnitudeAbs \|L2NPH1MagnitudePct
              \|L2NPH1Phase\|L2NPH1Limits\|L2NPH1PassFail\|L2NPH1Margin
              \|L2NPH2F1Mag\|L2NPH2F3Mag\|L2NPH2THDF\|L2NPH2THDR
              \|L2NPH2RMS\|L2NPH2IRMS\|L2NPH2Status \|L2NPH2HarmonicsNumber
              \|L2NPH2Frequency\|L2NPH2MagnitudeAbs \|L2NPH2MagnitudePct
              \|L2NPH2Phase\|L2NPH2Limits\|L2NPH2PassFail\|L2NPH2Margin \|L2NPH3F1Mag
              \|L2NPH3F3Mag\|L2NPH3THDF \|L2NPH3THDR \|L2NPH3RMS \|L2NPH3IRMS
              \|L2NPH3Status\|L2NPH3HarmonicsNumber \|L2NPH3Frequency
              \|L2NPH3MagnitudeAbs\|L2NPH3MagnitudePct \|L2NPH3Phase \|L2NPH3Limits
              \|L2NPH3PassFail\|L2NPH3Margin \|ORDER\|PH1INPwr \|PH1OUTPwr \|PH1Efficiency
              \|PH2INPwr\|PH2OUTPwr \|PH2Efficiency \|TotalEfficiency \|PH1LRIPRMS
              \|PH1LRIPPK2PK\|PH2LRIPRMS \|PH2LRIPPK2PK \|PH3LRIPRMS \|PH3LRIPPK2PK\|PH1SWRIPRMS
              \|PH1SWRIPPK2PK \|PH2SWRIPRMS \|PH2SWRIPPK2PK\|PH3SWRIPRMS \|PH3SWRIPPK2PK
              \|TruePwrSum \|RePwrSum \|AppPwrSum\|InPwrSum \|OutPwrSum \|SPEED \|ACCELERATION
              \|DIRECTION \|ANGLE\|TORQUE \|POWER \|ELECPWR \|MECHPWR \|SYSTEMEFFICIENCY \|EON\|EOFF
              \|TDON \|TDOFF \|startlevel \|stoplevel \|TRR \|QRR \|TA \|TB \|RSF \|VPEAK\|IPEAK
              \|TR \|ERR \|TF \|TON \|TOFF \|IRRM \|DBYDT \|fft \|tiespectra \|subspectra\|beforetie
              \|beforepj \|beforeeyeheight \|beforeeyewidth \|reconst \|aftertie
              \|afterpj\|aftereyeheight \|aftereyewidth \|freq \|qoss \|PH1TDD \|PH2TDD \|PH3TDD
              \|TDT\|zmean \|cmean \|lmean.
        """
        return self._mean

    @property
    def minimum(self) -> MeasurementMeasItemSubgroupResultsCurrentacqMinimum:
        r"""Return the ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MINimum`` command.

        Description:
            - This query returns the minimum value of the measurement specified by the string, for
              the current acquisition.

        Usage:
            - Using the ``.query(argument)`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MINimum? argument`` query.
            - Using the ``.verify(argument, value)`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MINimum? argument`` query and raise
              an AssertionError if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MINimum? <QString>
            ```

        Info:
            - ``<QString>`` = INPUT\|OUTPUT1\|OUTPUT2\|OUTPUT3\|OUTPUT4\|OUTPUT5\|OUTPUT6\|OUTPUT7\|
              RAIL1DPMOVERSHOOT\|RAIL1DPMUNDERSHOOT\|RAIL1FREQUENCY \|RAIL1PK2PK
              \|RAIL1RMS\|RAIL1RMSFULL\|RAIL2FREQUENCY \|RAIL2PK2PK \|RAIL2RMS\|RAIL2RMSFULL
              \|RAIL3FREQUENCY \|RAIL3PK2PK\|RAIL3RMS\|RAIL3RMSFULL \|RAIL4FREQUENCY
              \|RAIL4PK2PK\|RAIL4RMS \|RAIL4RMSFULL \|RAIL5FREQUENCY\|RAIL5PK2PK\|RAIL5RMS
              \|RAIL5RMSFULL \|RAIL6FREQUENCY\|RAIL6PK2PK \|RAIL6RMS \|RAIL6RMSFULL
              \|RAIL7DPMOVERSHOOT\|RAIL7DPMUNDERSHOOT \|RAIL7FREQUENCY \|RAIL7PK2PK\|RAIL7RMS
              \|RAIL7RMSFULL \|SPEED \|ACCELERATION \|DIRECTION\|ANGLE \|TORQUE \|POWER \|ELECPWR
              \|MECHPWR \|SYSTEMEFFICIENCY\|EON \|EOFF \|TDON \|TDOFF \|startlevel \|stoplevel \|TRR
              \|QRR \|TA \|TB \|RSF\|VPEAK \|IPEAK \|TR \|ERR \|TF \|TON \|TOFF \|IRRM \|DBYDT \|fft
              \|tiespectra\|subspectra \|beforetie \|beforepj \|beforeeyeheight \|beforeeyewidth
              \|reconst \|aftertie\|afterpj \|aftereyeheight \|aftereyewidth \|freq \|qoss \|PH1TDD
              \|PH2TDD \|PH3TDD\|TDT \|zmean \|cmean \|lmean.
        """
        return self._minimum

    @property
    def pk2pk(self) -> MeasurementMeasItemSubgroupResultsCurrentacqPk2pk:
        r"""Return the ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:PK2PK`` command.

        Description:
            - This query returns the peak-to-peak value of the measurement specified by the string,
              for the current acquisition.

        Usage:
            - Using the ``.query(argument)`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:PK2PK? argument`` query.
            - Using the ``.verify(argument, value)`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:PK2PK? argument`` query and raise an
              AssertionError if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:PK2PK? <QString>
            ```

        Info:
            - ``<QString>`` = INPUT\|OUTPUT1\|OUTPUT2\|OUTPUT3\|OUTPUT4\|OUTPUT5\|OUTPUT6\|OUTPUT7\|
              RAIL1DPMOVERSHOOT\|RAIL1DPMUNDERSHOOT\|RAIL1FREQUENCY \|RAIL1PK2PK
              \|RAIL1RMS\|RAIL1RMSFULL\|RAIL2FREQUENCY \|RAIL2PK2PK \|RAIL2RMS\|RAIL2RMSFULL
              \|RAIL3FREQUENCY \|RAIL3PK2PK\|RAIL3RMS\|RAIL3RMSFULL \|RAIL4FREQUENCY
              \|RAIL4PK2PK\|RAIL4RMS \|RAIL4RMSFULL \|RAIL5FREQUENCY\|RAIL5PK2PK\|RAIL5RMS
              \|RAIL5RMSFULL \|RAIL6FREQUENCY\|RAIL6PK2PK \|RAIL6RMS \|RAIL6RMSFULL
              \|RAIL7DPMOVERSHOOT\|RAIL7DPMUNDERSHOOT \|RAIL7FREQUENCY \|RAIL7PK2PK\|RAIL7RMS
              \|RAIL7RMSFULL is the path and filename, in quotes, of the file containing the data
              pattern.
        """
        return self._pk2pk

    @property
    def population(self) -> MeasurementMeasItemSubgroupResultsCurrentacqPopulation:
        r"""Return the ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:POPUlation`` command.

        Description:
            - This query returns the population value of the measurement specified by the string,
              for the current acquisition.

        Usage:
            - Using the ``.query(argument)`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:POPUlation? argument`` query.
            - Using the ``.verify(argument, value)`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:POPUlation? argument`` query and
              raise an AssertionError if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:POPUlation? <QString>
            ```

        Info:
            - ``<QString>`` = INPUT\|OUTPUT1\|OUTPUT2\|OUTPUT3\|OUTPUT4\|OUTPUT5\|OUTPUT6\|OUTPUT7\|
              RAIL1DPMOVERSHOOT\|RAIL1DPMUNDERSHOOT\|RAIL1FREQUENCY \|RAIL1PK2PK
              \|RAIL1RMS\|RAIL1RMSFULL\|RAIL2FREQUENCY \|RAIL2PK2PK \|RAIL2RMS\|RAIL2RMSFULL
              \|RAIL3FREQUENCY \|RAIL3PK2PK\|RAIL3RMS\|RAIL3RMSFULL \|RAIL4FREQUENCY
              \|RAIL4PK2PK\|RAIL4RMS \|RAIL4RMSFULL \|RAIL5FREQUENCY\|RAIL5PK2PK\|RAIL5RMS
              \|RAIL5RMSFULL \|RAIL6FREQUENCY\|RAIL6PK2PK \|RAIL6RMS \|RAIL6RMSFULL
              \|RAIL7DPMOVERSHOOT\|RAIL7DPMUNDERSHOOT \|RAIL7FREQUENCY \|RAIL7PK2PK\|RAIL7RMS
              \|RAIL7RMSFULL.
        """
        return self._population

    @property
    def stddev(self) -> MeasurementMeasItemSubgroupResultsCurrentacqStddev:
        r"""Return the ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:STDDev`` command.

        Description:
            - This query returns the standard deviation value of the measurement specified by the
              string, for the current acquisition.

        Usage:
            - Using the ``.query(argument)`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:STDDev? argument`` query.
            - Using the ``.verify(argument, value)`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:STDDev? argument`` query and raise
              an AssertionError if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:STDDev? <QString>
            ```

        Info:
            - ``<QString>`` = INPUT\|OUTPUT1\|OUTPUT2\|OUTPUT3\|OUTPUT4\|OUTPUT5\|OUTPUT6\|OUTPUT7\|
              RAIL1DPMOVERSHOOT\|RAIL1DPMUNDERSHOOT\|RAIL1FREQUENCY \|RAIL1PK2PK
              \|RAIL1RMS\|RAIL1RMSFULL\|RAIL2FREQUENCY \|RAIL2PK2PK \|RAIL2RMS\|RAIL2RMSFULL
              \|RAIL3FREQUENCY \|RAIL3PK2PK\|RAIL3RMS\|RAIL3RMSFULL \|RAIL4FREQUENCY
              \|RAIL4PK2PK\|RAIL4RMS \|RAIL4RMSFULL \|RAIL5FREQUENCY\|RAIL5PK2PK\|RAIL5RMS
              \|RAIL5RMSFULL \|RAIL6FREQUENCY\|RAIL6PK2PK \|RAIL6RMS \|RAIL6RMSFULL
              \|RAIL7DPMOVERSHOOT\|RAIL7DPMUNDERSHOOT \|RAIL7FREQUENCY \|RAIL7PK2PK\|RAIL7RMS
              \|RAIL7RMSFULL.
        """
        return self._stddev


class MeasurementMeasItemSubgroupResultsAllacqsStddev(SCPICmdReadWithArguments):
    r"""The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:STDDev`` command.

    Description:
        - This query returns the standard deviation value of the measurement specified by the
          string, for all acquisitions.

    Usage:
        - Using the ``.query(argument)`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:STDDev? argument`` query.
        - Using the ``.verify(argument, value)`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:STDDev? argument`` query and raise an
          AssertionError if the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:STDDev? <QString>
        ```

    Info:
        - ``<QString>`` = INPUT\|OUTPUT1\|OUTPUT2\|OUTPUT3\|OUTPUT4\|OUTPUT5\|OUTPUT6\|OUTPUT7\|
          RAIL1DPMOVERSHOOT\|RAIL1DPMUNDERSHOOT\|RAIL1FREQUENCY \|RAIL1PK2PK
          \|RAIL1RMS\|RAIL1RMSFULL\|RAIL2FREQUENCY \|RAIL2PK2PK \|RAIL2RMS\|RAIL2RMSFULL
          \|RAIL3FREQUENCY \|RAIL3PK2PK\|RAIL3RMS\|RAIL3RMSFULL \|RAIL4FREQUENCY
          \|RAIL4PK2PK\|RAIL4RMS \|RAIL4RMSFULL \|RAIL5FREQUENCY\|RAIL5PK2PK\|RAIL5RMS
          \|RAIL5RMSFULL \|RAIL6FREQUENCY\|RAIL6PK2PK \|RAIL6RMS \|RAIL6RMSFULL
          \|RAIL7DPMOVERSHOOT\|RAIL7DPMUNDERSHOOT \|RAIL7FREQUENCY \|RAIL7PK2PK\|RAIL7RMS
          \|RAIL7RMSFULL \|TIE\|TJBER\|RJdd\|DJdd\|PJ\|DDJ\|DCD\|WIDTHBER.
    """


class MeasurementMeasItemSubgroupResultsAllacqsPopulation(SCPICmdReadWithArguments):
    r"""The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:POPUlation`` command.

    Description:
        - This query returns the population value of the measurement specified by the string, for
          all acquisitions.

    Usage:
        - Using the ``.query(argument)`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:POPUlation? argument`` query.
        - Using the ``.verify(argument, value)`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:POPUlation? argument`` query and raise an
          AssertionError if the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:POPUlation? <QString>
        ```

    Info:
        - ``<QString>`` = INPUT\|OUTPUT1\|OUTPUT2\|OUTPUT3\|OUTPUT4\|OUTPUT5\|OUTPUT6\|OUTPUT7\|
          RAIL1DPMOVERSHOOT\|RAIL1DPMUNDERSHOOT\|RAIL1FREQUENCY \|RAIL1PK2PK
          \|RAIL1RMS\|RAIL1RMSFULL\|RAIL2FREQUENCY \|RAIL2PK2PK \|RAIL2RMS\|RAIL2RMSFULL
          \|RAIL3FREQUENCY \|RAIL3PK2PK\|RAIL3RMS\|RAIL3RMSFULL \|RAIL4FREQUENCY
          \|RAIL4PK2PK\|RAIL4RMS \|RAIL4RMSFULL \|RAIL5FREQUENCY\|RAIL5PK2PK\|RAIL5RMS
          \|RAIL5RMSFULL \|RAIL6FREQUENCY\|RAIL6PK2PK \|RAIL6RMS \|RAIL6RMSFULL
          \|RAIL7DPMOVERSHOOT\|RAIL7DPMUNDERSHOOT \|RAIL7FREQUENCY \|RAIL7PK2PK\|RAIL7RMS
          \|RAIL7RMSFULL.
    """


class MeasurementMeasItemSubgroupResultsAllacqsPk2pk(SCPICmdReadWithArguments):
    r"""The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:PK2PK`` command.

    Description:
        - This query returns the peak-to-peak value of the measurement specified by the string, for
          all acquisitions.

    Usage:
        - Using the ``.query(argument)`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:PK2PK? argument`` query.
        - Using the ``.verify(argument, value)`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:PK2PK? argument`` query and raise an
          AssertionError if the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:PK2PK? <QString>
        ```

    Info:
        - ``<QString>`` = INPUT\|OUTPUT1\|OUTPUT2\|OUTPUT3\|OUTPUT4\|OUTPUT5\|OUTPUT6\|OUTPUT7\|
          RAIL1DPMOVERSHOOT\|RAIL1DPMUNDERSHOOT\|RAIL1FREQUENCY \|RAIL1PK2PK
          \|RAIL1RMS\|RAIL1RMSFULL\|RAIL2FREQUENCY \|RAIL2PK2PK \|RAIL2RMS\|RAIL2RMSFULL
          \|RAIL3FREQUENCY \|RAIL3PK2PK\|RAIL3RMS\|RAIL3RMSFULL \|RAIL4FREQUENCY
          \|RAIL4PK2PK\|RAIL4RMS \|RAIL4RMSFULL \|RAIL5FREQUENCY\|RAIL5PK2PK\|RAIL5RMS
          \|RAIL5RMSFULL \|RAIL6FREQUENCY\|RAIL6PK2PK \|RAIL6RMS \|RAIL6RMSFULL
          \|RAIL7DPMOVERSHOOT\|RAIL7DPMUNDERSHOOT \|RAIL7FREQUENCY \|RAIL7PK2PK\|RAIL7RMS
          \|RAIL7RMSFULL.
    """


class MeasurementMeasItemSubgroupResultsAllacqsMinimum(SCPICmdReadWithArguments):
    r"""The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MINimum`` command.

    Description:
        - This query returns the minimum value of the measurement specified by the string, for all
          acquisitions.

    Usage:
        - Using the ``.query(argument)`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MINimum? argument`` query.
        - Using the ``.verify(argument, value)`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MINimum? argument`` query and raise an
          AssertionError if the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MINimum? <QString>
        ```

    Info:
        - ``<QString>`` = INPUT\|OUTPUT1\|OUTPUT2\|OUTPUT3\|OUTPUT4\|OUTPUT5\|OUTPUT6\|OUTPUT7\|
          RAIL1DPMOVERSHOOT\|RAIL1DPMUNDERSHOOT\|RAIL1FREQUENCY \|RAIL1PK2PK
          \|RAIL1RMS\|RAIL1RMSFULL\|RAIL2FREQUENCY \|RAIL2PK2PK \|RAIL2RMS\|RAIL2RMSFULL
          \|RAIL3FREQUENCY \|RAIL3PK2PK\|RAIL3RMS\|RAIL3RMSFULL \|RAIL4FREQUENCY
          \|RAIL4PK2PK\|RAIL4RMS \|RAIL4RMSFULL \|RAIL5FREQUENCY\|RAIL5PK2PK\|RAIL5RMS
          \|RAIL5RMSFULL \|RAIL6FREQUENCY\|RAIL6PK2PK \|RAIL6RMS \|RAIL6RMSFULL
          \|RAIL7DPMOVERSHOOT\|RAIL7DPMUNDERSHOOT \|RAIL7FREQUENCY \|RAIL7PK2PK\|RAIL7RMS
          \|RAIL7RMSFULL.
    """


class MeasurementMeasItemSubgroupResultsAllacqsMean(SCPICmdReadWithArguments):
    r"""The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MEAN`` command.

    Description:
        - This query returns the mean value of the measurement specified by the string, for all
          acquisitions.

    Usage:
        - Using the ``.query(argument)`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MEAN? argument`` query.
        - Using the ``.verify(argument, value)`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MEAN? argument`` query and raise an
          AssertionError if the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MEAN? <QString>
        ```

    Info:
        - ``<QString>`` = INPUT\|OUTPUT1\|OUTPUT2\|OUTPUT3\|OUTPUT4\|OUTPUT5\|OUTPUT6\|OUTPUT7\|
          RAIL1DPMOVERSHOOT\|RAIL1DPMUNDERSHOOT\|RAIL1FREQUENCY \|RAIL1PK2PK
          \|RAIL1RMS\|RAIL1RMSFULL\|RAIL2FREQUENCY \|RAIL2PK2PK \|RAIL2RMS\|RAIL2RMSFULL
          \|RAIL3FREQUENCY \|RAIL3PK2PK\|RAIL3RMS\|RAIL3RMSFULL \|RAIL4FREQUENCY
          \|RAIL4PK2PK\|RAIL4RMS \|RAIL4RMSFULL \|RAIL5FREQUENCY\|RAIL5PK2PK\|RAIL5RMS
          \|RAIL5RMSFULL \|RAIL6FREQUENCY\|RAIL6PK2PK \|RAIL6RMS \|RAIL6RMSFULL
          \|RAIL7DPMOVERSHOOT\|RAIL7DPMUNDERSHOOT \|RAIL7FREQUENCY \|RAIL7PK2PK\|RAIL7RMS
          \|RAIL7RMSFULL.
    """


class MeasurementMeasItemSubgroupResultsAllacqsMaximum(SCPICmdReadWithArguments):
    r"""The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MAXimum`` command.

    Description:
        - This query returns the maximum value of the measurement specified by the string, for all
          acquisitions.

    Usage:
        - Using the ``.query(argument)`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MAXimum? argument`` query.
        - Using the ``.verify(argument, value)`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MAXimum? argument`` query and raise an
          AssertionError if the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MAXimum? <QString>
        ```

    Info:
        - ``<QString>`` = INPUT\|OUTPUT1\|OUTPUT2\|OUTPUT3\|OUTPUT4\|OUTPUT5\|OUTPUT6\|OUTPUT7\|
          RAIL1DPMOVERSHOOT\|RAIL1DPMUNDERSHOOT\|RAIL1FREQUENCY \|RAIL1PK2PK
          \|RAIL1RMS\|RAIL1RMSFULL\|RAIL2FREQUENCY \|RAIL2PK2PK \|RAIL2RMS\|RAIL2RMSFULL
          \|RAIL3FREQUENCY \|RAIL3PK2PK\|RAIL3RMS\|RAIL3RMSFULL \|RAIL4FREQUENCY
          \|RAIL4PK2PK\|RAIL4RMS \|RAIL4RMSFULL \|RAIL5FREQUENCY\|RAIL5PK2PK\|RAIL5RMS
          \|RAIL5RMSFULL \|RAIL6FREQUENCY\|RAIL6PK2PK \|RAIL6RMS \|RAIL6RMSFULL
          \|RAIL7DPMOVERSHOOT\|RAIL7DPMUNDERSHOOT \|RAIL7FREQUENCY \|RAIL7PK2PK\|RAIL7RMS
          \|RAIL7RMSFULL.
    """


class MeasurementMeasItemSubgroupResultsAllacqs(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs`` command tree.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.maximum``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MAXimum`` command.
        - ``.mean``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MEAN`` command.
        - ``.minimum``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MINimum`` command.
        - ``.pk2pk``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:PK2PK`` command.
        - ``.population``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:POPUlation`` command.
        - ``.stddev``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:STDDev`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._maximum = MeasurementMeasItemSubgroupResultsAllacqsMaximum(
            device, f"{self._cmd_syntax}:MAXimum"
        )
        self._mean = MeasurementMeasItemSubgroupResultsAllacqsMean(
            device, f"{self._cmd_syntax}:MEAN"
        )
        self._minimum = MeasurementMeasItemSubgroupResultsAllacqsMinimum(
            device, f"{self._cmd_syntax}:MINimum"
        )
        self._pk2pk = MeasurementMeasItemSubgroupResultsAllacqsPk2pk(
            device, f"{self._cmd_syntax}:PK2PK"
        )
        self._population = MeasurementMeasItemSubgroupResultsAllacqsPopulation(
            device, f"{self._cmd_syntax}:POPUlation"
        )
        self._stddev = MeasurementMeasItemSubgroupResultsAllacqsStddev(
            device, f"{self._cmd_syntax}:STDDev"
        )

    @property
    def maximum(self) -> MeasurementMeasItemSubgroupResultsAllacqsMaximum:
        r"""Return the ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MAXimum`` command.

        Description:
            - This query returns the maximum value of the measurement specified by the string, for
              all acquisitions.

        Usage:
            - Using the ``.query(argument)`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MAXimum? argument`` query.
            - Using the ``.verify(argument, value)`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MAXimum? argument`` query and raise an
              AssertionError if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MAXimum? <QString>
            ```

        Info:
            - ``<QString>`` = INPUT\|OUTPUT1\|OUTPUT2\|OUTPUT3\|OUTPUT4\|OUTPUT5\|OUTPUT6\|OUTPUT7\|
              RAIL1DPMOVERSHOOT\|RAIL1DPMUNDERSHOOT\|RAIL1FREQUENCY \|RAIL1PK2PK
              \|RAIL1RMS\|RAIL1RMSFULL\|RAIL2FREQUENCY \|RAIL2PK2PK \|RAIL2RMS\|RAIL2RMSFULL
              \|RAIL3FREQUENCY \|RAIL3PK2PK\|RAIL3RMS\|RAIL3RMSFULL \|RAIL4FREQUENCY
              \|RAIL4PK2PK\|RAIL4RMS \|RAIL4RMSFULL \|RAIL5FREQUENCY\|RAIL5PK2PK\|RAIL5RMS
              \|RAIL5RMSFULL \|RAIL6FREQUENCY\|RAIL6PK2PK \|RAIL6RMS \|RAIL6RMSFULL
              \|RAIL7DPMOVERSHOOT\|RAIL7DPMUNDERSHOOT \|RAIL7FREQUENCY \|RAIL7PK2PK\|RAIL7RMS
              \|RAIL7RMSFULL.
        """
        return self._maximum

    @property
    def mean(self) -> MeasurementMeasItemSubgroupResultsAllacqsMean:
        r"""Return the ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MEAN`` command.

        Description:
            - This query returns the mean value of the measurement specified by the string, for all
              acquisitions.

        Usage:
            - Using the ``.query(argument)`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MEAN? argument`` query.
            - Using the ``.verify(argument, value)`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MEAN? argument`` query and raise an
              AssertionError if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MEAN? <QString>
            ```

        Info:
            - ``<QString>`` = INPUT\|OUTPUT1\|OUTPUT2\|OUTPUT3\|OUTPUT4\|OUTPUT5\|OUTPUT6\|OUTPUT7\|
              RAIL1DPMOVERSHOOT\|RAIL1DPMUNDERSHOOT\|RAIL1FREQUENCY \|RAIL1PK2PK
              \|RAIL1RMS\|RAIL1RMSFULL\|RAIL2FREQUENCY \|RAIL2PK2PK \|RAIL2RMS\|RAIL2RMSFULL
              \|RAIL3FREQUENCY \|RAIL3PK2PK\|RAIL3RMS\|RAIL3RMSFULL \|RAIL4FREQUENCY
              \|RAIL4PK2PK\|RAIL4RMS \|RAIL4RMSFULL \|RAIL5FREQUENCY\|RAIL5PK2PK\|RAIL5RMS
              \|RAIL5RMSFULL \|RAIL6FREQUENCY\|RAIL6PK2PK \|RAIL6RMS \|RAIL6RMSFULL
              \|RAIL7DPMOVERSHOOT\|RAIL7DPMUNDERSHOOT \|RAIL7FREQUENCY \|RAIL7PK2PK\|RAIL7RMS
              \|RAIL7RMSFULL.
        """
        return self._mean

    @property
    def minimum(self) -> MeasurementMeasItemSubgroupResultsAllacqsMinimum:
        r"""Return the ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MINimum`` command.

        Description:
            - This query returns the minimum value of the measurement specified by the string, for
              all acquisitions.

        Usage:
            - Using the ``.query(argument)`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MINimum? argument`` query.
            - Using the ``.verify(argument, value)`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MINimum? argument`` query and raise an
              AssertionError if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MINimum? <QString>
            ```

        Info:
            - ``<QString>`` = INPUT\|OUTPUT1\|OUTPUT2\|OUTPUT3\|OUTPUT4\|OUTPUT5\|OUTPUT6\|OUTPUT7\|
              RAIL1DPMOVERSHOOT\|RAIL1DPMUNDERSHOOT\|RAIL1FREQUENCY \|RAIL1PK2PK
              \|RAIL1RMS\|RAIL1RMSFULL\|RAIL2FREQUENCY \|RAIL2PK2PK \|RAIL2RMS\|RAIL2RMSFULL
              \|RAIL3FREQUENCY \|RAIL3PK2PK\|RAIL3RMS\|RAIL3RMSFULL \|RAIL4FREQUENCY
              \|RAIL4PK2PK\|RAIL4RMS \|RAIL4RMSFULL \|RAIL5FREQUENCY\|RAIL5PK2PK\|RAIL5RMS
              \|RAIL5RMSFULL \|RAIL6FREQUENCY\|RAIL6PK2PK \|RAIL6RMS \|RAIL6RMSFULL
              \|RAIL7DPMOVERSHOOT\|RAIL7DPMUNDERSHOOT \|RAIL7FREQUENCY \|RAIL7PK2PK\|RAIL7RMS
              \|RAIL7RMSFULL.
        """
        return self._minimum

    @property
    def pk2pk(self) -> MeasurementMeasItemSubgroupResultsAllacqsPk2pk:
        r"""Return the ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:PK2PK`` command.

        Description:
            - This query returns the peak-to-peak value of the measurement specified by the string,
              for all acquisitions.

        Usage:
            - Using the ``.query(argument)`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:PK2PK? argument`` query.
            - Using the ``.verify(argument, value)`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:PK2PK? argument`` query and raise an
              AssertionError if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:PK2PK? <QString>
            ```

        Info:
            - ``<QString>`` = INPUT\|OUTPUT1\|OUTPUT2\|OUTPUT3\|OUTPUT4\|OUTPUT5\|OUTPUT6\|OUTPUT7\|
              RAIL1DPMOVERSHOOT\|RAIL1DPMUNDERSHOOT\|RAIL1FREQUENCY \|RAIL1PK2PK
              \|RAIL1RMS\|RAIL1RMSFULL\|RAIL2FREQUENCY \|RAIL2PK2PK \|RAIL2RMS\|RAIL2RMSFULL
              \|RAIL3FREQUENCY \|RAIL3PK2PK\|RAIL3RMS\|RAIL3RMSFULL \|RAIL4FREQUENCY
              \|RAIL4PK2PK\|RAIL4RMS \|RAIL4RMSFULL \|RAIL5FREQUENCY\|RAIL5PK2PK\|RAIL5RMS
              \|RAIL5RMSFULL \|RAIL6FREQUENCY\|RAIL6PK2PK \|RAIL6RMS \|RAIL6RMSFULL
              \|RAIL7DPMOVERSHOOT\|RAIL7DPMUNDERSHOOT \|RAIL7FREQUENCY \|RAIL7PK2PK\|RAIL7RMS
              \|RAIL7RMSFULL.
        """
        return self._pk2pk

    @property
    def population(self) -> MeasurementMeasItemSubgroupResultsAllacqsPopulation:
        r"""Return the ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:POPUlation`` command.

        Description:
            - This query returns the population value of the measurement specified by the string,
              for all acquisitions.

        Usage:
            - Using the ``.query(argument)`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:POPUlation? argument`` query.
            - Using the ``.verify(argument, value)`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:POPUlation? argument`` query and raise
              an AssertionError if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:POPUlation? <QString>
            ```

        Info:
            - ``<QString>`` = INPUT\|OUTPUT1\|OUTPUT2\|OUTPUT3\|OUTPUT4\|OUTPUT5\|OUTPUT6\|OUTPUT7\|
              RAIL1DPMOVERSHOOT\|RAIL1DPMUNDERSHOOT\|RAIL1FREQUENCY \|RAIL1PK2PK
              \|RAIL1RMS\|RAIL1RMSFULL\|RAIL2FREQUENCY \|RAIL2PK2PK \|RAIL2RMS\|RAIL2RMSFULL
              \|RAIL3FREQUENCY \|RAIL3PK2PK\|RAIL3RMS\|RAIL3RMSFULL \|RAIL4FREQUENCY
              \|RAIL4PK2PK\|RAIL4RMS \|RAIL4RMSFULL \|RAIL5FREQUENCY\|RAIL5PK2PK\|RAIL5RMS
              \|RAIL5RMSFULL \|RAIL6FREQUENCY\|RAIL6PK2PK \|RAIL6RMS \|RAIL6RMSFULL
              \|RAIL7DPMOVERSHOOT\|RAIL7DPMUNDERSHOOT \|RAIL7FREQUENCY \|RAIL7PK2PK\|RAIL7RMS
              \|RAIL7RMSFULL.
        """
        return self._population

    @property
    def stddev(self) -> MeasurementMeasItemSubgroupResultsAllacqsStddev:
        r"""Return the ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:STDDev`` command.

        Description:
            - This query returns the standard deviation value of the measurement specified by the
              string, for all acquisitions.

        Usage:
            - Using the ``.query(argument)`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:STDDev? argument`` query.
            - Using the ``.verify(argument, value)`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:STDDev? argument`` query and raise an
              AssertionError if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:STDDev? <QString>
            ```

        Info:
            - ``<QString>`` = INPUT\|OUTPUT1\|OUTPUT2\|OUTPUT3\|OUTPUT4\|OUTPUT5\|OUTPUT6\|OUTPUT7\|
              RAIL1DPMOVERSHOOT\|RAIL1DPMUNDERSHOOT\|RAIL1FREQUENCY \|RAIL1PK2PK
              \|RAIL1RMS\|RAIL1RMSFULL\|RAIL2FREQUENCY \|RAIL2PK2PK \|RAIL2RMS\|RAIL2RMSFULL
              \|RAIL3FREQUENCY \|RAIL3PK2PK\|RAIL3RMS\|RAIL3RMSFULL \|RAIL4FREQUENCY
              \|RAIL4PK2PK\|RAIL4RMS \|RAIL4RMSFULL \|RAIL5FREQUENCY\|RAIL5PK2PK\|RAIL5RMS
              \|RAIL5RMSFULL \|RAIL6FREQUENCY\|RAIL6PK2PK \|RAIL6RMS \|RAIL6RMSFULL
              \|RAIL7DPMOVERSHOOT\|RAIL7DPMUNDERSHOOT \|RAIL7FREQUENCY \|RAIL7PK2PK\|RAIL7RMS
              \|RAIL7RMSFULL \|TIE\|TJBER\|RJdd\|DJdd\|PJ\|DDJ\|DCD\|WIDTHBER.
        """
        return self._stddev


class MeasurementMeasItemSubgroupResults(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.allacqs``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs`` command tree.
        - ``.currentacq``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq`` command tree.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._allacqs = MeasurementMeasItemSubgroupResultsAllacqs(
            device, f"{self._cmd_syntax}:ALLAcqs"
        )
        self._currentacq = MeasurementMeasItemSubgroupResultsCurrentacq(
            device, f"{self._cmd_syntax}:CURRentacq"
        )

    @property
    def allacqs(self) -> MeasurementMeasItemSubgroupResultsAllacqs:
        """Return the ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs`` command tree.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.maximum``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MAXimum`` command.
            - ``.mean``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MEAN`` command.
            - ``.minimum``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:MINimum`` command.
            - ``.pk2pk``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:PK2PK`` command.
            - ``.population``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:POPUlation``
              command.
            - ``.stddev``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs:STDDev`` command.
        """
        return self._allacqs

    @property
    def currentacq(self) -> MeasurementMeasItemSubgroupResultsCurrentacq:
        """Return the ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq`` command tree.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.maximum``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MAXimum`` command.
            - ``.mean``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MEAN`` command.
            - ``.minimum``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:MINimum`` command.
            - ``.pk2pk``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:PK2PK`` command.
            - ``.population``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:POPUlation``
              command.
            - ``.stddev``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq:STDDev`` command.
        """
        return self._currentacq


class MeasurementMeasItemSubgroup(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:SUBGROUP`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SUBGROUP?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:SUBGROUP?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.results``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts`` command tree.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._results = MeasurementMeasItemSubgroupResults(device, f"{self._cmd_syntax}:RESUlts")

    @property
    def results(self) -> MeasurementMeasItemSubgroupResults:
        """Return the ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.allacqs``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:ALLAcqs`` command tree.
            - ``.currentacq``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts:CURRentacq`` command tree.
        """
        return self._results


class MeasurementMeasItemStype(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:STYPe`` command.

    Description:
        - This command sets or queries the source type.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:STYPe?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:STYPe?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:STYPe value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:STYPe {VOLTage|CURRent|DIFFERENTIAL|SINGLE}
        - MEASUrement:MEAS<x>:STYPe?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``VOLTage`` sets source type as Voltage.
        - ``CURRent`` sets source type as Current.
        - ``DIFFERENTIAL`` sets source type as Differential.
        - ``SINGLE`` sets source type as Single.
    """


class MeasurementMeasItemStsdirection(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:STSDirection`` command.

    Description:
        - This command sets or returns the stop search direction for measurement. The measurement
          number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:STSDirection?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:STSDirection?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:STSDirection value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:STSDirection {FORWARD|BACKWARD}
        - MEASUrement:MEAS<x>:STSDirection?
        ```

    Info:
        - ``FORWARD`` specifies the stop search direction for measurement as forward.
        - ``BACKWARD`` specifies the stop search direction for measurement as backward.
    """


class MeasurementMeasItemStltype(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:STLTYpe`` command.

    Description:
        - This command sets or returns the stop level source type.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:STLTYpe?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:STLTYpe?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:STLTYpe value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:STLTYpe {VDS|ID|VGE|VCE|IC}
        - MEASUrement:MEAS<x>:STLTYpe?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``VDS`` specifies the stop level source type as VDS.
        - ``ID`` specifies the stop level source type as ID.
        - ``VGE`` specifies the stop level source type as VGE.
        - ``VCE`` specifies the stop level source type as VCE.
        - ``IC`` specifies the stop level source type as IC.
    """


class MeasurementMeasItemStlpct(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:STLPct`` command.

    Description:
        - This command sets or returns the value for the stop level in percentage.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:STLPct?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:STLPct?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:STLPct value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:STLPct <NR3>
        - MEASUrement:MEAS<x>:STLPct?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` specifies the value for the stop level in percentage.
    """


class MeasurementMeasItemStlabs(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:STLABs`` command.

    Description:
        - This command sets or returns the value for the stop level in absolute.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:STLABs?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:STLABs?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:STLABs value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:STLABs <NR3>
        - MEASUrement:MEAS<x>:STLABs?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` specifies the value for the stop level in absolute.
    """


class MeasurementMeasItemStatus(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:STATUS`` command.

    Description:
        - This command returns the pass fail status, if applicable, for the selected measurement.
          Measur are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:STATUS?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:STATUS?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:STATUS?
        ```

    Info:
        - ``PASS`` specifies that the user specified measurement limit has not been violated.
        - ``FAIL`` specifies that the user specified measurement limit has been violated.
    """


class MeasurementMeasItemSsdirection(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:SSDirection`` command.

    Description:
        - This command sets or returns the start search direction for measurement. The measurement
          number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SSDirection?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:SSDirection?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:SSDirection value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:SSDirection {FORWARD|BACKWARD}
        - MEASUrement:MEAS<x>:SSDirection?
        ```

    Info:
        - ``FORWARD`` specifies the start search direction for measurement as forward.
        - ``BACKWARD`` specifies the start search direction for measurement as backward.
    """


class MeasurementMeasItemSscNominalfreqSelectiontype(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:SSC:NOMinalfreq:SELECTIONtype`` command.

    Description:
        - This command sets or queries the frequency detection type for the measurement when the
          measurement type is SSC. The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:SSC:NOMinalfreq:SELECTIONtype?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:SSC:NOMinalfreq:SELECTIONtype?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:SSC:NOMinalfreq:SELECTIONtype value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:SSC:NOMinalfreq:SELECTIONtype {AUTO|MANual}
        - MEASUrement:MEAS<x>:SSC:NOMinalfreq:SELECTIONtype?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``AUTO`` automatically sets the detection type.
        - ``MANual`` specifies the manual detection type.
    """


class MeasurementMeasItemSscNominalfreq(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:SSC:NOMinalfreq`` command.

    Description:
        - This command sets or queries the user-defined frequency for the measurement when the
          measurement type is SSC. The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SSC:NOMinalfreq?``
          query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:SSC:NOMinalfreq?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:SSC:NOMinalfreq value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:SSC:NOMinalfreq <NR3>
        - MEASUrement:MEAS<x>:SSC:NOMinalfreq?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the user-defined nominal frequency type for SSC configurations.

    Properties:
        - ``.selectiontype``: The ``MEASUrement:MEAS<x>:SSC:NOMinalfreq:SELECTIONtype`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._selectiontype = MeasurementMeasItemSscNominalfreqSelectiontype(
            device, f"{self._cmd_syntax}:SELECTIONtype"
        )

    @property
    def selectiontype(self) -> MeasurementMeasItemSscNominalfreqSelectiontype:
        """Return the ``MEASUrement:MEAS<x>:SSC:NOMinalfreq:SELECTIONtype`` command.

        Description:
            - This command sets or queries the frequency detection type for the measurement when the
              measurement type is SSC. The measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:SSC:NOMinalfreq:SELECTIONtype?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:SSC:NOMinalfreq:SELECTIONtype?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:SSC:NOMinalfreq:SELECTIONtype value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:SSC:NOMinalfreq:SELECTIONtype {AUTO|MANual}
            - MEASUrement:MEAS<x>:SSC:NOMinalfreq:SELECTIONtype?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``AUTO`` automatically sets the detection type.
            - ``MANual`` specifies the manual detection type.
        """
        return self._selectiontype


class MeasurementMeasItemSsc(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:SSC`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SSC?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:SSC?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.nominalfreq``: The ``MEASUrement:MEAS<x>:SSC:NOMinalfreq`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._nominalfreq = MeasurementMeasItemSscNominalfreq(
            device, f"{self._cmd_syntax}:NOMinalfreq"
        )

    @property
    def nominalfreq(self) -> MeasurementMeasItemSscNominalfreq:
        """Return the ``MEASUrement:MEAS<x>:SSC:NOMinalfreq`` command.

        Description:
            - This command sets or queries the user-defined frequency for the measurement when the
              measurement type is SSC. The measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SSC:NOMinalfreq?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:SSC:NOMinalfreq?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:SSC:NOMinalfreq value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:SSC:NOMinalfreq <NR3>
            - MEASUrement:MEAS<x>:SSC:NOMinalfreq?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the user-defined nominal frequency type for SSC configurations.

        Sub-properties:
            - ``.selectiontype``: The ``MEASUrement:MEAS<x>:SSC:NOMinalfreq:SELECTIONtype`` command.
        """
        return self._nominalfreq


class MeasurementMeasItemSrho(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:SRHo`` command.

    Description:
        - This command enables or disables the rho waveform for TDR measurement. The measurement
          number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SRHo?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:SRHo?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:SRHo value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:SRHo {ON|OFF}
        - MEASUrement:MEAS<x>:SRHo?
        ```

    Info:
        - ``ON`` specifies that rho waveform is enabled for TDR measurement.
        - ``OFF`` specifies that rho waveform is disabled for TDR measurement.
    """


class MeasurementMeasItemSrate(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:SRATe`` command.

    Description:
        - This command sets or queries the symbol rate for the RRC filter in the measurement. The
          measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SRATe?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:SRATe?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:SRATe value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:SRATe <NR3>
        - MEASUrement:MEAS<x>:SRATe?
        ```

    Info:
        - ``<NR3>`` sets the symbol rate. The default is 3.84e6 and the valid range is 1.0 to 5.0e9.
    """


class MeasurementMeasItemSpanvalItem(ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:SPAN<x>Val`` command.

    Description:
        - This command sets or returns the span value for PSIJ measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SPAN<x>Val?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:SPAN<x>Val?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:SPAN<x>Val value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:SPAN<x>Val <NR3>
        - MEASUrement:MEAS<x>:SPAN<x>Val?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``SPAN<x>`` specifies the span number.
        - ``<NR3>`` specifies the span value.
    """


class MeasurementMeasItemSource1(SCPICmdWriteNoArguments, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:SOUrce1`` command.

    Description:
        - This command sets or queries the measurement source. The measurement number and source are
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SOUrce1?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:SOUrce1?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write()`` method will send the ``MEASUrement:MEAS<x>:SOUrce1`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:SOUrce1
        - MEASUrement:MEAS<x>:SOUrce1?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``1`` specifies the source number.
    """


class MeasurementMeasItemSource(SCPICmdWrite):
    """The ``MEASUrement:MEAS<x>:SOURCE`` command.

    Description:
        - This command sets or queries local input source.

    Usage:
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:SOURCE value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:SOURCE {CH<x>|MATH<x>|REF<x>}
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``CH<x>`` specifies an analog channel as source.
        - ``MATH<x>`` specifies a math channel as source.
        - ``REF<x>`` specifies a reference waveform as the source.
    """


class MeasurementMeasItemSmoothingfilter(SCPICmdWrite):
    """The ``MEASUrement:MEAS<x>:SMOOTHINGFILTER`` command.

    Description:
        - This command sets or queries the status of smoothing filter.

    Usage:
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:SMOOTHINGFILTER value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:SMOOTHINGFILTER <NR1>
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR1>`` sets the value to 1 or 0. 1 enables smoothing filter and 0 disables it.
    """


class MeasurementMeasItemSltype(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:SLTYpe`` command.

    Description:
        - This command sets or returns the start level source type.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SLTYpe?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:SLTYpe?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:SLTYpe value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:SLTYpe {VDS|ID|VGE|VCE|IC}
        - MEASUrement:MEAS<x>:SLTYpe?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``VDS`` specifies the start level source type as VDS.
        - ``ID`` specifies the start level source type as ID.
        - ``VGE`` specifies the start level source type as VGE.
        - ``VCE`` specifies the start level source type as VCE.
        - ``IC`` specifies the start level source type as IC.
    """


class MeasurementMeasItemSlpct(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:SLPCt`` command.

    Description:
        - This command sets or returns the value for the start level in percentage.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SLPCt?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:SLPCt?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:SLPCt value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:SLPCt <NR3>
        - MEASUrement:MEAS<x>:SLPCt?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` specifies the value for the start level in percentage.
    """


class MeasurementMeasItemSlabs(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:SLABs`` command.

    Description:
        - This command sets or returns the value for the start level in absolute.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SLABs?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:SLABs?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:SLABs value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:SLABs <NR3>
        - MEASUrement:MEAS<x>:SLABs?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` specifies the value for the start level in absolute.
    """


class MeasurementMeasItemSignaltype(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:SIGNALType`` command.

    Description:
        - This command sets or queries the signal type of source 1 for the measurement. The
          measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SIGNALType?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:SIGNALType?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:SIGNALType value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:SIGNALType {CLOCK|DATA|AUTO}
        - MEASUrement:MEAS<x>:SIGNALType?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``CLOCK`` specifies a clock signal type.
        - ``DATA`` specifies a data signal type.
        - ``AUTO`` automatically selects the signal type.
    """


class MeasurementMeasItemSignalfrequency(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:SIGNALFREQUEncy`` command.

    Description:
        - This command sets or queries line frequency for Harmonics and Ripple line frequency. The
          measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SIGNALFREQUEncy?``
          query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:SIGNALFREQUEncy?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:SIGNALFREQUEncy value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:SIGNALFREQUEncy {AUTO|FIFTYHZ|SIXTYHZ|FOURHUNDREDHZ|CUSTOM}
        - MEASUrement:MEAS<x>:SIGNALFREQUEncy?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``AUTO`` specifies the line frequency as auto. Only available for Harmonics line
          frequency.
        - ``FIFTYHZ`` specifies the line frequency as 50 Hz.
        - ``SIXTYHZ`` specifies the line frequency as 60 Hz.
        - ``FOURHUNDREDHZ`` specifies the line frequency as 400 Hz.
        - ``CUSTOM`` specifies the line frequency as custom.
    """


class MeasurementMeasItemSequence(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:SEQuence`` command.

    Description:
        - This command sets or queries the sequence of hall edges. The measurement number is
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SEQuence?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:SEQuence?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:SEQuence value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:SEQuence {ABC|ACB}
        - MEASUrement:MEAS<x>:SEQuence?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``ABC`` specifies the motor Hall edges sequence as ABC.
        - ``ACB`` specifies the motor Hall edges sequence as ACB.
    """


class MeasurementMeasItemRrange(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:RRANGE`` command.

    Description:
        - This command sets or returns the span value of PSIJ measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:RRANGE?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:RRANGE?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:RRANGE value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:RRANGE <NR3>
        - MEASUrement:MEAS<x>:RRANGE?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` specifies the value of span for PSIJ measurement.
    """


class MeasurementMeasItemRipplefreqvalItem(ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:RIPPLEFREQ<x>Val`` command.

    Description:
        - Sets or queries the ripple frequency per specified rail for Ripple measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:RIPPLEFREQ<x>Val?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:RIPPLEFREQ<x>Val?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:RIPPLEFREQ<x>Val value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:RIPPLEFREQ<x>Val <NR3>
        - MEASUrement:MEAS<x>:RIPPLEFREQ<x>Val?
        ```

    Info:
        - ``MEAS<x>`` is the measurement number.
        - ``RIPPLEFREQ<x>`` is the rail number.
        - ``<NR3>`` is the frequency, in the range of 1 Hz to 4 GHz.
    """


class MeasurementMeasItemRfrequency(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:RFREquency`` command.

    Description:
        - This command sets or returns the center frequency value of PSIJ measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:RFREquency?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:RFREquency?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:RFREquency value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:RFREquency <NR3>
        - MEASUrement:MEAS<x>:RFREquency?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` specifies the value of center frequency for PSIJ measurement.
    """


class MeasurementMeasItemResultsHistoryStddev(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:RESUlts:HISTory:STDDev`` command.

    Description:
        - This query-only command returns the standard deviation value for the specified measurement
          for each acquisition in the history. The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:HISTory:STDDev?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:HISTory:STDDev?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:RESUlts:HISTory:STDDev?
        ```
    """


class MeasurementMeasItemResultsHistoryPopulation(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:RESUlts:HISTory:POPUlation`` command.

    Description:
        - This query-only command returns the population value for the specified measurement for
          each acquisition in the history. The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:HISTory:POPUlation?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:HISTory:POPUlation?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:RESUlts:HISTory:POPUlation?
        ```
    """


class MeasurementMeasItemResultsHistoryPk2pk(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:RESUlts:HISTory:PK2PK`` command.

    Description:
        - This query-only command returns the peak-to-peak value for the specified measurement for
          each acquisition in the history. The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:RESUlts:HISTory:PK2PK?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:HISTory:PK2PK?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:RESUlts:HISTory:PK2PK?
        ```
    """


class MeasurementMeasItemResultsHistoryMinimum(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:RESUlts:HISTory:MINimum`` command.

    Description:
        - This query-only command returns the minimum value for the specified measurement for each
          acquisition in the history. The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:HISTory:MINimum?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:HISTory:MINimum?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:RESUlts:HISTory:MINimum?
        ```
    """


class MeasurementMeasItemResultsHistoryMean(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:RESUlts:HISTory:MEAN`` command.

    Description:
        - This query-only command returns the mean value for the specified measurement for each
          acquisition in the history. The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:RESUlts:HISTory:MEAN?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:HISTory:MEAN?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:RESUlts:HISTory:MEAN?
        ```
    """


class MeasurementMeasItemResultsHistoryMaximum(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:RESUlts:HISTory:MAXimum`` command.

    Description:
        - This query-only command returns the maximum value for the specified measurement for each
          acquisition in the history. The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:HISTory:MAXimum?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:HISTory:MAXimum?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:RESUlts:HISTory:MAXimum?
        ```
    """


class MeasurementMeasItemResultsHistory(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:RESUlts:HISTory`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:RESUlts:HISTory?``
          query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:RESUlts:HISTory?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.maximum``: The ``MEASUrement:MEAS<x>:RESUlts:HISTory:MAXimum`` command.
        - ``.mean``: The ``MEASUrement:MEAS<x>:RESUlts:HISTory:MEAN`` command.
        - ``.minimum``: The ``MEASUrement:MEAS<x>:RESUlts:HISTory:MINimum`` command.
        - ``.pk2pk``: The ``MEASUrement:MEAS<x>:RESUlts:HISTory:PK2PK`` command.
        - ``.population``: The ``MEASUrement:MEAS<x>:RESUlts:HISTory:POPUlation`` command.
        - ``.stddev``: The ``MEASUrement:MEAS<x>:RESUlts:HISTory:STDDev`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._maximum = MeasurementMeasItemResultsHistoryMaximum(
            device, f"{self._cmd_syntax}:MAXimum"
        )
        self._mean = MeasurementMeasItemResultsHistoryMean(device, f"{self._cmd_syntax}:MEAN")
        self._minimum = MeasurementMeasItemResultsHistoryMinimum(
            device, f"{self._cmd_syntax}:MINimum"
        )
        self._pk2pk = MeasurementMeasItemResultsHistoryPk2pk(device, f"{self._cmd_syntax}:PK2PK")
        self._population = MeasurementMeasItemResultsHistoryPopulation(
            device, f"{self._cmd_syntax}:POPUlation"
        )
        self._stddev = MeasurementMeasItemResultsHistoryStddev(device, f"{self._cmd_syntax}:STDDev")

    @property
    def maximum(self) -> MeasurementMeasItemResultsHistoryMaximum:
        """Return the ``MEASUrement:MEAS<x>:RESUlts:HISTory:MAXimum`` command.

        Description:
            - This query-only command returns the maximum value for the specified measurement for
              each acquisition in the history. The measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:HISTory:MAXimum?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:HISTory:MAXimum?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:RESUlts:HISTory:MAXimum?
            ```
        """
        return self._maximum

    @property
    def mean(self) -> MeasurementMeasItemResultsHistoryMean:
        """Return the ``MEASUrement:MEAS<x>:RESUlts:HISTory:MEAN`` command.

        Description:
            - This query-only command returns the mean value for the specified measurement for each
              acquisition in the history. The measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:HISTory:MEAN?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:HISTory:MEAN?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:RESUlts:HISTory:MEAN?
            ```
        """
        return self._mean

    @property
    def minimum(self) -> MeasurementMeasItemResultsHistoryMinimum:
        """Return the ``MEASUrement:MEAS<x>:RESUlts:HISTory:MINimum`` command.

        Description:
            - This query-only command returns the minimum value for the specified measurement for
              each acquisition in the history. The measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:HISTory:MINimum?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:HISTory:MINimum?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:RESUlts:HISTory:MINimum?
            ```
        """
        return self._minimum

    @property
    def pk2pk(self) -> MeasurementMeasItemResultsHistoryPk2pk:
        """Return the ``MEASUrement:MEAS<x>:RESUlts:HISTory:PK2PK`` command.

        Description:
            - This query-only command returns the peak-to-peak value for the specified measurement
              for each acquisition in the history. The measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:HISTory:PK2PK?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:HISTory:PK2PK?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:RESUlts:HISTory:PK2PK?
            ```
        """
        return self._pk2pk

    @property
    def population(self) -> MeasurementMeasItemResultsHistoryPopulation:
        """Return the ``MEASUrement:MEAS<x>:RESUlts:HISTory:POPUlation`` command.

        Description:
            - This query-only command returns the population value for the specified measurement for
              each acquisition in the history. The measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:HISTory:POPUlation?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:HISTory:POPUlation?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:RESUlts:HISTory:POPUlation?
            ```
        """
        return self._population

    @property
    def stddev(self) -> MeasurementMeasItemResultsHistoryStddev:
        """Return the ``MEASUrement:MEAS<x>:RESUlts:HISTory:STDDev`` command.

        Description:
            - This query-only command returns the standard deviation value for the specified
              measurement for each acquisition in the history. The measurement number is specified
              by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:HISTory:STDDev?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:HISTory:STDDev?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:RESUlts:HISTory:STDDev?
            ```
        """
        return self._stddev


class MeasurementMeasItemResultsCurrentacqStddev(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:STDDev`` command.

    Description:
        - This query-only command returns the standard deviation for the specified measurement for
          all acquisitions accumulated since statistics were last reset. The measurement number is
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:STDDev?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:STDDev?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:RESUlts:CURRentacq:STDDev?
        ```
    """


class MeasurementMeasItemResultsCurrentacqPopulation(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:POPUlation`` command.

    Description:
        - This query-only command returns the population for the specified measurement for the
          current acquisition. The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:POPUlation?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:POPUlation?`` query and raise an AssertionError
          if the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:RESUlts:CURRentacq:POPUlation?
        ```
    """


class MeasurementMeasItemResultsCurrentacqPk2pk(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:PK2PK`` command.

    Description:
        - This query-only command returns the peak-to-peak value for the specified measurement for
          the current acquisition. The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:PK2PK?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:PK2PK?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:RESUlts:CURRentacq:PK2PK?
        ```
    """


class MeasurementMeasItemResultsCurrentacqMinimum(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:MINimum`` command.

    Description:
        - This query-only command returns the minimum value found for the specified measurement
          since the last statistical reset. The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:MINimum?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:MINimum?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:RESUlts:CURRentacq:MINimum?
        ```
    """


class MeasurementMeasItemResultsCurrentacqMean(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:MEAN`` command.

    Description:
        - This query-only command returns the mean value for the measurement for the current
          acquisition.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:MEAN?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:MEAN?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:RESUlts:CURRentacq:MEAN?
        ```

    Info:
        - ``MEAS<x>`` is the measurement number for which to return a value. This is the equivalent
          of the number shown in the measurement badge on the UI.
    """


class MeasurementMeasItemResultsCurrentacqMaximum(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:MAXimum`` command.

    Description:
        - This query-only command returns the maximum value found for the specified measurement
          since the last statistical reset. The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:MAXimum?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:MAXimum?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:RESUlts:CURRentacq:MAXimum?
        ```
    """


class MeasurementMeasItemResultsCurrentacq(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:RESUlts:CURRentacq`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:RESUlts:CURRentacq?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:CURRentacq?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.maximum``: The ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:MAXimum`` command.
        - ``.mean``: The ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:MEAN`` command.
        - ``.minimum``: The ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:MINimum`` command.
        - ``.pk2pk``: The ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:PK2PK`` command.
        - ``.population``: The ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:POPUlation`` command.
        - ``.stddev``: The ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:STDDev`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._maximum = MeasurementMeasItemResultsCurrentacqMaximum(
            device, f"{self._cmd_syntax}:MAXimum"
        )
        self._mean = MeasurementMeasItemResultsCurrentacqMean(device, f"{self._cmd_syntax}:MEAN")
        self._minimum = MeasurementMeasItemResultsCurrentacqMinimum(
            device, f"{self._cmd_syntax}:MINimum"
        )
        self._pk2pk = MeasurementMeasItemResultsCurrentacqPk2pk(device, f"{self._cmd_syntax}:PK2PK")
        self._population = MeasurementMeasItemResultsCurrentacqPopulation(
            device, f"{self._cmd_syntax}:POPUlation"
        )
        self._stddev = MeasurementMeasItemResultsCurrentacqStddev(
            device, f"{self._cmd_syntax}:STDDev"
        )

    @property
    def maximum(self) -> MeasurementMeasItemResultsCurrentacqMaximum:
        """Return the ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:MAXimum`` command.

        Description:
            - This query-only command returns the maximum value found for the specified measurement
              since the last statistical reset. The measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:MAXimum?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:MAXimum?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:RESUlts:CURRentacq:MAXimum?
            ```
        """
        return self._maximum

    @property
    def mean(self) -> MeasurementMeasItemResultsCurrentacqMean:
        """Return the ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:MEAN`` command.

        Description:
            - This query-only command returns the mean value for the measurement for the current
              acquisition.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:MEAN?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:MEAN?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:RESUlts:CURRentacq:MEAN?
            ```

        Info:
            - ``MEAS<x>`` is the measurement number for which to return a value. This is the
              equivalent of the number shown in the measurement badge on the UI.
        """
        return self._mean

    @property
    def minimum(self) -> MeasurementMeasItemResultsCurrentacqMinimum:
        """Return the ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:MINimum`` command.

        Description:
            - This query-only command returns the minimum value found for the specified measurement
              since the last statistical reset. The measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:MINimum?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:MINimum?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:RESUlts:CURRentacq:MINimum?
            ```
        """
        return self._minimum

    @property
    def pk2pk(self) -> MeasurementMeasItemResultsCurrentacqPk2pk:
        """Return the ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:PK2PK`` command.

        Description:
            - This query-only command returns the peak-to-peak value for the specified measurement
              for the current acquisition. The measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:PK2PK?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:PK2PK?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:RESUlts:CURRentacq:PK2PK?
            ```
        """
        return self._pk2pk

    @property
    def population(self) -> MeasurementMeasItemResultsCurrentacqPopulation:
        """Return the ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:POPUlation`` command.

        Description:
            - This query-only command returns the population for the specified measurement for the
              current acquisition. The measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:POPUlation?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:POPUlation?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:RESUlts:CURRentacq:POPUlation?
            ```
        """
        return self._population

    @property
    def stddev(self) -> MeasurementMeasItemResultsCurrentacqStddev:
        """Return the ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:STDDev`` command.

        Description:
            - This query-only command returns the standard deviation for the specified measurement
              for all acquisitions accumulated since statistics were last reset. The measurement
              number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:STDDev?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:STDDev?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:RESUlts:CURRentacq:STDDev?
            ```
        """
        return self._stddev


class MeasurementMeasItemResultsAllacqsStddev(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:STDDev`` command.

    Description:
        - This query-only command returns the standard deviation for all accumulated measurement
          acquisitions for measurement <x>.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:STDDev?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:STDDev?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:RESUlts:ALLAcqs:STDDev?
        ```
    """


class MeasurementMeasItemResultsAllacqsPopulation(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:POPUlation`` command.

    Description:
        - This query-only command returns the population measurement value for measurement <x>.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:POPUlation?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:POPUlation?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:RESUlts:ALLAcqs:POPUlation?
        ```
    """


class MeasurementMeasItemResultsAllacqsPk2pk(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:PK2PK`` command.

    Description:
        - This query-only command returns the peak-to-peak value for all accumulated measurement
          acquisitions for measurement <x>.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:PK2PK?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:PK2PK?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:RESUlts:ALLAcqs:PK2PK?
        ```
    """


class MeasurementMeasItemResultsAllacqsMinimum(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MINimum`` command.

    Description:
        - This query-only command returns the minimum value for all accumulated measurement
          acquisitions for measurement <x>.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MINimum?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MINimum?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MINimum?
        ```
    """


class MeasurementMeasItemResultsAllacqsMean(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MEAN`` command.

    Description:
        - This query-only command returns the mean value for all accumulated measurement
          acquisitions for measurement <x>.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MEAN?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MEAN?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MEAN?
        ```
    """


class MeasurementMeasItemResultsAllacqsMaximum(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MAXimum`` command.

    Description:
        - This query-only command returns the maximum value for all accumulated measurement
          acquisitions of the specified measurement. The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MAXimum?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MAXimum?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MAXimum?
        ```
    """


class MeasurementMeasItemResultsAllacqs(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs?``
          query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.maximum``: The ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MAXimum`` command.
        - ``.mean``: The ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MEAN`` command.
        - ``.minimum``: The ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MINimum`` command.
        - ``.pk2pk``: The ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:PK2PK`` command.
        - ``.population``: The ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:POPUlation`` command.
        - ``.stddev``: The ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:STDDev`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._maximum = MeasurementMeasItemResultsAllacqsMaximum(
            device, f"{self._cmd_syntax}:MAXimum"
        )
        self._mean = MeasurementMeasItemResultsAllacqsMean(device, f"{self._cmd_syntax}:MEAN")
        self._minimum = MeasurementMeasItemResultsAllacqsMinimum(
            device, f"{self._cmd_syntax}:MINimum"
        )
        self._pk2pk = MeasurementMeasItemResultsAllacqsPk2pk(device, f"{self._cmd_syntax}:PK2PK")
        self._population = MeasurementMeasItemResultsAllacqsPopulation(
            device, f"{self._cmd_syntax}:POPUlation"
        )
        self._stddev = MeasurementMeasItemResultsAllacqsStddev(device, f"{self._cmd_syntax}:STDDev")

    @property
    def maximum(self) -> MeasurementMeasItemResultsAllacqsMaximum:
        """Return the ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MAXimum`` command.

        Description:
            - This query-only command returns the maximum value for all accumulated measurement
              acquisitions of the specified measurement. The measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MAXimum?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MAXimum?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MAXimum?
            ```
        """
        return self._maximum

    @property
    def mean(self) -> MeasurementMeasItemResultsAllacqsMean:
        """Return the ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MEAN`` command.

        Description:
            - This query-only command returns the mean value for all accumulated measurement
              acquisitions for measurement <x>.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MEAN?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MEAN?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MEAN?
            ```
        """
        return self._mean

    @property
    def minimum(self) -> MeasurementMeasItemResultsAllacqsMinimum:
        """Return the ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MINimum`` command.

        Description:
            - This query-only command returns the minimum value for all accumulated measurement
              acquisitions for measurement <x>.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MINimum?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MINimum?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MINimum?
            ```
        """
        return self._minimum

    @property
    def pk2pk(self) -> MeasurementMeasItemResultsAllacqsPk2pk:
        """Return the ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:PK2PK`` command.

        Description:
            - This query-only command returns the peak-to-peak value for all accumulated measurement
              acquisitions for measurement <x>.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:PK2PK?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:PK2PK?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:RESUlts:ALLAcqs:PK2PK?
            ```
        """
        return self._pk2pk

    @property
    def population(self) -> MeasurementMeasItemResultsAllacqsPopulation:
        """Return the ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:POPUlation`` command.

        Description:
            - This query-only command returns the population measurement value for measurement <x>.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:POPUlation?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:POPUlation?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:RESUlts:ALLAcqs:POPUlation?
            ```
        """
        return self._population

    @property
    def stddev(self) -> MeasurementMeasItemResultsAllacqsStddev:
        """Return the ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:STDDev`` command.

        Description:
            - This query-only command returns the standard deviation for all accumulated measurement
              acquisitions for measurement <x>.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:STDDev?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:STDDev?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:RESUlts:ALLAcqs:STDDev?
            ```
        """
        return self._stddev


class MeasurementMeasItemResults(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:RESUlts`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:RESUlts?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:RESUlts?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.allacqs``: The ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs`` command tree.
        - ``.currentacq``: The ``MEASUrement:MEAS<x>:RESUlts:CURRentacq`` command tree.
        - ``.history``: The ``MEASUrement:MEAS<x>:RESUlts:HISTory`` command tree.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._allacqs = MeasurementMeasItemResultsAllacqs(device, f"{self._cmd_syntax}:ALLAcqs")
        self._currentacq = MeasurementMeasItemResultsCurrentacq(
            device, f"{self._cmd_syntax}:CURRentacq"
        )
        self._history = MeasurementMeasItemResultsHistory(device, f"{self._cmd_syntax}:HISTory")

    @property
    def allacqs(self) -> MeasurementMeasItemResultsAllacqs:
        """Return the ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.maximum``: The ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MAXimum`` command.
            - ``.mean``: The ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MEAN`` command.
            - ``.minimum``: The ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:MINimum`` command.
            - ``.pk2pk``: The ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:PK2PK`` command.
            - ``.population``: The ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:POPUlation`` command.
            - ``.stddev``: The ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs:STDDev`` command.
        """
        return self._allacqs

    @property
    def currentacq(self) -> MeasurementMeasItemResultsCurrentacq:
        """Return the ``MEASUrement:MEAS<x>:RESUlts:CURRentacq`` command tree.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:CURRentacq?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:CURRentacq?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.maximum``: The ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:MAXimum`` command.
            - ``.mean``: The ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:MEAN`` command.
            - ``.minimum``: The ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:MINimum`` command.
            - ``.pk2pk``: The ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:PK2PK`` command.
            - ``.population``: The ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:POPUlation`` command.
            - ``.stddev``: The ``MEASUrement:MEAS<x>:RESUlts:CURRentacq:STDDev`` command.
        """
        return self._currentacq

    @property
    def history(self) -> MeasurementMeasItemResultsHistory:
        """Return the ``MEASUrement:MEAS<x>:RESUlts:HISTory`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:RESUlts:HISTory?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:RESUlts:HISTory?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.maximum``: The ``MEASUrement:MEAS<x>:RESUlts:HISTory:MAXimum`` command.
            - ``.mean``: The ``MEASUrement:MEAS<x>:RESUlts:HISTory:MEAN`` command.
            - ``.minimum``: The ``MEASUrement:MEAS<x>:RESUlts:HISTory:MINimum`` command.
            - ``.pk2pk``: The ``MEASUrement:MEAS<x>:RESUlts:HISTory:PK2PK`` command.
            - ``.population``: The ``MEASUrement:MEAS<x>:RESUlts:HISTory:POPUlation`` command.
            - ``.stddev``: The ``MEASUrement:MEAS<x>:RESUlts:HISTory:STDDev`` command.
        """
        return self._history


class MeasurementMeasItemRefvoltage(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:REFVoltage`` command.

    Description:
        - This command sets or queries the reference voltage value for the measurement. The
          measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:REFVoltage?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:REFVoltage?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:REFVoltage value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:REFVoltage <NR3>
        - MEASUrement:MEAS<x>:REFVoltage?
        ```

    Info:
        - ``MEAS<x>`` is the measurement number.
        - ``<NR3>`` is the reference voltage value for the selected configuration.
    """


class MeasurementMeasItemRefvoltagevalItem(ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:REFVOLTAGE<x>Val`` command.

    Description:
        - Sets or queries the reference voltage per rail of Overshoot and Undershoot measurements.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:REFVOLTAGE<x>Val?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFVOLTAGE<x>Val?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFVOLTAGE<x>Val value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:REFVOLTAGE<x>Val <NR2>
        - MEASUrement:MEAS<x>:REFVOLTAGE<x>Val?
        ```

    Info:
        - ``MEAS<x>`` is the measurement number.
        - ``REFVOLTAGE<x>`` is the rail number.
        - ``<NR2>`` is the reference voltage, in the range of -500 V to +500 V.
    """


class MeasurementMeasItemRefmode(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:REFMode`` command.

    Description:
        - This command sets or queries the reference level mode for the measurement. The measurement
          number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:REFMode?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:REFMode?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:REFMode value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:REFMode {AUTO|MANual}
        - MEASUrement:MEAS<x>:REFMode?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``AUTO`` sets the reference level for the measurement automatically.
        - ``MANual`` allows the user to set the reference level for the measurement.
    """


class MeasurementMeasItemReflevelsAbsoluteFallhigh(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:REFLevels:ABSolute:FALLHigh`` command.

    Description:
        - This command sets or queries the value used as the high reference level of the falling
          edge when the measurement's ref level method is set to absolute. Measurements are
          specified by x. Note: This command affects the results of rise and fall measurements.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels:ABSolute:FALLHigh?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels:ABSolute:FALLHigh?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels:ABSolute:FALLHigh value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:REFLevels:ABSolute:FALLHigh <NR3>
        - MEASUrement:MEAS<x>:REFLevels:ABSolute:FALLHigh?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the high reference level in volts. The default is 0.0 V.
    """


class MeasurementMeasItemReflevelsAbsolute(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:REFLevels:ABSolute`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:REFLevels:ABSolute?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels:ABSolute?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.fallhigh``: The ``MEASUrement:MEAS<x>:REFLevels:ABSolute:FALLHigh`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._fallhigh = MeasurementMeasItemReflevelsAbsoluteFallhigh(
            device, f"{self._cmd_syntax}:FALLHigh"
        )

    @property
    def fallhigh(self) -> MeasurementMeasItemReflevelsAbsoluteFallhigh:
        """Return the ``MEASUrement:MEAS<x>:REFLevels:ABSolute:FALLHigh`` command.

        Description:
            - This command sets or queries the value used as the high reference level of the falling
              edge when the measurement's ref level method is set to absolute. Measurements are
              specified by x. Note: This command affects the results of rise and fall measurements.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels:ABSolute:FALLHigh?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels:ABSolute:FALLHigh?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels:ABSolute:FALLHigh value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:REFLevels:ABSolute:FALLHigh <NR3>
            - MEASUrement:MEAS<x>:REFLevels:ABSolute:FALLHigh?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the high reference level in volts. The default is 0.0 V.
        """
        return self._fallhigh


class MeasurementMeasItemReflevels1PercentType(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:REFLevels1:PERCent:TYPE`` command.

    Description:
        - This command specifies or queries the reference level percent type for the measurement.
          The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:PERCent:TYPE?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:PERCent:TYPE?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:PERCent:TYPE value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:REFLevels1:PERCent:TYPE {TENNinety|TWENtyeighty|CUSTom}
        - MEASUrement:MEAS<x>:REFLevels1:PERCent:TYPE?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``TENNinety`` sets the values for Low, Mid and High Ref to 10%, 50% and 90% respectively.
        - ``TWENtyeighty`` sets the values for Low, Mid and High Ref are set to 20%, 50% and 80%
          respectively.
        - ``CUSTom`` allows setting other reference level percents.
    """


class MeasurementMeasItemReflevels1PercentRisemid(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEMid`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the mid reference level of the rising edge when the measurement's
          ref level method is set to percent. The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEMid?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEMid?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEMid value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEMid <NR3>
        - MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEMid?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` the percentage (where 50% is equal to MID) used to calculate the mid reference
          level when the measurement Ref level method is set to Percent.
    """


class MeasurementMeasItemReflevels1PercentRiselow(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISELow`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the low reference level of the rising edge when the measurement's
          ref level method is set to percent. The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISELow?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISELow?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISELow value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:REFLevels1:PERCent:RISELow <NR3>
        - MEASUrement:MEAS<x>:REFLevels1:PERCent:RISELow?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the percentage (where 99% is equal to TOP) used to calculate the mid
          reference level when the measurement's Ref level method is set to Percent.
    """


class MeasurementMeasItemReflevels1PercentRisehigh(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEHigh`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the high reference level of the rising edge when the measurement's
          ref level method is set to percent. The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEHigh?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEHigh?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEHigh value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEHigh <NR3>
        - MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEHigh?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the percentage (where 99% is equal to TOP) used to calculate the high
          reference level when the measurement's Ref level method is set to Percent.
    """


class MeasurementMeasItemReflevels1PercentHysteresis(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:REFLevels1:PERCent:HYSTeresis`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to MAX and 1% is equal to
          MIN) used to calculate the hysteresis of the reference level when the measurement's ref
          level method is set to percent. The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:PERCent:HYSTeresis?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:PERCent:HYSTeresis?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:PERCent:HYSTeresis value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:REFLevels1:PERCent:HYSTeresis <NR3>
        - MEASUrement:MEAS<x>:REFLevels1:PERCent:HYSTeresis?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the hysteresis value used for the autoset.
    """


class MeasurementMeasItemReflevels1PercentFallmid(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLMid`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the mid reference level of the falling edge when the measurement's
          ref level method is set to percent. The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLMid?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLMid?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLMid value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLMid <NR3>
        - MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLMid?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the percentage (where 50% is equal to MID) used to calculate the mid
          reference level.
    """


class MeasurementMeasItemReflevels1PercentFalllow(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLLow`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the low reference level of the falling edge when the measurement's
          ref level method is set to percent. The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLLow?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLLow?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLLow value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLLow <NR3>
        - MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLLow?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the percentage (where 100% is equal to HIGH) used to calculate the mid
          reference level.
    """


class MeasurementMeasItemReflevels1PercentFallhigh(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLHigh`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the high reference level of the falling edge when the
          measurement's ref level method is set to percent. The measurement number is specified by
          x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLHigh?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLHigh?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLHigh value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLHigh <NR3>
        - MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLHigh?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the percentage (where 100% is equal to HIGH) used to calculate the high
          reference level.
    """


#  pylint: disable=too-many-instance-attributes
class MeasurementMeasItemReflevels1Percent(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:REFLevels1:PERCent`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:REFLevels1:PERCent?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:PERCent?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.fallhigh``: The ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLHigh`` command.
        - ``.falllow``: The ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLLow`` command.
        - ``.fallmid``: The ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLMid`` command.
        - ``.hysteresis``: The ``MEASUrement:MEAS<x>:REFLevels1:PERCent:HYSTeresis`` command.
        - ``.risehigh``: The ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEHigh`` command.
        - ``.riselow``: The ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISELow`` command.
        - ``.risemid``: The ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEMid`` command.
        - ``.type``: The ``MEASUrement:MEAS<x>:REFLevels1:PERCent:TYPE`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._fallhigh = MeasurementMeasItemReflevels1PercentFallhigh(
            device, f"{self._cmd_syntax}:FALLHigh"
        )
        self._falllow = MeasurementMeasItemReflevels1PercentFalllow(
            device, f"{self._cmd_syntax}:FALLLow"
        )
        self._fallmid = MeasurementMeasItemReflevels1PercentFallmid(
            device, f"{self._cmd_syntax}:FALLMid"
        )
        self._hysteresis = MeasurementMeasItemReflevels1PercentHysteresis(
            device, f"{self._cmd_syntax}:HYSTeresis"
        )
        self._risehigh = MeasurementMeasItemReflevels1PercentRisehigh(
            device, f"{self._cmd_syntax}:RISEHigh"
        )
        self._riselow = MeasurementMeasItemReflevels1PercentRiselow(
            device, f"{self._cmd_syntax}:RISELow"
        )
        self._risemid = MeasurementMeasItemReflevels1PercentRisemid(
            device, f"{self._cmd_syntax}:RISEMid"
        )
        self._type = MeasurementMeasItemReflevels1PercentType(device, f"{self._cmd_syntax}:TYPE")

    @property
    def fallhigh(self) -> MeasurementMeasItemReflevels1PercentFallhigh:
        """Return the ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLHigh`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the high reference level of the falling edge when the
              measurement's ref level method is set to percent. The measurement number is specified
              by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLHigh?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLHigh?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLHigh value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLHigh <NR3>
            - MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLHigh?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the percentage (where 100% is equal to HIGH) used to calculate the high
              reference level.
        """
        return self._fallhigh

    @property
    def falllow(self) -> MeasurementMeasItemReflevels1PercentFalllow:
        """Return the ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLLow`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the low reference level of the falling edge when the
              measurement's ref level method is set to percent. The measurement number is specified
              by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLLow?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLLow?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLLow value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLLow <NR3>
            - MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLLow?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the percentage (where 100% is equal to HIGH) used to calculate the mid
              reference level.
        """
        return self._falllow

    @property
    def fallmid(self) -> MeasurementMeasItemReflevels1PercentFallmid:
        """Return the ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLMid`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the mid reference level of the falling edge when the
              measurement's ref level method is set to percent. The measurement number is specified
              by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLMid?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLMid?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLMid value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLMid <NR3>
            - MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLMid?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the percentage (where 50% is equal to MID) used to calculate the mid
              reference level.
        """
        return self._fallmid

    @property
    def hysteresis(self) -> MeasurementMeasItemReflevels1PercentHysteresis:
        """Return the ``MEASUrement:MEAS<x>:REFLevels1:PERCent:HYSTeresis`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to MAX and 1% is equal
              to MIN) used to calculate the hysteresis of the reference level when the measurement's
              ref level method is set to percent. The measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:PERCent:HYSTeresis?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:PERCent:HYSTeresis?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:PERCent:HYSTeresis value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:REFLevels1:PERCent:HYSTeresis <NR3>
            - MEASUrement:MEAS<x>:REFLevels1:PERCent:HYSTeresis?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the hysteresis value used for the autoset.
        """
        return self._hysteresis

    @property
    def risehigh(self) -> MeasurementMeasItemReflevels1PercentRisehigh:
        """Return the ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEHigh`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the high reference level of the rising edge when the
              measurement's ref level method is set to percent. The measurement number is specified
              by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEHigh?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEHigh?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEHigh value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEHigh <NR3>
            - MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEHigh?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the percentage (where 99% is equal to TOP) used to calculate the high
              reference level when the measurement's Ref level method is set to Percent.
        """
        return self._risehigh

    @property
    def riselow(self) -> MeasurementMeasItemReflevels1PercentRiselow:
        """Return the ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISELow`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the low reference level of the rising edge when the
              measurement's ref level method is set to percent. The measurement number is specified
              by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISELow?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISELow?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISELow value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:REFLevels1:PERCent:RISELow <NR3>
            - MEASUrement:MEAS<x>:REFLevels1:PERCent:RISELow?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the percentage (where 99% is equal to TOP) used to calculate the mid
              reference level when the measurement's Ref level method is set to Percent.
        """
        return self._riselow

    @property
    def risemid(self) -> MeasurementMeasItemReflevels1PercentRisemid:
        """Return the ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEMid`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the mid reference level of the rising edge when the
              measurement's ref level method is set to percent. The measurement number is specified
              by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEMid?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEMid?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEMid value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEMid <NR3>
            - MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEMid?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` the percentage (where 50% is equal to MID) used to calculate the mid
              reference level when the measurement Ref level method is set to Percent.
        """
        return self._risemid

    @property
    def type(self) -> MeasurementMeasItemReflevels1PercentType:
        """Return the ``MEASUrement:MEAS<x>:REFLevels1:PERCent:TYPE`` command.

        Description:
            - This command specifies or queries the reference level percent type for the
              measurement. The measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:PERCent:TYPE?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:PERCent:TYPE?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:PERCent:TYPE value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:REFLevels1:PERCent:TYPE {TENNinety|TWENtyeighty|CUSTom}
            - MEASUrement:MEAS<x>:REFLevels1:PERCent:TYPE?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``TENNinety`` sets the values for Low, Mid and High Ref to 10%, 50% and 90%
              respectively.
            - ``TWENtyeighty`` sets the values for Low, Mid and High Ref are set to 20%, 50% and 80%
              respectively.
            - ``CUSTom`` allows setting other reference level percents.
        """
        return self._type


class MeasurementMeasItemReflevels1Method(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:REFLevels1:METHod`` command.

    Description:
        - This command sets or queries the method used to calculate reference levels for the
          measurement. The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:REFLevels1:METHod?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:METHod?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:METHod value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:REFLevels1:METHod {PERCent|ABSolute}
        - MEASUrement:MEAS<x>:REFLevels1:METHod?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``PERCent`` specifies that the reference levels are calculated as a percent relative to
          HIGH and LOW. The percentages are defined using the
          ``MEASUrement:MEAS<x>:REFLevel:PERCent`` commands.
        - ``ABSolute`` specifies that the reference levels are set explicitly using the
          ``MEASUrement:MEAS<x>:REFLevel:ABSolute`` commands. This method is useful when precise
          values are required.
    """


class MeasurementMeasItemReflevels1Basetop(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:REFLevels1:BASETop`` command.

    Description:
        - This command sets or queries the method used to calculate the TOP and BASE used to
          calculate reference levels for the measurement. The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:REFLevels1:BASETop?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:BASETop?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:BASETop value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:REFLevels1:BASETop {AUTO|MINMax|MEANhistogram|MODEhistogram|EYEhistogram}
        - MEASUrement:MEAS<x>:REFLevels1:BASETop?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``AUTO`` automatically chooses a reference level method.
        - ``MINMax`` specifies that reference levels are relative to the measurement MIN and MAX.
        - ``MEANhistogram`` specifies that reference levels are relative to the histogram mean BASE
          and TOP.
        - ``MODEhistogram`` specifies that reference levels are relative to the histogram mode BASE
          and TOP.
        - ``EYEhistogram`` specifies that reverence levels are relative to the eye histogram BASE
          and TOP.
    """  # noqa: E501


class MeasurementMeasItemReflevels1AbsoluteType(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:TYPE`` command.

    Description:
        - This command sets or queries the reference level type for the measurement. The measurement
          number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:TYPE?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:TYPE?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:TYPE value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:REFLevels1:ABSolute:TYPE {SAME|UNIQue}
        - MEASUrement:MEAS<x>:REFLevels1:ABSolute:TYPE?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``SAME`` specifies that the absolute levels are set the same.
        - ``UNIQue`` specifies that the absolute levels can be set independently.
    """


class MeasurementMeasItemReflevels1AbsoluteRisemid(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEMid`` command.

    Description:
        - This command sets or queries the value used as the mid reference level of the rising edge
          when the measurement's ref level method is set to absolute. The measurement number is
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEMid?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEMid?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEMid value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEMid <NR3>
        - MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEMid?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the mid reference level (where 50% is equal to MID) used to calculate the mid
          reference level when the measurement's Ref level method is set to Absolute.
    """


class MeasurementMeasItemReflevels1AbsoluteRiselow(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISELow`` command.

    Description:
        - This command sets or queries the value used as the low reference level of the rising edge
          when the measurement's ref level method is set to absolute. The measurement number is
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISELow?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISELow?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISELow value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISELow <NR3>
        - MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISELow?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the low reference level, and is the zero percent level when the measurement's
          Ref level method is set to Absolute.
    """


class MeasurementMeasItemReflevels1AbsoluteRisehigh(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEHigh`` command.

    Description:
        - This command sets or queries the value used as the high reference level of the rising edge
          when the measurement's ref level method is set to absolute. The measurement number is
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEHigh?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEHigh?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEHigh value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEHigh <NR3>
        - MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEHigh?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the high reference level, and is the zero percent level when the
          measurement's Ref level method is set to Absolute.
    """


class MeasurementMeasItemReflevels1AbsoluteHysteresis(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:HYSTeresis`` command.

    Description:
        - This command sets or queries the value of the hysteresis of the reference level when the
          measurement's ref level method is set to absolute. The measurement number is specified by
          x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:HYSTeresis?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:HYSTeresis?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:HYSTeresis value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:REFLevels1:ABSolute:HYSTeresis <NR3>
        - MEASUrement:MEAS<x>:REFLevels1:ABSolute:HYSTeresis?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the hysteresis value used for autoset.
    """


class MeasurementMeasItemReflevels1AbsoluteFallmid(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLMid`` command.

    Description:
        - This command sets or queries the value used as the mid reference level of the falling edge
          when the measurement's ref level method is set to absolute. Measurements are specified by
          x. Note: This command affects the results of period, frequency, delay, and all cyclic
          measurements.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLMid?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLMid?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLMid value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLMid <NR3>
        - MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLMid?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the mid reference level in volts. The default is 0.0 V.
    """


class MeasurementMeasItemReflevels1AbsoluteFalllow(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLLow`` command.

    Description:
        - This command sets or queries the value used as the low reference level of the falling edge
          when the measurement's ref level method is set to absolute. Measurements are specified by
          x. Note: This command affects the results of rise and fall measurements.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLLow?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLLow?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLLow value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLLow <NR3>
        - MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLLow?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the low reference level in volts. The default is 0.0 V.
    """


class MeasurementMeasItemReflevels1Absolute(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:REFLevels1:ABSolute`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:REFLevels1:ABSolute?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:REFLevels1:ABSolute?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.falllow``: The ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLLow`` command.
        - ``.fallmid``: The ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLMid`` command.
        - ``.hysteresis``: The ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:HYSTeresis`` command.
        - ``.risehigh``: The ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEHigh`` command.
        - ``.riselow``: The ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISELow`` command.
        - ``.risemid``: The ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEMid`` command.
        - ``.type``: The ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:TYPE`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._falllow = MeasurementMeasItemReflevels1AbsoluteFalllow(
            device, f"{self._cmd_syntax}:FALLLow"
        )
        self._fallmid = MeasurementMeasItemReflevels1AbsoluteFallmid(
            device, f"{self._cmd_syntax}:FALLMid"
        )
        self._hysteresis = MeasurementMeasItemReflevels1AbsoluteHysteresis(
            device, f"{self._cmd_syntax}:HYSTeresis"
        )
        self._risehigh = MeasurementMeasItemReflevels1AbsoluteRisehigh(
            device, f"{self._cmd_syntax}:RISEHigh"
        )
        self._riselow = MeasurementMeasItemReflevels1AbsoluteRiselow(
            device, f"{self._cmd_syntax}:RISELow"
        )
        self._risemid = MeasurementMeasItemReflevels1AbsoluteRisemid(
            device, f"{self._cmd_syntax}:RISEMid"
        )
        self._type = MeasurementMeasItemReflevels1AbsoluteType(device, f"{self._cmd_syntax}:TYPE")

    @property
    def falllow(self) -> MeasurementMeasItemReflevels1AbsoluteFalllow:
        """Return the ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLLow`` command.

        Description:
            - This command sets or queries the value used as the low reference level of the falling
              edge when the measurement's ref level method is set to absolute. Measurements are
              specified by x. Note: This command affects the results of rise and fall measurements.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLLow?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLLow?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLLow value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLLow <NR3>
            - MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLLow?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the low reference level in volts. The default is 0.0 V.
        """
        return self._falllow

    @property
    def fallmid(self) -> MeasurementMeasItemReflevels1AbsoluteFallmid:
        """Return the ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLMid`` command.

        Description:
            - This command sets or queries the value used as the mid reference level of the falling
              edge when the measurement's ref level method is set to absolute. Measurements are
              specified by x. Note: This command affects the results of period, frequency, delay,
              and all cyclic measurements.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLMid?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLMid?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLMid value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLMid <NR3>
            - MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLMid?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the mid reference level in volts. The default is 0.0 V.
        """
        return self._fallmid

    @property
    def hysteresis(self) -> MeasurementMeasItemReflevels1AbsoluteHysteresis:
        """Return the ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:HYSTeresis`` command.

        Description:
            - This command sets or queries the value of the hysteresis of the reference level when
              the measurement's ref level method is set to absolute. The measurement number is
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:HYSTeresis?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:HYSTeresis?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:HYSTeresis value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:REFLevels1:ABSolute:HYSTeresis <NR3>
            - MEASUrement:MEAS<x>:REFLevels1:ABSolute:HYSTeresis?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the hysteresis value used for autoset.
        """
        return self._hysteresis

    @property
    def risehigh(self) -> MeasurementMeasItemReflevels1AbsoluteRisehigh:
        """Return the ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEHigh`` command.

        Description:
            - This command sets or queries the value used as the high reference level of the rising
              edge when the measurement's ref level method is set to absolute. The measurement
              number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEHigh?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEHigh?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEHigh value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEHigh <NR3>
            - MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEHigh?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the high reference level, and is the zero percent level when the
              measurement's Ref level method is set to Absolute.
        """
        return self._risehigh

    @property
    def riselow(self) -> MeasurementMeasItemReflevels1AbsoluteRiselow:
        """Return the ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISELow`` command.

        Description:
            - This command sets or queries the value used as the low reference level of the rising
              edge when the measurement's ref level method is set to absolute. The measurement
              number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISELow?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISELow?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISELow value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISELow <NR3>
            - MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISELow?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the low reference level, and is the zero percent level when the
              measurement's Ref level method is set to Absolute.
        """
        return self._riselow

    @property
    def risemid(self) -> MeasurementMeasItemReflevels1AbsoluteRisemid:
        """Return the ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEMid`` command.

        Description:
            - This command sets or queries the value used as the mid reference level of the rising
              edge when the measurement's ref level method is set to absolute. The measurement
              number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEMid?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEMid?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEMid value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEMid <NR3>
            - MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEMid?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the mid reference level (where 50% is equal to MID) used to calculate the
              mid reference level when the measurement's Ref level method is set to Absolute.
        """
        return self._risemid

    @property
    def type(self) -> MeasurementMeasItemReflevels1AbsoluteType:
        """Return the ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:TYPE`` command.

        Description:
            - This command sets or queries the reference level type for the measurement. The
              measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:TYPE?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:TYPE?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:TYPE value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:REFLevels1:ABSolute:TYPE {SAME|UNIQue}
            - MEASUrement:MEAS<x>:REFLevels1:ABSolute:TYPE?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``SAME`` specifies that the absolute levels are set the same.
            - ``UNIQue`` specifies that the absolute levels can be set independently.
        """
        return self._type


class MeasurementMeasItemReflevels1(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:REFLevels1`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:REFLevels1?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:REFLevels1?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.absolute``: The ``MEASUrement:MEAS<x>:REFLevels1:ABSolute`` command tree.
        - ``.basetop``: The ``MEASUrement:MEAS<x>:REFLevels1:BASETop`` command.
        - ``.method``: The ``MEASUrement:MEAS<x>:REFLevels1:METHod`` command.
        - ``.percent``: The ``MEASUrement:MEAS<x>:REFLevels1:PERCent`` command tree.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._absolute = MeasurementMeasItemReflevels1Absolute(
            device, f"{self._cmd_syntax}:ABSolute"
        )
        self._basetop = MeasurementMeasItemReflevels1Basetop(device, f"{self._cmd_syntax}:BASETop")
        self._method = MeasurementMeasItemReflevels1Method(device, f"{self._cmd_syntax}:METHod")
        self._percent = MeasurementMeasItemReflevels1Percent(device, f"{self._cmd_syntax}:PERCent")

    @property
    def absolute(self) -> MeasurementMeasItemReflevels1Absolute:
        """Return the ``MEASUrement:MEAS<x>:REFLevels1:ABSolute`` command tree.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:ABSolute?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:ABSolute?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.falllow``: The ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLLow`` command.
            - ``.fallmid``: The ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:FALLMid`` command.
            - ``.hysteresis``: The ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:HYSTeresis`` command.
            - ``.risehigh``: The ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEHigh`` command.
            - ``.riselow``: The ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISELow`` command.
            - ``.risemid``: The ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:RISEMid`` command.
            - ``.type``: The ``MEASUrement:MEAS<x>:REFLevels1:ABSolute:TYPE`` command.
        """
        return self._absolute

    @property
    def basetop(self) -> MeasurementMeasItemReflevels1Basetop:
        """Return the ``MEASUrement:MEAS<x>:REFLevels1:BASETop`` command.

        Description:
            - This command sets or queries the method used to calculate the TOP and BASE used to
              calculate reference levels for the measurement. The measurement number is specified by
              x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:BASETop?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:BASETop?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:BASETop value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:REFLevels1:BASETop {AUTO|MINMax|MEANhistogram|MODEhistogram|EYEhistogram}
            - MEASUrement:MEAS<x>:REFLevels1:BASETop?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``AUTO`` automatically chooses a reference level method.
            - ``MINMax`` specifies that reference levels are relative to the measurement MIN and
              MAX.
            - ``MEANhistogram`` specifies that reference levels are relative to the histogram mean
              BASE and TOP.
            - ``MODEhistogram`` specifies that reference levels are relative to the histogram mode
              BASE and TOP.
            - ``EYEhistogram`` specifies that reverence levels are relative to the eye histogram
              BASE and TOP.
        """  # noqa: E501
        return self._basetop

    @property
    def method(self) -> MeasurementMeasItemReflevels1Method:
        """Return the ``MEASUrement:MEAS<x>:REFLevels1:METHod`` command.

        Description:
            - This command sets or queries the method used to calculate reference levels for the
              measurement. The measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:REFLevels1:METHod?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:METHod?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:METHod value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:REFLevels1:METHod {PERCent|ABSolute}
            - MEASUrement:MEAS<x>:REFLevels1:METHod?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``PERCent`` specifies that the reference levels are calculated as a percent relative
              to HIGH and LOW. The percentages are defined using the
              ``MEASUrement:MEAS<x>:REFLevel:PERCent`` commands.
            - ``ABSolute`` specifies that the reference levels are set explicitly using the
              ``MEASUrement:MEAS<x>:REFLevel:ABSolute`` commands. This method is useful when precise
              values are required.
        """
        return self._method

    @property
    def percent(self) -> MeasurementMeasItemReflevels1Percent:
        """Return the ``MEASUrement:MEAS<x>:REFLevels1:PERCent`` command tree.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:PERCent?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels1:PERCent?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.fallhigh``: The ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLHigh`` command.
            - ``.falllow``: The ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLLow`` command.
            - ``.fallmid``: The ``MEASUrement:MEAS<x>:REFLevels1:PERCent:FALLMid`` command.
            - ``.hysteresis``: The ``MEASUrement:MEAS<x>:REFLevels1:PERCent:HYSTeresis`` command.
            - ``.risehigh``: The ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEHigh`` command.
            - ``.riselow``: The ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISELow`` command.
            - ``.risemid``: The ``MEASUrement:MEAS<x>:REFLevels1:PERCent:RISEMid`` command.
            - ``.type``: The ``MEASUrement:MEAS<x>:REFLevels1:PERCent:TYPE`` command.
        """
        return self._percent


class MeasurementMeasItemReflevels(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:REFLevels`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:REFLevels?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:REFLevels?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.absolute``: The ``MEASUrement:MEAS<x>:REFLevels:ABSolute`` command tree.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._absolute = MeasurementMeasItemReflevelsAbsolute(
            device, f"{self._cmd_syntax}:ABSolute"
        )

    @property
    def absolute(self) -> MeasurementMeasItemReflevelsAbsolute:
        """Return the ``MEASUrement:MEAS<x>:REFLevels:ABSolute`` command tree.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels:ABSolute?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFLevels:ABSolute?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.fallhigh``: The ``MEASUrement:MEAS<x>:REFLevels:ABSolute:FALLHigh`` command.
        """
        return self._absolute


class MeasurementMeasItemRedge(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:REDGe`` command.

    Description:
        - This command turns on or off the Refine edge on qualifier. Measurements are specified by
          x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:REDGe?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:REDGe?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:REDGe value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:REDGe {ON|OFF}
        - MEASUrement:MEAS<x>:REDGe?
        ```

    Info:
        - ``ON`` specifies the Refine edge settings has been turned on.
        - ``OFF`` specifies the Refine edge settings has been turned off.
    """


class MeasurementMeasItemPwidth(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:PWIDth`` command.

    Description:
        - This command sets or returns pulse width. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PWIDth?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:PWIDth?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:PWIDth value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:PWIDth <NR3>
        - MEASUrement:MEAS<x>:PWIDth?
        ```

    Info:
        - ``<NR3>`` specifies the pulse width.
    """


class MeasurementMeasItemPthreshold(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:PTHReshold`` command.

    Description:
        - This command sets or returns the PJ threshold value of PSIJ measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PTHReshold?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:PTHReshold?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:PTHReshold value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:PTHReshold <NR3>
        - MEASUrement:MEAS<x>:PTHReshold?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` specifies the value of PJ threshold for PSIJ measurement.
    """


class MeasurementMeasItemPresistance(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:PRESistance`` command.

    Description:
        - This command sets or returns the probe resistance for WBG measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PRESistance?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:PRESistance?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:PRESistance value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:PRESistance <NR3>
        - MEASUrement:MEAS<x>:PRESistance?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` specifies the value for probe resistance of the WBG measurement.
    """


class MeasurementMeasItemPregion(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:PREGion`` command.

    Description:
        - This command sets or returns pulse region for a measurement. Measurements are specified by
          x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PREGion?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:PREGion?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:PREGion value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:PREGion {FPULse|SPULse|MPULse}
        - MEASUrement:MEAS<x>:PREGion?
        ```

    Info:
        - ``FPULse`` is the pulse region as Fpulse.
        - ``SPULse`` is the pulse region as Spulse.
        - ``MPULse`` is the pulse region as Mpulse.
    """


class MeasurementMeasItemPowerfactor(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:POWERFACtor`` command.

    Description:
        - This command sets or queries the power factor value for IEC-Class C type harmonics
          standard. The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:POWERFACtor?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:POWERFACtor?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:POWERFACtor value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:POWERFACtor <NR2>
        - MEASUrement:MEAS<x>:POWERFACtor?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR2>`` specifies the power factor value for class C harmonics standard.
    """


class MeasurementMeasItemPopower(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:POPower`` command.

    Description:
        - This command sets or queries the Percentage Power to be measured for the Occupied
          Bandwidth measurement. The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:POPower?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:POPower?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:POPower value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:POPower <NR3>
        - MEASUrement:MEAS<x>:POPower?
        ```

    Info:
        - ``<NR3>`` sets the Percentage Power value. The default value is 99.9 and the valid range
          is 60.0 to 99.9.
    """


class MeasurementMeasItemPopulationLimitValue(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:POPUlation:LIMIT:VALue`` command.

    Description:
        - This command sets or queries the population limit value for the measurement. The
          measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:POPUlation:LIMIT:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:POPUlation:LIMIT:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:POPUlation:LIMIT:VALue value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:POPUlation:LIMIT:VALue <NR3>
        - MEASUrement:MEAS<x>:POPUlation:LIMIT:VALue?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` the current limit value.
    """


class MeasurementMeasItemPopulationLimitState(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:POPUlation:LIMIT:STATE`` command.

    Description:
        - This command sets or queries the population limit state for the measurement. The
          measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:POPUlation:LIMIT:STATE?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:POPUlation:LIMIT:STATE?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:POPUlation:LIMIT:STATE value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:POPUlation:LIMIT:STATE {ON|OFF|1|0}
        - MEASUrement:MEAS<x>:POPUlation:LIMIT:STATE?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``OFF`` turns off the population limit.
        - ``ON`` turns on the population limit.
        - ``0`` turns off the population limit.
        - ``1`` turns on the population limit.
    """


class MeasurementMeasItemPopulationLimit(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:POPUlation:LIMIT`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:POPUlation:LIMIT?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:POPUlation:LIMIT?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.state``: The ``MEASUrement:MEAS<x>:POPUlation:LIMIT:STATE`` command.
        - ``.value``: The ``MEASUrement:MEAS<x>:POPUlation:LIMIT:VALue`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._state = MeasurementMeasItemPopulationLimitState(device, f"{self._cmd_syntax}:STATE")
        self._value = MeasurementMeasItemPopulationLimitValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def state(self) -> MeasurementMeasItemPopulationLimitState:
        """Return the ``MEASUrement:MEAS<x>:POPUlation:LIMIT:STATE`` command.

        Description:
            - This command sets or queries the population limit state for the measurement. The
              measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:POPUlation:LIMIT:STATE?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:POPUlation:LIMIT:STATE?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:POPUlation:LIMIT:STATE value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:POPUlation:LIMIT:STATE {ON|OFF|1|0}
            - MEASUrement:MEAS<x>:POPUlation:LIMIT:STATE?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``OFF`` turns off the population limit.
            - ``ON`` turns on the population limit.
            - ``0`` turns off the population limit.
            - ``1`` turns on the population limit.
        """
        return self._state

    @property
    def value(self) -> MeasurementMeasItemPopulationLimitValue:
        """Return the ``MEASUrement:MEAS<x>:POPUlation:LIMIT:VALue`` command.

        Description:
            - This command sets or queries the population limit value for the measurement. The
              measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:POPUlation:LIMIT:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:POPUlation:LIMIT:VALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:POPUlation:LIMIT:VALue value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:POPUlation:LIMIT:VALue <NR3>
            - MEASUrement:MEAS<x>:POPUlation:LIMIT:VALue?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` the current limit value.
        """
        return self._value


class MeasurementMeasItemPopulationGlobal(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:POPUlation:GLOBal`` command.

    Description:
        - This command sets or queries the population settings global flag. The measurement number
          is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:POPUlation:GLOBal?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:POPUlation:GLOBal?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:POPUlation:GLOBal value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:POPUlation:GLOBal {ON|OFF|1|0}
        - MEASUrement:MEAS<x>:POPUlation:GLOBal?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``OFF`` specifies that population settings can be changed independently for each
          individual measurement.
        - ``ON`` applies the global population settings to all the measurements' population
          settings.
        - ``0`` specifies that population settings can be changed independently for each individual
          measurement.
        - ``1`` applies the global population settings to all the measurements' population settings.
    """


class MeasurementMeasItemPopulation(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:POPUlation`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:POPUlation?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:POPUlation?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.global``: The ``MEASUrement:MEAS<x>:POPUlation:GLOBal`` command.
        - ``.limit``: The ``MEASUrement:MEAS<x>:POPUlation:LIMIT`` command tree.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._global = MeasurementMeasItemPopulationGlobal(device, f"{self._cmd_syntax}:GLOBal")
        self._limit = MeasurementMeasItemPopulationLimit(device, f"{self._cmd_syntax}:LIMIT")

    @property
    def global_(self) -> MeasurementMeasItemPopulationGlobal:
        """Return the ``MEASUrement:MEAS<x>:POPUlation:GLOBal`` command.

        Description:
            - This command sets or queries the population settings global flag. The measurement
              number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:POPUlation:GLOBal?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:POPUlation:GLOBal?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:POPUlation:GLOBal value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:POPUlation:GLOBal {ON|OFF|1|0}
            - MEASUrement:MEAS<x>:POPUlation:GLOBal?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``OFF`` specifies that population settings can be changed independently for each
              individual measurement.
            - ``ON`` applies the global population settings to all the measurements' population
              settings.
            - ``0`` specifies that population settings can be changed independently for each
              individual measurement.
            - ``1`` applies the global population settings to all the measurements' population
              settings.
        """
        return self._global

    @property
    def limit(self) -> MeasurementMeasItemPopulationLimit:
        """Return the ``MEASUrement:MEAS<x>:POPUlation:LIMIT`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:POPUlation:LIMIT?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:POPUlation:LIMIT?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.state``: The ``MEASUrement:MEAS<x>:POPUlation:LIMIT:STATE`` command.
            - ``.value``: The ``MEASUrement:MEAS<x>:POPUlation:LIMIT:VALue`` command.
        """
        return self._limit


class MeasurementMeasItemPolarity(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:POLarity`` command.

    Description:
        - This command sets or queries the polarity for the measurement when the measurement type is
          burst width. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:POLarity?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:POLarity?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:POLarity value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:POLarity {NORMal|INVerted}
        - MEASUrement:MEAS<x>:POLarity?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``NORMal`` specifies normal polarity.
        - ``INVerted`` specifies inverted polarity.
    """


class MeasurementMeasItemPfrequency(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:PFREquency`` command.

    Description:
        - This command sets or returns the PJ max frequency value of PSIJ measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PFREquency?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:PFREquency?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:PFREquency value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:PFREquency <NR3>
        - MEASUrement:MEAS<x>:PFREquency?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` specifies the value of PJ max frequency for PSIJ measurement.
    """


class MeasurementMeasItemPerfreqEdge(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:PERFREQ:EDGE`` command.

    Description:
        - This command sets or queries the edge type of a Period/Frequency measurement. The
          measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PERFREQ:EDGE?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:PERFREQ:EDGE?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:PERFREQ:EDGE value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:PERFREQ:EDGE {FIRST|RISE|FALL}
        - MEASUrement:MEAS<x>:PERFREQ:EDGE?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``FIRST`` computes the measurement between Rising edges if the first edge is Rising.
          Computes the measurement between Falling edges if the first edge is Falling.
        - ``RISE`` computes the measurement between Rising edges.
        - ``FALL`` computes the measurement between Falling edges.
    """


class MeasurementMeasItemPerfreq(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:PERFREQ`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PERFREQ?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:PERFREQ?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.edge``: The ``MEASUrement:MEAS<x>:PERFREQ:EDGE`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._edge = MeasurementMeasItemPerfreqEdge(device, f"{self._cmd_syntax}:EDGE")

    @property
    def edge(self) -> MeasurementMeasItemPerfreqEdge:
        """Return the ``MEASUrement:MEAS<x>:PERFREQ:EDGE`` command.

        Description:
            - This command sets or queries the edge type of a Period/Frequency measurement. The
              measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PERFREQ:EDGE?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:PERFREQ:EDGE?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:PERFREQ:EDGE value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:PERFREQ:EDGE {FIRST|RISE|FALL}
            - MEASUrement:MEAS<x>:PERFREQ:EDGE?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``FIRST`` computes the measurement between Rising edges if the first edge is Rising.
              Computes the measurement between Falling edges if the first edge is Falling.
            - ``RISE`` computes the measurement between Rising edges.
            - ``FALL`` computes the measurement between Falling edges.
        """
        return self._edge


class MeasurementMeasItemPcount(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:PCOUNt`` command.

    Description:
        - This command sets or returns number of pulses. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PCOUNt?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:PCOUNt?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:PCOUNt value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:PCOUNt <NR3>
        - MEASUrement:MEAS<x>:PCOUNt?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the number of pulses.
    """


class MeasurementMeasItemPatterntype(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:PATTERNTYPe`` command.

    Description:
        - This command sets or queries the pattern type for the measurement. Measurements are
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PATTERNTYPe?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:PATTERNTYPe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:PATTERNTYPe value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:PATTERNTYPe {REPeating|ARBitrary}
        - MEASUrement:MEAS<x>:PATTERNTYPe?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``REPeating`` specifies a repeating pattern.
        - ``ARBitrary`` specifies an arbitrary pattern.
    """


class MeasurementMeasItemPatternlength(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:PATTERNLENgth`` command.

    Description:
        - This command sets or queries the pattern length for the measurement. Measurements are
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PATTERNLENgth?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:PATTERNLENgth?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:PATTERNLENgth value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:PATTERNLENgth <NR3>
        - MEASUrement:MEAS<x>:PATTERNLENgth?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the pattern length.
    """


class MeasurementMeasItemPatterndetection(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:PATTERNDETECTION`` command.

    Description:
        - This command sets or queries the pattern detection type for the measurement. Measurements
          are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PATTERNDETECTION?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:PATTERNDETECTION?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:PATTERNDETECTION value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:PATTERNDETECTION {AUTO|MANUAL}
        - MEASUrement:MEAS<x>:PATTERNDETECTION?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``AUTO`` automatically detects the pattern.
        - ``MANUAL`` requires manually detecting the pattern.
    """


class MeasurementMeasItemPassfailwhen(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:PASSFAILWHEN`` command.

    Description:
        - This command sets or returns the condition on which a measurement test fails. Measurements
          are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PASSFAILWHEN?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:PASSFAILWHEN?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:PASSFAILWHEN value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:PASSFAILWHEN {LESSthan|GREATERthan|Equals|NOTEQuals|INSIDErange|OUTSIDErange}
        - MEASUrement:MEAS<x>:PASSFAILWHEN?
        ```

    Info:
        - ``LESSthan`` sets the condition for measurement test failure as less than the given limit.
          This is the default value.
        - ``GREATERthan`` sets the condition for measurement test failure as greater than the given
          limit.
        - ``Equals`` sets the condition for measurement test failure as equals the given limit.
        - ``NOTEQuals`` sets the condition for measurement test failure as not equal to the given
          limit.
        - ``INSIDErange`` sets the condition for measurement test failure as inside the limit range.
        - ``OUTSIDErange`` sets the condition for measurement test failure as outside the limit
          range.
    """  # noqa: E501


class MeasurementMeasItemPassfailmargin(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:PASSFAILMARgin`` command.

    Description:
        - This command returns or sets the allowed margin for limit comparisons for all pass/fail
          checks. This is given as a percentage with a default value of 0.05 representing 5%.
          Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PASSFAILMARgin?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:PASSFAILMARgin?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:PASSFAILMARgin value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:PASSFAILMARgin <NR2>
        - MEASUrement:MEAS<x>:PASSFAILMARgin?
        ```

    Info:
        - ``<NR2>`` sets the allowed margin for limit comparisons for all pass/fail checks. The
          margin as a percentage of the limit.
    """


class MeasurementMeasItemPassfaillowlimit(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:PASSFAILLOWlimit`` command.

    Description:
        - This command returns or sets the low limit for a measurement test. Used as the test value
          when the 'fail when' criteria is set to 'less than' or 'greater than'. Measurements are
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PASSFAILLOWlimit?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:PASSFAILLOWlimit?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:PASSFAILLOWlimit value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:PASSFAILLOWlimit <NR2>
        - MEASUrement:MEAS<x>:PASSFAILLOWlimit?
        ```

    Info:
        - ``<NR2>`` sets the low limit for a measurement test. The limit is a number which a
          measurement result will be tested against.
    """


class MeasurementMeasItemPassfaillimit(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:PASSFAILLIMit`` command.

    Description:
        - This command returns or sets the limit for a measurement test. Used as the test value when
          the 'fail when' criteria is set to 'less than' or 'greater than'. Measurements are
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PASSFAILLIMit?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:PASSFAILLIMit?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:PASSFAILLIMit value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:PASSFAILLIMit <NR2>
        - MEASUrement:MEAS<x>:PASSFAILLIMit?
        ```

    Info:
        - ``<NR2>`` sets the limit for a measurement test. The limit is a number which a measurement
          result will be tested against.
    """


class MeasurementMeasItemPassfailhighlimit(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:PASSFAILHIGHlimit`` command.

    Description:
        - This command returns or sets the high limit for a measurement test. Used as the test value
          when the 'fail when' criteria is set to 'less than' or 'greater than'. Measurements are
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PASSFAILHIGHlimit?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:PASSFAILHIGHlimit?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:PASSFAILHIGHlimit value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:PASSFAILHIGHlimit <NR2>
        - MEASUrement:MEAS<x>:PASSFAILHIGHlimit?
        ```

    Info:
        - ``<NR2>`` sets the high limit for a measurement test. The high limit is a number which a
          measurement result will be tested against.
    """


class MeasurementMeasItemPassfailenabled(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:PASSFAILENabled`` command.

    Description:
        - This command returns or sets the pass/fail test enable status. If enabled, this will turn
          on pass fail testing for the specified measurement. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PASSFAILENabled?``
          query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:PASSFAILENabled?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:PASSFAILENabled value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:PASSFAILENabled <NR1>
        - MEASUrement:MEAS<x>:PASSFAILENabled?
        ```

    Info:
        - ``<NR1>`` enables or disables pass fail testing for the specified measurement. A value of
          1 enables and a value of 0 disables.
    """


class MeasurementMeasItemOutputvoltageItem(ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:OUTPUT<x>VOLTage`` command.

    Description:
        - Sets or queries the voltage level for the specified output voltage source n.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:OUTPUT<x>VOLTage?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:OUTPUT<x>VOLTage?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:OUTPUT<x>VOLTage value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:OUTPUT<x>VOLTage <NR2>
        - MEASUrement:MEAS<x>:OUTPUT<x>VOLTage?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR2>`` is the output voltage for source n, in the range of -61 V to +61 V.
    """


class MeasurementMeasItemOutfiltersLowpassSpec(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:OUTFILTers:LOWPass:SPEC`` command.

    Description:
        - This command sets or queries the measurement output low pass filter specification filter
          order on the scope. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:OUTFILTers:LOWPass:SPEC?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:OUTFILTers:LOWPass:SPEC?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:OUTFILTers:LOWPass:SPEC value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:OUTFILTers:LOWPass:SPEC {NONE|FIRST|SECOND|THIRD}
        - MEASUrement:MEAS<x>:OUTFILTers:LOWPass:SPEC?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``NONE`` specifies the filter order none.
        - ``FIRST`` specifies the filter order first.
        - ``SECOND`` specifies the filter order second.
        - ``THIRD`` specifies the filter order third.
    """


class MeasurementMeasItemOutfiltersLowpassFreq(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:OUTFILTers:LOWPass:FREQ`` command.

    Description:
        - This command sets or queries the measurement output low pass filter frequency cutoff
          frequency on the scope.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:OUTFILTers:LOWPass:FREQ?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:OUTFILTers:LOWPass:FREQ?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:OUTFILTers:LOWPass:FREQ value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:OUTFILTers:LOWPass:FREQ <NR2>
        - MEASUrement:MEAS<x>:OUTFILTers:LOWPass:FREQ?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR2>`` specifies the values for the output filter cutoff frequency. The argument range
          is 20 Hz to 10e6 Hz.
    """


class MeasurementMeasItemOutfiltersLowpass(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:OUTFILTers:LOWPass`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:OUTFILTers:LOWPass?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:OUTFILTers:LOWPass?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.freq``: The ``MEASUrement:MEAS<x>:OUTFILTers:LOWPass:FREQ`` command.
        - ``.spec``: The ``MEASUrement:MEAS<x>:OUTFILTers:LOWPass:SPEC`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._freq = MeasurementMeasItemOutfiltersLowpassFreq(device, f"{self._cmd_syntax}:FREQ")
        self._spec = MeasurementMeasItemOutfiltersLowpassSpec(device, f"{self._cmd_syntax}:SPEC")

    @property
    def freq(self) -> MeasurementMeasItemOutfiltersLowpassFreq:
        """Return the ``MEASUrement:MEAS<x>:OUTFILTers:LOWPass:FREQ`` command.

        Description:
            - This command sets or queries the measurement output low pass filter frequency cutoff
              frequency on the scope.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:OUTFILTers:LOWPass:FREQ?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:OUTFILTers:LOWPass:FREQ?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:OUTFILTers:LOWPass:FREQ value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:OUTFILTers:LOWPass:FREQ <NR2>
            - MEASUrement:MEAS<x>:OUTFILTers:LOWPass:FREQ?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR2>`` specifies the values for the output filter cutoff frequency. The argument
              range is 20 Hz to 10e6 Hz.
        """
        return self._freq

    @property
    def spec(self) -> MeasurementMeasItemOutfiltersLowpassSpec:
        """Return the ``MEASUrement:MEAS<x>:OUTFILTers:LOWPass:SPEC`` command.

        Description:
            - This command sets or queries the measurement output low pass filter specification
              filter order on the scope. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:OUTFILTers:LOWPass:SPEC?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:OUTFILTers:LOWPass:SPEC?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:OUTFILTers:LOWPass:SPEC value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:OUTFILTers:LOWPass:SPEC {NONE|FIRST|SECOND|THIRD}
            - MEASUrement:MEAS<x>:OUTFILTers:LOWPass:SPEC?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``NONE`` specifies the filter order none.
            - ``FIRST`` specifies the filter order first.
            - ``SECOND`` specifies the filter order second.
            - ``THIRD`` specifies the filter order third.
        """
        return self._spec


class MeasurementMeasItemOutfilters(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:OUTFILTers`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:OUTFILTers?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:OUTFILTers?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.lowpass``: The ``MEASUrement:MEAS<x>:OUTFILTers:LOWPass`` command tree.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._lowpass = MeasurementMeasItemOutfiltersLowpass(device, f"{self._cmd_syntax}:LOWPass")

    @property
    def lowpass(self) -> MeasurementMeasItemOutfiltersLowpass:
        """Return the ``MEASUrement:MEAS<x>:OUTFILTers:LOWPass`` command tree.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:OUTFILTers:LOWPass?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:OUTFILTers:LOWPass?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.freq``: The ``MEASUrement:MEAS<x>:OUTFILTers:LOWPass:FREQ`` command.
            - ``.spec``: The ``MEASUrement:MEAS<x>:OUTFILTers:LOWPass:SPEC`` command.
        """
        return self._lowpass


class MeasurementMeasItemOutedgequalifier(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:OUTEDGEQUALifier`` command.

    Description:
        - This command sets or queries local output edge qualifier source.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:OUTEDGEQUALifier?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:OUTEDGEQUALifier?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:OUTEDGEQUALifier value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:OUTEDGEQUALifier {CH<x>|MATH<x>|REF<x>}
        - MEASUrement:MEAS<x>:OUTEDGEQUALifier?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``CH<x>`` specifies an analog channel as source.
        - ``MATH<x>`` specifies a math channel as source.
        - ``REF<x>`` specifies a reference waveform as the source.
    """


class MeasurementMeasItemOsangle(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:OSANgle`` command.

    Description:
        - This command sets or queries the specified measurement Offset angle.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:OSANgle?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:OSANgle?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:OSANgle value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:OSANgle <NR1>
        - MEASUrement:MEAS<x>:OSANgle?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR1>`` specifies the offset angle of the measurement in the range or -360 to 360.
    """


class MeasurementMeasItemOfiltersLowpassSpec(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:OFILters:LOWPass:SPEC`` command.

    Description:
        - This command sets or returns low pass filter specification for a measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:OFILters:LOWPass:SPEC?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:OFILters:LOWPass:SPEC?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:OFILters:LOWPass:SPEC value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:OFILters:LOWPass:SPEC {NONE|FIRST|SECOND|THIRD}
        - MEASUrement:MEAS<x>:OFILters:LOWPass:SPEC?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``NONE`` specifies the low pass filter specification as none.
        - ``FIRST`` specifies the low pass filter specification set to 1st Order for the
          measurement.
        - ``SECOND`` specifies the low pass filter specification set to 2nd Order for the
          measurement.
        - ``THIRD`` specifies the low pass filter specification set to 3rd Order for the
          measurement.
    """


class MeasurementMeasItemOfiltersLowpassFreq(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:OFILters:LOWPass:FREQ`` command.

    Description:
        - This command sets or returns the cut-off frequency value for a measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:OFILters:LOWPass:FREQ?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:OFILters:LOWPass:FREQ?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:OFILters:LOWPass:FREQ value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:OFILters:LOWPass:FREQ <NR3>
        - MEASUrement:MEAS<x>:OFILters:LOWPass:FREQ?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` specifies the cut-off frequency value for a measurement.
    """


class MeasurementMeasItemOfiltersLowpass(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:OFILters:LOWPass`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:OFILters:LOWPass?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:OFILters:LOWPass?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.freq``: The ``MEASUrement:MEAS<x>:OFILters:LOWPass:FREQ`` command.
        - ``.spec``: The ``MEASUrement:MEAS<x>:OFILters:LOWPass:SPEC`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._freq = MeasurementMeasItemOfiltersLowpassFreq(device, f"{self._cmd_syntax}:FREQ")
        self._spec = MeasurementMeasItemOfiltersLowpassSpec(device, f"{self._cmd_syntax}:SPEC")

    @property
    def freq(self) -> MeasurementMeasItemOfiltersLowpassFreq:
        """Return the ``MEASUrement:MEAS<x>:OFILters:LOWPass:FREQ`` command.

        Description:
            - This command sets or returns the cut-off frequency value for a measurement.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:OFILters:LOWPass:FREQ?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:OFILters:LOWPass:FREQ?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:OFILters:LOWPass:FREQ value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:OFILters:LOWPass:FREQ <NR3>
            - MEASUrement:MEAS<x>:OFILters:LOWPass:FREQ?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` specifies the cut-off frequency value for a measurement.
        """
        return self._freq

    @property
    def spec(self) -> MeasurementMeasItemOfiltersLowpassSpec:
        """Return the ``MEASUrement:MEAS<x>:OFILters:LOWPass:SPEC`` command.

        Description:
            - This command sets or returns low pass filter specification for a measurement.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:OFILters:LOWPass:SPEC?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:OFILters:LOWPass:SPEC?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:OFILters:LOWPass:SPEC value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:OFILters:LOWPass:SPEC {NONE|FIRST|SECOND|THIRD}
            - MEASUrement:MEAS<x>:OFILters:LOWPass:SPEC?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``NONE`` specifies the low pass filter specification as none.
            - ``FIRST`` specifies the low pass filter specification set to 1st Order for the
              measurement.
            - ``SECOND`` specifies the low pass filter specification set to 2nd Order for the
              measurement.
            - ``THIRD`` specifies the low pass filter specification set to 3rd Order for the
              measurement.
        """
        return self._spec


class MeasurementMeasItemOfilters(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:OFILters`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:OFILters?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:OFILters?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.lowpass``: The ``MEASUrement:MEAS<x>:OFILters:LOWPass`` command tree.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._lowpass = MeasurementMeasItemOfiltersLowpass(device, f"{self._cmd_syntax}:LOWPass")

    @property
    def lowpass(self) -> MeasurementMeasItemOfiltersLowpass:
        """Return the ``MEASUrement:MEAS<x>:OFILters:LOWPass`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:OFILters:LOWPass?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:OFILters:LOWPass?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.freq``: The ``MEASUrement:MEAS<x>:OFILters:LOWPass:FREQ`` command.
            - ``.spec``: The ``MEASUrement:MEAS<x>:OFILters:LOWPass:SPEC`` command.
        """
        return self._lowpass


class MeasurementMeasItemOddeven(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:ODDEVen`` command.

    Description:
        - This command sets or queries harmonics oddeven.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:ODDEVen?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:ODDEVen?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:ODDEVen value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:ODDEVen {ALL|EVEN|ODD}
        - MEASUrement:MEAS<x>:ODDEVen?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``ALL`` displays all the results.
        - ``EVEN`` displays the even results.
        - ``ODD`` displays the odd results.
    """


class MeasurementMeasItemObwmethod(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:OBWMethod`` command.

    Description:
        - This command sets or queries the RF measurement Occupied Bandwidth method type.
          Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:OBWMethod?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:OBWMethod?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:OBWMethod value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:OBWMethod {percOfPwr|dBDown}
        - MEASUrement:MEAS<x>:OBWMethod?
        ```

    Info:
        - ``percOfPwr`` specifies the method type as percentage of power. This is the default value.
        - ``dBDown`` specifies the method type as dB down.
    """


class MeasurementMeasItemNvalue(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:NVALUe`` command.

    Description:
        - Sets or queries the number of unit intervals used for the Base Measurement Type of
          NUnitInterval.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:NVALUe?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:NVALUe?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:NVALUe value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:NVALUe <N>
        - MEASUrement:MEAS<x>:NVALUe?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<N>`` specifies the number of unit intervals.
    """


class MeasurementMeasItemMincycle(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:MINCycle`` command.

    Description:
        - This command sets or queries the minimum cycle value for the DDRTERRN and DDRTERRMN
          measurements.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MINCycle?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MINCycle?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:MINCycle value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:MINCycle <NR1>
        - MEASUrement:MEAS<x>:MINCycle?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR1>`` is the minimum cycle range limit value in the range or 2 to 50.
    """


class MeasurementMeasItemMechStype(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:MECH:STYPe`` command.

    Description:
        - This command sets or queries the local measurement sensor type.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MECH:STYPe?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MECH:STYPe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:MECH:STYPe value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:MECH:STYPe {HSENSOR|QEI|RESOLVER}
        - MEASUrement:MEAS<x>:MECH:STYPe?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``HSENSOR`` specifies the sensor type as HSENSOR.
        - ``QEI`` specifies the sensor type as QEI.
        - ``RESOLVER`` specifies the sensor type as RESOLVER.
    """


class MeasurementMeasItemMechPprotation(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:MECH:PPRotation`` command.

    Description:
        - This command sets or queries the specified pulses per rotation of the measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MECH:PPRotation?``
          query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MECH:PPRotation?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:MECH:PPRotation value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:MECH:PPRotation <NR1>
        - MEASUrement:MEAS<x>:MECH:PPRotation?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR1>`` defines the pulses per rotation of the measurement in the range of 1 to 10000.
    """


class MeasurementMeasItemMechPpairs(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:MECH:PPAirs`` command.

    Description:
        - This command sets or queries the number of pole pairs for the specific measurement.
          Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MECH:PPAirs?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MECH:PPAirs?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:MECH:PPAirs value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:MECH:PPAirs <NR1>
        - MEASUrement:MEAS<x>:MECH:PPAirs?
        ```

    Info:
        - ``<NR1>`` defines the number of pole pairs for the specified measurement. The minimum to
          maximum range is 1 to 20.
    """


class MeasurementMeasItemMechMunits(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:MECH:MUNits`` command.

    Description:
        - This command sets or queries the specified mechanical measurement results units.
          Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MECH:MUNits?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MECH:MUNits?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:MECH:MUNits value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:MECH:MUNits {NM|OZINCH|FTLB|INCHLB|DEGREES|RADIANS}
        - MEASUrement:MEAS<x>:MECH:MUNits?
        ```

    Info:
        - ``NM`` defines the results units of the measurement as NM.
        - ``OZINCH`` defines the results units of the measurement as OZINCH.
        - ``FTLB`` defines the results units of the measurement as FTLB.
        - ``INCHLB`` defines the results units of the measurement as INCHLB.
        - ``DEGREES`` defines the results units of the measurement as DEGREES.
        - ``RADIANS`` defines the results units of the measurement as RADIANS.
    """


class MeasurementMeasItemMechGratio(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:MECH:GRATio`` command.

    Description:
        - This command sets or queries the gear ratio for the specific measurement. Measurements are
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MECH:GRATio?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MECH:GRATio?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:MECH:GRATio value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:MECH:GRATio <NR3>
        - MEASUrement:MEAS<x>:MECH:GRATio?
        ```

    Info:
        - ``<NR3>`` defines the gear ratio value for specified measurement. The minimum to maximum
          range is 0.001-1000.
    """


class MeasurementMeasItemMechEindexz(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:MECH:EINDexz`` command.

    Description:
        - This command sets or queries the specified mechanical Index Z source. Measurements are
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MECH:EINDexz?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MECH:EINDexz?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:MECH:EINDexz value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:MECH:EINDexz {ON|OFF|1|0}
        - MEASUrement:MEAS<x>:MECH:EINDexz?
        ```

    Info:
        - ``ON`` specifies the Index Z check box state as enabled.
        - ``OFF`` specifies the Index Z check box state as disabled.
        - ``1`` specifies the Index Z check box state as enabled.
        - ``0`` specifies the Index Z check box state as disabled.
    """


class MeasurementMeasItemMech(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:MECH`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MECH?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MECH?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.eindexz``: The ``MEASUrement:MEAS<x>:MECH:EINDexz`` command.
        - ``.gratio``: The ``MEASUrement:MEAS<x>:MECH:GRATio`` command.
        - ``.munits``: The ``MEASUrement:MEAS<x>:MECH:MUNits`` command.
        - ``.ppairs``: The ``MEASUrement:MEAS<x>:MECH:PPAirs`` command.
        - ``.pprotation``: The ``MEASUrement:MEAS<x>:MECH:PPRotation`` command.
        - ``.stype``: The ``MEASUrement:MEAS<x>:MECH:STYPe`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._eindexz = MeasurementMeasItemMechEindexz(device, f"{self._cmd_syntax}:EINDexz")
        self._gratio = MeasurementMeasItemMechGratio(device, f"{self._cmd_syntax}:GRATio")
        self._munits = MeasurementMeasItemMechMunits(device, f"{self._cmd_syntax}:MUNits")
        self._ppairs = MeasurementMeasItemMechPpairs(device, f"{self._cmd_syntax}:PPAirs")
        self._pprotation = MeasurementMeasItemMechPprotation(
            device, f"{self._cmd_syntax}:PPRotation"
        )
        self._stype = MeasurementMeasItemMechStype(device, f"{self._cmd_syntax}:STYPe")

    @property
    def eindexz(self) -> MeasurementMeasItemMechEindexz:
        """Return the ``MEASUrement:MEAS<x>:MECH:EINDexz`` command.

        Description:
            - This command sets or queries the specified mechanical Index Z source. Measurements are
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MECH:EINDexz?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:MECH:EINDexz?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:MECH:EINDexz value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:MECH:EINDexz {ON|OFF|1|0}
            - MEASUrement:MEAS<x>:MECH:EINDexz?
            ```

        Info:
            - ``ON`` specifies the Index Z check box state as enabled.
            - ``OFF`` specifies the Index Z check box state as disabled.
            - ``1`` specifies the Index Z check box state as enabled.
            - ``0`` specifies the Index Z check box state as disabled.
        """
        return self._eindexz

    @property
    def gratio(self) -> MeasurementMeasItemMechGratio:
        """Return the ``MEASUrement:MEAS<x>:MECH:GRATio`` command.

        Description:
            - This command sets or queries the gear ratio for the specific measurement. Measurements
              are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MECH:GRATio?``
              query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MECH:GRATio?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:MECH:GRATio value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:MECH:GRATio <NR3>
            - MEASUrement:MEAS<x>:MECH:GRATio?
            ```

        Info:
            - ``<NR3>`` defines the gear ratio value for specified measurement. The minimum to
              maximum range is 0.001-1000.
        """
        return self._gratio

    @property
    def munits(self) -> MeasurementMeasItemMechMunits:
        """Return the ``MEASUrement:MEAS<x>:MECH:MUNits`` command.

        Description:
            - This command sets or queries the specified mechanical measurement results units.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MECH:MUNits?``
              query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MECH:MUNits?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:MECH:MUNits value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:MECH:MUNits {NM|OZINCH|FTLB|INCHLB|DEGREES|RADIANS}
            - MEASUrement:MEAS<x>:MECH:MUNits?
            ```

        Info:
            - ``NM`` defines the results units of the measurement as NM.
            - ``OZINCH`` defines the results units of the measurement as OZINCH.
            - ``FTLB`` defines the results units of the measurement as FTLB.
            - ``INCHLB`` defines the results units of the measurement as INCHLB.
            - ``DEGREES`` defines the results units of the measurement as DEGREES.
            - ``RADIANS`` defines the results units of the measurement as RADIANS.
        """
        return self._munits

    @property
    def ppairs(self) -> MeasurementMeasItemMechPpairs:
        """Return the ``MEASUrement:MEAS<x>:MECH:PPAirs`` command.

        Description:
            - This command sets or queries the number of pole pairs for the specific measurement.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MECH:PPAirs?``
              query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MECH:PPAirs?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:MECH:PPAirs value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:MECH:PPAirs <NR1>
            - MEASUrement:MEAS<x>:MECH:PPAirs?
            ```

        Info:
            - ``<NR1>`` defines the number of pole pairs for the specified measurement. The minimum
              to maximum range is 1 to 20.
        """
        return self._ppairs

    @property
    def pprotation(self) -> MeasurementMeasItemMechPprotation:
        """Return the ``MEASUrement:MEAS<x>:MECH:PPRotation`` command.

        Description:
            - This command sets or queries the specified pulses per rotation of the measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MECH:PPRotation?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:MECH:PPRotation?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:MECH:PPRotation value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:MECH:PPRotation <NR1>
            - MEASUrement:MEAS<x>:MECH:PPRotation?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR1>`` defines the pulses per rotation of the measurement in the range of 1 to
              10000.
        """
        return self._pprotation

    @property
    def stype(self) -> MeasurementMeasItemMechStype:
        """Return the ``MEASUrement:MEAS<x>:MECH:STYPe`` command.

        Description:
            - This command sets or queries the local measurement sensor type.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MECH:STYPe?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MECH:STYPe?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:MECH:STYPe value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:MECH:STYPe {HSENSOR|QEI|RESOLVER}
            - MEASUrement:MEAS<x>:MECH:STYPe?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``HSENSOR`` specifies the sensor type as HSENSOR.
            - ``QEI`` specifies the sensor type as QEI.
            - ``RESOLVER`` specifies the sensor type as RESOLVER.
        """
        return self._stype


class MeasurementMeasItemMeasrangeState(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:MEASRange:STATE`` command.

    Description:
        - This command sets or queries the range state for the measurement. Measurements are
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MEASRange:STATE?``
          query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MEASRange:STATE?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:MEASRange:STATE value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:MEASRange:STATE {ON|OFF|1|0}
        - MEASUrement:MEAS<x>:MEASRange:STATE?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``OFF`` turns off the measurement range limits.
        - ``ON`` turns on the measurement range limits.
        - ``0`` turns off the measurement range limits.
        - ``1`` turns on the measurement range limits.
    """


class MeasurementMeasItemMeasrangeMin(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:MEASRange:MIN`` command.

    Description:
        - This command sets or queries the range minimum value for the measurement. Measurements are
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MEASRange:MIN?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MEASRange:MIN?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:MEASRange:MIN value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:MEASRange:MIN <NR3>
        - MEASUrement:MEAS<x>:MEASRange:MIN?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the minimum measurement range limit value.
    """


class MeasurementMeasItemMeasrangeMax(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:MEASRange:MAX`` command.

    Description:
        - This command sets or queries the range maximum value for the measurement. Measurements are
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MEASRange:MAX?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MEASRange:MAX?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:MEASRange:MAX value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:MEASRange:MAX <NR3>
        - MEASUrement:MEAS<x>:MEASRange:MAX?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the maximum measurement range limit value.
    """


class MeasurementMeasItemMeasrangeGlobal(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:MEASRange:GLOBal`` command.

    Description:
        - This command sets or queries the range settings global flag for the measurement.
          Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MEASRange:GLOBal?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:MEASRange:GLOBal?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:MEASRange:GLOBal value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:MEASRange:GLOBal {ON|OFF|1|0}
        - MEASUrement:MEAS<x>:MEASRange:GLOBal?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``OFF`` specifies that range settings can be set independently for each individual
          measurement.
        - ``ON`` applies global measurement range settings to all the measurements' range settings.
        - ``0`` specifies that range settings can be set independently for each individual
          measurement.
        - ``1`` applies global measurement range settings to all the measurements' range settings.
    """


class MeasurementMeasItemMeasrange(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:MEASRange`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MEASRange?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MEASRange?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.global``: The ``MEASUrement:MEAS<x>:MEASRange:GLOBal`` command.
        - ``.max``: The ``MEASUrement:MEAS<x>:MEASRange:MAX`` command.
        - ``.min``: The ``MEASUrement:MEAS<x>:MEASRange:MIN`` command.
        - ``.state``: The ``MEASUrement:MEAS<x>:MEASRange:STATE`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._global = MeasurementMeasItemMeasrangeGlobal(device, f"{self._cmd_syntax}:GLOBal")
        self._max = MeasurementMeasItemMeasrangeMax(device, f"{self._cmd_syntax}:MAX")
        self._min = MeasurementMeasItemMeasrangeMin(device, f"{self._cmd_syntax}:MIN")
        self._state = MeasurementMeasItemMeasrangeState(device, f"{self._cmd_syntax}:STATE")

    @property
    def global_(self) -> MeasurementMeasItemMeasrangeGlobal:
        """Return the ``MEASUrement:MEAS<x>:MEASRange:GLOBal`` command.

        Description:
            - This command sets or queries the range settings global flag for the measurement.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MEASRange:GLOBal?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:MEASRange:GLOBal?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:MEASRange:GLOBal value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:MEASRange:GLOBal {ON|OFF|1|0}
            - MEASUrement:MEAS<x>:MEASRange:GLOBal?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``OFF`` specifies that range settings can be set independently for each individual
              measurement.
            - ``ON`` applies global measurement range settings to all the measurements' range
              settings.
            - ``0`` specifies that range settings can be set independently for each individual
              measurement.
            - ``1`` applies global measurement range settings to all the measurements' range
              settings.
        """
        return self._global

    @property
    def max(self) -> MeasurementMeasItemMeasrangeMax:
        """Return the ``MEASUrement:MEAS<x>:MEASRange:MAX`` command.

        Description:
            - This command sets or queries the range maximum value for the measurement. Measurements
              are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MEASRange:MAX?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:MEASRange:MAX?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:MEASRange:MAX value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:MEASRange:MAX <NR3>
            - MEASUrement:MEAS<x>:MEASRange:MAX?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the maximum measurement range limit value.
        """
        return self._max

    @property
    def min(self) -> MeasurementMeasItemMeasrangeMin:
        """Return the ``MEASUrement:MEAS<x>:MEASRange:MIN`` command.

        Description:
            - This command sets or queries the range minimum value for the measurement. Measurements
              are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MEASRange:MIN?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:MEASRange:MIN?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:MEASRange:MIN value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:MEASRange:MIN <NR3>
            - MEASUrement:MEAS<x>:MEASRange:MIN?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the minimum measurement range limit value.
        """
        return self._min

    @property
    def state(self) -> MeasurementMeasItemMeasrangeState:
        """Return the ``MEASUrement:MEAS<x>:MEASRange:STATE`` command.

        Description:
            - This command sets or queries the range state for the measurement. Measurements are
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MEASRange:STATE?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:MEASRange:STATE?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:MEASRange:STATE value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:MEASRange:STATE {ON|OFF|1|0}
            - MEASUrement:MEAS<x>:MEASRange:STATE?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``OFF`` turns off the measurement range limits.
            - ``ON`` turns on the measurement range limits.
            - ``0`` turns off the measurement range limits.
            - ``1`` turns on the measurement range limits.
        """
        return self._state


class MeasurementMeasItemMaxvoltage(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:MAXVoltage`` command.

    Description:
        - Sets or queries the maximum input voltage. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MAXVoltage?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MAXVoltage?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:MAXVoltage value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:MAXVoltage <NR2>
        - MEASUrement:MEAS<x>:MAXVoltage?
        ```

    Info:
        - ``<NR2>`` is the maximum input voltage, in the range of -61 V to +61 V.
    """


class MeasurementMeasItemMaxgvoltage(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:MAXGVoltage`` command.

    Description:
        - This command sets or returns the maximum gate voltage. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MAXGVoltage?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MAXGVoltage?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:MAXGVoltage value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:MAXGVoltage <NR3>
        - MEASUrement:MEAS<x>:MAXGVoltage?
        ```

    Info:
        - ``<NR3>`` specifies the maximum gate voltage.
    """


class MeasurementMeasItemMaxg2voltage(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:MAXG2Voltage`` command.

    Description:
        - This command sets or returns the maximum gate voltage 1 or 2 value for Tdt measurement.
          Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MAXG2Voltage?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MAXG2Voltage?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:MAXG2Voltage value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:MAXG2Voltage <NR3>
        - MEASUrement:MEAS<x>:MAXG2Voltage?
        ```

    Info:
        - ``<NR3>`` specifies the maximum gate voltage.
    """


class MeasurementMeasItemMaxg1voltage(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:MAXG1Voltage`` command.

    Description:
        - This command sets or returns the maximum gate voltage 1 or 2 value for Tdt measurement.
          Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MAXG1Voltage?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MAXG1Voltage?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:MAXG1Voltage value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:MAXG1Voltage <NR3>
        - MEASUrement:MEAS<x>:MAXG1Voltage?
        ```

    Info:
        - ``<NR3>`` specifies the maximum gate voltage.
    """


class MeasurementMeasItemMaxcycle(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:MAXCycle`` command.

    Description:
        - This command sets or queries the maximum cycle value for the DDRTERRN and DDRTERRMN
          measurements.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MAXCycle?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MAXCycle?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:MAXCycle value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:MAXCycle <NR1>
        - MEASUrement:MEAS<x>:MAXCycle?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR1>`` is the maximum cycle range limit value in the range or 2 to 50.
    """


class MeasurementMeasItemMaxcurrent(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:MAXCUrrent`` command.

    Description:
        - This command sets or returns the maximum current. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MAXCUrrent?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MAXCUrrent?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:MAXCUrrent value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:MAXCUrrent <NR3>
        - MEASUrement:MEAS<x>:MAXCUrrent?
        ```

    Info:
        - ``<NR3>`` specifies the maximum current.
    """


class MeasurementMeasItemMatime(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:MATime`` command.

    Description:
        - This command sets or returns the maximum acquisition time for WBG measurement. This should
          be set only if AFG is not AFG31000.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MATime?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MATime?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:MATime value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:MATime <NR3>
        - MEASUrement:MEAS<x>:MATime?
        ```

    Info:
        - ``MATime`` specifies the maximum acquisition time for WBG measurement.
    """


class MeasurementMeasItemLvoltage(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:LVOLtage`` command.

    Description:
        - This command sets or queries the measurement Torque Low Voltage value.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:LVOLtage?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:LVOLtage?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:LVOLtage value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:LVOLtage <NR1>
        - MEASUrement:MEAS<x>:LVOLtage?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR1>`` specifies the Low Voltage value of the measurement in the range of -100 to 100.
    """


class MeasurementMeasItemLunits(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:LUNITs`` command.

    Description:
        - This command sets or returns the value for the level units as percentage or absolute.
          Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:LUNITs?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:LUNITs?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:LUNITs value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:LUNITs {PERCent|ABSolute}
        - MEASUrement:MEAS<x>:LUNITs?
        ```

    Info:
        - ``PERCent`` specifies the value for the level units as percent.
        - ``ABSolute`` specifies the value for the level units as absolute.
    """


class MeasurementMeasItemLtype(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:LTYPe`` command.

    Description:
        - This command sets or returns the value for the level type as auto or custom. Measurements
          are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:LTYPe?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:LTYPe?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:LTYPe value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:LTYPe {AUTO|CUSTom}
        - MEASUrement:MEAS<x>:LTYPe?
        ```

    Info:
        - ``AUTO`` specifies the value for the level type as auto.
        - ``CUSTom`` specifies the value for the level type as custom.
    """


class MeasurementMeasItemLtorque(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:LTORque`` command.

    Description:
        - This command sets or queries the measurement Low Torque value.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:LTORque?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:LTORque?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:LTORque value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:LTORque <NR1>
        - MEASUrement:MEAS<x>:LTORque?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR1>`` specifies the Low Torque value of the measurement in the range of 0 to 10000000.
    """


class MeasurementMeasItemLowrefvoltage(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:LOWREFVoltage`` command.

    Description:
        - This command sets or queries the low reference voltage value for the 'time outside level'
          measurement. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:LOWREFVoltage?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:LOWREFVoltage?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:LOWREFVoltage value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:LOWREFVoltage <NR3>
        - MEASUrement:MEAS<x>:LOWREFVoltage?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the low reference voltage value for the selected configuration.
    """


class MeasurementMeasItemLineselected(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:LINESelected`` command.

    Description:
        - This command sets or queries selected lines for the measurement. The measurement number is
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:LINESelected?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:LINESelected?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:LINESelected value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:LINESelected {ABCB|ACBC|BACA|XYZY|XZYZ|YXZX}
        - MEASUrement:MEAS<x>:LINESelected?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``ABCB`` specifies the selected lines as ABCB.
        - ``ACBC`` specifies the selected lines as ACBC.
        - ``BACA`` specifies the selected lines as BACA.
        - ``XYZY`` specifies the selected lines as XYZY.
        - ``XZYZ`` specifies the selected lines as XZYZ.
        - ``YXZX`` specifies the selected lines as YXZX.
    """


class MeasurementMeasItemLabel(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:LABel`` command.

    Description:
        - This command sets or queries the label for the measurement. As the label can contain non
          7-bit ASCII text, it is stored in Percent Encoding format. The measurement number is
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:LABel?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:LABel?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:LABel value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:LABel <QString>
        - MEASUrement:MEAS<x>:LABel?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<QString>`` is the measurement label.
    """

    _WRAP_ARG_WITH_QUOTES = True


class MeasurementMeasItemJittersummaryTjber(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:JITTERSummary:TJBER`` command.

    Description:
        - This command sets or queries whether TJ@BER is included in the jitter summary for the
          measurement. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:JITTERSummary:TJBER?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:TJBER?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:TJBER value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:JITTERSummary:TJBER {0|1}
        - MEASUrement:MEAS<x>:JITTERSummary:TJBER?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``1`` add the TJ@BER measurement as part of jitter summary.
        - ``0`` do not add the TJ@BER measurement as part of jitter summary.
    """


class MeasurementMeasItemJittersummaryTie(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:JITTERSummary:TIE`` command.

    Description:
        - This command sets or queries whether TIE is included in the jitter summary for the
          measurement. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:JITTERSummary:TIE?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:TIE?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:TIE value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:JITTERSummary:TIE {0|1}
        - MEASUrement:MEAS<x>:JITTERSummary:TIE?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``1`` add the TIE measurement as part of jitter summary.
        - ``0`` do not add the TIE measurement as part of jitter summary.
    """


class MeasurementMeasItemJittersummaryRjdd(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:JITTERSummary:RJDD`` command.

    Description:
        - This command sets or queries whether RJ-dd is included in the jitter summary for the
          measurement. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:JITTERSummary:RJDD?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:RJDD?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:RJDD value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:JITTERSummary:RJDD {0|1}
        - MEASUrement:MEAS<x>:JITTERSummary:RJDD?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``1`` add the RJ-dd measurement as part of jitter summary.
        - ``0`` do not add the RJ-dd measurement as part of jitter summary.
    """


class MeasurementMeasItemJittersummaryRj(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:JITTERSummary:RJ`` command.

    Description:
        - This command Sets or queries whether RJ is included in the jitter summary for the
          measurement. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:JITTERSummary:RJ?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:RJ?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:RJ value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:JITTERSummary:RJ {0|1}
        - MEASUrement:MEAS<x>:JITTERSummary:RJ?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``1`` adds the RJ measurement as part of jitter summary.
        - ``0`` do not add the RJ measurement as part of jitter summary.
    """


class MeasurementMeasItemJittersummaryPl(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:JITTERSummary:PL`` command.

    Description:
        - This command Sets or queries whether PL is included in the jitter summary for the
          measurement. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:JITTERSummary:PL?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:PL?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:PL value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:JITTERSummary:PL {0|1}
        - MEASUrement:MEAS<x>:JITTERSummary:PL?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``1`` adds the PL measurement as part of jitter summary.
        - ``0`` do not add the PL measurement as part of jitter summary.
    """


class MeasurementMeasItemJittersummaryPj(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:JITTERSummary:PJ`` command.

    Description:
        - This command sets or queries whether PJ is included in the jitter summary for the
          measurement. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:JITTERSummary:PJ?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:PJ?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:PJ value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:JITTERSummary:PJ {0|1}
        - MEASUrement:MEAS<x>:JITTERSummary:PJ?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``1`` add the PJ measurement as part of jitter summary.
        - ``0`` do not add the PJ measurement as part of jitter summary.
    """


class MeasurementMeasItemJittersummaryNpj(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:JITTERSummary:NPJ`` command.

    Description:
        - This command sets or queries whether NPJ is included in the jitter summary for the
          measurement. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:JITTERSummary:NPJ?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:NPJ?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:NPJ value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:JITTERSummary:NPJ {0|1}
        - MEASUrement:MEAS<x>:JITTERSummary:NPJ?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``1`` add the NPJ measurement as part of jitter summary.
        - ``0`` do not add the NPJ measurement as part of jitter summary.
    """


class MeasurementMeasItemJittersummaryIsi(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:JITTERSummary:ISI`` command.

    Description:
        - This command Sets or queries whether ISI is included in the jitter summary for the
          measurement. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:JITTERSummary:ISI?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:ISI?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:ISI value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:JITTERSummary:ISI {0|1}
        - MEASUrement:MEAS<x>:JITTERSummary:ISI?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``1`` adds the ISI measurement as part of jitter summary.
        - ``0`` do not add the ISI measurement as part of jitter summary.
    """


class MeasurementMeasItemJittersummaryEyewidthber(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:JITTERSummary:EYEWIDTHBER`` command.

    Description:
        - This command sets or queries whether EyeWidth@BER is included in the jitter summary for
          the measurement. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:EYEWIDTHBER?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:EYEWIDTHBER?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:EYEWIDTHBER value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:JITTERSummary:EYEWIDTHBER {0|1}
        - MEASUrement:MEAS<x>:JITTERSummary:EYEWIDTHBER?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``1`` add the EyeWidth@BER measurement as part of jitter summary.
        - ``0`` do not add the EyeWidth@BER measurement as part of jitter summary.
    """


class MeasurementMeasItemJittersummaryDr(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:JITTERSummary:DR`` command.

    Description:
        - This command Sets or queries whether DR is included in the jitter summary for the
          measurement. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:JITTERSummary:DR?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:DR?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:DR value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:JITTERSummary:DR {0|1}
        - MEASUrement:MEAS<x>:JITTERSummary:DR?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``1`` adds the DR measurement as part of jitter summary.
        - ``0`` do not add the DR measurement as part of jitter summary.
    """


class MeasurementMeasItemJittersummaryDjdd(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:JITTERSummary:DJDD`` command.

    Description:
        - This command sets or queries whether DJ-dd is included in the jitter summary for the
          measurement. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:JITTERSummary:DJDD?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:DJDD?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:DJDD value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:JITTERSummary:DJDD {0|1}
        - MEASUrement:MEAS<x>:JITTERSummary:DJDD?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``1`` add the DJDD measurement as part of jitter summary.
        - ``0`` do not add the DJDD measurement as part of jitter summary.
    """


class MeasurementMeasItemJittersummaryDj(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:JITTERSummary:DJ`` command.

    Description:
        - This command Sets or queries whether DJ is included in the jitter summary for the
          measurement. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:JITTERSummary:DJ?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:DJ?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:DJ value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:JITTERSummary:DJ {0|1}
        - MEASUrement:MEAS<x>:JITTERSummary:DJ?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``1`` adds the DJ measurement as part of jitter summary.
        - ``0`` do not add the DJ measurement as part of jitter summary.
    """


class MeasurementMeasItemJittersummaryDdj(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:JITTERSummary:DDJ`` command.

    Description:
        - This command sets or queries whether DDJ is included in the jitter summary for the
          measurement. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:JITTERSummary:DDJ?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:DDJ?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:DDJ value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:JITTERSummary:DDJ {0|1}
        - MEASUrement:MEAS<x>:JITTERSummary:DDJ?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``1`` adds the DDJ measurement as part of jitter summary.
        - ``0`` do not add the DDJ measurement as part of jitter summary.
    """


class MeasurementMeasItemJittersummaryDcd(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:JITTERSummary:DCD`` command.

    Description:
        - This command sets or queries whether DCD is included in the jitter summary for the
          measurement. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:JITTERSummary:DCD?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:DCD?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:JITTERSummary:DCD value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:JITTERSummary:DCD {0|1}
        - MEASUrement:MEAS<x>:JITTERSummary:DCD?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``1`` adds the DCD measurement as part of jitter summary.
        - ``0`` do not add the DCD measurement as part of jitter summary.
    """


#  pylint: disable=too-many-instance-attributes
class MeasurementMeasItemJittersummary(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:JITTERSummary`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:JITTERSummary?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:JITTERSummary?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.dcd``: The ``MEASUrement:MEAS<x>:JITTERSummary:DCD`` command.
        - ``.ddj``: The ``MEASUrement:MEAS<x>:JITTERSummary:DDJ`` command.
        - ``.dj``: The ``MEASUrement:MEAS<x>:JITTERSummary:DJ`` command.
        - ``.djdd``: The ``MEASUrement:MEAS<x>:JITTERSummary:DJDD`` command.
        - ``.dr``: The ``MEASUrement:MEAS<x>:JITTERSummary:DR`` command.
        - ``.eyewidthber``: The ``MEASUrement:MEAS<x>:JITTERSummary:EYEWIDTHBER`` command.
        - ``.isi``: The ``MEASUrement:MEAS<x>:JITTERSummary:ISI`` command.
        - ``.npj``: The ``MEASUrement:MEAS<x>:JITTERSummary:NPJ`` command.
        - ``.pj``: The ``MEASUrement:MEAS<x>:JITTERSummary:PJ`` command.
        - ``.pl``: The ``MEASUrement:MEAS<x>:JITTERSummary:PL`` command.
        - ``.rj``: The ``MEASUrement:MEAS<x>:JITTERSummary:RJ`` command.
        - ``.rjdd``: The ``MEASUrement:MEAS<x>:JITTERSummary:RJDD`` command.
        - ``.tie``: The ``MEASUrement:MEAS<x>:JITTERSummary:TIE`` command.
        - ``.tjber``: The ``MEASUrement:MEAS<x>:JITTERSummary:TJBER`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._dcd = MeasurementMeasItemJittersummaryDcd(device, f"{self._cmd_syntax}:DCD")
        self._ddj = MeasurementMeasItemJittersummaryDdj(device, f"{self._cmd_syntax}:DDJ")
        self._dj = MeasurementMeasItemJittersummaryDj(device, f"{self._cmd_syntax}:DJ")
        self._djdd = MeasurementMeasItemJittersummaryDjdd(device, f"{self._cmd_syntax}:DJDD")
        self._dr = MeasurementMeasItemJittersummaryDr(device, f"{self._cmd_syntax}:DR")
        self._eyewidthber = MeasurementMeasItemJittersummaryEyewidthber(
            device, f"{self._cmd_syntax}:EYEWIDTHBER"
        )
        self._isi = MeasurementMeasItemJittersummaryIsi(device, f"{self._cmd_syntax}:ISI")
        self._npj = MeasurementMeasItemJittersummaryNpj(device, f"{self._cmd_syntax}:NPJ")
        self._pj = MeasurementMeasItemJittersummaryPj(device, f"{self._cmd_syntax}:PJ")
        self._pl = MeasurementMeasItemJittersummaryPl(device, f"{self._cmd_syntax}:PL")
        self._rj = MeasurementMeasItemJittersummaryRj(device, f"{self._cmd_syntax}:RJ")
        self._rjdd = MeasurementMeasItemJittersummaryRjdd(device, f"{self._cmd_syntax}:RJDD")
        self._tie = MeasurementMeasItemJittersummaryTie(device, f"{self._cmd_syntax}:TIE")
        self._tjber = MeasurementMeasItemJittersummaryTjber(device, f"{self._cmd_syntax}:TJBER")

    @property
    def dcd(self) -> MeasurementMeasItemJittersummaryDcd:
        """Return the ``MEASUrement:MEAS<x>:JITTERSummary:DCD`` command.

        Description:
            - This command sets or queries whether DCD is included in the jitter summary for the
              measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:JITTERSummary:DCD?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:DCD?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:DCD value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:JITTERSummary:DCD {0|1}
            - MEASUrement:MEAS<x>:JITTERSummary:DCD?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``1`` adds the DCD measurement as part of jitter summary.
            - ``0`` do not add the DCD measurement as part of jitter summary.
        """
        return self._dcd

    @property
    def ddj(self) -> MeasurementMeasItemJittersummaryDdj:
        """Return the ``MEASUrement:MEAS<x>:JITTERSummary:DDJ`` command.

        Description:
            - This command sets or queries whether DDJ is included in the jitter summary for the
              measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:JITTERSummary:DDJ?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:DDJ?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:DDJ value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:JITTERSummary:DDJ {0|1}
            - MEASUrement:MEAS<x>:JITTERSummary:DDJ?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``1`` adds the DDJ measurement as part of jitter summary.
            - ``0`` do not add the DDJ measurement as part of jitter summary.
        """
        return self._ddj

    @property
    def dj(self) -> MeasurementMeasItemJittersummaryDj:
        """Return the ``MEASUrement:MEAS<x>:JITTERSummary:DJ`` command.

        Description:
            - This command Sets or queries whether DJ is included in the jitter summary for the
              measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:JITTERSummary:DJ?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:DJ?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:DJ value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:JITTERSummary:DJ {0|1}
            - MEASUrement:MEAS<x>:JITTERSummary:DJ?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``1`` adds the DJ measurement as part of jitter summary.
            - ``0`` do not add the DJ measurement as part of jitter summary.
        """
        return self._dj

    @property
    def djdd(self) -> MeasurementMeasItemJittersummaryDjdd:
        """Return the ``MEASUrement:MEAS<x>:JITTERSummary:DJDD`` command.

        Description:
            - This command sets or queries whether DJ-dd is included in the jitter summary for the
              measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:DJDD?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:DJDD?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:DJDD value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:JITTERSummary:DJDD {0|1}
            - MEASUrement:MEAS<x>:JITTERSummary:DJDD?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``1`` add the DJDD measurement as part of jitter summary.
            - ``0`` do not add the DJDD measurement as part of jitter summary.
        """
        return self._djdd

    @property
    def dr(self) -> MeasurementMeasItemJittersummaryDr:
        """Return the ``MEASUrement:MEAS<x>:JITTERSummary:DR`` command.

        Description:
            - This command Sets or queries whether DR is included in the jitter summary for the
              measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:JITTERSummary:DR?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:DR?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:DR value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:JITTERSummary:DR {0|1}
            - MEASUrement:MEAS<x>:JITTERSummary:DR?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``1`` adds the DR measurement as part of jitter summary.
            - ``0`` do not add the DR measurement as part of jitter summary.
        """
        return self._dr

    @property
    def eyewidthber(self) -> MeasurementMeasItemJittersummaryEyewidthber:
        """Return the ``MEASUrement:MEAS<x>:JITTERSummary:EYEWIDTHBER`` command.

        Description:
            - This command sets or queries whether EyeWidth@BER is included in the jitter summary
              for the measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:EYEWIDTHBER?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:EYEWIDTHBER?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:EYEWIDTHBER value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:JITTERSummary:EYEWIDTHBER {0|1}
            - MEASUrement:MEAS<x>:JITTERSummary:EYEWIDTHBER?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``1`` add the EyeWidth@BER measurement as part of jitter summary.
            - ``0`` do not add the EyeWidth@BER measurement as part of jitter summary.
        """
        return self._eyewidthber

    @property
    def isi(self) -> MeasurementMeasItemJittersummaryIsi:
        """Return the ``MEASUrement:MEAS<x>:JITTERSummary:ISI`` command.

        Description:
            - This command Sets or queries whether ISI is included in the jitter summary for the
              measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:JITTERSummary:ISI?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:ISI?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:ISI value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:JITTERSummary:ISI {0|1}
            - MEASUrement:MEAS<x>:JITTERSummary:ISI?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``1`` adds the ISI measurement as part of jitter summary.
            - ``0`` do not add the ISI measurement as part of jitter summary.
        """
        return self._isi

    @property
    def npj(self) -> MeasurementMeasItemJittersummaryNpj:
        """Return the ``MEASUrement:MEAS<x>:JITTERSummary:NPJ`` command.

        Description:
            - This command sets or queries whether NPJ is included in the jitter summary for the
              measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:JITTERSummary:NPJ?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:NPJ?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:NPJ value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:JITTERSummary:NPJ {0|1}
            - MEASUrement:MEAS<x>:JITTERSummary:NPJ?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``1`` add the NPJ measurement as part of jitter summary.
            - ``0`` do not add the NPJ measurement as part of jitter summary.
        """
        return self._npj

    @property
    def pj(self) -> MeasurementMeasItemJittersummaryPj:
        """Return the ``MEASUrement:MEAS<x>:JITTERSummary:PJ`` command.

        Description:
            - This command sets or queries whether PJ is included in the jitter summary for the
              measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:JITTERSummary:PJ?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:PJ?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:PJ value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:JITTERSummary:PJ {0|1}
            - MEASUrement:MEAS<x>:JITTERSummary:PJ?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``1`` add the PJ measurement as part of jitter summary.
            - ``0`` do not add the PJ measurement as part of jitter summary.
        """
        return self._pj

    @property
    def pl(self) -> MeasurementMeasItemJittersummaryPl:
        """Return the ``MEASUrement:MEAS<x>:JITTERSummary:PL`` command.

        Description:
            - This command Sets or queries whether PL is included in the jitter summary for the
              measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:JITTERSummary:PL?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:PL?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:PL value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:JITTERSummary:PL {0|1}
            - MEASUrement:MEAS<x>:JITTERSummary:PL?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``1`` adds the PL measurement as part of jitter summary.
            - ``0`` do not add the PL measurement as part of jitter summary.
        """
        return self._pl

    @property
    def rj(self) -> MeasurementMeasItemJittersummaryRj:
        """Return the ``MEASUrement:MEAS<x>:JITTERSummary:RJ`` command.

        Description:
            - This command Sets or queries whether RJ is included in the jitter summary for the
              measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:JITTERSummary:RJ?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:RJ?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:RJ value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:JITTERSummary:RJ {0|1}
            - MEASUrement:MEAS<x>:JITTERSummary:RJ?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``1`` adds the RJ measurement as part of jitter summary.
            - ``0`` do not add the RJ measurement as part of jitter summary.
        """
        return self._rj

    @property
    def rjdd(self) -> MeasurementMeasItemJittersummaryRjdd:
        """Return the ``MEASUrement:MEAS<x>:JITTERSummary:RJDD`` command.

        Description:
            - This command sets or queries whether RJ-dd is included in the jitter summary for the
              measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:RJDD?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:RJDD?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:RJDD value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:JITTERSummary:RJDD {0|1}
            - MEASUrement:MEAS<x>:JITTERSummary:RJDD?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``1`` add the RJ-dd measurement as part of jitter summary.
            - ``0`` do not add the RJ-dd measurement as part of jitter summary.
        """
        return self._rjdd

    @property
    def tie(self) -> MeasurementMeasItemJittersummaryTie:
        """Return the ``MEASUrement:MEAS<x>:JITTERSummary:TIE`` command.

        Description:
            - This command sets or queries whether TIE is included in the jitter summary for the
              measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:JITTERSummary:TIE?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:TIE?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:TIE value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:JITTERSummary:TIE {0|1}
            - MEASUrement:MEAS<x>:JITTERSummary:TIE?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``1`` add the TIE measurement as part of jitter summary.
            - ``0`` do not add the TIE measurement as part of jitter summary.
        """
        return self._tie

    @property
    def tjber(self) -> MeasurementMeasItemJittersummaryTjber:
        """Return the ``MEASUrement:MEAS<x>:JITTERSummary:TJBER`` command.

        Description:
            - This command sets or queries whether TJ@BER is included in the jitter summary for the
              measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:TJBER?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:TJBER?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary:TJBER value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:JITTERSummary:TJBER {0|1}
            - MEASUrement:MEAS<x>:JITTERSummary:TJBER?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``1`` add the TJ@BER measurement as part of jitter summary.
            - ``0`` do not add the TJ@BER measurement as part of jitter summary.
        """
        return self._tjber


class MeasurementMeasItemInputpower(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:INPUTPOwer`` command.

    Description:
        - This command sets or queries the input power value for IEC-Class C and Class D harmonics
          standard.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:INPUTPOwer?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:INPUTPOwer?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:INPUTPOwer value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:INPUTPOwer <NR3>
        - MEASUrement:MEAS<x>:INPUTPOwer?
        ```

    Info:
        - ``MEAS<x>`` is the measurement number.
        - ``<NR3>`` specifies the input power value for class C harmonics standard.
    """


class MeasurementMeasItemInputlevel(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:INPUTLEVel`` command.

    Description:
        - Sets or queries the input trigger voltage level.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:INPUTLEVel?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:INPUTLEVel?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:INPUTLEVel value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:INPUTLEVel <NR2>
        - MEASUrement:MEAS<x>:INPUTLEVel?
        ```

    Info:
        - ``MEAS<x>`` is the measurement number.
        - ``<NR2>`` is the trigger voltage, in the range of -500 V to +500 V.
    """


class MeasurementMeasItemIdletime(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:IDLETime`` command.

    Description:
        - This command sets or queries the idle time for the measurement when the measurement type
          is burst width. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:IDLETime?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:IDLETime?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:IDLETime value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:IDLETime <NR3>
        - MEASUrement:MEAS<x>:IDLETime?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the idle time.
    """


class MeasurementMeasItemHvoltage(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:HVOLtage`` command.

    Description:
        - This command sets or queries the measurement Torque High Voltage value.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:HVOLtage?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:HVOLtage?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:HVOLtage value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:HVOLtage <NR1>
        - MEASUrement:MEAS<x>:HVOLtage?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR1>`` specifies the High Voltage value of the measurement in the range of 1 to 100.
    """


class MeasurementMeasItemHtorque(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:HTORque`` command.

    Description:
        - This command sets or queries the measurement High Torque value.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:HTORque?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:HTORque?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:HTORque value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:HTORque <NR1>
        - MEASUrement:MEAS<x>:HTORque?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR1>`` specifies the High Torque value of the measurement in the range of 11 to
          10000000.
    """


class MeasurementMeasItemHlevelOutputUglobal(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:HLEVel:OUTPut:UGLobal`` command.

    Description:
        - This command turns on or off output global settings for measurement. Measurements are
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:HLEVel:OUTPut:UGLobal?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:HLEVel:OUTPut:UGLobal?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:HLEVel:OUTPut:UGLobal value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:HLEVel:OUTPut:UGLobal {ON|OFF}
        - MEASUrement:MEAS<x>:HLEVel:OUTPut:UGLobal?
        ```

    Info:
        - ``ON`` sets the output global settings for measurement to on.
        - ``OFF`` sets the output global settings for measurement to off.
    """


class MeasurementMeasItemHlevelOutput(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:HLEVel:OUTPut`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:HLEVel:OUTPut?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:HLEVel:OUTPut?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.uglobal``: The ``MEASUrement:MEAS<x>:HLEVel:OUTPut:UGLobal`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._uglobal = MeasurementMeasItemHlevelOutputUglobal(
            device, f"{self._cmd_syntax}:UGLobal"
        )

    @property
    def uglobal(self) -> MeasurementMeasItemHlevelOutputUglobal:
        """Return the ``MEASUrement:MEAS<x>:HLEVel:OUTPut:UGLobal`` command.

        Description:
            - This command turns on or off output global settings for measurement. Measurements are
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:HLEVel:OUTPut:UGLobal?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:HLEVel:OUTPut:UGLobal?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:HLEVel:OUTPut:UGLobal value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:HLEVel:OUTPut:UGLobal {ON|OFF}
            - MEASUrement:MEAS<x>:HLEVel:OUTPut:UGLobal?
            ```

        Info:
            - ``ON`` sets the output global settings for measurement to on.
            - ``OFF`` sets the output global settings for measurement to off.
        """
        return self._uglobal


class MeasurementMeasItemHlevel(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:HLEVel`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:HLEVel?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:HLEVel?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.output``: The ``MEASUrement:MEAS<x>:HLEVel:OUTPut`` command tree.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._output = MeasurementMeasItemHlevelOutput(device, f"{self._cmd_syntax}:OUTPut")

    @property
    def output(self) -> MeasurementMeasItemHlevelOutput:
        """Return the ``MEASUrement:MEAS<x>:HLEVel:OUTPut`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:HLEVel:OUTPut?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:HLEVel:OUTPut?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.uglobal``: The ``MEASUrement:MEAS<x>:HLEVel:OUTPut:UGLobal`` command.
        """
        return self._output


class MeasurementMeasItemHighrefvoltage(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:HIGHREFVoltage`` command.

    Description:
        - This command sets or queries the high reference voltage value for the 'time outside level'
          measurement. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:HIGHREFVoltage?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:HIGHREFVoltage?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:HIGHREFVoltage value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:HIGHREFVoltage <NR3>
        - MEASUrement:MEAS<x>:HIGHREFVoltage?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the high reference voltage value for the selected configuration.
    """


class MeasurementMeasItemHighlevelWiring(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:HIGHLEVel:WIRing`` command.

    Description:
        - This command sets or queries the local Input wiring.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:HIGHLEVel:WIRing?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:HIGHLEVel:WIRing?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:HIGHLEVel:WIRing value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:HIGHLEVel:WIRing {P1W2V1I1|P1W3V2I2|P3W3V2I2|P3W3V3I3|P3W3|DCP1W2}
        - MEASUrement:MEAS<x>:HIGHLEVel:WIRing?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``P1W2V1I1`` specifies P1W2V1I1 as the local input wiring.
        - ``P1W3V2I2`` specifies P1W3V2I2 as the local input wiring.
        - ``P3W3V2I2`` specifies P3W3V2I2 as the local input wiring.
        - ``P3W3V3I3`` specifies P3W3V3I3 as the local input wiring.
        - ``P3W3`` specifies P3W3 as the local input wiring.
        - ``DCP1W2`` specifies DCP1W2 as the local input wiring.
    """


class MeasurementMeasItemHighlevelUseglobal(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:HIGHLEVel:USEGLOBAL`` command.

    Description:
        - This command sets or queries the IMDA source settings as global or local.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:HIGHLEVel:USEGLOBAL?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:HIGHLEVel:USEGLOBAL?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:HIGHLEVel:USEGLOBAL value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:HIGHLEVel:USEGLOBAL {ON|OFF|1|0}
        - MEASUrement:MEAS<x>:HIGHLEVel:USEGLOBAL?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``1`` specifies the source settings as global.
        - ``0`` specifies the source settings as local.
        - ``ON`` specifies the source settings as global.
        - ``OFF`` specifies the source settings as local.
    """


class MeasurementMeasItemHighlevelOutwiring(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:HIGHLEVel:OUTWIRing`` command.

    Description:
        - This command sets or queries the local output wiring.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:HIGHLEVel:OUTWIRing?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:HIGHLEVel:OUTWIRing?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:HIGHLEVel:OUTWIRing value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:HIGHLEVel:OUTWIRing {P1W2V1I1|P1W3V2I2|P3W3V3I3|P3W4|DCP1W2}
        - MEASUrement:MEAS<x>:HIGHLEVel:OUTWIRing?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``P1W2V1I1`` specifies P1W2V1I1 as the local output wiring.
        - ``P3W3V2I2`` specifies P3W3V2I2 as the local output wiring.
        - ``P3W3V3I3`` specifies P3W3V3I3 as the local output wiring.
        - ``P3W4`` specifies P3W4 as the local output wiring.
        - ``DCP1W2`` specifies DCP1W2 as the local output wiring.
    """


class MeasurementMeasItemHighlevelOutlineselected(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:HIGHLEVel:OUTLINESelected`` command.

    Description:
        - This command sets or queries local output select lines.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:HIGHLEVel:OUTLINESelected?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:HIGHLEVel:OUTLINESelected?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:HIGHLEVel:OUTLINESelected value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:HIGHLEVel:OUTLINESelected {XYZY|XZYZ|YXZX|XN|YN|ZN}
        - MEASUrement:MEAS<x>:HIGHLEVel:OUTLINESelected?
        ```

    Info:
        - ``XYZY`` specifies the local output select lines as XYZY.
        - ``XZYZ`` specifies the local output select lines as XZYZ.
        - ``YXZX`` specifies the local output select lines as YXZX.
        - ``XN`` specifies the local output select lines as XN.
        - ``YN`` specifies the local output select lines as YN.
        - ``ZN`` specifies the local output select lines as ZN.
    """


class MeasurementMeasItemHighlevelOutl2ltol2n(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:HIGHLEVel:OUTL2LTOL2N`` command.

    Description:
        - This command sets or queries local output Line-to-Line to Line-to-Neutral Conversion.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:HIGHLEVel:OUTL2LTOL2N?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:HIGHLEVel:OUTL2LTOL2N?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:HIGHLEVel:OUTL2LTOL2N value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:HIGHLEVel:OUTL2LTOL2N {0|1}
        - MEASUrement:MEAS<x>:HIGHLEVel:OUTL2LTOL2N?
        ```

    Info:
        - ``1`` enables local output Line-to-Line to Line-to-Neutral Conversion.
        - ``0`` disables local output Line-to-Line to Line-to-Neutral Conversion.
    """


class MeasurementMeasItemHighlevelLineselected(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:HIGHLEVel:LINESelected`` command.

    Description:
        - This command sets or queries local input select lines.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:HIGHLEVel:LINESelected?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:HIGHLEVel:LINESelected?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:HIGHLEVel:LINESelected value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:HIGHLEVel:LINESelected {ABCB|ACBC|BACA|AN|BN|CN}
        - MEASUrement:MEAS<x>:HIGHLEVel:LINESelected?
        ```

    Info:
        - ``ABCB`` specifies the local input select lines as ABCB.
        - ``ACBC`` specifies the local input select lines as ACBC.
        - ``BACA`` specifies the local input select lines as BACA.
        - ``AN`` specifies the local input select lines as AN.
        - ``BN`` specifies the local input select lines as BN.
        - ``CN`` specifies the local input select lines as CN.
    """


class MeasurementMeasItemHighlevelL2ltol2n(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:HIGHLEVel:L2LTOL2N`` command.

    Description:
        - This command sets or queries local input Line-to-Line to Line-to-Neutral Conversion.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:HIGHLEVel:L2LTOL2N?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:HIGHLEVel:L2LTOL2N?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:HIGHLEVel:L2LTOL2N value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:HIGHLEVel:L2LTOL2N {0|1}
        - MEASUrement:MEAS<x>:HIGHLEVel:L2LTOL2N?
        ```

    Info:
        - ``1`` enables local input Line-to-Line to Line-to-Neutral Conversion.
        - ``0`` disables local input Line-to-Line to Line-to-Neutral Conversion.
    """


class MeasurementMeasItemHighlevelConfiguration(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:HIGHLEVel:CONFIGuration`` command.

    Description:
        - This command sets or queries the local input and output configuration.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:HIGHLEVel:CONFIGuration?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:HIGHLEVel:CONFIGuration?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:HIGHLEVel:CONFIGuration value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:HIGHLEVel:CONFIGuration {INPUT|OUTPUT}
        - MEASUrement:MEAS<x>:HIGHLEVel:CONFIGuration?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``INPUT`` specifies the local Input or Output source settings as input.
        - ``OUTPUT`` specifies the local Input or Output source settings as output.
    """


#  pylint: disable=too-many-instance-attributes
class MeasurementMeasItemHighlevel(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:HIGHLEVel`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:HIGHLEVel?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:HIGHLEVel?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.configuration``: The ``MEASUrement:MEAS<x>:HIGHLEVel:CONFIGuration`` command.
        - ``.l2ltol2n``: The ``MEASUrement:MEAS<x>:HIGHLEVel:L2LTOL2N`` command.
        - ``.lineselected``: The ``MEASUrement:MEAS<x>:HIGHLEVel:LINESelected`` command.
        - ``.outl2ltol2n``: The ``MEASUrement:MEAS<x>:HIGHLEVel:OUTL2LTOL2N`` command.
        - ``.outlineselected``: The ``MEASUrement:MEAS<x>:HIGHLEVel:OUTLINESelected`` command.
        - ``.outwiring``: The ``MEASUrement:MEAS<x>:HIGHLEVel:OUTWIRing`` command.
        - ``.useglobal``: The ``MEASUrement:MEAS<x>:HIGHLEVel:USEGLOBAL`` command.
        - ``.wiring``: The ``MEASUrement:MEAS<x>:HIGHLEVel:WIRing`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._configuration = MeasurementMeasItemHighlevelConfiguration(
            device, f"{self._cmd_syntax}:CONFIGuration"
        )
        self._l2ltol2n = MeasurementMeasItemHighlevelL2ltol2n(
            device, f"{self._cmd_syntax}:L2LTOL2N"
        )
        self._lineselected = MeasurementMeasItemHighlevelLineselected(
            device, f"{self._cmd_syntax}:LINESelected"
        )
        self._outl2ltol2n = MeasurementMeasItemHighlevelOutl2ltol2n(
            device, f"{self._cmd_syntax}:OUTL2LTOL2N"
        )
        self._outlineselected = MeasurementMeasItemHighlevelOutlineselected(
            device, f"{self._cmd_syntax}:OUTLINESelected"
        )
        self._outwiring = MeasurementMeasItemHighlevelOutwiring(
            device, f"{self._cmd_syntax}:OUTWIRing"
        )
        self._useglobal = MeasurementMeasItemHighlevelUseglobal(
            device, f"{self._cmd_syntax}:USEGLOBAL"
        )
        self._wiring = MeasurementMeasItemHighlevelWiring(device, f"{self._cmd_syntax}:WIRing")

    @property
    def configuration(self) -> MeasurementMeasItemHighlevelConfiguration:
        """Return the ``MEASUrement:MEAS<x>:HIGHLEVel:CONFIGuration`` command.

        Description:
            - This command sets or queries the local input and output configuration.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:HIGHLEVel:CONFIGuration?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:HIGHLEVel:CONFIGuration?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:HIGHLEVel:CONFIGuration value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:HIGHLEVel:CONFIGuration {INPUT|OUTPUT}
            - MEASUrement:MEAS<x>:HIGHLEVel:CONFIGuration?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``INPUT`` specifies the local Input or Output source settings as input.
            - ``OUTPUT`` specifies the local Input or Output source settings as output.
        """
        return self._configuration

    @property
    def l2ltol2n(self) -> MeasurementMeasItemHighlevelL2ltol2n:
        """Return the ``MEASUrement:MEAS<x>:HIGHLEVel:L2LTOL2N`` command.

        Description:
            - This command sets or queries local input Line-to-Line to Line-to-Neutral Conversion.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:HIGHLEVel:L2LTOL2N?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:HIGHLEVel:L2LTOL2N?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:HIGHLEVel:L2LTOL2N value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:HIGHLEVel:L2LTOL2N {0|1}
            - MEASUrement:MEAS<x>:HIGHLEVel:L2LTOL2N?
            ```

        Info:
            - ``1`` enables local input Line-to-Line to Line-to-Neutral Conversion.
            - ``0`` disables local input Line-to-Line to Line-to-Neutral Conversion.
        """
        return self._l2ltol2n

    @property
    def lineselected(self) -> MeasurementMeasItemHighlevelLineselected:
        """Return the ``MEASUrement:MEAS<x>:HIGHLEVel:LINESelected`` command.

        Description:
            - This command sets or queries local input select lines.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:HIGHLEVel:LINESelected?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:HIGHLEVel:LINESelected?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:HIGHLEVel:LINESelected value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:HIGHLEVel:LINESelected {ABCB|ACBC|BACA|AN|BN|CN}
            - MEASUrement:MEAS<x>:HIGHLEVel:LINESelected?
            ```

        Info:
            - ``ABCB`` specifies the local input select lines as ABCB.
            - ``ACBC`` specifies the local input select lines as ACBC.
            - ``BACA`` specifies the local input select lines as BACA.
            - ``AN`` specifies the local input select lines as AN.
            - ``BN`` specifies the local input select lines as BN.
            - ``CN`` specifies the local input select lines as CN.
        """
        return self._lineselected

    @property
    def outl2ltol2n(self) -> MeasurementMeasItemHighlevelOutl2ltol2n:
        """Return the ``MEASUrement:MEAS<x>:HIGHLEVel:OUTL2LTOL2N`` command.

        Description:
            - This command sets or queries local output Line-to-Line to Line-to-Neutral Conversion.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:HIGHLEVel:OUTL2LTOL2N?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:HIGHLEVel:OUTL2LTOL2N?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:HIGHLEVel:OUTL2LTOL2N value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:HIGHLEVel:OUTL2LTOL2N {0|1}
            - MEASUrement:MEAS<x>:HIGHLEVel:OUTL2LTOL2N?
            ```

        Info:
            - ``1`` enables local output Line-to-Line to Line-to-Neutral Conversion.
            - ``0`` disables local output Line-to-Line to Line-to-Neutral Conversion.
        """
        return self._outl2ltol2n

    @property
    def outlineselected(self) -> MeasurementMeasItemHighlevelOutlineselected:
        """Return the ``MEASUrement:MEAS<x>:HIGHLEVel:OUTLINESelected`` command.

        Description:
            - This command sets or queries local output select lines.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:HIGHLEVel:OUTLINESelected?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:HIGHLEVel:OUTLINESelected?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:HIGHLEVel:OUTLINESelected value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:HIGHLEVel:OUTLINESelected {XYZY|XZYZ|YXZX|XN|YN|ZN}
            - MEASUrement:MEAS<x>:HIGHLEVel:OUTLINESelected?
            ```

        Info:
            - ``XYZY`` specifies the local output select lines as XYZY.
            - ``XZYZ`` specifies the local output select lines as XZYZ.
            - ``YXZX`` specifies the local output select lines as YXZX.
            - ``XN`` specifies the local output select lines as XN.
            - ``YN`` specifies the local output select lines as YN.
            - ``ZN`` specifies the local output select lines as ZN.
        """
        return self._outlineselected

    @property
    def outwiring(self) -> MeasurementMeasItemHighlevelOutwiring:
        """Return the ``MEASUrement:MEAS<x>:HIGHLEVel:OUTWIRing`` command.

        Description:
            - This command sets or queries the local output wiring.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:HIGHLEVel:OUTWIRing?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:HIGHLEVel:OUTWIRing?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:HIGHLEVel:OUTWIRing value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:HIGHLEVel:OUTWIRing {P1W2V1I1|P1W3V2I2|P3W3V3I3|P3W4|DCP1W2}
            - MEASUrement:MEAS<x>:HIGHLEVel:OUTWIRing?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``P1W2V1I1`` specifies P1W2V1I1 as the local output wiring.
            - ``P3W3V2I2`` specifies P3W3V2I2 as the local output wiring.
            - ``P3W3V3I3`` specifies P3W3V3I3 as the local output wiring.
            - ``P3W4`` specifies P3W4 as the local output wiring.
            - ``DCP1W2`` specifies DCP1W2 as the local output wiring.
        """
        return self._outwiring

    @property
    def useglobal(self) -> MeasurementMeasItemHighlevelUseglobal:
        """Return the ``MEASUrement:MEAS<x>:HIGHLEVel:USEGLOBAL`` command.

        Description:
            - This command sets or queries the IMDA source settings as global or local.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:HIGHLEVel:USEGLOBAL?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:HIGHLEVel:USEGLOBAL?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:HIGHLEVel:USEGLOBAL value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:HIGHLEVel:USEGLOBAL {ON|OFF|1|0}
            - MEASUrement:MEAS<x>:HIGHLEVel:USEGLOBAL?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``1`` specifies the source settings as global.
            - ``0`` specifies the source settings as local.
            - ``ON`` specifies the source settings as global.
            - ``OFF`` specifies the source settings as local.
        """
        return self._useglobal

    @property
    def wiring(self) -> MeasurementMeasItemHighlevelWiring:
        """Return the ``MEASUrement:MEAS<x>:HIGHLEVel:WIRing`` command.

        Description:
            - This command sets or queries the local Input wiring.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:HIGHLEVel:WIRing?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:HIGHLEVel:WIRing?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:HIGHLEVel:WIRing value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:HIGHLEVel:WIRing {P1W2V1I1|P1W3V2I2|P3W3V2I2|P3W3V3I3|P3W3|DCP1W2}
            - MEASUrement:MEAS<x>:HIGHLEVel:WIRing?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``P1W2V1I1`` specifies P1W2V1I1 as the local input wiring.
            - ``P1W3V2I2`` specifies P1W3V2I2 as the local input wiring.
            - ``P3W3V2I2`` specifies P3W3V2I2 as the local input wiring.
            - ``P3W3V3I3`` specifies P3W3V3I3 as the local input wiring.
            - ``P3W3`` specifies P3W3 as the local input wiring.
            - ``DCP1W2`` specifies DCP1W2 as the local input wiring.
        """
        return self._wiring


class MeasurementMeasItemHarmonicsunits(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:HARMONICSUNits`` command.

    Description:
        - This command sets or queries harmonics units. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:HARMONICSUNits?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:HARMONICSUNits?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:HARMONICSUNits value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:HARMONICSUNits {LOGARITHM|LINEAR}
        - MEASUrement:MEAS<x>:HARMONICSUNits?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``LOGARITHM`` specifies logarithmic as the harmonics units.
        - ``LINEAR`` specifies linear as the harmonics units.
    """


class MeasurementMeasItemHarmonicsstd(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:HARMONICSStd`` command.

    Description:
        - This command sets or queries harmonics standard. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:HARMONICSStd?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:HARMONICSStd?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:HARMONICSStd value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:HARMONICSStd {NONE|IEC|IEEE519|CUSTOM|REVIEEE5192022}
        - MEASUrement:MEAS<x>:HARMONICSStd?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``NONE`` specifies none as the harmonics test standard.
        - ``IEC`` specifies IEC as the harmonics test standard.
        - ``IEEE519`` specifies IEEE519 as the harmonics test standard.
        - ``REVIEEE5192022`` specifies REVIEEE5192022 as the harmonics test standard.
        - ``CUSTOM`` specifies that there is a custom harmonics test standard.
    """


class MeasurementMeasItemHarmonicssource(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:HARMONICSSOURce`` command.

    Description:
        - This command sets or queries harmonics source. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:HARMONICSSOURce?``
          query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:HARMONICSSOURce?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:HARMONICSSOURce value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:HARMONICSSOURce {CURRENT|VOLTAGE}
        - MEASUrement:MEAS<x>:HARMONICSSOURce?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``CURRENT`` specifies current as the harmonics source.
        - ``VOLTAGE`` specifies voltage as the harmonics source.
    """


class MeasurementMeasItemHarmonicsclass(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:HARMONICSCLass`` command.

    Description:
        - This command sets or queries the class type for the harmonics measurement. Measurements
          are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:HARMONICSCLass?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:HARMONICSCLass?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:HARMONICSCLass value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:HARMONICSCLass {CLASSA|CLASSB|CLASSC|CLASSD}
        - MEASUrement:MEAS<x>:HARMONICSCLass?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``CLASSA`` specifies the class type to A.
        - ``CLASSB`` specifies the class type to B.
        - ``CLASSC`` specifies the class type to C.
        - ``CLASSD`` specifies the class type to D.
    """


class MeasurementMeasItemGlobalref(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:GLOBalref`` command.

    Description:
        - This command sets or queries the reference levels global flag for the measurement.
          Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:GLOBalref?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:GLOBalref?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:GLOBalref value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:GLOBalref {ON|OFF|1|0}
        - MEASUrement:MEAS<x>:GLOBalref?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``OFF`` allows ref levels to be set separately for each measurement.
        - ``ON`` applies the same ref levels to all measurements.
        - ``0`` allows ref levels to be set separately for each measurement.
        - ``1`` applies the same ref levels to all measurements.
    """


class MeasurementMeasItemGatingStarttime(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:GATing:STARTtime`` command.

    Description:
        - Sets or queries the start gate time for the measurement when using Local gating.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:GATing:STARTtime?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:GATing:STARTtime?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:GATing:STARTtime value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:GATing:STARTtime <NR3>
        - MEASUrement:MEAS<x>:GATing:STARTtime?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the time gating start gate time in seconds. The valid range is -10000 s to
          10000 s.
    """


class MeasurementMeasItemGatingSearchsource(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:GATing:SEARCHSource`` command.

    Description:
        - This command sets or queries the gating search source when the gating type is search. The
          measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:GATing:SEARCHSource?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:GATing:SEARCHSource?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:GATing:SEARCHSource value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:GATing:SEARCHSource SEARCH1
        - MEASUrement:MEAS<x>:GATing:SEARCHSource?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``SEARCH1`` is the gating source for search gating.
    """


class MeasurementMeasItemGatingMidref(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:GATing:MIDRef`` command.

    Description:
        - This command sets or queries the gating mid ref value when the gating type is logic.
          Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:GATing:MIDRef?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:GATing:MIDRef?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:GATing:MIDRef value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:GATing:MIDRef <NR3>
        - MEASUrement:MEAS<x>:GATing:MIDRef?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the mid ref value for gating.
    """


class MeasurementMeasItemGatingLogicsource(SCPICmdWrite):
    """The ``MEASUrement:MEAS<x>:GATing:LOGICSource`` command.

    Description:
        - This command sets or queries the gating data source when the gating type is logic. The
          measurement number is specified by x.

    Usage:
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:GATing:LOGICSource value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:GATing:LOGICSource {CH<x>|MATH<x>|REF<x>}
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``CH<x>`` specifies an analog channel as source.
        - ``MATH<x>`` specifies a math channel as source.
        - ``REF<x>`` specifies a reference waveform as the source.
    """


class MeasurementMeasItemGatingHysteresis(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:GATing:HYSTeresis`` command.

    Description:
        - This command sets or queries the gating hysteresis value when the gating type is logic.
          Measurements are specified by x. This command sets or queries the global file containing
          the data pattern used when known data pattern clock recovery is used for the measurement.
          This will affect measurements whose ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is
          set to 1.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:GATing:HYSTeresis?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:GATing:HYSTeresis?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:GATing:HYSTeresis value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:GATing:HYSTeresis <NR3>
        - MEASUrement:MEAS<x>:GATing:HYSTeresis?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the gating hysteresis.
    """


class MeasurementMeasItemGatingGlobal(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:GATing:GLOBal`` command.

    Description:
        - This command sets or queries the gating settings global flag. Measurements are specified
          by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:GATing:GLOBal?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:GATing:GLOBal?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:GATing:GLOBal value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:GATing:GLOBal {ON|OFF|1|0}
        - MEASUrement:MEAS<x>:GATing:GLOBal?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``OFF`` specifies gate settings can be changed independently for each individual
          measurement.
        - ``ON`` applies global gate settings to all the measurements' gate settings.
        - ``0`` specifies gate settings can be changed independently for each individual
          measurement.
        - ``1`` applies global gate settings to all the measurements' gate settings.
    """


class MeasurementMeasItemGatingEndtime(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:GATing:ENDtime`` command.

    Description:
        - Sets or queries the end gate time for the measurement when using Local gating.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:GATing:ENDtime?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:GATing:ENDtime?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:GATing:ENDtime value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:GATing:ENDtime <NR3>
        - MEASUrement:MEAS<x>:GATing:ENDtime?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the time gating end gate time in seconds. The valid range is -10000 s to
          10000 s.
    """


class MeasurementMeasItemGatingActive(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:GATing:ACTive`` command.

    Description:
        - This command sets or queries the gating active level when the gating type is logic.
          Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:GATing:ACTive?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:GATing:ACTive?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:GATing:ACTive value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:GATing:ACTive {HIGH|LOW}
        - MEASUrement:MEAS<x>:GATing:ACTive?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``HIGH`` takes a measurement when logic gating is High.
        - ``LOW`` takes a measurement when logic gating Low.
    """


#  pylint: disable=too-many-instance-attributes
class MeasurementMeasItemGating(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:GATing`` command.

    Description:
        - This command sets or queries the gating type for the measurement. Measurements are
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:GATing?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:GATing?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:GATing value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:GATing {NONE|SCREEN|CURSor|LOGic|SEARch|TIMe}
        - MEASUrement:MEAS<x>:GATing?
        ```

    Info:
        - ``MEAS<x>`` is the measurement number for which to return a value.
        - ``NONE`` specifies measurements are taken across the entire record.
        - ``SCREEN`` turns on gating, using the left and right edges of the screen.
        - ``CURSor`` limits measurements to the portion of the waveform between the vertical bar
          cursors, even if they are off screen.
        - ``LOGic`` specifies that measurements are taken only when the logical state of other
          waveforms is true.
        - ``SEARch`` specifies that measurements are taken only where the results of a user
          specified search are found.
        - ``TIMe`` limits measurements to the portion of the waveform between the Start and End gate
          times.

    Properties:
        - ``.active``: The ``MEASUrement:MEAS<x>:GATing:ACTive`` command.
        - ``.endtime``: The ``MEASUrement:MEAS<x>:GATing:ENDtime`` command.
        - ``.global``: The ``MEASUrement:MEAS<x>:GATing:GLOBal`` command.
        - ``.hysteresis``: The ``MEASUrement:MEAS<x>:GATing:HYSTeresis`` command.
        - ``.logicsource``: The ``MEASUrement:MEAS<x>:GATing:LOGICSource`` command.
        - ``.midref``: The ``MEASUrement:MEAS<x>:GATing:MIDRef`` command.
        - ``.searchsource``: The ``MEASUrement:MEAS<x>:GATing:SEARCHSource`` command.
        - ``.starttime``: The ``MEASUrement:MEAS<x>:GATing:STARTtime`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._active = MeasurementMeasItemGatingActive(device, f"{self._cmd_syntax}:ACTive")
        self._endtime = MeasurementMeasItemGatingEndtime(device, f"{self._cmd_syntax}:ENDtime")
        self._global = MeasurementMeasItemGatingGlobal(device, f"{self._cmd_syntax}:GLOBal")
        self._hysteresis = MeasurementMeasItemGatingHysteresis(
            device, f"{self._cmd_syntax}:HYSTeresis"
        )
        self._logicsource = MeasurementMeasItemGatingLogicsource(
            device, f"{self._cmd_syntax}:LOGICSource"
        )
        self._midref = MeasurementMeasItemGatingMidref(device, f"{self._cmd_syntax}:MIDRef")
        self._searchsource = MeasurementMeasItemGatingSearchsource(
            device, f"{self._cmd_syntax}:SEARCHSource"
        )
        self._starttime = MeasurementMeasItemGatingStarttime(
            device, f"{self._cmd_syntax}:STARTtime"
        )

    @property
    def active(self) -> MeasurementMeasItemGatingActive:
        """Return the ``MEASUrement:MEAS<x>:GATing:ACTive`` command.

        Description:
            - This command sets or queries the gating active level when the gating type is logic.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:GATing:ACTive?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:GATing:ACTive?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:GATing:ACTive value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:GATing:ACTive {HIGH|LOW}
            - MEASUrement:MEAS<x>:GATing:ACTive?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``HIGH`` takes a measurement when logic gating is High.
            - ``LOW`` takes a measurement when logic gating Low.
        """
        return self._active

    @property
    def endtime(self) -> MeasurementMeasItemGatingEndtime:
        """Return the ``MEASUrement:MEAS<x>:GATing:ENDtime`` command.

        Description:
            - Sets or queries the end gate time for the measurement when using Local gating.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:GATing:ENDtime?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:GATing:ENDtime?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:GATing:ENDtime value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:GATing:ENDtime <NR3>
            - MEASUrement:MEAS<x>:GATing:ENDtime?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the time gating end gate time in seconds. The valid range is -10000 s to
              10000 s.
        """
        return self._endtime

    @property
    def global_(self) -> MeasurementMeasItemGatingGlobal:
        """Return the ``MEASUrement:MEAS<x>:GATing:GLOBal`` command.

        Description:
            - This command sets or queries the gating settings global flag. Measurements are
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:GATing:GLOBal?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:GATing:GLOBal?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:GATing:GLOBal value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:GATing:GLOBal {ON|OFF|1|0}
            - MEASUrement:MEAS<x>:GATing:GLOBal?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``OFF`` specifies gate settings can be changed independently for each individual
              measurement.
            - ``ON`` applies global gate settings to all the measurements' gate settings.
            - ``0`` specifies gate settings can be changed independently for each individual
              measurement.
            - ``1`` applies global gate settings to all the measurements' gate settings.
        """
        return self._global

    @property
    def hysteresis(self) -> MeasurementMeasItemGatingHysteresis:
        """Return the ``MEASUrement:MEAS<x>:GATing:HYSTeresis`` command.

        Description:
            - This command sets or queries the gating hysteresis value when the gating type is
              logic. Measurements are specified by x. This command sets or queries the global file
              containing the data pattern used when known data pattern clock recovery is used for
              the measurement. This will affect measurements whose
              ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:GATing:HYSTeresis?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:GATing:HYSTeresis?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:GATing:HYSTeresis value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:GATing:HYSTeresis <NR3>
            - MEASUrement:MEAS<x>:GATing:HYSTeresis?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the gating hysteresis.
        """
        return self._hysteresis

    @property
    def logicsource(self) -> MeasurementMeasItemGatingLogicsource:
        """Return the ``MEASUrement:MEAS<x>:GATing:LOGICSource`` command.

        Description:
            - This command sets or queries the gating data source when the gating type is logic. The
              measurement number is specified by x.

        Usage:
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:GATing:LOGICSource value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:GATing:LOGICSource {CH<x>|MATH<x>|REF<x>}
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``CH<x>`` specifies an analog channel as source.
            - ``MATH<x>`` specifies a math channel as source.
            - ``REF<x>`` specifies a reference waveform as the source.
        """
        return self._logicsource

    @property
    def midref(self) -> MeasurementMeasItemGatingMidref:
        """Return the ``MEASUrement:MEAS<x>:GATing:MIDRef`` command.

        Description:
            - This command sets or queries the gating mid ref value when the gating type is logic.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:GATing:MIDRef?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:GATing:MIDRef?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:GATing:MIDRef value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:GATing:MIDRef <NR3>
            - MEASUrement:MEAS<x>:GATing:MIDRef?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the mid ref value for gating.
        """
        return self._midref

    @property
    def searchsource(self) -> MeasurementMeasItemGatingSearchsource:
        """Return the ``MEASUrement:MEAS<x>:GATing:SEARCHSource`` command.

        Description:
            - This command sets or queries the gating search source when the gating type is search.
              The measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:GATing:SEARCHSource?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:GATing:SEARCHSource?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:GATing:SEARCHSource value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:GATing:SEARCHSource SEARCH1
            - MEASUrement:MEAS<x>:GATing:SEARCHSource?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``SEARCH1`` is the gating source for search gating.
        """
        return self._searchsource

    @property
    def starttime(self) -> MeasurementMeasItemGatingStarttime:
        """Return the ``MEASUrement:MEAS<x>:GATing:STARTtime`` command.

        Description:
            - Sets or queries the start gate time for the measurement when using Local gating.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:GATing:STARTtime?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:GATing:STARTtime?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:GATing:STARTtime value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:GATing:STARTtime <NR3>
            - MEASUrement:MEAS<x>:GATing:STARTtime?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the time gating start gate time in seconds. The valid range is -10000 s
              to 10000 s.
        """
        return self._starttime


class MeasurementMeasItemFundcurrent(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:FUNDCURRent`` command.

    Description:
        - This command sets or queries the fundamental current value for IEC-Class C type harmonics
          standard. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FUNDCURRent?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:FUNDCURRent?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:FUNDCURRent value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:FUNDCURRent <NR3>
        - MEASUrement:MEAS<x>:FUNDCURRent?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` specifies the value for the fundamental current for class C harmonics standard.
    """


class MeasurementMeasItemFtype(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:FTYPe`` command.

    Description:
        - This command sets or returns whether the RRC filter is enabled or not. Measurements are
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FTYPe?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:FTYPe?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:FTYPe value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:FTYPe {True|False}
        - MEASUrement:MEAS<x>:FTYPe?
        ```

    Info:
        - ``True`` enables the RRC filter.
        - ``False`` disables the RRC filter.
    """


class MeasurementMeasItemFromedge(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:FROMedge`` command.

    Description:
        - This command sets or queries the from edge type for the measurement. Measurements are
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FROMedge?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:FROMedge?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:FROMedge value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:FROMedge {RISe|FALL|BOTH}
        - MEASUrement:MEAS<x>:FROMedge?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``FALL`` specifies the falling edge of the waveform.
        - ``RISe`` specifies the rising edge of the waveform.
        - ``BOTH`` specifies both the rising and falling edges of the waveform.
    """


class MeasurementMeasItemFromsymbolMeasureat(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:FROMSymbol:MEASUREAT`` command.

    Description:
        - This command sets or queries the DDR digital measurement From Symbol MeasureAT value.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FROMSymbol:MEASUREAT?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:FROMSymbol:MEASUREAT?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:FROMSymbol:MEASUREAT value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:FROMSymbol:MEASUREAT {Start|Stop|ClockEdge}
        - MEASUrement:MEAS<x>:FROMSymbol:MEASUREAT?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``Start`` sets the FromSymbol MeasureAT to Start.
        - ``Stop`` sets the FromSymbol MeasureAT to Stop.
        - ``ClockEdge`` sets the FromSymbol MeasureAT to ClockEdge.
    """


class MeasurementMeasItemFromsymbolLogic5source(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC5SOUrce`` command.

    Description:
        - This command sets or queries the DDR digital measurement logic 4 source From symbol.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC5SOUrce?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC5SOUrce?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC5SOUrce value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:FROMSymbol:LOGIC5SOUrce {H|L|X}
        - MEASUrement:MEAS<x>:FROMSymbol:LOGIC5SOUrce?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``H`` sets the logic source 4 From Symbol to H (High).
        - ``L`` sets the logic source 4 From Symbol to L (Low).
        - ``X`` sets the logic source 4 From Symbol to X (Don't care).
    """


class MeasurementMeasItemFromsymbolLogic4source(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC4SOUrce`` command.

    Description:
        - This command sets or queries the DDR digital measurement logic 3 source From symbol.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC4SOUrce?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC4SOUrce?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC4SOUrce value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:FROMSymbol:LOGIC4SOUrce {H|L|X}
        - MEASUrement:MEAS<x>:FROMSymbol:LOGIC4SOUrce?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``H`` sets the logic source 3 From Symbol to H (High).
        - ``L`` sets the logic source 3 From Symbol to L (Low).
        - ``X`` sets the logic source 3 From Symbol to X (Don't care).
    """


class MeasurementMeasItemFromsymbolLogic3source(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC3SOUrce`` command.

    Description:
        - This command sets or queries the DDR digital measurement logic 2 source From symbol.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC3SOUrce?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC3SOUrce?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC3SOUrce value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:FROMSymbol:LOGIC3SOUrce {H|L|X}
        - MEASUrement:MEAS<x>:FROMSymbol:LOGIC3SOUrce?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``H`` sets the logic source 2 From Symbol to H (High).
        - ``L`` sets the logic source 2 From Symbol to L (Low).
        - ``X`` sets the logic source 2 From Symbol to X (Don't care).
    """


class MeasurementMeasItemFromsymbolLogic2source(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC2SOUrce`` command.

    Description:
        - This command sets or queries the DDR digital measurement logic 1 source From symbol.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC2SOUrce?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC2SOUrce?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC2SOUrce value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:FROMSymbol:LOGIC2SOUrce {H|L|X}
        - MEASUrement:MEAS<x>:FROMSymbol:LOGIC2SOUrce?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``H`` sets the logic source 1 From Symbol to H (High).
        - ``L`` sets the logic source 1 From Symbol to L (Low).
        - ``X`` sets the logic source 1 From Symbol to X (Don't care).
    """


class MeasurementMeasItemFromsymbol(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:FROMSymbol`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FROMSymbol?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:FROMSymbol?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.logic2source``: The ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC2SOUrce`` command.
        - ``.logic3source``: The ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC3SOUrce`` command.
        - ``.logic4source``: The ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC4SOUrce`` command.
        - ``.logic5source``: The ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC5SOUrce`` command.
        - ``.measureat``: The ``MEASUrement:MEAS<x>:FROMSymbol:MEASUREAT`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._logic2source = MeasurementMeasItemFromsymbolLogic2source(
            device, f"{self._cmd_syntax}:LOGIC2SOUrce"
        )
        self._logic3source = MeasurementMeasItemFromsymbolLogic3source(
            device, f"{self._cmd_syntax}:LOGIC3SOUrce"
        )
        self._logic4source = MeasurementMeasItemFromsymbolLogic4source(
            device, f"{self._cmd_syntax}:LOGIC4SOUrce"
        )
        self._logic5source = MeasurementMeasItemFromsymbolLogic5source(
            device, f"{self._cmd_syntax}:LOGIC5SOUrce"
        )
        self._measureat = MeasurementMeasItemFromsymbolMeasureat(
            device, f"{self._cmd_syntax}:MEASUREAT"
        )

    @property
    def logic2source(self) -> MeasurementMeasItemFromsymbolLogic2source:
        """Return the ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC2SOUrce`` command.

        Description:
            - This command sets or queries the DDR digital measurement logic 1 source From symbol.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC2SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC2SOUrce?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC2SOUrce value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:FROMSymbol:LOGIC2SOUrce {H|L|X}
            - MEASUrement:MEAS<x>:FROMSymbol:LOGIC2SOUrce?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``H`` sets the logic source 1 From Symbol to H (High).
            - ``L`` sets the logic source 1 From Symbol to L (Low).
            - ``X`` sets the logic source 1 From Symbol to X (Don't care).
        """
        return self._logic2source

    @property
    def logic3source(self) -> MeasurementMeasItemFromsymbolLogic3source:
        """Return the ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC3SOUrce`` command.

        Description:
            - This command sets or queries the DDR digital measurement logic 2 source From symbol.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC3SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC3SOUrce?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC3SOUrce value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:FROMSymbol:LOGIC3SOUrce {H|L|X}
            - MEASUrement:MEAS<x>:FROMSymbol:LOGIC3SOUrce?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``H`` sets the logic source 2 From Symbol to H (High).
            - ``L`` sets the logic source 2 From Symbol to L (Low).
            - ``X`` sets the logic source 2 From Symbol to X (Don't care).
        """
        return self._logic3source

    @property
    def logic4source(self) -> MeasurementMeasItemFromsymbolLogic4source:
        """Return the ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC4SOUrce`` command.

        Description:
            - This command sets or queries the DDR digital measurement logic 3 source From symbol.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC4SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC4SOUrce?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC4SOUrce value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:FROMSymbol:LOGIC4SOUrce {H|L|X}
            - MEASUrement:MEAS<x>:FROMSymbol:LOGIC4SOUrce?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``H`` sets the logic source 3 From Symbol to H (High).
            - ``L`` sets the logic source 3 From Symbol to L (Low).
            - ``X`` sets the logic source 3 From Symbol to X (Don't care).
        """
        return self._logic4source

    @property
    def logic5source(self) -> MeasurementMeasItemFromsymbolLogic5source:
        """Return the ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC5SOUrce`` command.

        Description:
            - This command sets or queries the DDR digital measurement logic 4 source From symbol.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC5SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC5SOUrce?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC5SOUrce value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:FROMSymbol:LOGIC5SOUrce {H|L|X}
            - MEASUrement:MEAS<x>:FROMSymbol:LOGIC5SOUrce?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``H`` sets the logic source 4 From Symbol to H (High).
            - ``L`` sets the logic source 4 From Symbol to L (Low).
            - ``X`` sets the logic source 4 From Symbol to X (Don't care).
        """
        return self._logic5source

    @property
    def measureat(self) -> MeasurementMeasItemFromsymbolMeasureat:
        """Return the ``MEASUrement:MEAS<x>:FROMSymbol:MEASUREAT`` command.

        Description:
            - This command sets or queries the DDR digital measurement From Symbol MeasureAT value.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:FROMSymbol:MEASUREAT?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:FROMSymbol:MEASUREAT?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:FROMSymbol:MEASUREAT value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:FROMSymbol:MEASUREAT {Start|Stop|ClockEdge}
            - MEASUrement:MEAS<x>:FROMSymbol:MEASUREAT?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``Start`` sets the FromSymbol MeasureAT to Start.
            - ``Stop`` sets the FromSymbol MeasureAT to Stop.
            - ``ClockEdge`` sets the FromSymbol MeasureAT to ClockEdge.
        """
        return self._measureat


class MeasurementMeasItemFromedgesearchdirect(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:FROMEDGESEARCHDIRect`` command.

    Description:
        - This command sets or queries the from edge search direction for the measurement.
          Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FROMEDGESEARCHDIRect?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:FROMEDGESEARCHDIRect?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:FROMEDGESEARCHDIRect value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:FROMEDGESEARCHDIRect {FORWard|BACKWard}
        - MEASUrement:MEAS<x>:FROMEDGESEARCHDIRect?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``FORWard`` specifies a forward search from the edge.
        - ``BACKWard`` specifies a backward search from the edge.
    """


class MeasurementMeasItemFreq(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:FREQ`` command.

    Description:
        - This command sets or queries switching frequency for Switching Ripple measurement.
          Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FREQ?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:FREQ?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:FREQ value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:FREQ <NR3>
        - MEASUrement:MEAS<x>:FREQ?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` specifies the switching frequency. The default is 100k Hz, The minimum is 50 Hz,
          and the maximum is 1 GHz.
    """


class MeasurementMeasItemFparameter(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:FPARAmeter`` command.

    Description:
        - This command sets or queries the roll off factor for the RRC filter in the measurement.
          Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FPARAmeter?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:FPARAmeter?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:FPARAmeter value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:FPARAmeter <NR3>
        - MEASUrement:MEAS<x>:FPARAmeter?
        ```

    Info:
        - ``<NR3>`` sets the roll off factor. The default is 0.22. The valid range is from 0.001 to
          1.0.
    """


class MeasurementMeasItemForder(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:FORDer`` command.

    Description:
        - This command sets or returns the differential filter order for WBG measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FORDer?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:FORDer?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:FORDer value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:FORDer <NR3>
        - MEASUrement:MEAS<x>:FORDer?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` specifies the differential filter order of the WBG measurement.
    """


class MeasurementMeasItemFiltersRamptime(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:FILTers:RAMPtime`` command.

    Description:
        - This command sets or queries the filter ramp time for the measurement. Measurements are
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FILTers:RAMPtime?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:FILTers:RAMPtime?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:FILTers:RAMPtime value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:FILTers:RAMPtime <NR3>
        - MEASUrement:MEAS<x>:FILTers:RAMPtime?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the current filter ramp time.
    """


class MeasurementMeasItemFiltersLowpassSpec(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:FILTers:LOWPass:SPEC`` command.

    Description:
        - This command sets or queries the low pass filter order for the measurement. Measurements
          are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FILTers:LOWPass:SPEC?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:FILTers:LOWPass:SPEC?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:FILTers:LOWPass:SPEC value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:FILTers:LOWPass:SPEC {NONE|FIRST|SECOND|THIRD}
        - MEASUrement:MEAS<x>:FILTers:LOWPass:SPEC?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``NONE`` specifies no filter.
        - ``FIRST`` specifies a first-order filter.
        - ``SECOND`` specifies a second-order filter.
        - ``THIRD`` specifies a third-order filter.
    """


class MeasurementMeasItemFiltersLowpassFreq(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:FILTers:LOWPass:FREQ`` command.

    Description:
        - This command sets or queries the low pass filter cutoff frequency for the measurement.
          Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FILTers:LOWPass:FREQ?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:FILTers:LOWPass:FREQ?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:FILTers:LOWPass:FREQ value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:FILTers:LOWPass:FREQ <NR3>
        - MEASUrement:MEAS<x>:FILTers:LOWPass:FREQ?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the current low pass filter frequency. The argument range is 20 Hz to 10e6
          Hz.
    """


class MeasurementMeasItemFiltersLowpass(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:FILTers:LOWPass`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FILTers:LOWPass?``
          query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:FILTers:LOWPass?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.freq``: The ``MEASUrement:MEAS<x>:FILTers:LOWPass:FREQ`` command.
        - ``.spec``: The ``MEASUrement:MEAS<x>:FILTers:LOWPass:SPEC`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._freq = MeasurementMeasItemFiltersLowpassFreq(device, f"{self._cmd_syntax}:FREQ")
        self._spec = MeasurementMeasItemFiltersLowpassSpec(device, f"{self._cmd_syntax}:SPEC")

    @property
    def freq(self) -> MeasurementMeasItemFiltersLowpassFreq:
        """Return the ``MEASUrement:MEAS<x>:FILTers:LOWPass:FREQ`` command.

        Description:
            - This command sets or queries the low pass filter cutoff frequency for the measurement.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:FILTers:LOWPass:FREQ?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:FILTers:LOWPass:FREQ?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:FILTers:LOWPass:FREQ value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:FILTers:LOWPass:FREQ <NR3>
            - MEASUrement:MEAS<x>:FILTers:LOWPass:FREQ?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the current low pass filter frequency. The argument range is 20 Hz to
              10e6 Hz.
        """
        return self._freq

    @property
    def spec(self) -> MeasurementMeasItemFiltersLowpassSpec:
        """Return the ``MEASUrement:MEAS<x>:FILTers:LOWPass:SPEC`` command.

        Description:
            - This command sets or queries the low pass filter order for the measurement.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:FILTers:LOWPass:SPEC?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:FILTers:LOWPass:SPEC?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:FILTers:LOWPass:SPEC value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:FILTers:LOWPass:SPEC {NONE|FIRST|SECOND|THIRD}
            - MEASUrement:MEAS<x>:FILTers:LOWPass:SPEC?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``NONE`` specifies no filter.
            - ``FIRST`` specifies a first-order filter.
            - ``SECOND`` specifies a second-order filter.
            - ``THIRD`` specifies a third-order filter.
        """
        return self._spec


class MeasurementMeasItemFiltersHighpassSpec(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:FILTers:HIGHPass:SPEC`` command.

    Description:
        - This command sets or queries the high pass filter order for the measurement. Measurements
          are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FILTers:HIGHPass:SPEC?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:FILTers:HIGHPass:SPEC?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:FILTers:HIGHPass:SPEC value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:FILTers:HIGHPass:SPEC {NONE|FIRST|SECOND|THIRD}
        - MEASUrement:MEAS<x>:FILTers:HIGHPass:SPEC?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``NONE`` specifies no filter.
        - ``FIRST`` specifies a first-order filter.
        - ``SECOND`` specifies a second-order filter.
        - ``THIRD`` specifies a third-order filter.
    """


class MeasurementMeasItemFiltersHighpassFreq(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:FILTers:HIGHPass:FREQ`` command.

    Description:
        - This command sets or queries the high pass filter frequency for the measurement.
          Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FILTers:HIGHPass:FREQ?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:FILTers:HIGHPass:FREQ?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:FILTers:HIGHPass:FREQ value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:FILTers:HIGHPass:FREQ <NR3>
        - MEASUrement:MEAS<x>:FILTers:HIGHPass:FREQ?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the current high pass filter frequency.
    """


class MeasurementMeasItemFiltersHighpass(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:FILTers:HIGHPass`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FILTers:HIGHPass?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:FILTers:HIGHPass?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.freq``: The ``MEASUrement:MEAS<x>:FILTers:HIGHPass:FREQ`` command.
        - ``.spec``: The ``MEASUrement:MEAS<x>:FILTers:HIGHPass:SPEC`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._freq = MeasurementMeasItemFiltersHighpassFreq(device, f"{self._cmd_syntax}:FREQ")
        self._spec = MeasurementMeasItemFiltersHighpassSpec(device, f"{self._cmd_syntax}:SPEC")

    @property
    def freq(self) -> MeasurementMeasItemFiltersHighpassFreq:
        """Return the ``MEASUrement:MEAS<x>:FILTers:HIGHPass:FREQ`` command.

        Description:
            - This command sets or queries the high pass filter frequency for the measurement.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:FILTers:HIGHPass:FREQ?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:FILTers:HIGHPass:FREQ?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:FILTers:HIGHPass:FREQ value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:FILTers:HIGHPass:FREQ <NR3>
            - MEASUrement:MEAS<x>:FILTers:HIGHPass:FREQ?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the current high pass filter frequency.
        """
        return self._freq

    @property
    def spec(self) -> MeasurementMeasItemFiltersHighpassSpec:
        """Return the ``MEASUrement:MEAS<x>:FILTers:HIGHPass:SPEC`` command.

        Description:
            - This command sets or queries the high pass filter order for the measurement.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:FILTers:HIGHPass:SPEC?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:FILTers:HIGHPass:SPEC?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:FILTers:HIGHPass:SPEC value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:FILTers:HIGHPass:SPEC {NONE|FIRST|SECOND|THIRD}
            - MEASUrement:MEAS<x>:FILTers:HIGHPass:SPEC?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``NONE`` specifies no filter.
            - ``FIRST`` specifies a first-order filter.
            - ``SECOND`` specifies a second-order filter.
            - ``THIRD`` specifies a third-order filter.
        """
        return self._spec


class MeasurementMeasItemFiltersGlobal(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:FILTers:GLOBal`` command.

    Description:
        - This command sets or queries the global flag for filter settings for the measurement.
          Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FILTers:GLOBal?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:FILTers:GLOBal?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:FILTers:GLOBal value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:FILTers:GLOBal {ON|OFF|1|0}
        - MEASUrement:MEAS<x>:FILTers:GLOBal?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``OFF`` causes filter settings to be changed independently for each individual
          measurement.
        - ``ON`` applies global filter settings to all the measurements' filter settings.
        - ``0`` causes filter settings to be changed independently for each individual measurement.
        - ``1`` applies global filter settings to all the measurements' filter settings.
    """


class MeasurementMeasItemFiltersBlankingtime(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:FILTers:BLANKingtime`` command.

    Description:
        - This command sets or queries the filter blanking time for the measurement. Measurements
          are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FILTers:BLANKingtime?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:FILTers:BLANKingtime?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:FILTers:BLANKingtime value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:FILTers:BLANKingtime <NR3>
        - MEASUrement:MEAS<x>:FILTers:BLANKingtime?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the current filter blanking time.
    """


class MeasurementMeasItemFilters(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:FILTers`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FILTers?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:FILTers?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.blankingtime``: The ``MEASUrement:MEAS<x>:FILTers:BLANKingtime`` command.
        - ``.global``: The ``MEASUrement:MEAS<x>:FILTers:GLOBal`` command.
        - ``.highpass``: The ``MEASUrement:MEAS<x>:FILTers:HIGHPass`` command tree.
        - ``.lowpass``: The ``MEASUrement:MEAS<x>:FILTers:LOWPass`` command tree.
        - ``.ramptime``: The ``MEASUrement:MEAS<x>:FILTers:RAMPtime`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._blankingtime = MeasurementMeasItemFiltersBlankingtime(
            device, f"{self._cmd_syntax}:BLANKingtime"
        )
        self._global = MeasurementMeasItemFiltersGlobal(device, f"{self._cmd_syntax}:GLOBal")
        self._highpass = MeasurementMeasItemFiltersHighpass(device, f"{self._cmd_syntax}:HIGHPass")
        self._lowpass = MeasurementMeasItemFiltersLowpass(device, f"{self._cmd_syntax}:LOWPass")
        self._ramptime = MeasurementMeasItemFiltersRamptime(device, f"{self._cmd_syntax}:RAMPtime")

    @property
    def blankingtime(self) -> MeasurementMeasItemFiltersBlankingtime:
        """Return the ``MEASUrement:MEAS<x>:FILTers:BLANKingtime`` command.

        Description:
            - This command sets or queries the filter blanking time for the measurement.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:FILTers:BLANKingtime?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:FILTers:BLANKingtime?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:FILTers:BLANKingtime value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:FILTers:BLANKingtime <NR3>
            - MEASUrement:MEAS<x>:FILTers:BLANKingtime?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the current filter blanking time.
        """
        return self._blankingtime

    @property
    def global_(self) -> MeasurementMeasItemFiltersGlobal:
        """Return the ``MEASUrement:MEAS<x>:FILTers:GLOBal`` command.

        Description:
            - This command sets or queries the global flag for filter settings for the measurement.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FILTers:GLOBal?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:FILTers:GLOBal?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:FILTers:GLOBal value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:FILTers:GLOBal {ON|OFF|1|0}
            - MEASUrement:MEAS<x>:FILTers:GLOBal?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``OFF`` causes filter settings to be changed independently for each individual
              measurement.
            - ``ON`` applies global filter settings to all the measurements' filter settings.
            - ``0`` causes filter settings to be changed independently for each individual
              measurement.
            - ``1`` applies global filter settings to all the measurements' filter settings.
        """
        return self._global

    @property
    def highpass(self) -> MeasurementMeasItemFiltersHighpass:
        """Return the ``MEASUrement:MEAS<x>:FILTers:HIGHPass`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FILTers:HIGHPass?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:FILTers:HIGHPass?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.freq``: The ``MEASUrement:MEAS<x>:FILTers:HIGHPass:FREQ`` command.
            - ``.spec``: The ``MEASUrement:MEAS<x>:FILTers:HIGHPass:SPEC`` command.
        """
        return self._highpass

    @property
    def lowpass(self) -> MeasurementMeasItemFiltersLowpass:
        """Return the ``MEASUrement:MEAS<x>:FILTers:LOWPass`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FILTers:LOWPass?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:FILTers:LOWPass?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.freq``: The ``MEASUrement:MEAS<x>:FILTers:LOWPass:FREQ`` command.
            - ``.spec``: The ``MEASUrement:MEAS<x>:FILTers:LOWPass:SPEC`` command.
        """
        return self._lowpass

    @property
    def ramptime(self) -> MeasurementMeasItemFiltersRamptime:
        """Return the ``MEASUrement:MEAS<x>:FILTers:RAMPtime`` command.

        Description:
            - This command sets or queries the filter ramp time for the measurement. Measurements
              are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FILTers:RAMPtime?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:FILTers:RAMPtime?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:FILTers:RAMPtime value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:FILTers:RAMPtime <NR3>
            - MEASUrement:MEAS<x>:FILTers:RAMPtime?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the current filter ramp time.
        """
        return self._ramptime


class MeasurementMeasItemFilterrangeto(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:FILTERRANGETO`` command.

    Description:
        - This command sets or queries harmonics filter to order. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FILTERRANGETO?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:FILTERRANGETO?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:FILTERRANGETO value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:FILTERRANGETO <NR3>
        - MEASUrement:MEAS<x>:FILTERRANGETO?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` specifies the filter range to value. The default value is 50.
    """


class MeasurementMeasItemFilterrangefrom(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:FILTERRANGEFROM`` command.

    Description:
        - This command sets or queries harmonics filter from order. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FILTERRANGEFROM?``
          query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:FILTERRANGEFROM?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:FILTERRANGEFROM value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:FILTERRANGEFROM <NR3>
        - MEASUrement:MEAS<x>:FILTERRANGEFROM?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` specifies the filter range from value. The default value is 1.
    """


class MeasurementMeasItemFcount(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:FCOunt`` command.

    Description:
        - This command sets or returns the filter count for PSIJ measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FCOunt?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:FCOunt?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:FCOunt value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:FCOunt <NR3>
        - MEASUrement:MEAS<x>:FCOunt?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` specifies the number of filters applied for PSIJ measurement.
    """


class MeasurementMeasItemFailcount(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:FAILCount`` command.

    Description:
        - This command returns the number of measurement failures, if applicable, for the selected
          measure The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FAILCount?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:FAILCount?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:FAILCount?
        ```
    """


class MeasurementMeasItemEyerender(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:EYERender`` command.

    Description:
        - This command sets or queries the eye rendering method.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EYERender?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:EYERender?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:EYERender value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:EYERender {FAst|COMPlete}
        - MEASUrement:MEAS<x>:EYERender?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``FAst`` sets the eye rendering method to fast.
        - ``COMPlete`` sets the eye rendering method to complete.
    """


class MeasurementMeasItemExtenduis(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:EXTENDuis`` command.

    Description:
        - This command sets or returns number of UIs considered for analysis of eye width or eye
          height measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EXTENDuis?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:EXTENDuis?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:EXTENDuis value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:EXTENDuis <NR1>
        - MEASUrement:MEAS<x>:EXTENDuis?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR1>`` is the number of UIs considered for analysis.
    """


class MeasurementMeasItemEinterpolation(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:EINTerpolation`` command.

    Description:
        - This command sets or queries whether dot mode eye diagram is enabled.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EINTerpolation?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:EINTerpolation?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:EINTerpolation value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:EINTerpolation {ON|OFF}
        - MEASUrement:MEAS<x>:EINTerpolation?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``ON`` enables interpolation between samples.
        - ``OFF`` disables interpolation between samples.
    """


class MeasurementMeasItemEinductance(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:EINDuctance`` command.

    Description:
        - This command sets or returns the effective inductance for WBG measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EINDuctance?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:EINDuctance?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:EINDuctance value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:EINDuctance <NR3>
        - MEASUrement:MEAS<x>:EINDuctance?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` specifies the value for effective inductance of the WBG measurement.
    """


class MeasurementMeasItemEequal(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:EEQUal`` command.

    Description:
        - This command turns on or off the edge qualifier settings as input waveform to measurement.
          The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EEQUal?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:EEQUal?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:EEQUal value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:EEQUal {ON|OFF}
        - MEASUrement:MEAS<x>:EEQUal?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``ON`` specifies the edge qualifier settings has been turned on.
        - ``OFF`` specifies the edge qualifier settings has been turned off.
    """


class MeasurementMeasItemEdgesUpperfrequency(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:EDGES:UPPERFREQuency`` command.

    Description:
        - This command sets or queries the upper frequency for the measurement when the measurement
          type is phase noise. Higher frequencies are ignored. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EDGES:UPPERFREQuency?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:EDGES:UPPERFREQuency?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:EDGES:UPPERFREQuency value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:EDGES:UPPERFREQuency <NR3>
        - MEASUrement:MEAS<x>:EDGES:UPPERFREQuency?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the upper frequency of the edge.
    """


class MeasurementMeasItemEdgesTolevel(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:EDGES:TOLevel`` command.

    Description:
        - This command sets or queries the 'to level' edge for the measurement. Measurements are
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EDGES:TOLevel?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:EDGES:TOLevel?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:EDGES:TOLevel value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:EDGES:TOLevel {HIGH|MID|LOW}
        - MEASUrement:MEAS<x>:EDGES:TOLevel?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``HIGH`` specifies the HIGH level.
        - ``MID`` specifies the MID level.
        - ``LOW`` specifies the LOW level.
    """


class MeasurementMeasItemEdgesSlewratemethod(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:EDGES:SLEWRATEMethod`` command.

    Description:
        - This command sets or queries the slew rate method for the measurement. Measurements are
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EDGES:SLEWRATEMethod?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:EDGES:SLEWRATEMethod?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:EDGES:SLEWRATEMethod value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:EDGES:SLEWRATEMethod {NOMinal|DDR}
        - MEASUrement:MEAS<x>:EDGES:SLEWRATEMethod?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``NOMinal`` specifies the nominal slew rate method.
        - ``DDR`` specifies the DDR slew rate method.
    """


class MeasurementMeasItemEdgesN(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:EDGES:N`` command.

    Description:
        - The command sets or queries the number of accumulation cycles for the measurement when the
          measurement type is nperiod. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EDGES:N?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:EDGES:N?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:EDGES:N value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:EDGES:N <NR3>
        - MEASUrement:MEAS<x>:EDGES:N?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the maximum number of edges used by the measurement.
    """


class MeasurementMeasItemEdgesLowerfrequency(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:EDGES:LOWERFREQuency`` command.

    Description:
        - This command sets or queries the lower frequency for the measurement when the measurement
          type is phase noise. Lower frequencies are ignored. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EDGES:LOWERFREQuency?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:EDGES:LOWERFREQuency?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:EDGES:LOWERFREQuency value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:EDGES:LOWERFREQuency <NR3>
        - MEASUrement:MEAS<x>:EDGES:LOWERFREQuency?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the lower frequency of the edge.
    """


class MeasurementMeasItemEdgesLevel(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:EDGES:LEVel`` command.

    Description:
        - This sets or queries the level type for the 'time outside level' measurement. Measurements
          are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EDGES:LEVel?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:EDGES:LEVel?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:EDGES:LEVel value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:EDGES:LEVel {HIGH|LOW|BOTH}
        - MEASUrement:MEAS<x>:EDGES:LEVel?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``HIGH`` specifies the HIGH level.
        - ``LOW`` specifies the LOW level.
        - ``BOTH`` specifies both the HIGH and LOW level.
    """


class MeasurementMeasItemEdgesFromlevel(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:EDGES:FROMLevel`` command.

    Description:
        - This command sets or queries the 'from level' edge for the measurement. Measurements are
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EDGES:FROMLevel?``
          query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:EDGES:FROMLevel?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:EDGES:FROMLevel value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:EDGES:FROMLevel {MID|LOW|HIGH}
        - MEASUrement:MEAS<x>:EDGES:FROMLevel?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``MID`` specifies the MID level.
        - ``HIGH`` specifies the HIGH level.
        - ``LOW`` specifies the LOW level.
    """


class MeasurementMeasItemEdges(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:EDGES`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EDGES?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:EDGES?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.fromlevel``: The ``MEASUrement:MEAS<x>:EDGES:FROMLevel`` command.
        - ``.level``: The ``MEASUrement:MEAS<x>:EDGES:LEVel`` command.
        - ``.lowerfrequency``: The ``MEASUrement:MEAS<x>:EDGES:LOWERFREQuency`` command.
        - ``.n``: The ``MEASUrement:MEAS<x>:EDGES:N`` command.
        - ``.slewratemethod``: The ``MEASUrement:MEAS<x>:EDGES:SLEWRATEMethod`` command.
        - ``.tolevel``: The ``MEASUrement:MEAS<x>:EDGES:TOLevel`` command.
        - ``.upperfrequency``: The ``MEASUrement:MEAS<x>:EDGES:UPPERFREQuency`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._fromlevel = MeasurementMeasItemEdgesFromlevel(device, f"{self._cmd_syntax}:FROMLevel")
        self._level = MeasurementMeasItemEdgesLevel(device, f"{self._cmd_syntax}:LEVel")
        self._lowerfrequency = MeasurementMeasItemEdgesLowerfrequency(
            device, f"{self._cmd_syntax}:LOWERFREQuency"
        )
        self._n = MeasurementMeasItemEdgesN(device, f"{self._cmd_syntax}:N")
        self._slewratemethod = MeasurementMeasItemEdgesSlewratemethod(
            device, f"{self._cmd_syntax}:SLEWRATEMethod"
        )
        self._tolevel = MeasurementMeasItemEdgesTolevel(device, f"{self._cmd_syntax}:TOLevel")
        self._upperfrequency = MeasurementMeasItemEdgesUpperfrequency(
            device, f"{self._cmd_syntax}:UPPERFREQuency"
        )

    @property
    def fromlevel(self) -> MeasurementMeasItemEdgesFromlevel:
        """Return the ``MEASUrement:MEAS<x>:EDGES:FROMLevel`` command.

        Description:
            - This command sets or queries the 'from level' edge for the measurement. Measurements
              are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EDGES:FROMLevel?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:EDGES:FROMLevel?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:EDGES:FROMLevel value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:EDGES:FROMLevel {MID|LOW|HIGH}
            - MEASUrement:MEAS<x>:EDGES:FROMLevel?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``MID`` specifies the MID level.
            - ``HIGH`` specifies the HIGH level.
            - ``LOW`` specifies the LOW level.
        """
        return self._fromlevel

    @property
    def level(self) -> MeasurementMeasItemEdgesLevel:
        """Return the ``MEASUrement:MEAS<x>:EDGES:LEVel`` command.

        Description:
            - This sets or queries the level type for the 'time outside level' measurement.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EDGES:LEVel?``
              query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:EDGES:LEVel?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:EDGES:LEVel value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:EDGES:LEVel {HIGH|LOW|BOTH}
            - MEASUrement:MEAS<x>:EDGES:LEVel?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``HIGH`` specifies the HIGH level.
            - ``LOW`` specifies the LOW level.
            - ``BOTH`` specifies both the HIGH and LOW level.
        """
        return self._level

    @property
    def lowerfrequency(self) -> MeasurementMeasItemEdgesLowerfrequency:
        """Return the ``MEASUrement:MEAS<x>:EDGES:LOWERFREQuency`` command.

        Description:
            - This command sets or queries the lower frequency for the measurement when the
              measurement type is phase noise. Lower frequencies are ignored. Measurements are
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:EDGES:LOWERFREQuency?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:EDGES:LOWERFREQuency?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:EDGES:LOWERFREQuency value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:EDGES:LOWERFREQuency <NR3>
            - MEASUrement:MEAS<x>:EDGES:LOWERFREQuency?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the lower frequency of the edge.
        """
        return self._lowerfrequency

    @property
    def n(self) -> MeasurementMeasItemEdgesN:
        """Return the ``MEASUrement:MEAS<x>:EDGES:N`` command.

        Description:
            - The command sets or queries the number of accumulation cycles for the measurement when
              the measurement type is nperiod. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EDGES:N?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:EDGES:N?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:EDGES:N value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:EDGES:N <NR3>
            - MEASUrement:MEAS<x>:EDGES:N?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the maximum number of edges used by the measurement.
        """
        return self._n

    @property
    def slewratemethod(self) -> MeasurementMeasItemEdgesSlewratemethod:
        """Return the ``MEASUrement:MEAS<x>:EDGES:SLEWRATEMethod`` command.

        Description:
            - This command sets or queries the slew rate method for the measurement. Measurements
              are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:EDGES:SLEWRATEMethod?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:EDGES:SLEWRATEMethod?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:EDGES:SLEWRATEMethod value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:EDGES:SLEWRATEMethod {NOMinal|DDR}
            - MEASUrement:MEAS<x>:EDGES:SLEWRATEMethod?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``NOMinal`` specifies the nominal slew rate method.
            - ``DDR`` specifies the DDR slew rate method.
        """
        return self._slewratemethod

    @property
    def tolevel(self) -> MeasurementMeasItemEdgesTolevel:
        """Return the ``MEASUrement:MEAS<x>:EDGES:TOLevel`` command.

        Description:
            - This command sets or queries the 'to level' edge for the measurement. Measurements are
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EDGES:TOLevel?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:EDGES:TOLevel?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:EDGES:TOLevel value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:EDGES:TOLevel {HIGH|MID|LOW}
            - MEASUrement:MEAS<x>:EDGES:TOLevel?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``HIGH`` specifies the HIGH level.
            - ``MID`` specifies the MID level.
            - ``LOW`` specifies the LOW level.
        """
        return self._tolevel

    @property
    def upperfrequency(self) -> MeasurementMeasItemEdgesUpperfrequency:
        """Return the ``MEASUrement:MEAS<x>:EDGES:UPPERFREQuency`` command.

        Description:
            - This command sets or queries the upper frequency for the measurement when the
              measurement type is phase noise. Higher frequencies are ignored. Measurements are
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:EDGES:UPPERFREQuency?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:EDGES:UPPERFREQuency?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:EDGES:UPPERFREQuency value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:EDGES:UPPERFREQuency <NR3>
            - MEASUrement:MEAS<x>:EDGES:UPPERFREQuency?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the upper frequency of the edge.
        """
        return self._upperfrequency


class MeasurementMeasItemEdgequalifier(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:EDGEQUALifier`` command.

    Description:
        - This command sets or queries the edge qualifier source.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EDGEQUALifier?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:EDGEQUALifier?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:EDGEQUALifier value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:EDGEQUALifier {CH<x>|MATH<x>|REF<x>}
        - MEASUrement:MEAS<x>:EDGEQUALifier?
        ```

    Info:
        - ``MEAS<x>`` is the measurement number.
        - ``CH<x>`` is the edge qualifier source channel.
        - ``MATH<x>`` is the edge qualifier source math waveform; <x> is ≥1.
        - ``REF<x>`` is the edge qualifier source reference waveform; <x> is ≥1.
    """


class MeasurementMeasItemEdgequaltwo(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:EDGEQUALTWO`` command.

    Description:
        - This command sets or queries the measurement 1 output edge qualifier two source for
          Efficiency measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EDGEQUALTWO?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:EDGEQUALTWO?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:EDGEQUALTWO value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:EDGEQUALTWO <QString>
        - MEASUrement:MEAS<x>:EDGEQUALTWO?
        ```

    Info:
        - ``MEAS<x>`` is the measurement number.
        - ``<QString>`` specifies the edge qualifier source at output configuration.
    """

    _WRAP_ARG_WITH_QUOTES = True


class MeasurementMeasItemEdgequalone(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:EDGEQUALONE`` command.

    Description:
        - This command set or queries the measurement 1 input edge qualifier one source for
          Efficiency measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EDGEQUALONE?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:EDGEQUALONE?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:EDGEQUALONE value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:EDGEQUALONE <QString>
        - MEASUrement:MEAS<x>:EDGEQUALONE?
        ```

    Info:
        - ``MEAS<x>`` is the measurement number.
        - ``<QString>`` specifies the edge qualifier source at input configuration.
    """

    _WRAP_ARG_WITH_QUOTES = True


class MeasurementMeasItemEdgeincre(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:EDGEIncre`` command.

    Description:
        - This command sets or queries the edge increment value for the measurement. Measurements
          are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EDGEIncre?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:EDGEIncre?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:EDGEIncre value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:EDGEIncre <NR3>
        - MEASUrement:MEAS<x>:EDGEIncre?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the measurements edge increment value.
    """


class MeasurementMeasItemEdgeItem(ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:EDGE<x>`` command.

    Description:
        - This command sets or queries the type of the specified edge, rise or fall, for the
          measurement. The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EDGE<x>?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:EDGE<x>?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:EDGE<x> value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:EDGE<x> {RISE|FALL|BOTH}
        - MEASUrement:MEAS<x>:EDGE<x>?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``RISE`` specifies the rising edge.
        - ``FALL`` specifies the falling edge.
        - ``BOTH`` specifies either the rising or falling edge.
    """


class MeasurementMeasItemDvds(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:DVDS`` command.

    Description:
        - This command enabled or disables display state of the derived Vds waveform for RDS(on)
          measurement. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:DVDS?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:DVDS?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:DVDS value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:DVDS {OFF|ON}
        - MEASUrement:MEAS<x>:DVDS?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``OFF`` specifies that derived Vds waveform display is disabled for RDS(on) measurement.
        - ``ON`` specifies that derived Vds waveform display is enabled for RDS(on) measurement.
    """


class MeasurementMeasItemDmethod(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:DMEThod`` command.

    Description:
        - This command sets or returns the deskew method for WBG measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:DMEThod?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:DMEThod?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:DMEThod value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:DMEThod {AUTO|MANual}
        - MEASUrement:MEAS<x>:DMEThod?
        ```

    Info:
        - ``AUTO`` or MANual specifies the deskew method set for WBG measurement.
    """


class MeasurementMeasItemDisplaystatEnable(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:DISPlaystat:ENABle`` command.

    Description:
        - This command turns on and off display of statistics in measurement badges in the user
          interface. This command affects only the display of statistics, basic-statistics are
          computed regardless of the state of this command. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:DISPlaystat:ENABle?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:DISPlaystat:ENABle?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:DISPlaystat:ENABle value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:DISPlaystat:ENABle {ON|OFF|<NR1>}
        - MEASUrement:MEAS<x>:DISPlaystat:ENABle?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``OFF`` turns off the display of statistics in measurement badges.
        - ``ON`` turns on the display of statistics in measurement badges.
        - ``<NR1>`` = 0 turns off the display of statistics in the measurement badge, any other
          value turns on the display of statistics.
    """


class MeasurementMeasItemDisplaystat(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:DISPlaystat`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:DISPlaystat?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:DISPlaystat?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.enable``: The ``MEASUrement:MEAS<x>:DISPlaystat:ENABle`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._enable = MeasurementMeasItemDisplaystatEnable(device, f"{self._cmd_syntax}:ENABle")

    @property
    def enable(self) -> MeasurementMeasItemDisplaystatEnable:
        """Return the ``MEASUrement:MEAS<x>:DISPlaystat:ENABle`` command.

        Description:
            - This command turns on and off display of statistics in measurement badges in the user
              interface. This command affects only the display of statistics, basic-statistics are
              computed regardless of the state of this command. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:DISPlaystat:ENABle?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:DISPlaystat:ENABle?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:DISPlaystat:ENABle value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:DISPlaystat:ENABle {ON|OFF|<NR1>}
            - MEASUrement:MEAS<x>:DISPlaystat:ENABle?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``OFF`` turns off the display of statistics in measurement badges.
            - ``ON`` turns on the display of statistics in measurement badges.
            - ``<NR1>`` = 0 turns off the display of statistics in the measurement badge, any other
              value turns on the display of statistics.
        """
        return self._enable


class MeasurementMeasItemDelayEdgeItem(ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:DELay:EDGE<x>`` command.

    Description:
        - This command sets or queries the 'to edge' type when EDGE<x> is EDGE1 and the 'from edge'
          type when EDGE<x> is EDG2, for the measurement when the measurement type is DELAY.
          Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:DELay:EDGE<x>?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:DELay:EDGE<x>?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:DELay:EDGE<x> value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:DELay:EDGE<x> {FALL|RISe|BOTH|SAMEas|OPPositeas}
        - MEASUrement:MEAS<x>:DELay:EDGE<x>?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``FALL`` specifies the falling edge of the waveform.
        - ``RISe`` specifies the rising edge of the waveform.
        - ``BOTH`` specifies both a rising and falling edge of the waveform.
        - ``SAMEas`` specifies that both edges of the waveform are the same.
        - ``OPPositeas`` specifies that the edges of the waveform are not the same.
    """


class MeasurementMeasItemDelay(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:DELay`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:DELay?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:DELay?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.edge``: The ``MEASUrement:MEAS<x>:DELay:EDGE<x>`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._edge: Dict[int, MeasurementMeasItemDelayEdgeItem] = DefaultDictPassKeyToFactory(
            lambda x: MeasurementMeasItemDelayEdgeItem(device, f"{self._cmd_syntax}:EDGE{x}")
        )

    @property
    def edge(self) -> Dict[int, MeasurementMeasItemDelayEdgeItem]:
        """Return the ``MEASUrement:MEAS<x>:DELay:EDGE<x>`` command.

        Description:
            - This command sets or queries the 'to edge' type when EDGE<x> is EDGE1 and the 'from
              edge' type when EDGE<x> is EDG2, for the measurement when the measurement type is
              DELAY. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:DELay:EDGE<x>?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:DELay:EDGE<x>?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:DELay:EDGE<x> value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:DELay:EDGE<x> {FALL|RISe|BOTH|SAMEas|OPPositeas}
            - MEASUrement:MEAS<x>:DELay:EDGE<x>?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``FALL`` specifies the falling edge of the waveform.
            - ``RISe`` specifies the rising edge of the waveform.
            - ``BOTH`` specifies both a rising and falling edge of the waveform.
            - ``SAMEas`` specifies that both edges of the waveform are the same.
            - ``OPPositeas`` specifies that the edges of the waveform are not the same.
        """
        return self._edge


class MeasurementMeasItemDbdown(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:DBDown`` command.

    Description:
        - This command sets or queries the dB down value for the measurement. Measurements are
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:DBDown?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:DBDown?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:DBDown value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:DBDown <NR3>
        - MEASUrement:MEAS<x>:DBDown?
        ```

    Info:
        - ``<NR3>`` sets the dB down value. The default value is -26 and the valid range is -80 to
          -1.
    """


class MeasurementMeasItemCyclemode(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CYCLemode`` command.

    Description:
        - This command sets or queries the cycle mode for the measurement. Measurements are
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:CYCLemode?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:CYCLemode?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:CYCLemode value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CYCLemode {RECORD|CYCLE|ROTATION}
        - MEASUrement:MEAS<x>:CYCLemode?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``RECORD`` specifies that the measurement is taken over the whole record.
        - ``CYCLE`` specifies that measurements are taken on each cycle of the source.
        - ``ROTATION`` specifies that measurements are taken on a rotation of the source.
    """


class MeasurementMeasItemCustomlimitsfile(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CUSTOMLIMITSFile`` command.

    Description:
        - This command sets or queries the custom limits file path for custom harmonics standard.
          Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:CUSTOMLIMITSFile?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CUSTOMLIMITSFile?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:CUSTOMLIMITSFile value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CUSTOMLIMITSFile <QString>
        - MEASUrement:MEAS<x>:CUSTOMLIMITSFile?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<QString>`` specifies the location of limits file.
    """

    _WRAP_ARG_WITH_QUOTES = True


class MeasurementMeasItemCspacing(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CSPACing`` command.

    Description:
        - This command sets or queries the channel spacing for the measurement. Measurements are
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:CSPACing?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:CSPACing?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:CSPACing value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CSPACing <NR3>
        - MEASUrement:MEAS<x>:CSPACing?
        ```

    Info:
        - ``<NR3>`` is the channel spacing. The default value is 5.0e6 and the valid range is 1.0e3
          to 8.0e9.
    """


class MeasurementMeasItemCpwidth(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CPWIDTh`` command.

    Description:
        - This command sets or queries the channel power width for the measurement. Measurements are
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:CPWIDTh?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:CPWIDTh?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:CPWIDTh value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CPWIDTh <NR3>
        - MEASUrement:MEAS<x>:CPWIDTh?
        ```

    Info:
        - ``<NR3>`` is the channel power width. The default value is 10.0e6 and the valid range is
          1.0e3 to 8.0e9.
    """


class MeasurementMeasItemCover(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:COVer`` command.

    Description:
        - This command sets or queries the Calculate Over for the Power Quality measurement.
          Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:COVer?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:COVer?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:COVer value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:COVer {FFREQuency|AFREQuencies}
        - MEASUrement:MEAS<x>:COVer?
        ```

    Info:
        - ``FFREQuency`` sets Calculate Power Quality measurement.
        - ``AFREQuencies`` sets Calculate Power Quality measurement for all frequencies.
    """


class MeasurementMeasItemCommonmodeSources(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:COMMONMode:SOURCEs`` command.

    Description:
        - This command sets or queries the number of sources for the measurement when the
          measurement type is AC common mode. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:COMMONMode:SOURCEs?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:COMMONMode:SOURCEs?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:COMMONMode:SOURCEs value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:COMMONMode:SOURCEs {SINGLE|DOUBLE}
        - MEASUrement:MEAS<x>:COMMONMode:SOURCEs?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``SINGLE`` specifies a single source.
        - ``DOUBLE`` specifies double sources.
    """


class MeasurementMeasItemCommonmodeFiltersState(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:COMMONMode:FILTers:STATE`` command.

    Description:
        - This command sets or queries whether a filter is used for the measurement when the
          measurement type is AC common mode. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:COMMONMode:FILTers:STATE?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:COMMONMode:FILTers:STATE?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:COMMONMode:FILTers:STATE value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:COMMONMode:FILTers:STATE {ON|OFF|1|0}
        - MEASUrement:MEAS<x>:COMMONMode:FILTers:STATE?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``OFF`` turns the filter off.
        - ``ON`` turns the filter on.
        - ``0`` turns the filter off.
        - ``1`` turns the filter on.
    """


class MeasurementMeasItemCommonmodeFilters(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:COMMONMode:FILTers`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:COMMONMode:FILTers?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:COMMONMode:FILTers?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.state``: The ``MEASUrement:MEAS<x>:COMMONMode:FILTers:STATE`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._state = MeasurementMeasItemCommonmodeFiltersState(device, f"{self._cmd_syntax}:STATE")

    @property
    def state(self) -> MeasurementMeasItemCommonmodeFiltersState:
        """Return the ``MEASUrement:MEAS<x>:COMMONMode:FILTers:STATE`` command.

        Description:
            - This command sets or queries whether a filter is used for the measurement when the
              measurement type is AC common mode. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:COMMONMode:FILTers:STATE?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:COMMONMode:FILTers:STATE?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:COMMONMode:FILTers:STATE value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:COMMONMode:FILTers:STATE {ON|OFF|1|0}
            - MEASUrement:MEAS<x>:COMMONMode:FILTers:STATE?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``OFF`` turns the filter off.
            - ``ON`` turns the filter on.
            - ``0`` turns the filter off.
            - ``1`` turns the filter on.
        """
        return self._state


class MeasurementMeasItemCommonmode(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:COMMONMode`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:COMMONMode?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:COMMONMode?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.filters``: The ``MEASUrement:MEAS<x>:COMMONMode:FILTers`` command tree.
        - ``.sources``: The ``MEASUrement:MEAS<x>:COMMONMode:SOURCEs`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._filters = MeasurementMeasItemCommonmodeFilters(device, f"{self._cmd_syntax}:FILTers")
        self._sources = MeasurementMeasItemCommonmodeSources(device, f"{self._cmd_syntax}:SOURCEs")

    @property
    def filters(self) -> MeasurementMeasItemCommonmodeFilters:
        """Return the ``MEASUrement:MEAS<x>:COMMONMode:FILTers`` command tree.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:COMMONMode:FILTers?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:COMMONMode:FILTers?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.state``: The ``MEASUrement:MEAS<x>:COMMONMode:FILTers:STATE`` command.
        """
        return self._filters

    @property
    def sources(self) -> MeasurementMeasItemCommonmodeSources:
        """Return the ``MEASUrement:MEAS<x>:COMMONMode:SOURCEs`` command.

        Description:
            - This command sets or queries the number of sources for the measurement when the
              measurement type is AC common mode. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:COMMONMode:SOURCEs?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:COMMONMode:SOURCEs?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:COMMONMode:SOURCEs value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:COMMONMode:SOURCEs {SINGLE|DOUBLE}
            - MEASUrement:MEAS<x>:COMMONMode:SOURCEs?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``SINGLE`` specifies a single source.
            - ``DOUBLE`` specifies double sources.
        """
        return self._sources


class MeasurementMeasItemClockrecoveryTdcompensation(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CLOCKRecovery:TDCOMPensation`` command.

    Description:
        - This command sets the PLL clock recovery loop feedback time-constants such that the actual
          transfer function matches closely to a mathematical filter polynomial. This will affect
          measurements whose : ``MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 0.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:TDCOMPensation?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:TDCOMPensation?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:TDCOMPensation value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CLOCKRecovery:TDCOMPensation {0|1}
        - MEASUrement:MEAS<x>:CLOCKRecovery:TDCOMPensation?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``0`` specifies automatic transition density compensation is off.
        - ``1`` specifies automatic transition density compensation is on.
    """


class MeasurementMeasItemClockrecoveryStandard(SCPICmdWrite):
    """The ``MEASUrement:MEAS<x>:CLOCKRecovery:STAndard`` command.

    Description:
        - This command sets or queries the communications standard when PLL clock recovery is used
          for the measurement. The measurement number is specified by x.

    Usage:
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:STAndard value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CLOCKRecovery:STAndard {CUSTom|ENET100|FW1394BS400B|FW1394BS800B|FW1394BS1600B|FBD1|FBD2|FBD3|FC133|FC266|FC531|FC1063|FC2125|FC4250|FC8500|ENET1000|IBA2500|IBA_GEN2|OC1|OC3|OC12|OC48|PCIE_GEN1|PCIE_GEN2|PCIE_GEN3|RIO125|RIO250|RIO3125|SAS15_NOSSC|SAS3_NOSSC|SAS6_NOSSC|SAS12_NOSSC|SAS15_SSC|SAS3_SSC|SAS6_SSC|SAS12_SSC|SATA_GEN1|SATA_GEN2|SATA_GEN3|USB3|XAUI|XAUI_GEN2}
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``CUSTom`` sets the standard to custom.
        - ``ENET100`` sets the standard to ENET100.
        - ``FW1394BS400B`` sets the standard to FW1394BS400B.
        - ``FW1394BS800B`` sets the standard to FW1394BS800B.
        - ``FW1394BS1600B`` sets the standard to FW1394BS1600B.
        - ``FBD1`` sets the standard to FBD1.
        - ``FBD2`` sets the standard to FBD2.
        - ``FBD3`` sets the standard to FBD3.
        - ``FC133`` sets the standard to FC133.
        - ``FC266`` sets the standard to FC266.
        - ``FC531`` sets the standard to FC531.
        - ``FC1063`` sets the standard to FC1063.
        - ``FC2125`` sets the standard to FC2125.
        - ``FC4250`` sets the standard to FC4250.
        - ``FC8500`` sets the standard to FC8500.
        - ``ENET1000`` sets the standard to ENET1000.
        - ``IBA2500`` sets the standard to IBA2500.
        - ``IBA_GEN2`` sets the standard to ``IBA_GEN2``.
        - ``OC1`` sets the standard to OC1.
        - ``OC3`` sets the standard to OC3.
        - ``OC12`` sets the standard to OC12.
        - ``OC48`` sets the standard to OC48.
        - ``PCIE_GEN1`` sets the standard to ``PCIE_GEN1``.
        - ``PCIE_GEN2`` sets the standard to ``PCIE_GEN2``.
        - ``PCIE_GEN3`` sets the standard to ``PCIE_GEN3``.
        - ``RIO125`` sets the standard to RIO125.
        - ``RIO250`` sets the standard to RIO250.
        - ``RIO3125`` sets the standard to RIO3125.
        - ``SAS15_NOSSC`` sets the standard to ``SAS15_NOSSC``.
        - ``SAS3_NOSSC`` sets the standard to ``SAS3_NOSSC``.
        - ``SAS6_NOSSC`` sets the standard to ``SAS6_NOSSC``.
        - ``SAS12_NOSSC`` sets the standard to ``SAS12_NOSSC``.
        - ``SAS15_SSC`` sets the standard to ``SAS15_SSC``.
        - ``SAS3_SSC`` sets the standard to ``SAS3_SSC``.
        - ``SAS6_SSC`` sets the standard to ``SAS6_SSC``.
        - ``SAS12_SSC`` sets the standard to ``SAS12_SSC``.
        - ``SATA_GEN1`` sets the standard to ``SATA_GEN1``.
        - ``SATA_GEN2`` sets the standard to ``SATA_GEN2``.
        - ``SATA_GEN3`` sets the standard to ``SATA_GEN3``.
        - ``USB3`` sets the standard to USB3.
        - ``XAUI`` sets the standard to XAUI.
        - ``XAUI_GEN2`` sets the standard to ``XAUI_GEN2``.
    """  # noqa: E501


class MeasurementMeasItemClockrecoveryNominaloffsetSelectiontype(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset:SELECTIONtype`` command.

    Description:
        - This command sets or queries the offset type used when explicit clock recovery is used for
          the measurement. The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset:SELECTIONtype?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset:SELECTIONtype?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset:SELECTIONtype value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset:SELECTIONtype {AUTO|MANUAL}
        - MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset:SELECTIONtype?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``AUTO`` automatically calculates the offset.
        - ``MANUAL`` allows the user to set the offset.
    """


class MeasurementMeasItemClockrecoveryNominaloffset(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset`` command.

    Description:
        - This command sets or queries the offset value used when explicit clock recovery is used
          for the measurement. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset <NR3>
        - MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the clock offset.

    Properties:
        - ``.selectiontype``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset:SELECTIONtype``
          command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._selectiontype = MeasurementMeasItemClockrecoveryNominaloffsetSelectiontype(
            device, f"{self._cmd_syntax}:SELECTIONtype"
        )

    @property
    def selectiontype(self) -> MeasurementMeasItemClockrecoveryNominaloffsetSelectiontype:
        """Return the ``MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset:SELECTIONtype`` command.

        Description:
            - This command sets or queries the offset type used when explicit clock recovery is used
              for the measurement. The measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset:SELECTIONtype?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset:SELECTIONtype?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset:SELECTIONtype value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset:SELECTIONtype {AUTO|MANUAL}
            - MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset:SELECTIONtype?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``AUTO`` automatically calculates the offset.
            - ``MANUAL`` allows the user to set the offset.
        """
        return self._selectiontype


class MeasurementMeasItemClockrecoveryModel(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CLOCKRecovery:MODel`` command.

    Description:
        - This command sets or queries the PLL clock recovery model used when PLL clock recovery is
          used for the measurement. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:CLOCKRecovery:MODel?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:MODel?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:MODel value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CLOCKRecovery:MODel TYPE<x>
        - MEASUrement:MEAS<x>:CLOCKRecovery:MODel?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``TYPE<x>`` set the clock recovery model type. Valid values are 1 or 2.
    """


class MeasurementMeasItemClockrecoveryMethod(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CLOCKRecovery:METHod`` command.

    Description:
        - This command sets or queries the clock recovery method for the measurement. Measurements
          are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:CLOCKRecovery:METHod?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:METHod?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:METHod value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CLOCKRecovery:METHod {PLL|CONSTANTCLOCK|EXPLICITCLOCK}
        - MEASUrement:MEAS<x>:CLOCKRecovery:METHod?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``PLL`` specifies a phase locked loop clock recovery method.
        - ``CONSTANTCLOCK`` specifies using a constant clock.
        - ``EXPLICITCLOCK`` specifies using an explicit clock.
    """


class MeasurementMeasItemClockrecoveryMeanautocalculate(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CLOCKRecovery:MEANAUTOCalculate`` command.

    Description:
        - This command sets or queries how often the clock is calculated when constant clock
          recovery is used for the measurement. The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:MEANAUTOCalculate?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:MEANAUTOCalculate?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:MEANAUTOCalculate value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CLOCKRecovery:MEANAUTOCalculate {FIRST|EVERY}
        - MEASUrement:MEAS<x>:CLOCKRecovery:MEANAUTOCalculate?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``FIRST`` calculates the clock on the first acquisition.
        - ``EVERY`` calculates the clock on every acquisition.
    """


class MeasurementMeasItemClockrecoveryLoopbandwidth(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CLOCKRecovery:LOOPBandwidth`` command.

    Description:
        - This command sets or queries the loop bandwidth used when PLL clock recovery is used for
          the measurement. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:LOOPBandwidth?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:LOOPBandwidth?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:LOOPBandwidth value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CLOCKRecovery:LOOPBandwidth <NR3>
        - MEASUrement:MEAS<x>:CLOCKRecovery:LOOPBandwidth?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the clock recovery loop bandwidth.
    """


class MeasurementMeasItemClockrecoveryJtfbandwidth(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CLOCKRecovery:JTFBandwidth`` command.

    Description:
        - This command sets or queries the JTF bandwidth used when PLL clock recovery is used for
          the measurement. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:JTFBandwidth?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:JTFBandwidth?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:JTFBandwidth value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CLOCKRecovery:JTFBandwidth <NR3>
        - MEASUrement:MEAS<x>:CLOCKRecovery:JTFBandwidth?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the clock recovery JTF bandwidth.
    """


class MeasurementMeasItemClockrecoveryGlobal(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` command.

    Description:
        - This command sets or queries the clock recovery settings global flag for the measurement.
          Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal {ON|OFF|1|0}
        - MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``OFF`` clock recovery settings are changed independently for each individual measurement.
        - ``ON`` applies global clock recovery settings to all the measurements' clock recovery
          settings.
        - ``0`` clock recovery settings are changed independently for each individual measurement.
        - ``1`` applies global clock recovery settings to all the measurements' clock recovery
          settings.
    """


class MeasurementMeasItemClockrecoveryExplicitclockmode(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CLOCKRecovery:EXPLICITCLOCKMODe`` command.

    Description:
        - This command sets or queries the explicit clock mode used when explicit clock recovery is
          used for the measurement. The measurement number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:EXPLICITCLOCKMODe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:EXPLICITCLOCKMODe?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:EXPLICITCLOCKMODe value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CLOCKRecovery:EXPLICITCLOCKMODe {EDGE|PLL}
        - MEASUrement:MEAS<x>:CLOCKRecovery:EXPLICITCLOCKMODe?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``EDGE`` specifies the clock edge.
        - ``PLL`` specifies the phase locked loop.
    """


class MeasurementMeasItemClockrecoveryDatarate(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CLOCKRecovery:DATARate`` command.

    Description:
        - This command sets or queries the nominal data bit rate when nominal data rate clock
          recovery is used for the measurement. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:DATARate?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:DATARate?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:DATARate value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CLOCKRecovery:DATARate <NR3>
        - MEASUrement:MEAS<x>:CLOCKRecovery:DATARate?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the value for the Nominal data rate.
    """


class MeasurementMeasItemClockrecoveryDatapath(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CLOCKRecovery:DATAPath`` command.

    Description:
        - This command sets or queries the file containing the data pattern used when known data
          pattern clock recovery is used for the measurement. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:DATAPath?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:DATAPath?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:DATAPath value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CLOCKRecovery:DATAPath <QString>
        - MEASUrement:MEAS<x>:CLOCKRecovery:DATAPath?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<QString>`` is the file containing the data pattern to be used for known data pattern
          clock recovery.
    """

    _WRAP_ARG_WITH_QUOTES = True


class MeasurementMeasItemClockrecoveryDamping(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CLOCKRecovery:DAMPing`` command.

    Description:
        - This command sets or queries the damping value used when PLL clock recovery is used for
          the measurement. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:CLOCKRecovery:DAMPing?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:DAMPing?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:DAMPing value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CLOCKRecovery:DAMPing <NR3>
        - MEASUrement:MEAS<x>:CLOCKRecovery:DAMPing?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the clock recovery damping value.
    """


class MeasurementMeasItemClockrecoveryConstclockmode(SCPICmdWrite):
    """The ``MEASUrement:MEAS<x>:CLOCKRecovery:CONSTCLOCKMODe`` command.

    Description:
        - This command sets or queries the constant clock mode used when constant clock recovery is
          used for the measurement. The measurement number is specified by x.

    Usage:
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:CONSTCLOCKMODe value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CLOCKRecovery:CONSTCLOCKMODe {MEAN|MEDian|FIXed}
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``MEAN`` specifies that clock recovery uses the mean of the clock signal as the clock
          frequency.
        - ``MEDian`` specifies that clock recovery uses the mode of the clock signal as the clock
          frequency.
        - ``FIXed`` specifies that clock recovery uses the value set by the user as the clock
          frequency.
    """


class MeasurementMeasItemClockrecoveryClockmultiplier(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKMultiplier`` command.

    Description:
        - This command sets or queries the clock multiplier used when explicit clock recovery is
          used for the measurement. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKMultiplier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKMultiplier?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKMultiplier value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKMultiplier <NR3>
        - MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKMultiplier?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the clock multiplier.
    """


class MeasurementMeasItemClockrecoveryClockfrequency(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKFrequency`` command.

    Description:
        - This command sets or queries the clock frequency used when fixed constant clock recovery
          is used for the measurement. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKFrequency?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKFrequency?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKFrequency value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKFrequency <NR3>
        - MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKFrequency?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the clock frequency.
    """


class MeasurementMeasItemClockrecoveryAdvancedMethod(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CLOCKRecovery:ADVanced:METHod`` command.

    Description:
        - This command sets or queries the advanced clock recovery method when advanced clock
          recovery is used for the measurement. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:ADVanced:METHod?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:ADVanced:METHod?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:ADVanced:METHod value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CLOCKRecovery:ADVanced:METHod {NONE|NOMinal|PATTern}
        - MEASUrement:MEAS<x>:CLOCKRecovery:ADVanced:METHod?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``NOMinal`` sets the advanced CRD method to Nominal Data Rate.
        - ``PATTern`` sets the advanced CDR method to use a Known Data Pattern.
        - ``NONE`` sets no advanced CRD method.
    """


class MeasurementMeasItemClockrecoveryAdvanced(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CLOCKRecovery:ADVanced`` command tree.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:ADVanced?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CLOCKRecovery:ADVanced?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.method``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:ADVanced:METHod`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._method = MeasurementMeasItemClockrecoveryAdvancedMethod(
            device, f"{self._cmd_syntax}:METHod"
        )

    @property
    def method(self) -> MeasurementMeasItemClockrecoveryAdvancedMethod:
        """Return the ``MEASUrement:MEAS<x>:CLOCKRecovery:ADVanced:METHod`` command.

        Description:
            - This command sets or queries the advanced clock recovery method when advanced clock
              recovery is used for the measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:ADVanced:METHod?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:ADVanced:METHod?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:ADVanced:METHod value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CLOCKRecovery:ADVanced:METHod {NONE|NOMinal|PATTern}
            - MEASUrement:MEAS<x>:CLOCKRecovery:ADVanced:METHod?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``NOMinal`` sets the advanced CRD method to Nominal Data Rate.
            - ``PATTern`` sets the advanced CDR method to use a Known Data Pattern.
            - ``NONE`` sets no advanced CRD method.
        """
        return self._method


#  pylint: disable=too-many-instance-attributes
class MeasurementMeasItemClockrecovery(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CLOCKRecovery`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:CLOCKRecovery?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:CLOCKRecovery?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.advanced``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:ADVanced`` command tree.
        - ``.clockfrequency``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKFrequency`` command.
        - ``.clockmultiplier``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKMultiplier`` command.
        - ``.constclockmode``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:CONSTCLOCKMODe`` command.
        - ``.damping``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:DAMPing`` command.
        - ``.datapath``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:DATAPath`` command.
        - ``.datarate``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:DATARate`` command.
        - ``.explicitclockmode``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:EXPLICITCLOCKMODe``
          command.
        - ``.global``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` command.
        - ``.jtfbandwidth``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:JTFBandwidth`` command.
        - ``.loopbandwidth``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:LOOPBandwidth`` command.
        - ``.meanautocalculate``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:MEANAUTOCalculate``
          command.
        - ``.method``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:METHod`` command.
        - ``.model``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:MODel`` command.
        - ``.nominaloffset``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset`` command.
        - ``.standard``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:STAndard`` command.
        - ``.tdcompensation``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:TDCOMPensation`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._advanced = MeasurementMeasItemClockrecoveryAdvanced(
            device, f"{self._cmd_syntax}:ADVanced"
        )
        self._clockfrequency = MeasurementMeasItemClockrecoveryClockfrequency(
            device, f"{self._cmd_syntax}:CLOCKFrequency"
        )
        self._clockmultiplier = MeasurementMeasItemClockrecoveryClockmultiplier(
            device, f"{self._cmd_syntax}:CLOCKMultiplier"
        )
        self._constclockmode = MeasurementMeasItemClockrecoveryConstclockmode(
            device, f"{self._cmd_syntax}:CONSTCLOCKMODe"
        )
        self._damping = MeasurementMeasItemClockrecoveryDamping(
            device, f"{self._cmd_syntax}:DAMPing"
        )
        self._datapath = MeasurementMeasItemClockrecoveryDatapath(
            device, f"{self._cmd_syntax}:DATAPath"
        )
        self._datarate = MeasurementMeasItemClockrecoveryDatarate(
            device, f"{self._cmd_syntax}:DATARate"
        )
        self._explicitclockmode = MeasurementMeasItemClockrecoveryExplicitclockmode(
            device, f"{self._cmd_syntax}:EXPLICITCLOCKMODe"
        )
        self._global = MeasurementMeasItemClockrecoveryGlobal(device, f"{self._cmd_syntax}:GLOBal")
        self._jtfbandwidth = MeasurementMeasItemClockrecoveryJtfbandwidth(
            device, f"{self._cmd_syntax}:JTFBandwidth"
        )
        self._loopbandwidth = MeasurementMeasItemClockrecoveryLoopbandwidth(
            device, f"{self._cmd_syntax}:LOOPBandwidth"
        )
        self._meanautocalculate = MeasurementMeasItemClockrecoveryMeanautocalculate(
            device, f"{self._cmd_syntax}:MEANAUTOCalculate"
        )
        self._method = MeasurementMeasItemClockrecoveryMethod(device, f"{self._cmd_syntax}:METHod")
        self._model = MeasurementMeasItemClockrecoveryModel(device, f"{self._cmd_syntax}:MODel")
        self._nominaloffset = MeasurementMeasItemClockrecoveryNominaloffset(
            device, f"{self._cmd_syntax}:NOMINALOFFset"
        )
        self._standard = MeasurementMeasItemClockrecoveryStandard(
            device, f"{self._cmd_syntax}:STAndard"
        )
        self._tdcompensation = MeasurementMeasItemClockrecoveryTdcompensation(
            device, f"{self._cmd_syntax}:TDCOMPensation"
        )

    @property
    def advanced(self) -> MeasurementMeasItemClockrecoveryAdvanced:
        """Return the ``MEASUrement:MEAS<x>:CLOCKRecovery:ADVanced`` command tree.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:ADVanced?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:ADVanced?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.method``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:ADVanced:METHod`` command.
        """
        return self._advanced

    @property
    def clockfrequency(self) -> MeasurementMeasItemClockrecoveryClockfrequency:
        """Return the ``MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKFrequency`` command.

        Description:
            - This command sets or queries the clock frequency used when fixed constant clock
              recovery is used for the measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKFrequency?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKFrequency?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKFrequency value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKFrequency <NR3>
            - MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKFrequency?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the clock frequency.
        """
        return self._clockfrequency

    @property
    def clockmultiplier(self) -> MeasurementMeasItemClockrecoveryClockmultiplier:
        """Return the ``MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKMultiplier`` command.

        Description:
            - This command sets or queries the clock multiplier used when explicit clock recovery is
              used for the measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKMultiplier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKMultiplier?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKMultiplier value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKMultiplier <NR3>
            - MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKMultiplier?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the clock multiplier.
        """
        return self._clockmultiplier

    @property
    def constclockmode(self) -> MeasurementMeasItemClockrecoveryConstclockmode:
        """Return the ``MEASUrement:MEAS<x>:CLOCKRecovery:CONSTCLOCKMODe`` command.

        Description:
            - This command sets or queries the constant clock mode used when constant clock recovery
              is used for the measurement. The measurement number is specified by x.

        Usage:
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:CONSTCLOCKMODe value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CLOCKRecovery:CONSTCLOCKMODe {MEAN|MEDian|FIXed}
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``MEAN`` specifies that clock recovery uses the mean of the clock signal as the clock
              frequency.
            - ``MEDian`` specifies that clock recovery uses the mode of the clock signal as the
              clock frequency.
            - ``FIXed`` specifies that clock recovery uses the value set by the user as the clock
              frequency.
        """
        return self._constclockmode

    @property
    def damping(self) -> MeasurementMeasItemClockrecoveryDamping:
        """Return the ``MEASUrement:MEAS<x>:CLOCKRecovery:DAMPing`` command.

        Description:
            - This command sets or queries the damping value used when PLL clock recovery is used
              for the measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:DAMPing?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:DAMPing?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:DAMPing value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CLOCKRecovery:DAMPing <NR3>
            - MEASUrement:MEAS<x>:CLOCKRecovery:DAMPing?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the clock recovery damping value.
        """
        return self._damping

    @property
    def datapath(self) -> MeasurementMeasItemClockrecoveryDatapath:
        """Return the ``MEASUrement:MEAS<x>:CLOCKRecovery:DATAPath`` command.

        Description:
            - This command sets or queries the file containing the data pattern used when known data
              pattern clock recovery is used for the measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:DATAPath?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:DATAPath?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:DATAPath value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CLOCKRecovery:DATAPath <QString>
            - MEASUrement:MEAS<x>:CLOCKRecovery:DATAPath?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<QString>`` is the file containing the data pattern to be used for known data
              pattern clock recovery.
        """
        return self._datapath

    @property
    def datarate(self) -> MeasurementMeasItemClockrecoveryDatarate:
        """Return the ``MEASUrement:MEAS<x>:CLOCKRecovery:DATARate`` command.

        Description:
            - This command sets or queries the nominal data bit rate when nominal data rate clock
              recovery is used for the measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:DATARate?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:DATARate?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:DATARate value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CLOCKRecovery:DATARate <NR3>
            - MEASUrement:MEAS<x>:CLOCKRecovery:DATARate?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the value for the Nominal data rate.
        """
        return self._datarate

    @property
    def explicitclockmode(self) -> MeasurementMeasItemClockrecoveryExplicitclockmode:
        """Return the ``MEASUrement:MEAS<x>:CLOCKRecovery:EXPLICITCLOCKMODe`` command.

        Description:
            - This command sets or queries the explicit clock mode used when explicit clock recovery
              is used for the measurement. The measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:EXPLICITCLOCKMODe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:EXPLICITCLOCKMODe?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:EXPLICITCLOCKMODe value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CLOCKRecovery:EXPLICITCLOCKMODe {EDGE|PLL}
            - MEASUrement:MEAS<x>:CLOCKRecovery:EXPLICITCLOCKMODe?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``EDGE`` specifies the clock edge.
            - ``PLL`` specifies the phase locked loop.
        """
        return self._explicitclockmode

    @property
    def global_(self) -> MeasurementMeasItemClockrecoveryGlobal:
        """Return the ``MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` command.

        Description:
            - This command sets or queries the clock recovery settings global flag for the
              measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal {ON|OFF|1|0}
            - MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``OFF`` clock recovery settings are changed independently for each individual
              measurement.
            - ``ON`` applies global clock recovery settings to all the measurements' clock recovery
              settings.
            - ``0`` clock recovery settings are changed independently for each individual
              measurement.
            - ``1`` applies global clock recovery settings to all the measurements' clock recovery
              settings.
        """
        return self._global

    @property
    def jtfbandwidth(self) -> MeasurementMeasItemClockrecoveryJtfbandwidth:
        """Return the ``MEASUrement:MEAS<x>:CLOCKRecovery:JTFBandwidth`` command.

        Description:
            - This command sets or queries the JTF bandwidth used when PLL clock recovery is used
              for the measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:JTFBandwidth?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:JTFBandwidth?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:JTFBandwidth value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CLOCKRecovery:JTFBandwidth <NR3>
            - MEASUrement:MEAS<x>:CLOCKRecovery:JTFBandwidth?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the clock recovery JTF bandwidth.
        """
        return self._jtfbandwidth

    @property
    def loopbandwidth(self) -> MeasurementMeasItemClockrecoveryLoopbandwidth:
        """Return the ``MEASUrement:MEAS<x>:CLOCKRecovery:LOOPBandwidth`` command.

        Description:
            - This command sets or queries the loop bandwidth used when PLL clock recovery is used
              for the measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:LOOPBandwidth?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:LOOPBandwidth?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:LOOPBandwidth value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CLOCKRecovery:LOOPBandwidth <NR3>
            - MEASUrement:MEAS<x>:CLOCKRecovery:LOOPBandwidth?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the clock recovery loop bandwidth.
        """
        return self._loopbandwidth

    @property
    def meanautocalculate(self) -> MeasurementMeasItemClockrecoveryMeanautocalculate:
        """Return the ``MEASUrement:MEAS<x>:CLOCKRecovery:MEANAUTOCalculate`` command.

        Description:
            - This command sets or queries how often the clock is calculated when constant clock
              recovery is used for the measurement. The measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:MEANAUTOCalculate?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:MEANAUTOCalculate?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:MEANAUTOCalculate value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CLOCKRecovery:MEANAUTOCalculate {FIRST|EVERY}
            - MEASUrement:MEAS<x>:CLOCKRecovery:MEANAUTOCalculate?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``FIRST`` calculates the clock on the first acquisition.
            - ``EVERY`` calculates the clock on every acquisition.
        """
        return self._meanautocalculate

    @property
    def method(self) -> MeasurementMeasItemClockrecoveryMethod:
        """Return the ``MEASUrement:MEAS<x>:CLOCKRecovery:METHod`` command.

        Description:
            - This command sets or queries the clock recovery method for the measurement.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:METHod?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:METHod?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:METHod value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CLOCKRecovery:METHod {PLL|CONSTANTCLOCK|EXPLICITCLOCK}
            - MEASUrement:MEAS<x>:CLOCKRecovery:METHod?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``PLL`` specifies a phase locked loop clock recovery method.
            - ``CONSTANTCLOCK`` specifies using a constant clock.
            - ``EXPLICITCLOCK`` specifies using an explicit clock.
        """
        return self._method

    @property
    def model(self) -> MeasurementMeasItemClockrecoveryModel:
        """Return the ``MEASUrement:MEAS<x>:CLOCKRecovery:MODel`` command.

        Description:
            - This command sets or queries the PLL clock recovery model used when PLL clock recovery
              is used for the measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:MODel?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:MODel?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:MODel value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CLOCKRecovery:MODel TYPE<x>
            - MEASUrement:MEAS<x>:CLOCKRecovery:MODel?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``TYPE<x>`` set the clock recovery model type. Valid values are 1 or 2.
        """
        return self._model

    @property
    def nominaloffset(self) -> MeasurementMeasItemClockrecoveryNominaloffset:
        """Return the ``MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset`` command.

        Description:
            - This command sets or queries the offset value used when explicit clock recovery is
              used for the measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset <NR3>
            - MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the clock offset.

        Sub-properties:
            - ``.selectiontype``: The
              ``MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset:SELECTIONtype`` command.
        """
        return self._nominaloffset

    @property
    def standard(self) -> MeasurementMeasItemClockrecoveryStandard:
        """Return the ``MEASUrement:MEAS<x>:CLOCKRecovery:STAndard`` command.

        Description:
            - This command sets or queries the communications standard when PLL clock recovery is
              used for the measurement. The measurement number is specified by x.

        Usage:
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:STAndard value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CLOCKRecovery:STAndard {CUSTom|ENET100|FW1394BS400B|FW1394BS800B|FW1394BS1600B|FBD1|FBD2|FBD3|FC133|FC266|FC531|FC1063|FC2125|FC4250|FC8500|ENET1000|IBA2500|IBA_GEN2|OC1|OC3|OC12|OC48|PCIE_GEN1|PCIE_GEN2|PCIE_GEN3|RIO125|RIO250|RIO3125|SAS15_NOSSC|SAS3_NOSSC|SAS6_NOSSC|SAS12_NOSSC|SAS15_SSC|SAS3_SSC|SAS6_SSC|SAS12_SSC|SATA_GEN1|SATA_GEN2|SATA_GEN3|USB3|XAUI|XAUI_GEN2}
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``CUSTom`` sets the standard to custom.
            - ``ENET100`` sets the standard to ENET100.
            - ``FW1394BS400B`` sets the standard to FW1394BS400B.
            - ``FW1394BS800B`` sets the standard to FW1394BS800B.
            - ``FW1394BS1600B`` sets the standard to FW1394BS1600B.
            - ``FBD1`` sets the standard to FBD1.
            - ``FBD2`` sets the standard to FBD2.
            - ``FBD3`` sets the standard to FBD3.
            - ``FC133`` sets the standard to FC133.
            - ``FC266`` sets the standard to FC266.
            - ``FC531`` sets the standard to FC531.
            - ``FC1063`` sets the standard to FC1063.
            - ``FC2125`` sets the standard to FC2125.
            - ``FC4250`` sets the standard to FC4250.
            - ``FC8500`` sets the standard to FC8500.
            - ``ENET1000`` sets the standard to ENET1000.
            - ``IBA2500`` sets the standard to IBA2500.
            - ``IBA_GEN2`` sets the standard to ``IBA_GEN2``.
            - ``OC1`` sets the standard to OC1.
            - ``OC3`` sets the standard to OC3.
            - ``OC12`` sets the standard to OC12.
            - ``OC48`` sets the standard to OC48.
            - ``PCIE_GEN1`` sets the standard to ``PCIE_GEN1``.
            - ``PCIE_GEN2`` sets the standard to ``PCIE_GEN2``.
            - ``PCIE_GEN3`` sets the standard to ``PCIE_GEN3``.
            - ``RIO125`` sets the standard to RIO125.
            - ``RIO250`` sets the standard to RIO250.
            - ``RIO3125`` sets the standard to RIO3125.
            - ``SAS15_NOSSC`` sets the standard to ``SAS15_NOSSC``.
            - ``SAS3_NOSSC`` sets the standard to ``SAS3_NOSSC``.
            - ``SAS6_NOSSC`` sets the standard to ``SAS6_NOSSC``.
            - ``SAS12_NOSSC`` sets the standard to ``SAS12_NOSSC``.
            - ``SAS15_SSC`` sets the standard to ``SAS15_SSC``.
            - ``SAS3_SSC`` sets the standard to ``SAS3_SSC``.
            - ``SAS6_SSC`` sets the standard to ``SAS6_SSC``.
            - ``SAS12_SSC`` sets the standard to ``SAS12_SSC``.
            - ``SATA_GEN1`` sets the standard to ``SATA_GEN1``.
            - ``SATA_GEN2`` sets the standard to ``SATA_GEN2``.
            - ``SATA_GEN3`` sets the standard to ``SATA_GEN3``.
            - ``USB3`` sets the standard to USB3.
            - ``XAUI`` sets the standard to XAUI.
            - ``XAUI_GEN2`` sets the standard to ``XAUI_GEN2``.
        """  # noqa: E501
        return self._standard

    @property
    def tdcompensation(self) -> MeasurementMeasItemClockrecoveryTdcompensation:
        """Return the ``MEASUrement:MEAS<x>:CLOCKRecovery:TDCOMPensation`` command.

        Description:
            - This command sets the PLL clock recovery loop feedback time-constants such that the
              actual transfer function matches closely to a mathematical filter polynomial. This
              will affect measurements whose : ``MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is
              set to 0.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:TDCOMPensation?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:TDCOMPensation?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery:TDCOMPensation value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CLOCKRecovery:TDCOMPensation {0|1}
            - MEASUrement:MEAS<x>:CLOCKRecovery:TDCOMPensation?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``0`` specifies automatic transition density compensation is off.
            - ``1`` specifies automatic transition density compensation is on.
        """
        return self._tdcompensation


class MeasurementMeasItemCfvalItem(ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CF<x>Val`` command.

    Description:
        - This command sets or returns the filter count for PSIJ measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:CF<x>Val?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:CF<x>Val?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:CF<x>Val value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CF<x>Val <NR3>
        - MEASUrement:MEAS<x>:CF<x>Val?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``CF<x>`` specifies the center frequency number.
        - ``<NR3>`` specifies the center frequency.
    """


class MeasurementMeasItemCcresultsCurrentacqStddev(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:STDDev`` command.

    Description:
        - This query-only command returns the standard deviation cycle-cycle for the specified
          measurement for the current acquisition. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:STDDev?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:STDDev?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:STDDev?
        ```
    """


class MeasurementMeasItemCcresultsCurrentacqPopulation(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:POPUlation`` command.

    Description:
        - This query-only command returns the population of the cycle-cycle statistics for the
          specified measurement for the current acquisition. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:POPUlation?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:POPUlation?`` query and raise an AssertionError
          if the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:POPUlation?
        ```
    """


class MeasurementMeasItemCcresultsCurrentacqPk2pk(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:PK2PK`` command.

    Description:
        - This query-only command returns the peak to peak cycle-cycle statistic for the specified
          measurement for the current acquisition. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:PK2PK?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:PK2PK?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:PK2PK?
        ```
    """


class MeasurementMeasItemCcresultsCurrentacqMinimum(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MINimum`` command.

    Description:
        - This query-only command returns the minimum cycle-cycle value for the specified
          measurement for the current acquisition. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MINimum?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MINimum?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MINimum?
        ```
    """


class MeasurementMeasItemCcresultsCurrentacqMean(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MEAN`` command.

    Description:
        - This query-only command returns the mean cycle-cycle value for the specified measurement
          for the current acquisition. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MEAN?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MEAN?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MEAN?
        ```
    """


class MeasurementMeasItemCcresultsCurrentacqMaximum(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MAXimum`` command.

    Description:
        - This query-only command returns the maximum cycle-cycle value for the specified
          measurement for the current acquisition. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MAXimum?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MAXimum?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MAXimum?
        ```
    """


class MeasurementMeasItemCcresultsCurrentacq(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.maximum``: The ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MAXimum`` command.
        - ``.mean``: The ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MEAN`` command.
        - ``.minimum``: The ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MINimum`` command.
        - ``.pk2pk``: The ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:PK2PK`` command.
        - ``.population``: The ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:POPUlation`` command.
        - ``.stddev``: The ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:STDDev`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._maximum = MeasurementMeasItemCcresultsCurrentacqMaximum(
            device, f"{self._cmd_syntax}:MAXimum"
        )
        self._mean = MeasurementMeasItemCcresultsCurrentacqMean(device, f"{self._cmd_syntax}:MEAN")
        self._minimum = MeasurementMeasItemCcresultsCurrentacqMinimum(
            device, f"{self._cmd_syntax}:MINimum"
        )
        self._pk2pk = MeasurementMeasItemCcresultsCurrentacqPk2pk(
            device, f"{self._cmd_syntax}:PK2PK"
        )
        self._population = MeasurementMeasItemCcresultsCurrentacqPopulation(
            device, f"{self._cmd_syntax}:POPUlation"
        )
        self._stddev = MeasurementMeasItemCcresultsCurrentacqStddev(
            device, f"{self._cmd_syntax}:STDDev"
        )

    @property
    def maximum(self) -> MeasurementMeasItemCcresultsCurrentacqMaximum:
        """Return the ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MAXimum`` command.

        Description:
            - This query-only command returns the maximum cycle-cycle value for the specified
              measurement for the current acquisition. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MAXimum?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MAXimum?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MAXimum?
            ```
        """
        return self._maximum

    @property
    def mean(self) -> MeasurementMeasItemCcresultsCurrentacqMean:
        """Return the ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MEAN`` command.

        Description:
            - This query-only command returns the mean cycle-cycle value for the specified
              measurement for the current acquisition. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MEAN?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MEAN?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MEAN?
            ```
        """
        return self._mean

    @property
    def minimum(self) -> MeasurementMeasItemCcresultsCurrentacqMinimum:
        """Return the ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MINimum`` command.

        Description:
            - This query-only command returns the minimum cycle-cycle value for the specified
              measurement for the current acquisition. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MINimum?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MINimum?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MINimum?
            ```
        """
        return self._minimum

    @property
    def pk2pk(self) -> MeasurementMeasItemCcresultsCurrentacqPk2pk:
        """Return the ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:PK2PK`` command.

        Description:
            - This query-only command returns the peak to peak cycle-cycle statistic for the
              specified measurement for the current acquisition. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:PK2PK?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:PK2PK?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:PK2PK?
            ```
        """
        return self._pk2pk

    @property
    def population(self) -> MeasurementMeasItemCcresultsCurrentacqPopulation:
        """Return the ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:POPUlation`` command.

        Description:
            - This query-only command returns the population of the cycle-cycle statistics for the
              specified measurement for the current acquisition. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:POPUlation?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:POPUlation?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:POPUlation?
            ```
        """
        return self._population

    @property
    def stddev(self) -> MeasurementMeasItemCcresultsCurrentacqStddev:
        """Return the ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:STDDev`` command.

        Description:
            - This query-only command returns the standard deviation cycle-cycle for the specified
              measurement for the current acquisition. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:STDDev?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:STDDev?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:STDDev?
            ```
        """
        return self._stddev


class MeasurementMeasItemCcresultsAllacqsStddev(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:STDDev`` command.

    Description:
        - This query-only command returns the standard deviation cycle-cycle for the specified
          measurement for all acquisitions. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:STDDev?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:STDDev?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:STDDev?
        ```
    """


class MeasurementMeasItemCcresultsAllacqsPopulation(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:POPUlation`` command.

    Description:
        - This query-only command returns the population of all cycle-cycle statistics for the
          specified measurement for all acquisitions accumulated since statistics were last reset.
          Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:POPUlation?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:POPUlation?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:POPUlation?
        ```
    """


class MeasurementMeasItemCcresultsAllacqsPk2pk(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:PK2PK`` command.

    Description:
        - This query-only command returns the peak to peak cycle-cycle statistic for the specified
          measurement for all acquisitions. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:PK2PK?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:PK2PK?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:PK2PK?
        ```
    """


class MeasurementMeasItemCcresultsAllacqsMinimum(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MINimum`` command.

    Description:
        - This query-only command returns the minimum cycle-cycle value for the specified
          measurement for all acquisitions. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MINimum?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MINimum?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MINimum?
        ```
    """


class MeasurementMeasItemCcresultsAllacqsMean(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MEAN`` command.

    Description:
        - This query-only command returns the mean cycle-cycle value for the specified measurement
          for all acquisitions. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MEAN?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MEAN?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MEAN?
        ```
    """


class MeasurementMeasItemCcresultsAllacqsMaximum(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MAXimum`` command.

    Description:
        - This query-only command returns the maximum cycle-cycle value for the specified
          measurement for all acquisitions. Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MAXimum?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MAXimum?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MAXimum?
        ```
    """


class MeasurementMeasItemCcresultsAllacqs(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.maximum``: The ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MAXimum`` command.
        - ``.mean``: The ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MEAN`` command.
        - ``.minimum``: The ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MINimum`` command.
        - ``.pk2pk``: The ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:PK2PK`` command.
        - ``.population``: The ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:POPUlation`` command.
        - ``.stddev``: The ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:STDDev`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._maximum = MeasurementMeasItemCcresultsAllacqsMaximum(
            device, f"{self._cmd_syntax}:MAXimum"
        )
        self._mean = MeasurementMeasItemCcresultsAllacqsMean(device, f"{self._cmd_syntax}:MEAN")
        self._minimum = MeasurementMeasItemCcresultsAllacqsMinimum(
            device, f"{self._cmd_syntax}:MINimum"
        )
        self._pk2pk = MeasurementMeasItemCcresultsAllacqsPk2pk(device, f"{self._cmd_syntax}:PK2PK")
        self._population = MeasurementMeasItemCcresultsAllacqsPopulation(
            device, f"{self._cmd_syntax}:POPUlation"
        )
        self._stddev = MeasurementMeasItemCcresultsAllacqsStddev(
            device, f"{self._cmd_syntax}:STDDev"
        )

    @property
    def maximum(self) -> MeasurementMeasItemCcresultsAllacqsMaximum:
        """Return the ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MAXimum`` command.

        Description:
            - This query-only command returns the maximum cycle-cycle value for the specified
              measurement for all acquisitions. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MAXimum?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MAXimum?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MAXimum?
            ```
        """
        return self._maximum

    @property
    def mean(self) -> MeasurementMeasItemCcresultsAllacqsMean:
        """Return the ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MEAN`` command.

        Description:
            - This query-only command returns the mean cycle-cycle value for the specified
              measurement for all acquisitions. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MEAN?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MEAN?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MEAN?
            ```
        """
        return self._mean

    @property
    def minimum(self) -> MeasurementMeasItemCcresultsAllacqsMinimum:
        """Return the ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MINimum`` command.

        Description:
            - This query-only command returns the minimum cycle-cycle value for the specified
              measurement for all acquisitions. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MINimum?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MINimum?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MINimum?
            ```
        """
        return self._minimum

    @property
    def pk2pk(self) -> MeasurementMeasItemCcresultsAllacqsPk2pk:
        """Return the ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:PK2PK`` command.

        Description:
            - This query-only command returns the peak to peak cycle-cycle statistic for the
              specified measurement for all acquisitions. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:PK2PK?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:PK2PK?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:PK2PK?
            ```
        """
        return self._pk2pk

    @property
    def population(self) -> MeasurementMeasItemCcresultsAllacqsPopulation:
        """Return the ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:POPUlation`` command.

        Description:
            - This query-only command returns the population of all cycle-cycle statistics for the
              specified measurement for all acquisitions accumulated since statistics were last
              reset. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:POPUlation?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:POPUlation?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:POPUlation?
            ```
        """
        return self._population

    @property
    def stddev(self) -> MeasurementMeasItemCcresultsAllacqsStddev:
        """Return the ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:STDDev`` command.

        Description:
            - This query-only command returns the standard deviation cycle-cycle for the specified
              measurement for all acquisitions. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:STDDev?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:STDDev?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:STDDev?
            ```
        """
        return self._stddev


class MeasurementMeasItemCcresults(SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:CCRESUlts`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:CCRESUlts?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:CCRESUlts?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.allacqs``: The ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs`` command tree.
        - ``.currentacq``: The ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq`` command tree.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._allacqs = MeasurementMeasItemCcresultsAllacqs(device, f"{self._cmd_syntax}:ALLAcqs")
        self._currentacq = MeasurementMeasItemCcresultsCurrentacq(
            device, f"{self._cmd_syntax}:CURRentacq"
        )

    @property
    def allacqs(self) -> MeasurementMeasItemCcresultsAllacqs:
        """Return the ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.maximum``: The ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MAXimum`` command.
            - ``.mean``: The ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MEAN`` command.
            - ``.minimum``: The ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:MINimum`` command.
            - ``.pk2pk``: The ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:PK2PK`` command.
            - ``.population``: The ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:POPUlation`` command.
            - ``.stddev``: The ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs:STDDev`` command.
        """
        return self._allacqs

    @property
    def currentacq(self) -> MeasurementMeasItemCcresultsCurrentacq:
        """Return the ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq`` command tree.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.maximum``: The ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MAXimum`` command.
            - ``.mean``: The ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MEAN`` command.
            - ``.minimum``: The ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:MINimum`` command.
            - ``.pk2pk``: The ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:PK2PK`` command.
            - ``.population``: The ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:POPUlation`` command.
            - ``.stddev``: The ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq:STDDev`` command.
        """
        return self._currentacq


class MeasurementMeasItemBvoltage(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:BVOLTage`` command.

    Description:
        - This command sets or returns the bias voltage for WBG measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:BVOLTage?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:BVOLTage?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:BVOLTage value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:BVOLTage <NR3>
        - MEASUrement:MEAS<x>:BVOLTage?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` specifies the value for bias voltage of the WBG measurement.
    """


class MeasurementMeasItemBurstedgtype(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:BURSTEDGTYPe`` command.

    Description:
        - This command sets or queries the burst edge type for the measurement. Measurements are
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:BURSTEDGTYPe?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:BURSTEDGTYPe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:BURSTEDGTYPe value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:BURSTEDGTYPe {RISE|FALL}
        - MEASUrement:MEAS<x>:BURSTEDGTYPe?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``RISE`` specifies a burst with a rising edge.
        - ``FALL`` specifies a burst with a falling edge.
    """


class MeasurementMeasItemBmtype(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:BMTYPe`` command.

    Description:
        - Sets or queries the base measurement type for the measurement. Measurements are specified
          by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:BMTYPe?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:BMTYPe?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:BMTYPe value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:BMTYPe {TIE|PERIOD|NUInterval}
        - MEASUrement:MEAS<x>:BMTYPe?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``TIE`` specifies the base measurement type as TIE.
        - ``PERIOD`` specifies the base measurement type as PERIOD.
        - ``NUInterval`` specifies the base measurement type as NUInterval.
    """


class MeasurementMeasItemBittype(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:BITType`` command.

    Description:
        - This command sets or queries the bit type for the measurement. Measurements are specified
          by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:BITType?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:BITType?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:BITType value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:BITType {ALLBits|TRANSition|NONTRANsition}
        - MEASUrement:MEAS<x>:BITType?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``ALLBits`` specifies that the measurement returns results for all bits.
        - ``TRANSition`` specifies that the measurement returns results for transitions bit only.
        - ``NONTRANsition`` specifies that the measurement returns results for non-transition bits
          only.
    """


class MeasurementMeasItemBitstart(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:BITSTart`` command.

    Description:
        - This command sets or queries the bit start as a percentage of the unit interval.
          Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:BITSTart?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:BITSTart?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:BITSTart value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:BITSTart <NR3>
        - MEASUrement:MEAS<x>:BITSTart?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the bit start.
    """


class MeasurementMeasItemBitpcnt(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:BITPcnt`` command.

    Description:
        - This command sets or queries the bit center as a percentage of the unit interval.
          Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:BITPcnt?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:BITPcnt?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:BITPcnt value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:BITPcnt <NR3>
        - MEASUrement:MEAS<x>:BITPcnt?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the bit center percentage value to be measured for the bit type selected.
    """


class MeasurementMeasItemBitend(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:BITEnd`` command.

    Description:
        - This command sets or queries the bit end as a percentage of the unit interval.
          Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:BITEnd?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:BITEnd?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:BITEnd value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:BITEnd <NR3>
        - MEASUrement:MEAS<x>:BITEnd?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the bit end.
    """


class MeasurementMeasItemBitcfgmode(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:BITCfgmode`` command.

    Description:
        - This command sets or queries whether the measurement returns the mean or mode statistic
          result when the measurement type is bit amplitude/high/low. Measurements are specified by
          x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:BITCfgmode?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:BITCfgmode?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:BITCfgmode value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:BITCfgmode {MEAN|MODE}
        - MEASUrement:MEAS<x>:BITCfgmode?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``MEAN`` specifies that the measurement returns results for each bit.
        - ``MODE`` specifies that the measurement returns the mode of its results.
    """


class MeasurementMeasItemBitabsolute(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:BITAbsolute`` command.

    Description:
        - This command sets or queries the bit center as an absolute value.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:BITAbsolute?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:BITAbsolute?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:BITAbsolute value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:BITAbsolute <NR3>
        - MEASUrement:MEAS<x>:BITAbsolute?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the value for the bit center.
    """


class MeasurementMeasItemBin(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:BIN`` command.

    Description:
        - This command sets or queries the bin count for the measurement. Measurements are specified
          by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:BIN?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:BIN?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:BIN value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:BIN <NR3>
        - MEASUrement:MEAS<x>:BIN?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the bin count.
    """


class MeasurementMeasItemBerTargetber(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:BER:TARGETBER`` command.

    Description:
        - This command sets or queries the target BER value for the measurement. Measurements are
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:BER:TARGETBER?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:BER:TARGETBER?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MEAS<x>:BER:TARGETBER value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:BER:TARGETBER <NR3>
        - MEASUrement:MEAS<x>:BER:TARGETBER?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is the target BER value.
    """


class MeasurementMeasItemBer(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:BER`` command.

    Description:
        - This command sets or queries BER value for the measurement. Measurements are specified by
          x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:BER?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:BER?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:BER value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:BER <NR3>
        - MEASUrement:MEAS<x>:BER?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` is BER value for the measurement.

    Properties:
        - ``.targetber``: The ``MEASUrement:MEAS<x>:BER:TARGETBER`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._targetber = MeasurementMeasItemBerTargetber(device, f"{self._cmd_syntax}:TARGETBER")

    @property
    def targetber(self) -> MeasurementMeasItemBerTargetber:
        """Return the ``MEASUrement:MEAS<x>:BER:TARGETBER`` command.

        Description:
            - This command sets or queries the target BER value for the measurement. Measurements
              are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:BER:TARGETBER?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:BER:TARGETBER?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:BER:TARGETBER value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:BER:TARGETBER <NR3>
            - MEASUrement:MEAS<x>:BER:TARGETBER?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the target BER value.
        """
        return self._targetber


class MeasurementMeasItemBdelay(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:BDELay`` command.

    Description:
        - This command sets or returns the burst delay for WBG measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:BDELay?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:BDELay?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:BDELay value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:BDELay <NR3>
        - MEASUrement:MEAS<x>:BDELay?
        ```

    Info:
        - ``BDELay`` specifies the burst delay for WBG measurement. This can be set or queried when
          generator type is AFG31000.
    """


class MeasurementMeasItemBcount(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:BCOunt`` command.

    Description:
        - This command sets or returns the burst count for WBG measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:BCOunt?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:BCOunt?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:BCOunt value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:BCOunt <NR3>
        - MEASUrement:MEAS<x>:BCOunt?
        ```

    Info:
        - ``BCOunt`` specifies the burst count for WBG measurement.
    """


class MeasurementMeasItemAmethod(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:AMEThod`` command.

    Description:
        - This command sets or queries the analysis method used to compute eye width or eye height.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:AMEThod?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:AMEThod?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:AMEThod value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:AMEThod {PARAmetric|HISTogram}
        - MEASUrement:MEAS<x>:AMEThod?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``PARAmetric`` sets the analysis method to parametric.
        - ``HISTogram`` sets the analysis method to histogram.
    """


class MeasurementMeasItemAchannels(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:ACHANnels`` command.

    Description:
        - This command sets or queries the number of adjacent channels for the measurement.
          Measurements are specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:ACHANnels?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:ACHANnels?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:ACHANnels value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:ACHANnels <NR3>
        - MEASUrement:MEAS<x>:ACHANnels?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` sets the number of adjacent channels. The default value is 1 and the valid range
          is 1 to 5.
    """


class MeasurementMeasItemAbandwidth(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>:ABANdwidth`` command.

    Description:
        - This command sets or queries the analysis bandwidth for the measurement. Measurements are
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:ABANdwidth?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:ABANdwidth?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:ABANdwidth value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:MEAS<x>:ABANdwidth <NR3>
        - MEASUrement:MEAS<x>:ABANdwidth?
        ```

    Info:
        - ``MEAS<x>`` specifies the measurement number.
        - ``<NR3>`` sets the analysis bandwidth. The default value is 10.0e6 and the valid range is
          1.0e3 to 8.0e9.
    """


#  pylint: disable=too-many-instance-attributes,too-many-public-methods
class MeasurementMeasItem(ValidatedDynamicNumberCmd, SCPICmdRead):
    """The ``MEASUrement:MEAS<x>`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>?`` query and raise
          an AssertionError if the returned value does not match ``value``.

    Info:
        - ``MEAS<x>`` specifies the measurement number.

    Properties:
        - ``.abandwidth``: The ``MEASUrement:MEAS<x>:ABANdwidth`` command.
        - ``.achannels``: The ``MEASUrement:MEAS<x>:ACHANnels`` command.
        - ``.amethod``: The ``MEASUrement:MEAS<x>:AMEThod`` command.
        - ``.bcount``: The ``MEASUrement:MEAS<x>:BCOunt`` command.
        - ``.bdelay``: The ``MEASUrement:MEAS<x>:BDELay`` command.
        - ``.ber``: The ``MEASUrement:MEAS<x>:BER`` command.
        - ``.bin``: The ``MEASUrement:MEAS<x>:BIN`` command.
        - ``.bitabsolute``: The ``MEASUrement:MEAS<x>:BITAbsolute`` command.
        - ``.bitcfgmode``: The ``MEASUrement:MEAS<x>:BITCfgmode`` command.
        - ``.bitend``: The ``MEASUrement:MEAS<x>:BITEnd`` command.
        - ``.bitpcnt``: The ``MEASUrement:MEAS<x>:BITPcnt`` command.
        - ``.bitstart``: The ``MEASUrement:MEAS<x>:BITSTart`` command.
        - ``.bittype``: The ``MEASUrement:MEAS<x>:BITType`` command.
        - ``.bmtype``: The ``MEASUrement:MEAS<x>:BMTYPe`` command.
        - ``.burstedgtype``: The ``MEASUrement:MEAS<x>:BURSTEDGTYPe`` command.
        - ``.bvoltage``: The ``MEASUrement:MEAS<x>:BVOLTage`` command.
        - ``.ccresults``: The ``MEASUrement:MEAS<x>:CCRESUlts`` command tree.
        - ``.cfval``: The ``MEASUrement:MEAS<x>:CF<x>Val`` command.
        - ``.clockrecovery``: The ``MEASUrement:MEAS<x>:CLOCKRecovery`` command tree.
        - ``.commonmode``: The ``MEASUrement:MEAS<x>:COMMONMode`` command tree.
        - ``.cover``: The ``MEASUrement:MEAS<x>:COVer`` command.
        - ``.cpwidth``: The ``MEASUrement:MEAS<x>:CPWIDTh`` command.
        - ``.cspacing``: The ``MEASUrement:MEAS<x>:CSPACing`` command.
        - ``.customlimitsfile``: The ``MEASUrement:MEAS<x>:CUSTOMLIMITSFile`` command.
        - ``.cyclemode``: The ``MEASUrement:MEAS<x>:CYCLemode`` command.
        - ``.dbdown``: The ``MEASUrement:MEAS<x>:DBDown`` command.
        - ``.delay``: The ``MEASUrement:MEAS<x>:DELay`` command tree.
        - ``.displaystat``: The ``MEASUrement:MEAS<x>:DISPlaystat`` command tree.
        - ``.dmethod``: The ``MEASUrement:MEAS<x>:DMEThod`` command.
        - ``.dvds``: The ``MEASUrement:MEAS<x>:DVDS`` command.
        - ``.edge``: The ``MEASUrement:MEAS<x>:EDGE<x>`` command.
        - ``.edgeincre``: The ``MEASUrement:MEAS<x>:EDGEIncre`` command.
        - ``.edgequalone``: The ``MEASUrement:MEAS<x>:EDGEQUALONE`` command.
        - ``.edgequaltwo``: The ``MEASUrement:MEAS<x>:EDGEQUALTWO`` command.
        - ``.edgequalifier``: The ``MEASUrement:MEAS<x>:EDGEQUALifier`` command.
        - ``.edges``: The ``MEASUrement:MEAS<x>:EDGES`` command tree.
        - ``.eequal``: The ``MEASUrement:MEAS<x>:EEQUal`` command.
        - ``.einductance``: The ``MEASUrement:MEAS<x>:EINDuctance`` command.
        - ``.einterpolation``: The ``MEASUrement:MEAS<x>:EINTerpolation`` command.
        - ``.extenduis``: The ``MEASUrement:MEAS<x>:EXTENDuis`` command.
        - ``.eyerender``: The ``MEASUrement:MEAS<x>:EYERender`` command.
        - ``.failcount``: The ``MEASUrement:MEAS<x>:FAILCount`` command.
        - ``.fcount``: The ``MEASUrement:MEAS<x>:FCOunt`` command.
        - ``.filterrangefrom``: The ``MEASUrement:MEAS<x>:FILTERRANGEFROM`` command.
        - ``.filterrangeto``: The ``MEASUrement:MEAS<x>:FILTERRANGETO`` command.
        - ``.filters``: The ``MEASUrement:MEAS<x>:FILTers`` command tree.
        - ``.forder``: The ``MEASUrement:MEAS<x>:FORDer`` command.
        - ``.fparameter``: The ``MEASUrement:MEAS<x>:FPARAmeter`` command.
        - ``.freq``: The ``MEASUrement:MEAS<x>:FREQ`` command.
        - ``.fromedgesearchdirect``: The ``MEASUrement:MEAS<x>:FROMEDGESEARCHDIRect`` command.
        - ``.fromsymbol``: The ``MEASUrement:MEAS<x>:FROMSymbol`` command tree.
        - ``.fromedge``: The ``MEASUrement:MEAS<x>:FROMedge`` command.
        - ``.ftype``: The ``MEASUrement:MEAS<x>:FTYPe`` command.
        - ``.fundcurrent``: The ``MEASUrement:MEAS<x>:FUNDCURRent`` command.
        - ``.gating``: The ``MEASUrement:MEAS<x>:GATing`` command.
        - ``.globalref``: The ``MEASUrement:MEAS<x>:GLOBalref`` command.
        - ``.harmonicsclass``: The ``MEASUrement:MEAS<x>:HARMONICSCLass`` command.
        - ``.harmonicssource``: The ``MEASUrement:MEAS<x>:HARMONICSSOURce`` command.
        - ``.harmonicsstd``: The ``MEASUrement:MEAS<x>:HARMONICSStd`` command.
        - ``.harmonicsunits``: The ``MEASUrement:MEAS<x>:HARMONICSUNits`` command.
        - ``.highlevel``: The ``MEASUrement:MEAS<x>:HIGHLEVel`` command tree.
        - ``.highrefvoltage``: The ``MEASUrement:MEAS<x>:HIGHREFVoltage`` command.
        - ``.hlevel``: The ``MEASUrement:MEAS<x>:HLEVel`` command tree.
        - ``.htorque``: The ``MEASUrement:MEAS<x>:HTORque`` command.
        - ``.hvoltage``: The ``MEASUrement:MEAS<x>:HVOLtage`` command.
        - ``.idletime``: The ``MEASUrement:MEAS<x>:IDLETime`` command.
        - ``.inputlevel``: The ``MEASUrement:MEAS<x>:INPUTLEVel`` command.
        - ``.inputpower``: The ``MEASUrement:MEAS<x>:INPUTPOwer`` command.
        - ``.jittersummary``: The ``MEASUrement:MEAS<x>:JITTERSummary`` command tree.
        - ``.label``: The ``MEASUrement:MEAS<x>:LABel`` command.
        - ``.lineselected``: The ``MEASUrement:MEAS<x>:LINESelected`` command.
        - ``.lowrefvoltage``: The ``MEASUrement:MEAS<x>:LOWREFVoltage`` command.
        - ``.ltorque``: The ``MEASUrement:MEAS<x>:LTORque`` command.
        - ``.ltype``: The ``MEASUrement:MEAS<x>:LTYPe`` command.
        - ``.lunits``: The ``MEASUrement:MEAS<x>:LUNITs`` command.
        - ``.lvoltage``: The ``MEASUrement:MEAS<x>:LVOLtage`` command.
        - ``.matime``: The ``MEASUrement:MEAS<x>:MATime`` command.
        - ``.maxcurrent``: The ``MEASUrement:MEAS<x>:MAXCUrrent`` command.
        - ``.maxcycle``: The ``MEASUrement:MEAS<x>:MAXCycle`` command.
        - ``.maxg1voltage``: The ``MEASUrement:MEAS<x>:MAXG1Voltage`` command.
        - ``.maxg2voltage``: The ``MEASUrement:MEAS<x>:MAXG2Voltage`` command.
        - ``.maxgvoltage``: The ``MEASUrement:MEAS<x>:MAXGVoltage`` command.
        - ``.maxvoltage``: The ``MEASUrement:MEAS<x>:MAXVoltage`` command.
        - ``.measrange``: The ``MEASUrement:MEAS<x>:MEASRange`` command tree.
        - ``.mech``: The ``MEASUrement:MEAS<x>:MECH`` command tree.
        - ``.mincycle``: The ``MEASUrement:MEAS<x>:MINCycle`` command.
        - ``.nvalue``: The ``MEASUrement:MEAS<x>:NVALUe`` command.
        - ``.obwmethod``: The ``MEASUrement:MEAS<x>:OBWMethod`` command.
        - ``.oddeven``: The ``MEASUrement:MEAS<x>:ODDEVen`` command.
        - ``.ofilters``: The ``MEASUrement:MEAS<x>:OFILters`` command tree.
        - ``.osangle``: The ``MEASUrement:MEAS<x>:OSANgle`` command.
        - ``.outedgequalifier``: The ``MEASUrement:MEAS<x>:OUTEDGEQUALifier`` command.
        - ``.outfilters``: The ``MEASUrement:MEAS<x>:OUTFILTers`` command tree.
        - ``.outputvoltage``: The ``MEASUrement:MEAS<x>:OUTPUT<x>VOLTage`` command.
        - ``.passfailenabled``: The ``MEASUrement:MEAS<x>:PASSFAILENabled`` command.
        - ``.passfailhighlimit``: The ``MEASUrement:MEAS<x>:PASSFAILHIGHlimit`` command.
        - ``.passfaillimit``: The ``MEASUrement:MEAS<x>:PASSFAILLIMit`` command.
        - ``.passfaillowlimit``: The ``MEASUrement:MEAS<x>:PASSFAILLOWlimit`` command.
        - ``.passfailmargin``: The ``MEASUrement:MEAS<x>:PASSFAILMARgin`` command.
        - ``.passfailwhen``: The ``MEASUrement:MEAS<x>:PASSFAILWHEN`` command.
        - ``.patterndetection``: The ``MEASUrement:MEAS<x>:PATTERNDETECTION`` command.
        - ``.patternlength``: The ``MEASUrement:MEAS<x>:PATTERNLENgth`` command.
        - ``.patterntype``: The ``MEASUrement:MEAS<x>:PATTERNTYPe`` command.
        - ``.pcount``: The ``MEASUrement:MEAS<x>:PCOUNt`` command.
        - ``.perfreq``: The ``MEASUrement:MEAS<x>:PERFREQ`` command tree.
        - ``.pfrequency``: The ``MEASUrement:MEAS<x>:PFREquency`` command.
        - ``.polarity``: The ``MEASUrement:MEAS<x>:POLarity`` command.
        - ``.population``: The ``MEASUrement:MEAS<x>:POPUlation`` command tree.
        - ``.popower``: The ``MEASUrement:MEAS<x>:POPower`` command.
        - ``.powerfactor``: The ``MEASUrement:MEAS<x>:POWERFACtor`` command.
        - ``.pregion``: The ``MEASUrement:MEAS<x>:PREGion`` command.
        - ``.presistance``: The ``MEASUrement:MEAS<x>:PRESistance`` command.
        - ``.pthreshold``: The ``MEASUrement:MEAS<x>:PTHReshold`` command.
        - ``.pwidth``: The ``MEASUrement:MEAS<x>:PWIDth`` command.
        - ``.redge``: The ``MEASUrement:MEAS<x>:REDGe`` command.
        - ``.reflevels``: The ``MEASUrement:MEAS<x>:REFLevels`` command tree.
        - ``.reflevels1``: The ``MEASUrement:MEAS<x>:REFLevels1`` command tree.
        - ``.refmode``: The ``MEASUrement:MEAS<x>:REFMode`` command.
        - ``.refvoltageval``: The ``MEASUrement:MEAS<x>:REFVOLTAGE<x>Val`` command.
        - ``.refvoltage``: The ``MEASUrement:MEAS<x>:REFVoltage`` command.
        - ``.results``: The ``MEASUrement:MEAS<x>:RESUlts`` command tree.
        - ``.rfrequency``: The ``MEASUrement:MEAS<x>:RFREquency`` command.
        - ``.ripplefreqval``: The ``MEASUrement:MEAS<x>:RIPPLEFREQ<x>Val`` command.
        - ``.rrange``: The ``MEASUrement:MEAS<x>:RRANGE`` command.
        - ``.sequence``: The ``MEASUrement:MEAS<x>:SEQuence`` command.
        - ``.signalfrequency``: The ``MEASUrement:MEAS<x>:SIGNALFREQUEncy`` command.
        - ``.signaltype``: The ``MEASUrement:MEAS<x>:SIGNALType`` command.
        - ``.slabs``: The ``MEASUrement:MEAS<x>:SLABs`` command.
        - ``.slpct``: The ``MEASUrement:MEAS<x>:SLPCt`` command.
        - ``.sltype``: The ``MEASUrement:MEAS<x>:SLTYpe`` command.
        - ``.smoothingfilter``: The ``MEASUrement:MEAS<x>:SMOOTHINGFILTER`` command.
        - ``.source``: The ``MEASUrement:MEAS<x>:SOURCE`` command.
        - ``.source1``: The ``MEASUrement:MEAS<x>:SOUrce1`` command.
        - ``.spanval``: The ``MEASUrement:MEAS<x>:SPAN<x>Val`` command.
        - ``.srate``: The ``MEASUrement:MEAS<x>:SRATe`` command.
        - ``.srho``: The ``MEASUrement:MEAS<x>:SRHo`` command.
        - ``.ssc``: The ``MEASUrement:MEAS<x>:SSC`` command tree.
        - ``.ssdirection``: The ``MEASUrement:MEAS<x>:SSDirection`` command.
        - ``.status``: The ``MEASUrement:MEAS<x>:STATUS`` command.
        - ``.stlabs``: The ``MEASUrement:MEAS<x>:STLABs`` command.
        - ``.stlpct``: The ``MEASUrement:MEAS<x>:STLPct`` command.
        - ``.stltype``: The ``MEASUrement:MEAS<x>:STLTYpe`` command.
        - ``.stsdirection``: The ``MEASUrement:MEAS<x>:STSDirection`` command.
        - ``.stype``: The ``MEASUrement:MEAS<x>:STYPe`` command.
        - ``.subgroup``: The ``MEASUrement:MEAS<x>:SUBGROUP`` command tree.
        - ``.sunits``: The ``MEASUrement:MEAS<x>:SUNits`` command.
        - ``.tckavg``: The ``MEASUrement:MEAS<x>:TCKAVG`` command.
        - ``.tconstant``: The ``MEASUrement:MEAS<x>:TCONstant`` command.
        - ``.tdrpreset``: The ``MEASUrement:MEAS<x>:TDRPreset`` command.
        - ``.timingmode``: The ``MEASUrement:MEAS<x>:TIMINGMode`` command.
        - ``.tlevel``: The ``MEASUrement:MEAS<x>:TLEVel`` command.
        - ``.tmethod``: The ``MEASUrement:MEAS<x>:TMEThod`` command.
        - ``.toedgesearchdirect``: The ``MEASUrement:MEAS<x>:TOEDGESEARCHDIRect`` command.
        - ``.toedge``: The ``MEASUrement:MEAS<x>:TOEdge`` command.
        - ``.tosymbol``: The ``MEASUrement:MEAS<x>:TOSYmbol`` command tree.
        - ``.transition``: The ``MEASUrement:MEAS<x>:TRANSition`` command.
        - ``.type``: The ``MEASUrement:MEAS<x>:TYPe`` command.
        - ``.vlevel``: The ``MEASUrement:MEAS<x>:VLEVel`` command.
        - ``.waittime``: The ``MEASUrement:MEAS<x>:WAITTime`` command.
        - ``.wbg``: The ``MEASUrement:MEAS<x>:WBG`` command tree.
        - ``.width``: The ``MEASUrement:MEAS<x>:WIDTh`` command.
        - ``.windowlength``: The ``MEASUrement:MEAS<x>:WINDOWLENgth`` command.
        - ``.xunit``: The ``MEASUrement:MEAS<x>:XUNIT`` command.
        - ``.yunit``: The ``MEASUrement:MEAS<x>:YUNIT`` command.
    """

    # pylint: disable=too-many-statements
    def __init__(  # noqa: PLR0915
        self, device: Optional["PIControl"], cmd_syntax: str
    ) -> None:
        super().__init__(device, cmd_syntax)
        self._abandwidth = MeasurementMeasItemAbandwidth(device, f"{self._cmd_syntax}:ABANdwidth")
        self._achannels = MeasurementMeasItemAchannels(device, f"{self._cmd_syntax}:ACHANnels")
        self._amethod = MeasurementMeasItemAmethod(device, f"{self._cmd_syntax}:AMEThod")
        self._bcount = MeasurementMeasItemBcount(device, f"{self._cmd_syntax}:BCOunt")
        self._bdelay = MeasurementMeasItemBdelay(device, f"{self._cmd_syntax}:BDELay")
        self._ber = MeasurementMeasItemBer(device, f"{self._cmd_syntax}:BER")
        self._bin = MeasurementMeasItemBin(device, f"{self._cmd_syntax}:BIN")
        self._bitabsolute = MeasurementMeasItemBitabsolute(
            device, f"{self._cmd_syntax}:BITAbsolute"
        )
        self._bitcfgmode = MeasurementMeasItemBitcfgmode(device, f"{self._cmd_syntax}:BITCfgmode")
        self._bitend = MeasurementMeasItemBitend(device, f"{self._cmd_syntax}:BITEnd")
        self._bitpcnt = MeasurementMeasItemBitpcnt(device, f"{self._cmd_syntax}:BITPcnt")
        self._bitstart = MeasurementMeasItemBitstart(device, f"{self._cmd_syntax}:BITSTart")
        self._bittype = MeasurementMeasItemBittype(device, f"{self._cmd_syntax}:BITType")
        self._bmtype = MeasurementMeasItemBmtype(device, f"{self._cmd_syntax}:BMTYPe")
        self._burstedgtype = MeasurementMeasItemBurstedgtype(
            device, f"{self._cmd_syntax}:BURSTEDGTYPe"
        )
        self._bvoltage = MeasurementMeasItemBvoltage(device, f"{self._cmd_syntax}:BVOLTage")
        self._ccresults = MeasurementMeasItemCcresults(device, f"{self._cmd_syntax}:CCRESUlts")
        self._cfval: Dict[int, MeasurementMeasItemCfvalItem] = DefaultDictPassKeyToFactory(
            lambda x: MeasurementMeasItemCfvalItem(device, f"{self._cmd_syntax}:CF{x}Val")
        )
        self._clockrecovery = MeasurementMeasItemClockrecovery(
            device, f"{self._cmd_syntax}:CLOCKRecovery"
        )
        self._commonmode = MeasurementMeasItemCommonmode(device, f"{self._cmd_syntax}:COMMONMode")
        self._cover = MeasurementMeasItemCover(device, f"{self._cmd_syntax}:COVer")
        self._cpwidth = MeasurementMeasItemCpwidth(device, f"{self._cmd_syntax}:CPWIDTh")
        self._cspacing = MeasurementMeasItemCspacing(device, f"{self._cmd_syntax}:CSPACing")
        self._customlimitsfile = MeasurementMeasItemCustomlimitsfile(
            device, f"{self._cmd_syntax}:CUSTOMLIMITSFile"
        )
        self._cyclemode = MeasurementMeasItemCyclemode(device, f"{self._cmd_syntax}:CYCLemode")
        self._dbdown = MeasurementMeasItemDbdown(device, f"{self._cmd_syntax}:DBDown")
        self._delay = MeasurementMeasItemDelay(device, f"{self._cmd_syntax}:DELay")
        self._displaystat = MeasurementMeasItemDisplaystat(
            device, f"{self._cmd_syntax}:DISPlaystat"
        )
        self._dmethod = MeasurementMeasItemDmethod(device, f"{self._cmd_syntax}:DMEThod")
        self._dvds = MeasurementMeasItemDvds(device, f"{self._cmd_syntax}:DVDS")
        self._edge: Dict[int, MeasurementMeasItemEdgeItem] = DefaultDictPassKeyToFactory(
            lambda x: MeasurementMeasItemEdgeItem(device, f"{self._cmd_syntax}:EDGE{x}")
        )
        self._edgeincre = MeasurementMeasItemEdgeincre(device, f"{self._cmd_syntax}:EDGEIncre")
        self._edgequalone = MeasurementMeasItemEdgequalone(
            device, f"{self._cmd_syntax}:EDGEQUALONE"
        )
        self._edgequaltwo = MeasurementMeasItemEdgequaltwo(
            device, f"{self._cmd_syntax}:EDGEQUALTWO"
        )
        self._edgequalifier = MeasurementMeasItemEdgequalifier(
            device, f"{self._cmd_syntax}:EDGEQUALifier"
        )
        self._edges = MeasurementMeasItemEdges(device, f"{self._cmd_syntax}:EDGES")
        self._eequal = MeasurementMeasItemEequal(device, f"{self._cmd_syntax}:EEQUal")
        self._einductance = MeasurementMeasItemEinductance(
            device, f"{self._cmd_syntax}:EINDuctance"
        )
        self._einterpolation = MeasurementMeasItemEinterpolation(
            device, f"{self._cmd_syntax}:EINTerpolation"
        )
        self._extenduis = MeasurementMeasItemExtenduis(device, f"{self._cmd_syntax}:EXTENDuis")
        self._eyerender = MeasurementMeasItemEyerender(device, f"{self._cmd_syntax}:EYERender")
        self._failcount = MeasurementMeasItemFailcount(device, f"{self._cmd_syntax}:FAILCount")
        self._fcount = MeasurementMeasItemFcount(device, f"{self._cmd_syntax}:FCOunt")
        self._filterrangefrom = MeasurementMeasItemFilterrangefrom(
            device, f"{self._cmd_syntax}:FILTERRANGEFROM"
        )
        self._filterrangeto = MeasurementMeasItemFilterrangeto(
            device, f"{self._cmd_syntax}:FILTERRANGETO"
        )
        self._filters = MeasurementMeasItemFilters(device, f"{self._cmd_syntax}:FILTers")
        self._forder = MeasurementMeasItemForder(device, f"{self._cmd_syntax}:FORDer")
        self._fparameter = MeasurementMeasItemFparameter(device, f"{self._cmd_syntax}:FPARAmeter")
        self._freq = MeasurementMeasItemFreq(device, f"{self._cmd_syntax}:FREQ")
        self._fromedgesearchdirect = MeasurementMeasItemFromedgesearchdirect(
            device, f"{self._cmd_syntax}:FROMEDGESEARCHDIRect"
        )
        self._fromsymbol = MeasurementMeasItemFromsymbol(device, f"{self._cmd_syntax}:FROMSymbol")
        self._fromedge = MeasurementMeasItemFromedge(device, f"{self._cmd_syntax}:FROMedge")
        self._ftype = MeasurementMeasItemFtype(device, f"{self._cmd_syntax}:FTYPe")
        self._fundcurrent = MeasurementMeasItemFundcurrent(
            device, f"{self._cmd_syntax}:FUNDCURRent"
        )
        self._gating = MeasurementMeasItemGating(device, f"{self._cmd_syntax}:GATing")
        self._globalref = MeasurementMeasItemGlobalref(device, f"{self._cmd_syntax}:GLOBalref")
        self._harmonicsclass = MeasurementMeasItemHarmonicsclass(
            device, f"{self._cmd_syntax}:HARMONICSCLass"
        )
        self._harmonicssource = MeasurementMeasItemHarmonicssource(
            device, f"{self._cmd_syntax}:HARMONICSSOURce"
        )
        self._harmonicsstd = MeasurementMeasItemHarmonicsstd(
            device, f"{self._cmd_syntax}:HARMONICSStd"
        )
        self._harmonicsunits = MeasurementMeasItemHarmonicsunits(
            device, f"{self._cmd_syntax}:HARMONICSUNits"
        )
        self._highlevel = MeasurementMeasItemHighlevel(device, f"{self._cmd_syntax}:HIGHLEVel")
        self._highrefvoltage = MeasurementMeasItemHighrefvoltage(
            device, f"{self._cmd_syntax}:HIGHREFVoltage"
        )
        self._hlevel = MeasurementMeasItemHlevel(device, f"{self._cmd_syntax}:HLEVel")
        self._htorque = MeasurementMeasItemHtorque(device, f"{self._cmd_syntax}:HTORque")
        self._hvoltage = MeasurementMeasItemHvoltage(device, f"{self._cmd_syntax}:HVOLtage")
        self._idletime = MeasurementMeasItemIdletime(device, f"{self._cmd_syntax}:IDLETime")
        self._inputlevel = MeasurementMeasItemInputlevel(device, f"{self._cmd_syntax}:INPUTLEVel")
        self._inputpower = MeasurementMeasItemInputpower(device, f"{self._cmd_syntax}:INPUTPOwer")
        self._jittersummary = MeasurementMeasItemJittersummary(
            device, f"{self._cmd_syntax}:JITTERSummary"
        )
        self._label = MeasurementMeasItemLabel(device, f"{self._cmd_syntax}:LABel")
        self._lineselected = MeasurementMeasItemLineselected(
            device, f"{self._cmd_syntax}:LINESelected"
        )
        self._lowrefvoltage = MeasurementMeasItemLowrefvoltage(
            device, f"{self._cmd_syntax}:LOWREFVoltage"
        )
        self._ltorque = MeasurementMeasItemLtorque(device, f"{self._cmd_syntax}:LTORque")
        self._ltype = MeasurementMeasItemLtype(device, f"{self._cmd_syntax}:LTYPe")
        self._lunits = MeasurementMeasItemLunits(device, f"{self._cmd_syntax}:LUNITs")
        self._lvoltage = MeasurementMeasItemLvoltage(device, f"{self._cmd_syntax}:LVOLtage")
        self._matime = MeasurementMeasItemMatime(device, f"{self._cmd_syntax}:MATime")
        self._maxcurrent = MeasurementMeasItemMaxcurrent(device, f"{self._cmd_syntax}:MAXCUrrent")
        self._maxcycle = MeasurementMeasItemMaxcycle(device, f"{self._cmd_syntax}:MAXCycle")
        self._maxg1voltage = MeasurementMeasItemMaxg1voltage(
            device, f"{self._cmd_syntax}:MAXG1Voltage"
        )
        self._maxg2voltage = MeasurementMeasItemMaxg2voltage(
            device, f"{self._cmd_syntax}:MAXG2Voltage"
        )
        self._maxgvoltage = MeasurementMeasItemMaxgvoltage(
            device, f"{self._cmd_syntax}:MAXGVoltage"
        )
        self._maxvoltage = MeasurementMeasItemMaxvoltage(device, f"{self._cmd_syntax}:MAXVoltage")
        self._measrange = MeasurementMeasItemMeasrange(device, f"{self._cmd_syntax}:MEASRange")
        self._mech = MeasurementMeasItemMech(device, f"{self._cmd_syntax}:MECH")
        self._mincycle = MeasurementMeasItemMincycle(device, f"{self._cmd_syntax}:MINCycle")
        self._nvalue = MeasurementMeasItemNvalue(device, f"{self._cmd_syntax}:NVALUe")
        self._obwmethod = MeasurementMeasItemObwmethod(device, f"{self._cmd_syntax}:OBWMethod")
        self._oddeven = MeasurementMeasItemOddeven(device, f"{self._cmd_syntax}:ODDEVen")
        self._ofilters = MeasurementMeasItemOfilters(device, f"{self._cmd_syntax}:OFILters")
        self._osangle = MeasurementMeasItemOsangle(device, f"{self._cmd_syntax}:OSANgle")
        self._outedgequalifier = MeasurementMeasItemOutedgequalifier(
            device, f"{self._cmd_syntax}:OUTEDGEQUALifier"
        )
        self._outfilters = MeasurementMeasItemOutfilters(device, f"{self._cmd_syntax}:OUTFILTers")
        self._outputvoltage: Dict[int, MeasurementMeasItemOutputvoltageItem] = (
            DefaultDictPassKeyToFactory(
                lambda x: MeasurementMeasItemOutputvoltageItem(
                    device, f"{self._cmd_syntax}:OUTPUT{x}VOLTage"
                )
            )
        )
        self._passfailenabled = MeasurementMeasItemPassfailenabled(
            device, f"{self._cmd_syntax}:PASSFAILENabled"
        )
        self._passfailhighlimit = MeasurementMeasItemPassfailhighlimit(
            device, f"{self._cmd_syntax}:PASSFAILHIGHlimit"
        )
        self._passfaillimit = MeasurementMeasItemPassfaillimit(
            device, f"{self._cmd_syntax}:PASSFAILLIMit"
        )
        self._passfaillowlimit = MeasurementMeasItemPassfaillowlimit(
            device, f"{self._cmd_syntax}:PASSFAILLOWlimit"
        )
        self._passfailmargin = MeasurementMeasItemPassfailmargin(
            device, f"{self._cmd_syntax}:PASSFAILMARgin"
        )
        self._passfailwhen = MeasurementMeasItemPassfailwhen(
            device, f"{self._cmd_syntax}:PASSFAILWHEN"
        )
        self._patterndetection = MeasurementMeasItemPatterndetection(
            device, f"{self._cmd_syntax}:PATTERNDETECTION"
        )
        self._patternlength = MeasurementMeasItemPatternlength(
            device, f"{self._cmd_syntax}:PATTERNLENgth"
        )
        self._patterntype = MeasurementMeasItemPatterntype(
            device, f"{self._cmd_syntax}:PATTERNTYPe"
        )
        self._pcount = MeasurementMeasItemPcount(device, f"{self._cmd_syntax}:PCOUNt")
        self._perfreq = MeasurementMeasItemPerfreq(device, f"{self._cmd_syntax}:PERFREQ")
        self._pfrequency = MeasurementMeasItemPfrequency(device, f"{self._cmd_syntax}:PFREquency")
        self._polarity = MeasurementMeasItemPolarity(device, f"{self._cmd_syntax}:POLarity")
        self._population = MeasurementMeasItemPopulation(device, f"{self._cmd_syntax}:POPUlation")
        self._popower = MeasurementMeasItemPopower(device, f"{self._cmd_syntax}:POPower")
        self._powerfactor = MeasurementMeasItemPowerfactor(
            device, f"{self._cmd_syntax}:POWERFACtor"
        )
        self._pregion = MeasurementMeasItemPregion(device, f"{self._cmd_syntax}:PREGion")
        self._presistance = MeasurementMeasItemPresistance(
            device, f"{self._cmd_syntax}:PRESistance"
        )
        self._pthreshold = MeasurementMeasItemPthreshold(device, f"{self._cmd_syntax}:PTHReshold")
        self._pwidth = MeasurementMeasItemPwidth(device, f"{self._cmd_syntax}:PWIDth")
        self._redge = MeasurementMeasItemRedge(device, f"{self._cmd_syntax}:REDGe")
        self._reflevels = MeasurementMeasItemReflevels(device, f"{self._cmd_syntax}:REFLevels")
        self._reflevels1 = MeasurementMeasItemReflevels1(device, f"{self._cmd_syntax}:REFLevels1")
        self._refmode = MeasurementMeasItemRefmode(device, f"{self._cmd_syntax}:REFMode")
        self._refvoltageval: Dict[int, MeasurementMeasItemRefvoltagevalItem] = (
            DefaultDictPassKeyToFactory(
                lambda x: MeasurementMeasItemRefvoltagevalItem(
                    device, f"{self._cmd_syntax}:REFVOLTAGE{x}Val"
                )
            )
        )
        self._refvoltage = MeasurementMeasItemRefvoltage(device, f"{self._cmd_syntax}:REFVoltage")
        self._results = MeasurementMeasItemResults(device, f"{self._cmd_syntax}:RESUlts")
        self._rfrequency = MeasurementMeasItemRfrequency(device, f"{self._cmd_syntax}:RFREquency")
        self._ripplefreqval: Dict[int, MeasurementMeasItemRipplefreqvalItem] = (
            DefaultDictPassKeyToFactory(
                lambda x: MeasurementMeasItemRipplefreqvalItem(
                    device, f"{self._cmd_syntax}:RIPPLEFREQ{x}Val"
                )
            )
        )
        self._rrange = MeasurementMeasItemRrange(device, f"{self._cmd_syntax}:RRANGE")
        self._sequence = MeasurementMeasItemSequence(device, f"{self._cmd_syntax}:SEQuence")
        self._signalfrequency = MeasurementMeasItemSignalfrequency(
            device, f"{self._cmd_syntax}:SIGNALFREQUEncy"
        )
        self._signaltype = MeasurementMeasItemSignaltype(device, f"{self._cmd_syntax}:SIGNALType")
        self._slabs = MeasurementMeasItemSlabs(device, f"{self._cmd_syntax}:SLABs")
        self._slpct = MeasurementMeasItemSlpct(device, f"{self._cmd_syntax}:SLPCt")
        self._sltype = MeasurementMeasItemSltype(device, f"{self._cmd_syntax}:SLTYpe")
        self._smoothingfilter = MeasurementMeasItemSmoothingfilter(
            device, f"{self._cmd_syntax}:SMOOTHINGFILTER"
        )
        self._source = MeasurementMeasItemSource(device, f"{self._cmd_syntax}:SOURCE")
        self._source1 = MeasurementMeasItemSource1(device, f"{self._cmd_syntax}:SOUrce1")
        self._spanval: Dict[int, MeasurementMeasItemSpanvalItem] = DefaultDictPassKeyToFactory(
            lambda x: MeasurementMeasItemSpanvalItem(device, f"{self._cmd_syntax}:SPAN{x}Val")
        )
        self._srate = MeasurementMeasItemSrate(device, f"{self._cmd_syntax}:SRATe")
        self._srho = MeasurementMeasItemSrho(device, f"{self._cmd_syntax}:SRHo")
        self._ssc = MeasurementMeasItemSsc(device, f"{self._cmd_syntax}:SSC")
        self._ssdirection = MeasurementMeasItemSsdirection(
            device, f"{self._cmd_syntax}:SSDirection"
        )
        self._status = MeasurementMeasItemStatus(device, f"{self._cmd_syntax}:STATUS")
        self._stlabs = MeasurementMeasItemStlabs(device, f"{self._cmd_syntax}:STLABs")
        self._stlpct = MeasurementMeasItemStlpct(device, f"{self._cmd_syntax}:STLPct")
        self._stltype = MeasurementMeasItemStltype(device, f"{self._cmd_syntax}:STLTYpe")
        self._stsdirection = MeasurementMeasItemStsdirection(
            device, f"{self._cmd_syntax}:STSDirection"
        )
        self._stype = MeasurementMeasItemStype(device, f"{self._cmd_syntax}:STYPe")
        self._subgroup = MeasurementMeasItemSubgroup(device, f"{self._cmd_syntax}:SUBGROUP")
        self._sunits = MeasurementMeasItemSunits(device, f"{self._cmd_syntax}:SUNits")
        self._tckavg = MeasurementMeasItemTckavg(device, f"{self._cmd_syntax}:TCKAVG")
        self._tconstant = MeasurementMeasItemTconstant(device, f"{self._cmd_syntax}:TCONstant")
        self._tdrpreset = MeasurementMeasItemTdrpreset(device, f"{self._cmd_syntax}:TDRPreset")
        self._timingmode = MeasurementMeasItemTimingmode(device, f"{self._cmd_syntax}:TIMINGMode")
        self._tlevel = MeasurementMeasItemTlevel(device, f"{self._cmd_syntax}:TLEVel")
        self._tmethod = MeasurementMeasItemTmethod(device, f"{self._cmd_syntax}:TMEThod")
        self._toedgesearchdirect = MeasurementMeasItemToedgesearchdirect(
            device, f"{self._cmd_syntax}:TOEDGESEARCHDIRect"
        )
        self._toedge = MeasurementMeasItemToedge(device, f"{self._cmd_syntax}:TOEdge")
        self._tosymbol = MeasurementMeasItemTosymbol(device, f"{self._cmd_syntax}:TOSYmbol")
        self._transition = MeasurementMeasItemTransition(device, f"{self._cmd_syntax}:TRANSition")
        self._type = MeasurementMeasItemType(device, f"{self._cmd_syntax}:TYPe")
        self._vlevel = MeasurementMeasItemVlevel(device, f"{self._cmd_syntax}:VLEVel")
        self._waittime = MeasurementMeasItemWaittime(device, f"{self._cmd_syntax}:WAITTime")
        self._wbg = MeasurementMeasItemWbg(device, f"{self._cmd_syntax}:WBG")
        self._width = MeasurementMeasItemWidth(device, f"{self._cmd_syntax}:WIDTh")
        self._windowlength = MeasurementMeasItemWindowlength(
            device, f"{self._cmd_syntax}:WINDOWLENgth"
        )
        self._xunit = MeasurementMeasItemXunit(device, f"{self._cmd_syntax}:XUNIT")
        self._yunit = MeasurementMeasItemYunit(device, f"{self._cmd_syntax}:YUNIT")

    @property
    def abandwidth(self) -> MeasurementMeasItemAbandwidth:
        """Return the ``MEASUrement:MEAS<x>:ABANdwidth`` command.

        Description:
            - This command sets or queries the analysis bandwidth for the measurement. Measurements
              are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:ABANdwidth?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:ABANdwidth?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:ABANdwidth value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:ABANdwidth <NR3>
            - MEASUrement:MEAS<x>:ABANdwidth?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` sets the analysis bandwidth. The default value is 10.0e6 and the valid range
              is 1.0e3 to 8.0e9.
        """
        return self._abandwidth

    @property
    def achannels(self) -> MeasurementMeasItemAchannels:
        """Return the ``MEASUrement:MEAS<x>:ACHANnels`` command.

        Description:
            - This command sets or queries the number of adjacent channels for the measurement.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:ACHANnels?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:ACHANnels?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:ACHANnels value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:ACHANnels <NR3>
            - MEASUrement:MEAS<x>:ACHANnels?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` sets the number of adjacent channels. The default value is 1 and the valid
              range is 1 to 5.
        """
        return self._achannels

    @property
    def amethod(self) -> MeasurementMeasItemAmethod:
        """Return the ``MEASUrement:MEAS<x>:AMEThod`` command.

        Description:
            - This command sets or queries the analysis method used to compute eye width or eye
              height.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:AMEThod?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:AMEThod?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:AMEThod value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:AMEThod {PARAmetric|HISTogram}
            - MEASUrement:MEAS<x>:AMEThod?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``PARAmetric`` sets the analysis method to parametric.
            - ``HISTogram`` sets the analysis method to histogram.
        """
        return self._amethod

    @property
    def bcount(self) -> MeasurementMeasItemBcount:
        """Return the ``MEASUrement:MEAS<x>:BCOunt`` command.

        Description:
            - This command sets or returns the burst count for WBG measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:BCOunt?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:BCOunt?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:BCOunt value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:BCOunt <NR3>
            - MEASUrement:MEAS<x>:BCOunt?
            ```

        Info:
            - ``BCOunt`` specifies the burst count for WBG measurement.
        """
        return self._bcount

    @property
    def bdelay(self) -> MeasurementMeasItemBdelay:
        """Return the ``MEASUrement:MEAS<x>:BDELay`` command.

        Description:
            - This command sets or returns the burst delay for WBG measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:BDELay?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:BDELay?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:BDELay value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:BDELay <NR3>
            - MEASUrement:MEAS<x>:BDELay?
            ```

        Info:
            - ``BDELay`` specifies the burst delay for WBG measurement. This can be set or queried
              when generator type is AFG31000.
        """
        return self._bdelay

    @property
    def ber(self) -> MeasurementMeasItemBer:
        """Return the ``MEASUrement:MEAS<x>:BER`` command.

        Description:
            - This command sets or queries BER value for the measurement. Measurements are specified
              by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:BER?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:BER?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:BER value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:BER <NR3>
            - MEASUrement:MEAS<x>:BER?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is BER value for the measurement.

        Sub-properties:
            - ``.targetber``: The ``MEASUrement:MEAS<x>:BER:TARGETBER`` command.
        """
        return self._ber

    @property
    def bin(self) -> MeasurementMeasItemBin:
        """Return the ``MEASUrement:MEAS<x>:BIN`` command.

        Description:
            - This command sets or queries the bin count for the measurement. Measurements are
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:BIN?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:BIN?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:BIN value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:BIN <NR3>
            - MEASUrement:MEAS<x>:BIN?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the bin count.
        """
        return self._bin

    @property
    def bitabsolute(self) -> MeasurementMeasItemBitabsolute:
        """Return the ``MEASUrement:MEAS<x>:BITAbsolute`` command.

        Description:
            - This command sets or queries the bit center as an absolute value.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:BITAbsolute?``
              query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:BITAbsolute?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:BITAbsolute value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:BITAbsolute <NR3>
            - MEASUrement:MEAS<x>:BITAbsolute?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the value for the bit center.
        """
        return self._bitabsolute

    @property
    def bitcfgmode(self) -> MeasurementMeasItemBitcfgmode:
        """Return the ``MEASUrement:MEAS<x>:BITCfgmode`` command.

        Description:
            - This command sets or queries whether the measurement returns the mean or mode
              statistic result when the measurement type is bit amplitude/high/low. Measurements are
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:BITCfgmode?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:BITCfgmode?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:BITCfgmode value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:BITCfgmode {MEAN|MODE}
            - MEASUrement:MEAS<x>:BITCfgmode?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``MEAN`` specifies that the measurement returns results for each bit.
            - ``MODE`` specifies that the measurement returns the mode of its results.
        """
        return self._bitcfgmode

    @property
    def bitend(self) -> MeasurementMeasItemBitend:
        """Return the ``MEASUrement:MEAS<x>:BITEnd`` command.

        Description:
            - This command sets or queries the bit end as a percentage of the unit interval.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:BITEnd?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:BITEnd?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:BITEnd value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:BITEnd <NR3>
            - MEASUrement:MEAS<x>:BITEnd?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the bit end.
        """
        return self._bitend

    @property
    def bitpcnt(self) -> MeasurementMeasItemBitpcnt:
        """Return the ``MEASUrement:MEAS<x>:BITPcnt`` command.

        Description:
            - This command sets or queries the bit center as a percentage of the unit interval.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:BITPcnt?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:BITPcnt?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:BITPcnt value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:BITPcnt <NR3>
            - MEASUrement:MEAS<x>:BITPcnt?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the bit center percentage value to be measured for the bit type selected.
        """
        return self._bitpcnt

    @property
    def bitstart(self) -> MeasurementMeasItemBitstart:
        """Return the ``MEASUrement:MEAS<x>:BITSTart`` command.

        Description:
            - This command sets or queries the bit start as a percentage of the unit interval.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:BITSTart?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:BITSTart?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:BITSTart value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:BITSTart <NR3>
            - MEASUrement:MEAS<x>:BITSTart?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the bit start.
        """
        return self._bitstart

    @property
    def bittype(self) -> MeasurementMeasItemBittype:
        """Return the ``MEASUrement:MEAS<x>:BITType`` command.

        Description:
            - This command sets or queries the bit type for the measurement. Measurements are
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:BITType?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:BITType?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:BITType value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:BITType {ALLBits|TRANSition|NONTRANsition}
            - MEASUrement:MEAS<x>:BITType?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``ALLBits`` specifies that the measurement returns results for all bits.
            - ``TRANSition`` specifies that the measurement returns results for transitions bit
              only.
            - ``NONTRANsition`` specifies that the measurement returns results for non-transition
              bits only.
        """
        return self._bittype

    @property
    def bmtype(self) -> MeasurementMeasItemBmtype:
        """Return the ``MEASUrement:MEAS<x>:BMTYPe`` command.

        Description:
            - Sets or queries the base measurement type for the measurement. Measurements are
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:BMTYPe?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:BMTYPe?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:BMTYPe value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:BMTYPe {TIE|PERIOD|NUInterval}
            - MEASUrement:MEAS<x>:BMTYPe?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``TIE`` specifies the base measurement type as TIE.
            - ``PERIOD`` specifies the base measurement type as PERIOD.
            - ``NUInterval`` specifies the base measurement type as NUInterval.
        """
        return self._bmtype

    @property
    def burstedgtype(self) -> MeasurementMeasItemBurstedgtype:
        """Return the ``MEASUrement:MEAS<x>:BURSTEDGTYPe`` command.

        Description:
            - This command sets or queries the burst edge type for the measurement. Measurements are
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:BURSTEDGTYPe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:BURSTEDGTYPe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:BURSTEDGTYPe value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:BURSTEDGTYPe {RISE|FALL}
            - MEASUrement:MEAS<x>:BURSTEDGTYPe?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``RISE`` specifies a burst with a rising edge.
            - ``FALL`` specifies a burst with a falling edge.
        """
        return self._burstedgtype

    @property
    def bvoltage(self) -> MeasurementMeasItemBvoltage:
        """Return the ``MEASUrement:MEAS<x>:BVOLTage`` command.

        Description:
            - This command sets or returns the bias voltage for WBG measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:BVOLTage?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:BVOLTage?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:BVOLTage value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:BVOLTage <NR3>
            - MEASUrement:MEAS<x>:BVOLTage?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` specifies the value for bias voltage of the WBG measurement.
        """
        return self._bvoltage

    @property
    def ccresults(self) -> MeasurementMeasItemCcresults:
        """Return the ``MEASUrement:MEAS<x>:CCRESUlts`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:CCRESUlts?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:CCRESUlts?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.allacqs``: The ``MEASUrement:MEAS<x>:CCRESUlts:ALLAcqs`` command tree.
            - ``.currentacq``: The ``MEASUrement:MEAS<x>:CCRESUlts:CURRentacq`` command tree.
        """
        return self._ccresults

    @property
    def cfval(self) -> Dict[int, MeasurementMeasItemCfvalItem]:
        """Return the ``MEASUrement:MEAS<x>:CF<x>Val`` command.

        Description:
            - This command sets or returns the filter count for PSIJ measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:CF<x>Val?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:CF<x>Val?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:CF<x>Val value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CF<x>Val <NR3>
            - MEASUrement:MEAS<x>:CF<x>Val?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``CF<x>`` specifies the center frequency number.
            - ``<NR3>`` specifies the center frequency.
        """
        return self._cfval

    @property
    def clockrecovery(self) -> MeasurementMeasItemClockrecovery:
        """Return the ``MEASUrement:MEAS<x>:CLOCKRecovery`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:CLOCKRecovery?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CLOCKRecovery?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.advanced``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:ADVanced`` command tree.
            - ``.clockfrequency``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKFrequency`` command.
            - ``.clockmultiplier``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:CLOCKMultiplier``
              command.
            - ``.constclockmode``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:CONSTCLOCKMODe`` command.
            - ``.damping``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:DAMPing`` command.
            - ``.datapath``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:DATAPath`` command.
            - ``.datarate``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:DATARate`` command.
            - ``.explicitclockmode``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:EXPLICITCLOCKMODe``
              command.
            - ``.global``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` command.
            - ``.jtfbandwidth``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:JTFBandwidth`` command.
            - ``.loopbandwidth``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:LOOPBandwidth`` command.
            - ``.meanautocalculate``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:MEANAUTOCalculate``
              command.
            - ``.method``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:METHod`` command.
            - ``.model``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:MODel`` command.
            - ``.nominaloffset``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:NOMINALOFFset`` command.
            - ``.standard``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:STAndard`` command.
            - ``.tdcompensation``: The ``MEASUrement:MEAS<x>:CLOCKRecovery:TDCOMPensation`` command.
        """
        return self._clockrecovery

    @property
    def commonmode(self) -> MeasurementMeasItemCommonmode:
        """Return the ``MEASUrement:MEAS<x>:COMMONMode`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:COMMONMode?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:COMMONMode?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.filters``: The ``MEASUrement:MEAS<x>:COMMONMode:FILTers`` command tree.
            - ``.sources``: The ``MEASUrement:MEAS<x>:COMMONMode:SOURCEs`` command.
        """
        return self._commonmode

    @property
    def cover(self) -> MeasurementMeasItemCover:
        """Return the ``MEASUrement:MEAS<x>:COVer`` command.

        Description:
            - This command sets or queries the Calculate Over for the Power Quality measurement.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:COVer?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:COVer?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:COVer value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:COVer {FFREQuency|AFREQuencies}
            - MEASUrement:MEAS<x>:COVer?
            ```

        Info:
            - ``FFREQuency`` sets Calculate Power Quality measurement.
            - ``AFREQuencies`` sets Calculate Power Quality measurement for all frequencies.
        """
        return self._cover

    @property
    def cpwidth(self) -> MeasurementMeasItemCpwidth:
        """Return the ``MEASUrement:MEAS<x>:CPWIDTh`` command.

        Description:
            - This command sets or queries the channel power width for the measurement. Measurements
              are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:CPWIDTh?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:CPWIDTh?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:CPWIDTh value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CPWIDTh <NR3>
            - MEASUrement:MEAS<x>:CPWIDTh?
            ```

        Info:
            - ``<NR3>`` is the channel power width. The default value is 10.0e6 and the valid range
              is 1.0e3 to 8.0e9.
        """
        return self._cpwidth

    @property
    def cspacing(self) -> MeasurementMeasItemCspacing:
        """Return the ``MEASUrement:MEAS<x>:CSPACing`` command.

        Description:
            - This command sets or queries the channel spacing for the measurement. Measurements are
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:CSPACing?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:CSPACing?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:CSPACing value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CSPACing <NR3>
            - MEASUrement:MEAS<x>:CSPACing?
            ```

        Info:
            - ``<NR3>`` is the channel spacing. The default value is 5.0e6 and the valid range is
              1.0e3 to 8.0e9.
        """
        return self._cspacing

    @property
    def customlimitsfile(self) -> MeasurementMeasItemCustomlimitsfile:
        """Return the ``MEASUrement:MEAS<x>:CUSTOMLIMITSFile`` command.

        Description:
            - This command sets or queries the custom limits file path for custom harmonics
              standard. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:CUSTOMLIMITSFile?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:CUSTOMLIMITSFile?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:CUSTOMLIMITSFile value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CUSTOMLIMITSFile <QString>
            - MEASUrement:MEAS<x>:CUSTOMLIMITSFile?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<QString>`` specifies the location of limits file.
        """
        return self._customlimitsfile

    @property
    def cyclemode(self) -> MeasurementMeasItemCyclemode:
        """Return the ``MEASUrement:MEAS<x>:CYCLemode`` command.

        Description:
            - This command sets or queries the cycle mode for the measurement. Measurements are
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:CYCLemode?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:CYCLemode?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:CYCLemode value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:CYCLemode {RECORD|CYCLE|ROTATION}
            - MEASUrement:MEAS<x>:CYCLemode?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``RECORD`` specifies that the measurement is taken over the whole record.
            - ``CYCLE`` specifies that measurements are taken on each cycle of the source.
            - ``ROTATION`` specifies that measurements are taken on a rotation of the source.
        """
        return self._cyclemode

    @property
    def dbdown(self) -> MeasurementMeasItemDbdown:
        """Return the ``MEASUrement:MEAS<x>:DBDown`` command.

        Description:
            - This command sets or queries the dB down value for the measurement. Measurements are
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:DBDown?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:DBDown?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:DBDown value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:DBDown <NR3>
            - MEASUrement:MEAS<x>:DBDown?
            ```

        Info:
            - ``<NR3>`` sets the dB down value. The default value is -26 and the valid range is -80
              to -1.
        """
        return self._dbdown

    @property
    def delay(self) -> MeasurementMeasItemDelay:
        """Return the ``MEASUrement:MEAS<x>:DELay`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:DELay?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:DELay?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.edge``: The ``MEASUrement:MEAS<x>:DELay:EDGE<x>`` command.
        """
        return self._delay

    @property
    def displaystat(self) -> MeasurementMeasItemDisplaystat:
        """Return the ``MEASUrement:MEAS<x>:DISPlaystat`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:DISPlaystat?``
              query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:DISPlaystat?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.enable``: The ``MEASUrement:MEAS<x>:DISPlaystat:ENABle`` command.
        """
        return self._displaystat

    @property
    def dmethod(self) -> MeasurementMeasItemDmethod:
        """Return the ``MEASUrement:MEAS<x>:DMEThod`` command.

        Description:
            - This command sets or returns the deskew method for WBG measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:DMEThod?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:DMEThod?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:DMEThod value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:DMEThod {AUTO|MANual}
            - MEASUrement:MEAS<x>:DMEThod?
            ```

        Info:
            - ``AUTO`` or MANual specifies the deskew method set for WBG measurement.
        """
        return self._dmethod

    @property
    def dvds(self) -> MeasurementMeasItemDvds:
        """Return the ``MEASUrement:MEAS<x>:DVDS`` command.

        Description:
            - This command enabled or disables display state of the derived Vds waveform for RDS(on)
              measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:DVDS?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:DVDS?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:DVDS value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:DVDS {OFF|ON}
            - MEASUrement:MEAS<x>:DVDS?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``OFF`` specifies that derived Vds waveform display is disabled for RDS(on)
              measurement.
            - ``ON`` specifies that derived Vds waveform display is enabled for RDS(on) measurement.
        """
        return self._dvds

    @property
    def edge(self) -> Dict[int, MeasurementMeasItemEdgeItem]:
        """Return the ``MEASUrement:MEAS<x>:EDGE<x>`` command.

        Description:
            - This command sets or queries the type of the specified edge, rise or fall, for the
              measurement. The measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EDGE<x>?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:EDGE<x>?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:EDGE<x> value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:EDGE<x> {RISE|FALL|BOTH}
            - MEASUrement:MEAS<x>:EDGE<x>?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``RISE`` specifies the rising edge.
            - ``FALL`` specifies the falling edge.
            - ``BOTH`` specifies either the rising or falling edge.
        """
        return self._edge

    @property
    def edgeincre(self) -> MeasurementMeasItemEdgeincre:
        """Return the ``MEASUrement:MEAS<x>:EDGEIncre`` command.

        Description:
            - This command sets or queries the edge increment value for the measurement.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EDGEIncre?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:EDGEIncre?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:EDGEIncre value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:EDGEIncre <NR3>
            - MEASUrement:MEAS<x>:EDGEIncre?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the measurements edge increment value.
        """
        return self._edgeincre

    @property
    def edgequalone(self) -> MeasurementMeasItemEdgequalone:
        """Return the ``MEASUrement:MEAS<x>:EDGEQUALONE`` command.

        Description:
            - This command set or queries the measurement 1 input edge qualifier one source for
              Efficiency measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EDGEQUALONE?``
              query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:EDGEQUALONE?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:EDGEQUALONE value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:EDGEQUALONE <QString>
            - MEASUrement:MEAS<x>:EDGEQUALONE?
            ```

        Info:
            - ``MEAS<x>`` is the measurement number.
            - ``<QString>`` specifies the edge qualifier source at input configuration.
        """
        return self._edgequalone

    @property
    def edgequaltwo(self) -> MeasurementMeasItemEdgequaltwo:
        """Return the ``MEASUrement:MEAS<x>:EDGEQUALTWO`` command.

        Description:
            - This command sets or queries the measurement 1 output edge qualifier two source for
              Efficiency measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EDGEQUALTWO?``
              query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:EDGEQUALTWO?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:EDGEQUALTWO value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:EDGEQUALTWO <QString>
            - MEASUrement:MEAS<x>:EDGEQUALTWO?
            ```

        Info:
            - ``MEAS<x>`` is the measurement number.
            - ``<QString>`` specifies the edge qualifier source at output configuration.
        """
        return self._edgequaltwo

    @property
    def edgequalifier(self) -> MeasurementMeasItemEdgequalifier:
        """Return the ``MEASUrement:MEAS<x>:EDGEQUALifier`` command.

        Description:
            - This command sets or queries the edge qualifier source.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EDGEQUALifier?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:EDGEQUALifier?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:EDGEQUALifier value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:EDGEQUALifier {CH<x>|MATH<x>|REF<x>}
            - MEASUrement:MEAS<x>:EDGEQUALifier?
            ```

        Info:
            - ``MEAS<x>`` is the measurement number.
            - ``CH<x>`` is the edge qualifier source channel.
            - ``MATH<x>`` is the edge qualifier source math waveform; <x> is ≥1.
            - ``REF<x>`` is the edge qualifier source reference waveform; <x> is ≥1.
        """
        return self._edgequalifier

    @property
    def edges(self) -> MeasurementMeasItemEdges:
        """Return the ``MEASUrement:MEAS<x>:EDGES`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EDGES?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:EDGES?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.fromlevel``: The ``MEASUrement:MEAS<x>:EDGES:FROMLevel`` command.
            - ``.level``: The ``MEASUrement:MEAS<x>:EDGES:LEVel`` command.
            - ``.lowerfrequency``: The ``MEASUrement:MEAS<x>:EDGES:LOWERFREQuency`` command.
            - ``.n``: The ``MEASUrement:MEAS<x>:EDGES:N`` command.
            - ``.slewratemethod``: The ``MEASUrement:MEAS<x>:EDGES:SLEWRATEMethod`` command.
            - ``.tolevel``: The ``MEASUrement:MEAS<x>:EDGES:TOLevel`` command.
            - ``.upperfrequency``: The ``MEASUrement:MEAS<x>:EDGES:UPPERFREQuency`` command.
        """
        return self._edges

    @property
    def eequal(self) -> MeasurementMeasItemEequal:
        """Return the ``MEASUrement:MEAS<x>:EEQUal`` command.

        Description:
            - This command turns on or off the edge qualifier settings as input waveform to
              measurement. The measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EEQUal?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:EEQUal?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:EEQUal value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:EEQUal {ON|OFF}
            - MEASUrement:MEAS<x>:EEQUal?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``ON`` specifies the edge qualifier settings has been turned on.
            - ``OFF`` specifies the edge qualifier settings has been turned off.
        """
        return self._eequal

    @property
    def einductance(self) -> MeasurementMeasItemEinductance:
        """Return the ``MEASUrement:MEAS<x>:EINDuctance`` command.

        Description:
            - This command sets or returns the effective inductance for WBG measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EINDuctance?``
              query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:EINDuctance?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:EINDuctance value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:EINDuctance <NR3>
            - MEASUrement:MEAS<x>:EINDuctance?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` specifies the value for effective inductance of the WBG measurement.
        """
        return self._einductance

    @property
    def einterpolation(self) -> MeasurementMeasItemEinterpolation:
        """Return the ``MEASUrement:MEAS<x>:EINTerpolation`` command.

        Description:
            - This command sets or queries whether dot mode eye diagram is enabled.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EINTerpolation?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:EINTerpolation?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:EINTerpolation value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:EINTerpolation {ON|OFF}
            - MEASUrement:MEAS<x>:EINTerpolation?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``ON`` enables interpolation between samples.
            - ``OFF`` disables interpolation between samples.
        """
        return self._einterpolation

    @property
    def extenduis(self) -> MeasurementMeasItemExtenduis:
        """Return the ``MEASUrement:MEAS<x>:EXTENDuis`` command.

        Description:
            - This command sets or returns number of UIs considered for analysis of eye width or eye
              height measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EXTENDuis?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:EXTENDuis?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:EXTENDuis value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:EXTENDuis <NR1>
            - MEASUrement:MEAS<x>:EXTENDuis?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR1>`` is the number of UIs considered for analysis.
        """
        return self._extenduis

    @property
    def eyerender(self) -> MeasurementMeasItemEyerender:
        """Return the ``MEASUrement:MEAS<x>:EYERender`` command.

        Description:
            - This command sets or queries the eye rendering method.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:EYERender?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:EYERender?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:EYERender value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:EYERender {FAst|COMPlete}
            - MEASUrement:MEAS<x>:EYERender?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``FAst`` sets the eye rendering method to fast.
            - ``COMPlete`` sets the eye rendering method to complete.
        """
        return self._eyerender

    @property
    def failcount(self) -> MeasurementMeasItemFailcount:
        """Return the ``MEASUrement:MEAS<x>:FAILCount`` command.

        Description:
            - This command returns the number of measurement failures, if applicable, for the
              selected measure The measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FAILCount?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:FAILCount?``
              query and raise an AssertionError if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:FAILCount?
            ```
        """
        return self._failcount

    @property
    def fcount(self) -> MeasurementMeasItemFcount:
        """Return the ``MEASUrement:MEAS<x>:FCOunt`` command.

        Description:
            - This command sets or returns the filter count for PSIJ measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FCOunt?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:FCOunt?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:FCOunt value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:FCOunt <NR3>
            - MEASUrement:MEAS<x>:FCOunt?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` specifies the number of filters applied for PSIJ measurement.
        """
        return self._fcount

    @property
    def filterrangefrom(self) -> MeasurementMeasItemFilterrangefrom:
        """Return the ``MEASUrement:MEAS<x>:FILTERRANGEFROM`` command.

        Description:
            - This command sets or queries harmonics filter from order. Measurements are specified
              by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FILTERRANGEFROM?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:FILTERRANGEFROM?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:FILTERRANGEFROM value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:FILTERRANGEFROM <NR3>
            - MEASUrement:MEAS<x>:FILTERRANGEFROM?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` specifies the filter range from value. The default value is 1.
        """
        return self._filterrangefrom

    @property
    def filterrangeto(self) -> MeasurementMeasItemFilterrangeto:
        """Return the ``MEASUrement:MEAS<x>:FILTERRANGETO`` command.

        Description:
            - This command sets or queries harmonics filter to order. Measurements are specified by
              x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FILTERRANGETO?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:FILTERRANGETO?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:FILTERRANGETO value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:FILTERRANGETO <NR3>
            - MEASUrement:MEAS<x>:FILTERRANGETO?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` specifies the filter range to value. The default value is 50.
        """
        return self._filterrangeto

    @property
    def filters(self) -> MeasurementMeasItemFilters:
        """Return the ``MEASUrement:MEAS<x>:FILTers`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FILTers?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:FILTers?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.blankingtime``: The ``MEASUrement:MEAS<x>:FILTers:BLANKingtime`` command.
            - ``.global``: The ``MEASUrement:MEAS<x>:FILTers:GLOBal`` command.
            - ``.highpass``: The ``MEASUrement:MEAS<x>:FILTers:HIGHPass`` command tree.
            - ``.lowpass``: The ``MEASUrement:MEAS<x>:FILTers:LOWPass`` command tree.
            - ``.ramptime``: The ``MEASUrement:MEAS<x>:FILTers:RAMPtime`` command.
        """
        return self._filters

    @property
    def forder(self) -> MeasurementMeasItemForder:
        """Return the ``MEASUrement:MEAS<x>:FORDer`` command.

        Description:
            - This command sets or returns the differential filter order for WBG measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FORDer?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:FORDer?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:FORDer value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:FORDer <NR3>
            - MEASUrement:MEAS<x>:FORDer?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` specifies the differential filter order of the WBG measurement.
        """
        return self._forder

    @property
    def fparameter(self) -> MeasurementMeasItemFparameter:
        """Return the ``MEASUrement:MEAS<x>:FPARAmeter`` command.

        Description:
            - This command sets or queries the roll off factor for the RRC filter in the
              measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FPARAmeter?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:FPARAmeter?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:FPARAmeter value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:FPARAmeter <NR3>
            - MEASUrement:MEAS<x>:FPARAmeter?
            ```

        Info:
            - ``<NR3>`` sets the roll off factor. The default is 0.22. The valid range is from 0.001
              to 1.0.
        """
        return self._fparameter

    @property
    def freq(self) -> MeasurementMeasItemFreq:
        """Return the ``MEASUrement:MEAS<x>:FREQ`` command.

        Description:
            - This command sets or queries switching frequency for Switching Ripple measurement.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FREQ?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:FREQ?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:FREQ value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:FREQ <NR3>
            - MEASUrement:MEAS<x>:FREQ?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` specifies the switching frequency. The default is 100k Hz, The minimum is 50
              Hz, and the maximum is 1 GHz.
        """
        return self._freq

    @property
    def fromedgesearchdirect(self) -> MeasurementMeasItemFromedgesearchdirect:
        """Return the ``MEASUrement:MEAS<x>:FROMEDGESEARCHDIRect`` command.

        Description:
            - This command sets or queries the from edge search direction for the measurement.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:FROMEDGESEARCHDIRect?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:FROMEDGESEARCHDIRect?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:FROMEDGESEARCHDIRect value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:FROMEDGESEARCHDIRect {FORWard|BACKWard}
            - MEASUrement:MEAS<x>:FROMEDGESEARCHDIRect?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``FORWard`` specifies a forward search from the edge.
            - ``BACKWard`` specifies a backward search from the edge.
        """
        return self._fromedgesearchdirect

    @property
    def fromsymbol(self) -> MeasurementMeasItemFromsymbol:
        """Return the ``MEASUrement:MEAS<x>:FROMSymbol`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FROMSymbol?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:FROMSymbol?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.logic2source``: The ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC2SOUrce`` command.
            - ``.logic3source``: The ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC3SOUrce`` command.
            - ``.logic4source``: The ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC4SOUrce`` command.
            - ``.logic5source``: The ``MEASUrement:MEAS<x>:FROMSymbol:LOGIC5SOUrce`` command.
            - ``.measureat``: The ``MEASUrement:MEAS<x>:FROMSymbol:MEASUREAT`` command.
        """
        return self._fromsymbol

    @property
    def fromedge(self) -> MeasurementMeasItemFromedge:
        """Return the ``MEASUrement:MEAS<x>:FROMedge`` command.

        Description:
            - This command sets or queries the from edge type for the measurement. Measurements are
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FROMedge?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:FROMedge?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:FROMedge value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:FROMedge {RISe|FALL|BOTH}
            - MEASUrement:MEAS<x>:FROMedge?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``FALL`` specifies the falling edge of the waveform.
            - ``RISe`` specifies the rising edge of the waveform.
            - ``BOTH`` specifies both the rising and falling edges of the waveform.
        """
        return self._fromedge

    @property
    def ftype(self) -> MeasurementMeasItemFtype:
        """Return the ``MEASUrement:MEAS<x>:FTYPe`` command.

        Description:
            - This command sets or returns whether the RRC filter is enabled or not. Measurements
              are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FTYPe?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:FTYPe?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:FTYPe value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:FTYPe {True|False}
            - MEASUrement:MEAS<x>:FTYPe?
            ```

        Info:
            - ``True`` enables the RRC filter.
            - ``False`` disables the RRC filter.
        """
        return self._ftype

    @property
    def fundcurrent(self) -> MeasurementMeasItemFundcurrent:
        """Return the ``MEASUrement:MEAS<x>:FUNDCURRent`` command.

        Description:
            - This command sets or queries the fundamental current value for IEC-Class C type
              harmonics standard. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:FUNDCURRent?``
              query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:FUNDCURRent?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:FUNDCURRent value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:FUNDCURRent <NR3>
            - MEASUrement:MEAS<x>:FUNDCURRent?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` specifies the value for the fundamental current for class C harmonics
              standard.
        """
        return self._fundcurrent

    @property
    def gating(self) -> MeasurementMeasItemGating:
        """Return the ``MEASUrement:MEAS<x>:GATing`` command.

        Description:
            - This command sets or queries the gating type for the measurement. Measurements are
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:GATing?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:GATing?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:GATing value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:GATing {NONE|SCREEN|CURSor|LOGic|SEARch|TIMe}
            - MEASUrement:MEAS<x>:GATing?
            ```

        Info:
            - ``MEAS<x>`` is the measurement number for which to return a value.
            - ``NONE`` specifies measurements are taken across the entire record.
            - ``SCREEN`` turns on gating, using the left and right edges of the screen.
            - ``CURSor`` limits measurements to the portion of the waveform between the vertical bar
              cursors, even if they are off screen.
            - ``LOGic`` specifies that measurements are taken only when the logical state of other
              waveforms is true.
            - ``SEARch`` specifies that measurements are taken only where the results of a user
              specified search are found.
            - ``TIMe`` limits measurements to the portion of the waveform between the Start and End
              gate times.

        Sub-properties:
            - ``.active``: The ``MEASUrement:MEAS<x>:GATing:ACTive`` command.
            - ``.endtime``: The ``MEASUrement:MEAS<x>:GATing:ENDtime`` command.
            - ``.global``: The ``MEASUrement:MEAS<x>:GATing:GLOBal`` command.
            - ``.hysteresis``: The ``MEASUrement:MEAS<x>:GATing:HYSTeresis`` command.
            - ``.logicsource``: The ``MEASUrement:MEAS<x>:GATing:LOGICSource`` command.
            - ``.midref``: The ``MEASUrement:MEAS<x>:GATing:MIDRef`` command.
            - ``.searchsource``: The ``MEASUrement:MEAS<x>:GATing:SEARCHSource`` command.
            - ``.starttime``: The ``MEASUrement:MEAS<x>:GATing:STARTtime`` command.
        """
        return self._gating

    @property
    def globalref(self) -> MeasurementMeasItemGlobalref:
        """Return the ``MEASUrement:MEAS<x>:GLOBalref`` command.

        Description:
            - This command sets or queries the reference levels global flag for the measurement.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:GLOBalref?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:GLOBalref?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:GLOBalref value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:GLOBalref {ON|OFF|1|0}
            - MEASUrement:MEAS<x>:GLOBalref?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``OFF`` allows ref levels to be set separately for each measurement.
            - ``ON`` applies the same ref levels to all measurements.
            - ``0`` allows ref levels to be set separately for each measurement.
            - ``1`` applies the same ref levels to all measurements.
        """
        return self._globalref

    @property
    def harmonicsclass(self) -> MeasurementMeasItemHarmonicsclass:
        """Return the ``MEASUrement:MEAS<x>:HARMONICSCLass`` command.

        Description:
            - This command sets or queries the class type for the harmonics measurement.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:HARMONICSCLass?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:HARMONICSCLass?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:HARMONICSCLass value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:HARMONICSCLass {CLASSA|CLASSB|CLASSC|CLASSD}
            - MEASUrement:MEAS<x>:HARMONICSCLass?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``CLASSA`` specifies the class type to A.
            - ``CLASSB`` specifies the class type to B.
            - ``CLASSC`` specifies the class type to C.
            - ``CLASSD`` specifies the class type to D.
        """
        return self._harmonicsclass

    @property
    def harmonicssource(self) -> MeasurementMeasItemHarmonicssource:
        """Return the ``MEASUrement:MEAS<x>:HARMONICSSOURce`` command.

        Description:
            - This command sets or queries harmonics source. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:HARMONICSSOURce?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:HARMONICSSOURce?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:HARMONICSSOURce value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:HARMONICSSOURce {CURRENT|VOLTAGE}
            - MEASUrement:MEAS<x>:HARMONICSSOURce?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``CURRENT`` specifies current as the harmonics source.
            - ``VOLTAGE`` specifies voltage as the harmonics source.
        """
        return self._harmonicssource

    @property
    def harmonicsstd(self) -> MeasurementMeasItemHarmonicsstd:
        """Return the ``MEASUrement:MEAS<x>:HARMONICSStd`` command.

        Description:
            - This command sets or queries harmonics standard. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:HARMONICSStd?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:HARMONICSStd?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:HARMONICSStd value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:HARMONICSStd {NONE|IEC|IEEE519|CUSTOM|REVIEEE5192022}
            - MEASUrement:MEAS<x>:HARMONICSStd?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``NONE`` specifies none as the harmonics test standard.
            - ``IEC`` specifies IEC as the harmonics test standard.
            - ``IEEE519`` specifies IEEE519 as the harmonics test standard.
            - ``REVIEEE5192022`` specifies REVIEEE5192022 as the harmonics test standard.
            - ``CUSTOM`` specifies that there is a custom harmonics test standard.
        """
        return self._harmonicsstd

    @property
    def harmonicsunits(self) -> MeasurementMeasItemHarmonicsunits:
        """Return the ``MEASUrement:MEAS<x>:HARMONICSUNits`` command.

        Description:
            - This command sets or queries harmonics units. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:HARMONICSUNits?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:HARMONICSUNits?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:HARMONICSUNits value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:HARMONICSUNits {LOGARITHM|LINEAR}
            - MEASUrement:MEAS<x>:HARMONICSUNits?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``LOGARITHM`` specifies logarithmic as the harmonics units.
            - ``LINEAR`` specifies linear as the harmonics units.
        """
        return self._harmonicsunits

    @property
    def highlevel(self) -> MeasurementMeasItemHighlevel:
        """Return the ``MEASUrement:MEAS<x>:HIGHLEVel`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:HIGHLEVel?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:HIGHLEVel?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.configuration``: The ``MEASUrement:MEAS<x>:HIGHLEVel:CONFIGuration`` command.
            - ``.l2ltol2n``: The ``MEASUrement:MEAS<x>:HIGHLEVel:L2LTOL2N`` command.
            - ``.lineselected``: The ``MEASUrement:MEAS<x>:HIGHLEVel:LINESelected`` command.
            - ``.outl2ltol2n``: The ``MEASUrement:MEAS<x>:HIGHLEVel:OUTL2LTOL2N`` command.
            - ``.outlineselected``: The ``MEASUrement:MEAS<x>:HIGHLEVel:OUTLINESelected`` command.
            - ``.outwiring``: The ``MEASUrement:MEAS<x>:HIGHLEVel:OUTWIRing`` command.
            - ``.useglobal``: The ``MEASUrement:MEAS<x>:HIGHLEVel:USEGLOBAL`` command.
            - ``.wiring``: The ``MEASUrement:MEAS<x>:HIGHLEVel:WIRing`` command.
        """
        return self._highlevel

    @property
    def highrefvoltage(self) -> MeasurementMeasItemHighrefvoltage:
        """Return the ``MEASUrement:MEAS<x>:HIGHREFVoltage`` command.

        Description:
            - This command sets or queries the high reference voltage value for the 'time outside
              level' measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:HIGHREFVoltage?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:HIGHREFVoltage?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:HIGHREFVoltage value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:HIGHREFVoltage <NR3>
            - MEASUrement:MEAS<x>:HIGHREFVoltage?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the high reference voltage value for the selected configuration.
        """
        return self._highrefvoltage

    @property
    def hlevel(self) -> MeasurementMeasItemHlevel:
        """Return the ``MEASUrement:MEAS<x>:HLEVel`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:HLEVel?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:HLEVel?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.output``: The ``MEASUrement:MEAS<x>:HLEVel:OUTPut`` command tree.
        """
        return self._hlevel

    @property
    def htorque(self) -> MeasurementMeasItemHtorque:
        """Return the ``MEASUrement:MEAS<x>:HTORque`` command.

        Description:
            - This command sets or queries the measurement High Torque value.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:HTORque?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:HTORque?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:HTORque value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:HTORque <NR1>
            - MEASUrement:MEAS<x>:HTORque?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR1>`` specifies the High Torque value of the measurement in the range of 11 to
              10000000.
        """
        return self._htorque

    @property
    def hvoltage(self) -> MeasurementMeasItemHvoltage:
        """Return the ``MEASUrement:MEAS<x>:HVOLtage`` command.

        Description:
            - This command sets or queries the measurement Torque High Voltage value.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:HVOLtage?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:HVOLtage?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:HVOLtage value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:HVOLtage <NR1>
            - MEASUrement:MEAS<x>:HVOLtage?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR1>`` specifies the High Voltage value of the measurement in the range of 1 to
              100.
        """
        return self._hvoltage

    @property
    def idletime(self) -> MeasurementMeasItemIdletime:
        """Return the ``MEASUrement:MEAS<x>:IDLETime`` command.

        Description:
            - This command sets or queries the idle time for the measurement when the measurement
              type is burst width. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:IDLETime?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:IDLETime?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:IDLETime value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:IDLETime <NR3>
            - MEASUrement:MEAS<x>:IDLETime?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the idle time.
        """
        return self._idletime

    @property
    def inputlevel(self) -> MeasurementMeasItemInputlevel:
        """Return the ``MEASUrement:MEAS<x>:INPUTLEVel`` command.

        Description:
            - Sets or queries the input trigger voltage level.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:INPUTLEVel?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:INPUTLEVel?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:INPUTLEVel value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:INPUTLEVel <NR2>
            - MEASUrement:MEAS<x>:INPUTLEVel?
            ```

        Info:
            - ``MEAS<x>`` is the measurement number.
            - ``<NR2>`` is the trigger voltage, in the range of -500 V to +500 V.
        """
        return self._inputlevel

    @property
    def inputpower(self) -> MeasurementMeasItemInputpower:
        """Return the ``MEASUrement:MEAS<x>:INPUTPOwer`` command.

        Description:
            - This command sets or queries the input power value for IEC-Class C and Class D
              harmonics standard.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:INPUTPOwer?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:INPUTPOwer?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:INPUTPOwer value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:INPUTPOwer <NR3>
            - MEASUrement:MEAS<x>:INPUTPOwer?
            ```

        Info:
            - ``MEAS<x>`` is the measurement number.
            - ``<NR3>`` specifies the input power value for class C harmonics standard.
        """
        return self._inputpower

    @property
    def jittersummary(self) -> MeasurementMeasItemJittersummary:
        """Return the ``MEASUrement:MEAS<x>:JITTERSummary`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:JITTERSummary?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:JITTERSummary?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.dcd``: The ``MEASUrement:MEAS<x>:JITTERSummary:DCD`` command.
            - ``.ddj``: The ``MEASUrement:MEAS<x>:JITTERSummary:DDJ`` command.
            - ``.dj``: The ``MEASUrement:MEAS<x>:JITTERSummary:DJ`` command.
            - ``.djdd``: The ``MEASUrement:MEAS<x>:JITTERSummary:DJDD`` command.
            - ``.dr``: The ``MEASUrement:MEAS<x>:JITTERSummary:DR`` command.
            - ``.eyewidthber``: The ``MEASUrement:MEAS<x>:JITTERSummary:EYEWIDTHBER`` command.
            - ``.isi``: The ``MEASUrement:MEAS<x>:JITTERSummary:ISI`` command.
            - ``.npj``: The ``MEASUrement:MEAS<x>:JITTERSummary:NPJ`` command.
            - ``.pj``: The ``MEASUrement:MEAS<x>:JITTERSummary:PJ`` command.
            - ``.pl``: The ``MEASUrement:MEAS<x>:JITTERSummary:PL`` command.
            - ``.rj``: The ``MEASUrement:MEAS<x>:JITTERSummary:RJ`` command.
            - ``.rjdd``: The ``MEASUrement:MEAS<x>:JITTERSummary:RJDD`` command.
            - ``.tie``: The ``MEASUrement:MEAS<x>:JITTERSummary:TIE`` command.
            - ``.tjber``: The ``MEASUrement:MEAS<x>:JITTERSummary:TJBER`` command.
        """
        return self._jittersummary

    @property
    def label(self) -> MeasurementMeasItemLabel:
        """Return the ``MEASUrement:MEAS<x>:LABel`` command.

        Description:
            - This command sets or queries the label for the measurement. As the label can contain
              non 7-bit ASCII text, it is stored in Percent Encoding format. The measurement number
              is specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:LABel?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:LABel?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:LABel value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:LABel <QString>
            - MEASUrement:MEAS<x>:LABel?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<QString>`` is the measurement label.
        """
        return self._label

    @property
    def lineselected(self) -> MeasurementMeasItemLineselected:
        """Return the ``MEASUrement:MEAS<x>:LINESelected`` command.

        Description:
            - This command sets or queries selected lines for the measurement. The measurement
              number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:LINESelected?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:LINESelected?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:LINESelected value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:LINESelected {ABCB|ACBC|BACA|XYZY|XZYZ|YXZX}
            - MEASUrement:MEAS<x>:LINESelected?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``ABCB`` specifies the selected lines as ABCB.
            - ``ACBC`` specifies the selected lines as ACBC.
            - ``BACA`` specifies the selected lines as BACA.
            - ``XYZY`` specifies the selected lines as XYZY.
            - ``XZYZ`` specifies the selected lines as XZYZ.
            - ``YXZX`` specifies the selected lines as YXZX.
        """
        return self._lineselected

    @property
    def lowrefvoltage(self) -> MeasurementMeasItemLowrefvoltage:
        """Return the ``MEASUrement:MEAS<x>:LOWREFVoltage`` command.

        Description:
            - This command sets or queries the low reference voltage value for the 'time outside
              level' measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:LOWREFVoltage?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:LOWREFVoltage?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:LOWREFVoltage value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:LOWREFVoltage <NR3>
            - MEASUrement:MEAS<x>:LOWREFVoltage?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the low reference voltage value for the selected configuration.
        """
        return self._lowrefvoltage

    @property
    def ltorque(self) -> MeasurementMeasItemLtorque:
        """Return the ``MEASUrement:MEAS<x>:LTORque`` command.

        Description:
            - This command sets or queries the measurement Low Torque value.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:LTORque?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:LTORque?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:LTORque value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:LTORque <NR1>
            - MEASUrement:MEAS<x>:LTORque?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR1>`` specifies the Low Torque value of the measurement in the range of 0 to
              10000000.
        """
        return self._ltorque

    @property
    def ltype(self) -> MeasurementMeasItemLtype:
        """Return the ``MEASUrement:MEAS<x>:LTYPe`` command.

        Description:
            - This command sets or returns the value for the level type as auto or custom.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:LTYPe?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:LTYPe?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:LTYPe value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:LTYPe {AUTO|CUSTom}
            - MEASUrement:MEAS<x>:LTYPe?
            ```

        Info:
            - ``AUTO`` specifies the value for the level type as auto.
            - ``CUSTom`` specifies the value for the level type as custom.
        """
        return self._ltype

    @property
    def lunits(self) -> MeasurementMeasItemLunits:
        """Return the ``MEASUrement:MEAS<x>:LUNITs`` command.

        Description:
            - This command sets or returns the value for the level units as percentage or absolute.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:LUNITs?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:LUNITs?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:LUNITs value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:LUNITs {PERCent|ABSolute}
            - MEASUrement:MEAS<x>:LUNITs?
            ```

        Info:
            - ``PERCent`` specifies the value for the level units as percent.
            - ``ABSolute`` specifies the value for the level units as absolute.
        """
        return self._lunits

    @property
    def lvoltage(self) -> MeasurementMeasItemLvoltage:
        """Return the ``MEASUrement:MEAS<x>:LVOLtage`` command.

        Description:
            - This command sets or queries the measurement Torque Low Voltage value.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:LVOLtage?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:LVOLtage?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:LVOLtage value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:LVOLtage <NR1>
            - MEASUrement:MEAS<x>:LVOLtage?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR1>`` specifies the Low Voltage value of the measurement in the range of -100 to
              100.
        """
        return self._lvoltage

    @property
    def matime(self) -> MeasurementMeasItemMatime:
        """Return the ``MEASUrement:MEAS<x>:MATime`` command.

        Description:
            - This command sets or returns the maximum acquisition time for WBG measurement. This
              should be set only if AFG is not AFG31000.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MATime?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MATime?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:MATime value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:MATime <NR3>
            - MEASUrement:MEAS<x>:MATime?
            ```

        Info:
            - ``MATime`` specifies the maximum acquisition time for WBG measurement.
        """
        return self._matime

    @property
    def maxcurrent(self) -> MeasurementMeasItemMaxcurrent:
        """Return the ``MEASUrement:MEAS<x>:MAXCUrrent`` command.

        Description:
            - This command sets or returns the maximum current. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MAXCUrrent?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MAXCUrrent?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:MAXCUrrent value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:MAXCUrrent <NR3>
            - MEASUrement:MEAS<x>:MAXCUrrent?
            ```

        Info:
            - ``<NR3>`` specifies the maximum current.
        """
        return self._maxcurrent

    @property
    def maxcycle(self) -> MeasurementMeasItemMaxcycle:
        """Return the ``MEASUrement:MEAS<x>:MAXCycle`` command.

        Description:
            - This command sets or queries the maximum cycle value for the DDRTERRN and DDRTERRMN
              measurements.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MAXCycle?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MAXCycle?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:MAXCycle value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:MAXCycle <NR1>
            - MEASUrement:MEAS<x>:MAXCycle?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR1>`` is the maximum cycle range limit value in the range or 2 to 50.
        """
        return self._maxcycle

    @property
    def maxg1voltage(self) -> MeasurementMeasItemMaxg1voltage:
        """Return the ``MEASUrement:MEAS<x>:MAXG1Voltage`` command.

        Description:
            - This command sets or returns the maximum gate voltage 1 or 2 value for Tdt
              measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MAXG1Voltage?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:MAXG1Voltage?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:MAXG1Voltage value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:MAXG1Voltage <NR3>
            - MEASUrement:MEAS<x>:MAXG1Voltage?
            ```

        Info:
            - ``<NR3>`` specifies the maximum gate voltage.
        """
        return self._maxg1voltage

    @property
    def maxg2voltage(self) -> MeasurementMeasItemMaxg2voltage:
        """Return the ``MEASUrement:MEAS<x>:MAXG2Voltage`` command.

        Description:
            - This command sets or returns the maximum gate voltage 1 or 2 value for Tdt
              measurement. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MAXG2Voltage?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:MAXG2Voltage?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:MAXG2Voltage value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:MAXG2Voltage <NR3>
            - MEASUrement:MEAS<x>:MAXG2Voltage?
            ```

        Info:
            - ``<NR3>`` specifies the maximum gate voltage.
        """
        return self._maxg2voltage

    @property
    def maxgvoltage(self) -> MeasurementMeasItemMaxgvoltage:
        """Return the ``MEASUrement:MEAS<x>:MAXGVoltage`` command.

        Description:
            - This command sets or returns the maximum gate voltage. Measurements are specified by
              x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MAXGVoltage?``
              query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MAXGVoltage?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:MAXGVoltage value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:MAXGVoltage <NR3>
            - MEASUrement:MEAS<x>:MAXGVoltage?
            ```

        Info:
            - ``<NR3>`` specifies the maximum gate voltage.
        """
        return self._maxgvoltage

    @property
    def maxvoltage(self) -> MeasurementMeasItemMaxvoltage:
        """Return the ``MEASUrement:MEAS<x>:MAXVoltage`` command.

        Description:
            - Sets or queries the maximum input voltage. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MAXVoltage?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MAXVoltage?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:MAXVoltage value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:MAXVoltage <NR2>
            - MEASUrement:MEAS<x>:MAXVoltage?
            ```

        Info:
            - ``<NR2>`` is the maximum input voltage, in the range of -61 V to +61 V.
        """
        return self._maxvoltage

    @property
    def measrange(self) -> MeasurementMeasItemMeasrange:
        """Return the ``MEASUrement:MEAS<x>:MEASRange`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MEASRange?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MEASRange?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.global``: The ``MEASUrement:MEAS<x>:MEASRange:GLOBal`` command.
            - ``.max``: The ``MEASUrement:MEAS<x>:MEASRange:MAX`` command.
            - ``.min``: The ``MEASUrement:MEAS<x>:MEASRange:MIN`` command.
            - ``.state``: The ``MEASUrement:MEAS<x>:MEASRange:STATE`` command.
        """
        return self._measrange

    @property
    def mech(self) -> MeasurementMeasItemMech:
        """Return the ``MEASUrement:MEAS<x>:MECH`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MECH?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MECH?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.eindexz``: The ``MEASUrement:MEAS<x>:MECH:EINDexz`` command.
            - ``.gratio``: The ``MEASUrement:MEAS<x>:MECH:GRATio`` command.
            - ``.munits``: The ``MEASUrement:MEAS<x>:MECH:MUNits`` command.
            - ``.ppairs``: The ``MEASUrement:MEAS<x>:MECH:PPAirs`` command.
            - ``.pprotation``: The ``MEASUrement:MEAS<x>:MECH:PPRotation`` command.
            - ``.stype``: The ``MEASUrement:MEAS<x>:MECH:STYPe`` command.
        """
        return self._mech

    @property
    def mincycle(self) -> MeasurementMeasItemMincycle:
        """Return the ``MEASUrement:MEAS<x>:MINCycle`` command.

        Description:
            - This command sets or queries the minimum cycle value for the DDRTERRN and DDRTERRMN
              measurements.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:MINCycle?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:MINCycle?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:MINCycle value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:MINCycle <NR1>
            - MEASUrement:MEAS<x>:MINCycle?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR1>`` is the minimum cycle range limit value in the range or 2 to 50.
        """
        return self._mincycle

    @property
    def nvalue(self) -> MeasurementMeasItemNvalue:
        """Return the ``MEASUrement:MEAS<x>:NVALUe`` command.

        Description:
            - Sets or queries the number of unit intervals used for the Base Measurement Type of
              NUnitInterval.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:NVALUe?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:NVALUe?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:NVALUe value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:NVALUe <N>
            - MEASUrement:MEAS<x>:NVALUe?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<N>`` specifies the number of unit intervals.
        """
        return self._nvalue

    @property
    def obwmethod(self) -> MeasurementMeasItemObwmethod:
        """Return the ``MEASUrement:MEAS<x>:OBWMethod`` command.

        Description:
            - This command sets or queries the RF measurement Occupied Bandwidth method type.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:OBWMethod?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:OBWMethod?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:OBWMethod value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:OBWMethod {percOfPwr|dBDown}
            - MEASUrement:MEAS<x>:OBWMethod?
            ```

        Info:
            - ``percOfPwr`` specifies the method type as percentage of power. This is the default
              value.
            - ``dBDown`` specifies the method type as dB down.
        """
        return self._obwmethod

    @property
    def oddeven(self) -> MeasurementMeasItemOddeven:
        """Return the ``MEASUrement:MEAS<x>:ODDEVen`` command.

        Description:
            - This command sets or queries harmonics oddeven.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:ODDEVen?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:ODDEVen?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:ODDEVen value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:ODDEVen {ALL|EVEN|ODD}
            - MEASUrement:MEAS<x>:ODDEVen?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``ALL`` displays all the results.
            - ``EVEN`` displays the even results.
            - ``ODD`` displays the odd results.
        """
        return self._oddeven

    @property
    def ofilters(self) -> MeasurementMeasItemOfilters:
        """Return the ``MEASUrement:MEAS<x>:OFILters`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:OFILters?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:OFILters?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.lowpass``: The ``MEASUrement:MEAS<x>:OFILters:LOWPass`` command tree.
        """
        return self._ofilters

    @property
    def osangle(self) -> MeasurementMeasItemOsangle:
        """Return the ``MEASUrement:MEAS<x>:OSANgle`` command.

        Description:
            - This command sets or queries the specified measurement Offset angle.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:OSANgle?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:OSANgle?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:OSANgle value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:OSANgle <NR1>
            - MEASUrement:MEAS<x>:OSANgle?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR1>`` specifies the offset angle of the measurement in the range or -360 to 360.
        """
        return self._osangle

    @property
    def outedgequalifier(self) -> MeasurementMeasItemOutedgequalifier:
        """Return the ``MEASUrement:MEAS<x>:OUTEDGEQUALifier`` command.

        Description:
            - This command sets or queries local output edge qualifier source.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:OUTEDGEQUALifier?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:OUTEDGEQUALifier?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:OUTEDGEQUALifier value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:OUTEDGEQUALifier {CH<x>|MATH<x>|REF<x>}
            - MEASUrement:MEAS<x>:OUTEDGEQUALifier?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``CH<x>`` specifies an analog channel as source.
            - ``MATH<x>`` specifies a math channel as source.
            - ``REF<x>`` specifies a reference waveform as the source.
        """
        return self._outedgequalifier

    @property
    def outfilters(self) -> MeasurementMeasItemOutfilters:
        """Return the ``MEASUrement:MEAS<x>:OUTFILTers`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:OUTFILTers?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:OUTFILTers?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.lowpass``: The ``MEASUrement:MEAS<x>:OUTFILTers:LOWPass`` command tree.
        """
        return self._outfilters

    @property
    def outputvoltage(self) -> Dict[int, MeasurementMeasItemOutputvoltageItem]:
        """Return the ``MEASUrement:MEAS<x>:OUTPUT<x>VOLTage`` command.

        Description:
            - Sets or queries the voltage level for the specified output voltage source n.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:OUTPUT<x>VOLTage?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:OUTPUT<x>VOLTage?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:OUTPUT<x>VOLTage value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:OUTPUT<x>VOLTage <NR2>
            - MEASUrement:MEAS<x>:OUTPUT<x>VOLTage?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR2>`` is the output voltage for source n, in the range of -61 V to +61 V.
        """
        return self._outputvoltage

    @property
    def passfailenabled(self) -> MeasurementMeasItemPassfailenabled:
        """Return the ``MEASUrement:MEAS<x>:PASSFAILENabled`` command.

        Description:
            - This command returns or sets the pass/fail test enable status. If enabled, this will
              turn on pass fail testing for the specified measurement. Measurements are specified by
              x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PASSFAILENabled?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:PASSFAILENabled?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:PASSFAILENabled value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:PASSFAILENabled <NR1>
            - MEASUrement:MEAS<x>:PASSFAILENabled?
            ```

        Info:
            - ``<NR1>`` enables or disables pass fail testing for the specified measurement. A value
              of 1 enables and a value of 0 disables.
        """
        return self._passfailenabled

    @property
    def passfailhighlimit(self) -> MeasurementMeasItemPassfailhighlimit:
        """Return the ``MEASUrement:MEAS<x>:PASSFAILHIGHlimit`` command.

        Description:
            - This command returns or sets the high limit for a measurement test. Used as the test
              value when the 'fail when' criteria is set to 'less than' or 'greater than'.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PASSFAILHIGHlimit?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:PASSFAILHIGHlimit?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:PASSFAILHIGHlimit value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:PASSFAILHIGHlimit <NR2>
            - MEASUrement:MEAS<x>:PASSFAILHIGHlimit?
            ```

        Info:
            - ``<NR2>`` sets the high limit for a measurement test. The high limit is a number which
              a measurement result will be tested against.
        """
        return self._passfailhighlimit

    @property
    def passfaillimit(self) -> MeasurementMeasItemPassfaillimit:
        """Return the ``MEASUrement:MEAS<x>:PASSFAILLIMit`` command.

        Description:
            - This command returns or sets the limit for a measurement test. Used as the test value
              when the 'fail when' criteria is set to 'less than' or 'greater than'. Measurements
              are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PASSFAILLIMit?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:PASSFAILLIMit?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:PASSFAILLIMit value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:PASSFAILLIMit <NR2>
            - MEASUrement:MEAS<x>:PASSFAILLIMit?
            ```

        Info:
            - ``<NR2>`` sets the limit for a measurement test. The limit is a number which a
              measurement result will be tested against.
        """
        return self._passfaillimit

    @property
    def passfaillowlimit(self) -> MeasurementMeasItemPassfaillowlimit:
        """Return the ``MEASUrement:MEAS<x>:PASSFAILLOWlimit`` command.

        Description:
            - This command returns or sets the low limit for a measurement test. Used as the test
              value when the 'fail when' criteria is set to 'less than' or 'greater than'.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PASSFAILLOWlimit?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:PASSFAILLOWlimit?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:PASSFAILLOWlimit value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:PASSFAILLOWlimit <NR2>
            - MEASUrement:MEAS<x>:PASSFAILLOWlimit?
            ```

        Info:
            - ``<NR2>`` sets the low limit for a measurement test. The limit is a number which a
              measurement result will be tested against.
        """
        return self._passfaillowlimit

    @property
    def passfailmargin(self) -> MeasurementMeasItemPassfailmargin:
        """Return the ``MEASUrement:MEAS<x>:PASSFAILMARgin`` command.

        Description:
            - This command returns or sets the allowed margin for limit comparisons for all
              pass/fail checks. This is given as a percentage with a default value of 0.05
              representing 5%. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PASSFAILMARgin?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:PASSFAILMARgin?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:PASSFAILMARgin value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:PASSFAILMARgin <NR2>
            - MEASUrement:MEAS<x>:PASSFAILMARgin?
            ```

        Info:
            - ``<NR2>`` sets the allowed margin for limit comparisons for all pass/fail checks. The
              margin as a percentage of the limit.
        """
        return self._passfailmargin

    @property
    def passfailwhen(self) -> MeasurementMeasItemPassfailwhen:
        """Return the ``MEASUrement:MEAS<x>:PASSFAILWHEN`` command.

        Description:
            - This command sets or returns the condition on which a measurement test fails.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PASSFAILWHEN?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:PASSFAILWHEN?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:PASSFAILWHEN value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:PASSFAILWHEN {LESSthan|GREATERthan|Equals|NOTEQuals|INSIDErange|OUTSIDErange}
            - MEASUrement:MEAS<x>:PASSFAILWHEN?
            ```

        Info:
            - ``LESSthan`` sets the condition for measurement test failure as less than the given
              limit. This is the default value.
            - ``GREATERthan`` sets the condition for measurement test failure as greater than the
              given limit.
            - ``Equals`` sets the condition for measurement test failure as equals the given limit.
            - ``NOTEQuals`` sets the condition for measurement test failure as not equal to the
              given limit.
            - ``INSIDErange`` sets the condition for measurement test failure as inside the limit
              range.
            - ``OUTSIDErange`` sets the condition for measurement test failure as outside the limit
              range.
        """  # noqa: E501
        return self._passfailwhen

    @property
    def patterndetection(self) -> MeasurementMeasItemPatterndetection:
        """Return the ``MEASUrement:MEAS<x>:PATTERNDETECTION`` command.

        Description:
            - This command sets or queries the pattern detection type for the measurement.
              Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PATTERNDETECTION?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:PATTERNDETECTION?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:PATTERNDETECTION value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:PATTERNDETECTION {AUTO|MANUAL}
            - MEASUrement:MEAS<x>:PATTERNDETECTION?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``AUTO`` automatically detects the pattern.
            - ``MANUAL`` requires manually detecting the pattern.
        """
        return self._patterndetection

    @property
    def patternlength(self) -> MeasurementMeasItemPatternlength:
        """Return the ``MEASUrement:MEAS<x>:PATTERNLENgth`` command.

        Description:
            - This command sets or queries the pattern length for the measurement. Measurements are
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PATTERNLENgth?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:PATTERNLENgth?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:PATTERNLENgth value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:PATTERNLENgth <NR3>
            - MEASUrement:MEAS<x>:PATTERNLENgth?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the pattern length.
        """
        return self._patternlength

    @property
    def patterntype(self) -> MeasurementMeasItemPatterntype:
        """Return the ``MEASUrement:MEAS<x>:PATTERNTYPe`` command.

        Description:
            - This command sets or queries the pattern type for the measurement. Measurements are
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PATTERNTYPe?``
              query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:PATTERNTYPe?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:PATTERNTYPe value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:PATTERNTYPe {REPeating|ARBitrary}
            - MEASUrement:MEAS<x>:PATTERNTYPe?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``REPeating`` specifies a repeating pattern.
            - ``ARBitrary`` specifies an arbitrary pattern.
        """
        return self._patterntype

    @property
    def pcount(self) -> MeasurementMeasItemPcount:
        """Return the ``MEASUrement:MEAS<x>:PCOUNt`` command.

        Description:
            - This command sets or returns number of pulses. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PCOUNt?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:PCOUNt?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:PCOUNt value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:PCOUNt <NR3>
            - MEASUrement:MEAS<x>:PCOUNt?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is the number of pulses.
        """
        return self._pcount

    @property
    def perfreq(self) -> MeasurementMeasItemPerfreq:
        """Return the ``MEASUrement:MEAS<x>:PERFREQ`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PERFREQ?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:PERFREQ?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.edge``: The ``MEASUrement:MEAS<x>:PERFREQ:EDGE`` command.
        """
        return self._perfreq

    @property
    def pfrequency(self) -> MeasurementMeasItemPfrequency:
        """Return the ``MEASUrement:MEAS<x>:PFREquency`` command.

        Description:
            - This command sets or returns the PJ max frequency value of PSIJ measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PFREquency?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:PFREquency?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:PFREquency value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:PFREquency <NR3>
            - MEASUrement:MEAS<x>:PFREquency?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` specifies the value of PJ max frequency for PSIJ measurement.
        """
        return self._pfrequency

    @property
    def polarity(self) -> MeasurementMeasItemPolarity:
        """Return the ``MEASUrement:MEAS<x>:POLarity`` command.

        Description:
            - This command sets or queries the polarity for the measurement when the measurement
              type is burst width. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:POLarity?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:POLarity?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:POLarity value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:POLarity {NORMal|INVerted}
            - MEASUrement:MEAS<x>:POLarity?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``NORMal`` specifies normal polarity.
            - ``INVerted`` specifies inverted polarity.
        """
        return self._polarity

    @property
    def population(self) -> MeasurementMeasItemPopulation:
        """Return the ``MEASUrement:MEAS<x>:POPUlation`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:POPUlation?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:POPUlation?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.global``: The ``MEASUrement:MEAS<x>:POPUlation:GLOBal`` command.
            - ``.limit``: The ``MEASUrement:MEAS<x>:POPUlation:LIMIT`` command tree.
        """
        return self._population

    @property
    def popower(self) -> MeasurementMeasItemPopower:
        """Return the ``MEASUrement:MEAS<x>:POPower`` command.

        Description:
            - This command sets or queries the Percentage Power to be measured for the Occupied
              Bandwidth measurement. The measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:POPower?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:POPower?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:POPower value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:POPower <NR3>
            - MEASUrement:MEAS<x>:POPower?
            ```

        Info:
            - ``<NR3>`` sets the Percentage Power value. The default value is 99.9 and the valid
              range is 60.0 to 99.9.
        """
        return self._popower

    @property
    def powerfactor(self) -> MeasurementMeasItemPowerfactor:
        """Return the ``MEASUrement:MEAS<x>:POWERFACtor`` command.

        Description:
            - This command sets or queries the power factor value for IEC-Class C type harmonics
              standard. The measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:POWERFACtor?``
              query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:POWERFACtor?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:POWERFACtor value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:POWERFACtor <NR2>
            - MEASUrement:MEAS<x>:POWERFACtor?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR2>`` specifies the power factor value for class C harmonics standard.
        """
        return self._powerfactor

    @property
    def pregion(self) -> MeasurementMeasItemPregion:
        """Return the ``MEASUrement:MEAS<x>:PREGion`` command.

        Description:
            - This command sets or returns pulse region for a measurement. Measurements are
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PREGion?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:PREGion?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:PREGion value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:PREGion {FPULse|SPULse|MPULse}
            - MEASUrement:MEAS<x>:PREGion?
            ```

        Info:
            - ``FPULse`` is the pulse region as Fpulse.
            - ``SPULse`` is the pulse region as Spulse.
            - ``MPULse`` is the pulse region as Mpulse.
        """
        return self._pregion

    @property
    def presistance(self) -> MeasurementMeasItemPresistance:
        """Return the ``MEASUrement:MEAS<x>:PRESistance`` command.

        Description:
            - This command sets or returns the probe resistance for WBG measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PRESistance?``
              query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:PRESistance?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:PRESistance value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:PRESistance <NR3>
            - MEASUrement:MEAS<x>:PRESistance?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` specifies the value for probe resistance of the WBG measurement.
        """
        return self._presistance

    @property
    def pthreshold(self) -> MeasurementMeasItemPthreshold:
        """Return the ``MEASUrement:MEAS<x>:PTHReshold`` command.

        Description:
            - This command sets or returns the PJ threshold value of PSIJ measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PTHReshold?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:PTHReshold?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:PTHReshold value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:PTHReshold <NR3>
            - MEASUrement:MEAS<x>:PTHReshold?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` specifies the value of PJ threshold for PSIJ measurement.
        """
        return self._pthreshold

    @property
    def pwidth(self) -> MeasurementMeasItemPwidth:
        """Return the ``MEASUrement:MEAS<x>:PWIDth`` command.

        Description:
            - This command sets or returns pulse width. Measurements are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:PWIDth?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:PWIDth?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:PWIDth value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:PWIDth <NR3>
            - MEASUrement:MEAS<x>:PWIDth?
            ```

        Info:
            - ``<NR3>`` specifies the pulse width.
        """
        return self._pwidth

    @property
    def redge(self) -> MeasurementMeasItemRedge:
        """Return the ``MEASUrement:MEAS<x>:REDGe`` command.

        Description:
            - This command turns on or off the Refine edge on qualifier. Measurements are specified
              by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:REDGe?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:REDGe?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:REDGe value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:REDGe {ON|OFF}
            - MEASUrement:MEAS<x>:REDGe?
            ```

        Info:
            - ``ON`` specifies the Refine edge settings has been turned on.
            - ``OFF`` specifies the Refine edge settings has been turned off.
        """
        return self._redge

    @property
    def reflevels(self) -> MeasurementMeasItemReflevels:
        """Return the ``MEASUrement:MEAS<x>:REFLevels`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:REFLevels?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:REFLevels?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.absolute``: The ``MEASUrement:MEAS<x>:REFLevels:ABSolute`` command tree.
        """
        return self._reflevels

    @property
    def reflevels1(self) -> MeasurementMeasItemReflevels1:
        """Return the ``MEASUrement:MEAS<x>:REFLevels1`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:REFLevels1?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:REFLevels1?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.absolute``: The ``MEASUrement:MEAS<x>:REFLevels1:ABSolute`` command tree.
            - ``.basetop``: The ``MEASUrement:MEAS<x>:REFLevels1:BASETop`` command.
            - ``.method``: The ``MEASUrement:MEAS<x>:REFLevels1:METHod`` command.
            - ``.percent``: The ``MEASUrement:MEAS<x>:REFLevels1:PERCent`` command tree.
        """
        return self._reflevels1

    @property
    def refmode(self) -> MeasurementMeasItemRefmode:
        """Return the ``MEASUrement:MEAS<x>:REFMode`` command.

        Description:
            - This command sets or queries the reference level mode for the measurement. The
              measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:REFMode?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:REFMode?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:REFMode value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:REFMode {AUTO|MANual}
            - MEASUrement:MEAS<x>:REFMode?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``AUTO`` sets the reference level for the measurement automatically.
            - ``MANual`` allows the user to set the reference level for the measurement.
        """
        return self._refmode

    @property
    def refvoltageval(self) -> Dict[int, MeasurementMeasItemRefvoltagevalItem]:
        """Return the ``MEASUrement:MEAS<x>:REFVOLTAGE<x>Val`` command.

        Description:
            - Sets or queries the reference voltage per rail of Overshoot and Undershoot
              measurements.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:REFVOLTAGE<x>Val?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFVOLTAGE<x>Val?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFVOLTAGE<x>Val value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:REFVOLTAGE<x>Val <NR2>
            - MEASUrement:MEAS<x>:REFVOLTAGE<x>Val?
            ```

        Info:
            - ``MEAS<x>`` is the measurement number.
            - ``REFVOLTAGE<x>`` is the rail number.
            - ``<NR2>`` is the reference voltage, in the range of -500 V to +500 V.
        """
        return self._refvoltageval

    @property
    def refvoltage(self) -> MeasurementMeasItemRefvoltage:
        """Return the ``MEASUrement:MEAS<x>:REFVoltage`` command.

        Description:
            - This command sets or queries the reference voltage value for the measurement. The
              measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:REFVoltage?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:REFVoltage?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:REFVoltage value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:REFVoltage <NR3>
            - MEASUrement:MEAS<x>:REFVoltage?
            ```

        Info:
            - ``MEAS<x>`` is the measurement number.
            - ``<NR3>`` is the reference voltage value for the selected configuration.
        """
        return self._refvoltage

    @property
    def results(self) -> MeasurementMeasItemResults:
        """Return the ``MEASUrement:MEAS<x>:RESUlts`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:RESUlts?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:RESUlts?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.allacqs``: The ``MEASUrement:MEAS<x>:RESUlts:ALLAcqs`` command tree.
            - ``.currentacq``: The ``MEASUrement:MEAS<x>:RESUlts:CURRentacq`` command tree.
            - ``.history``: The ``MEASUrement:MEAS<x>:RESUlts:HISTory`` command tree.
        """
        return self._results

    @property
    def rfrequency(self) -> MeasurementMeasItemRfrequency:
        """Return the ``MEASUrement:MEAS<x>:RFREquency`` command.

        Description:
            - This command sets or returns the center frequency value of PSIJ measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:RFREquency?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:RFREquency?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:RFREquency value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:RFREquency <NR3>
            - MEASUrement:MEAS<x>:RFREquency?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` specifies the value of center frequency for PSIJ measurement.
        """
        return self._rfrequency

    @property
    def ripplefreqval(self) -> Dict[int, MeasurementMeasItemRipplefreqvalItem]:
        """Return the ``MEASUrement:MEAS<x>:RIPPLEFREQ<x>Val`` command.

        Description:
            - Sets or queries the ripple frequency per specified rail for Ripple measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:RIPPLEFREQ<x>Val?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:RIPPLEFREQ<x>Val?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:RIPPLEFREQ<x>Val value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:RIPPLEFREQ<x>Val <NR3>
            - MEASUrement:MEAS<x>:RIPPLEFREQ<x>Val?
            ```

        Info:
            - ``MEAS<x>`` is the measurement number.
            - ``RIPPLEFREQ<x>`` is the rail number.
            - ``<NR3>`` is the frequency, in the range of 1 Hz to 4 GHz.
        """
        return self._ripplefreqval

    @property
    def rrange(self) -> MeasurementMeasItemRrange:
        """Return the ``MEASUrement:MEAS<x>:RRANGE`` command.

        Description:
            - This command sets or returns the span value of PSIJ measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:RRANGE?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:RRANGE?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:RRANGE value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:RRANGE <NR3>
            - MEASUrement:MEAS<x>:RRANGE?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` specifies the value of span for PSIJ measurement.
        """
        return self._rrange

    @property
    def sequence(self) -> MeasurementMeasItemSequence:
        """Return the ``MEASUrement:MEAS<x>:SEQuence`` command.

        Description:
            - This command sets or queries the sequence of hall edges. The measurement number is
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SEQuence?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:SEQuence?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:SEQuence value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:SEQuence {ABC|ACB}
            - MEASUrement:MEAS<x>:SEQuence?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``ABC`` specifies the motor Hall edges sequence as ABC.
            - ``ACB`` specifies the motor Hall edges sequence as ACB.
        """
        return self._sequence

    @property
    def signalfrequency(self) -> MeasurementMeasItemSignalfrequency:
        """Return the ``MEASUrement:MEAS<x>:SIGNALFREQUEncy`` command.

        Description:
            - This command sets or queries line frequency for Harmonics and Ripple line frequency.
              The measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SIGNALFREQUEncy?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:SIGNALFREQUEncy?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:SIGNALFREQUEncy value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:SIGNALFREQUEncy {AUTO|FIFTYHZ|SIXTYHZ|FOURHUNDREDHZ|CUSTOM}
            - MEASUrement:MEAS<x>:SIGNALFREQUEncy?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``AUTO`` specifies the line frequency as auto. Only available for Harmonics line
              frequency.
            - ``FIFTYHZ`` specifies the line frequency as 50 Hz.
            - ``SIXTYHZ`` specifies the line frequency as 60 Hz.
            - ``FOURHUNDREDHZ`` specifies the line frequency as 400 Hz.
            - ``CUSTOM`` specifies the line frequency as custom.
        """
        return self._signalfrequency

    @property
    def signaltype(self) -> MeasurementMeasItemSignaltype:
        """Return the ``MEASUrement:MEAS<x>:SIGNALType`` command.

        Description:
            - This command sets or queries the signal type of source 1 for the measurement. The
              measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SIGNALType?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:SIGNALType?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:SIGNALType value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:SIGNALType {CLOCK|DATA|AUTO}
            - MEASUrement:MEAS<x>:SIGNALType?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``CLOCK`` specifies a clock signal type.
            - ``DATA`` specifies a data signal type.
            - ``AUTO`` automatically selects the signal type.
        """
        return self._signaltype

    @property
    def slabs(self) -> MeasurementMeasItemSlabs:
        """Return the ``MEASUrement:MEAS<x>:SLABs`` command.

        Description:
            - This command sets or returns the value for the start level in absolute.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SLABs?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:SLABs?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:SLABs value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:SLABs <NR3>
            - MEASUrement:MEAS<x>:SLABs?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` specifies the value for the start level in absolute.
        """
        return self._slabs

    @property
    def slpct(self) -> MeasurementMeasItemSlpct:
        """Return the ``MEASUrement:MEAS<x>:SLPCt`` command.

        Description:
            - This command sets or returns the value for the start level in percentage.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SLPCt?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:SLPCt?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:SLPCt value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:SLPCt <NR3>
            - MEASUrement:MEAS<x>:SLPCt?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` specifies the value for the start level in percentage.
        """
        return self._slpct

    @property
    def sltype(self) -> MeasurementMeasItemSltype:
        """Return the ``MEASUrement:MEAS<x>:SLTYpe`` command.

        Description:
            - This command sets or returns the start level source type.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SLTYpe?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:SLTYpe?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:SLTYpe value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:SLTYpe {VDS|ID|VGE|VCE|IC}
            - MEASUrement:MEAS<x>:SLTYpe?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``VDS`` specifies the start level source type as VDS.
            - ``ID`` specifies the start level source type as ID.
            - ``VGE`` specifies the start level source type as VGE.
            - ``VCE`` specifies the start level source type as VCE.
            - ``IC`` specifies the start level source type as IC.
        """
        return self._sltype

    @property
    def smoothingfilter(self) -> MeasurementMeasItemSmoothingfilter:
        """Return the ``MEASUrement:MEAS<x>:SMOOTHINGFILTER`` command.

        Description:
            - This command sets or queries the status of smoothing filter.

        Usage:
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:SMOOTHINGFILTER value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:SMOOTHINGFILTER <NR1>
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR1>`` sets the value to 1 or 0. 1 enables smoothing filter and 0 disables it.
        """
        return self._smoothingfilter

    @property
    def source(self) -> MeasurementMeasItemSource:
        """Return the ``MEASUrement:MEAS<x>:SOURCE`` command.

        Description:
            - This command sets or queries local input source.

        Usage:
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:SOURCE value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:SOURCE {CH<x>|MATH<x>|REF<x>}
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``CH<x>`` specifies an analog channel as source.
            - ``MATH<x>`` specifies a math channel as source.
            - ``REF<x>`` specifies a reference waveform as the source.
        """
        return self._source

    @property
    def source1(self) -> MeasurementMeasItemSource1:
        """Return the ``MEASUrement:MEAS<x>:SOUrce1`` command.

        Description:
            - This command sets or queries the measurement source. The measurement number and source
              are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SOUrce1?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:SOUrce1?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write()`` method will send the ``MEASUrement:MEAS<x>:SOUrce1`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:SOUrce1
            - MEASUrement:MEAS<x>:SOUrce1?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``1`` specifies the source number.
        """
        return self._source1

    @property
    def spanval(self) -> Dict[int, MeasurementMeasItemSpanvalItem]:
        """Return the ``MEASUrement:MEAS<x>:SPAN<x>Val`` command.

        Description:
            - This command sets or returns the span value for PSIJ measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SPAN<x>Val?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:SPAN<x>Val?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:SPAN<x>Val value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:SPAN<x>Val <NR3>
            - MEASUrement:MEAS<x>:SPAN<x>Val?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``SPAN<x>`` specifies the span number.
            - ``<NR3>`` specifies the span value.
        """
        return self._spanval

    @property
    def srate(self) -> MeasurementMeasItemSrate:
        """Return the ``MEASUrement:MEAS<x>:SRATe`` command.

        Description:
            - This command sets or queries the symbol rate for the RRC filter in the measurement.
              The measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SRATe?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:SRATe?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:SRATe value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:SRATe <NR3>
            - MEASUrement:MEAS<x>:SRATe?
            ```

        Info:
            - ``<NR3>`` sets the symbol rate. The default is 3.84e6 and the valid range is 1.0 to
              5.0e9.
        """
        return self._srate

    @property
    def srho(self) -> MeasurementMeasItemSrho:
        """Return the ``MEASUrement:MEAS<x>:SRHo`` command.

        Description:
            - This command enables or disables the rho waveform for TDR measurement. The measurement
              number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SRHo?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:SRHo?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:SRHo value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:SRHo {ON|OFF}
            - MEASUrement:MEAS<x>:SRHo?
            ```

        Info:
            - ``ON`` specifies that rho waveform is enabled for TDR measurement.
            - ``OFF`` specifies that rho waveform is disabled for TDR measurement.
        """
        return self._srho

    @property
    def ssc(self) -> MeasurementMeasItemSsc:
        """Return the ``MEASUrement:MEAS<x>:SSC`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SSC?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:SSC?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.nominalfreq``: The ``MEASUrement:MEAS<x>:SSC:NOMinalfreq`` command.
        """
        return self._ssc

    @property
    def ssdirection(self) -> MeasurementMeasItemSsdirection:
        """Return the ``MEASUrement:MEAS<x>:SSDirection`` command.

        Description:
            - This command sets or returns the start search direction for measurement. The
              measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SSDirection?``
              query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:SSDirection?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:SSDirection value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:SSDirection {FORWARD|BACKWARD}
            - MEASUrement:MEAS<x>:SSDirection?
            ```

        Info:
            - ``FORWARD`` specifies the start search direction for measurement as forward.
            - ``BACKWARD`` specifies the start search direction for measurement as backward.
        """
        return self._ssdirection

    @property
    def status(self) -> MeasurementMeasItemStatus:
        """Return the ``MEASUrement:MEAS<x>:STATUS`` command.

        Description:
            - This command returns the pass fail status, if applicable, for the selected
              measurement. Measur are specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:STATUS?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:STATUS?``
              query and raise an AssertionError if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:STATUS?
            ```

        Info:
            - ``PASS`` specifies that the user specified measurement limit has not been violated.
            - ``FAIL`` specifies that the user specified measurement limit has been violated.
        """
        return self._status

    @property
    def stlabs(self) -> MeasurementMeasItemStlabs:
        """Return the ``MEASUrement:MEAS<x>:STLABs`` command.

        Description:
            - This command sets or returns the value for the stop level in absolute.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:STLABs?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:STLABs?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:STLABs value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:STLABs <NR3>
            - MEASUrement:MEAS<x>:STLABs?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` specifies the value for the stop level in absolute.
        """
        return self._stlabs

    @property
    def stlpct(self) -> MeasurementMeasItemStlpct:
        """Return the ``MEASUrement:MEAS<x>:STLPct`` command.

        Description:
            - This command sets or returns the value for the stop level in percentage.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:STLPct?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:STLPct?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:STLPct value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:STLPct <NR3>
            - MEASUrement:MEAS<x>:STLPct?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` specifies the value for the stop level in percentage.
        """
        return self._stlpct

    @property
    def stltype(self) -> MeasurementMeasItemStltype:
        """Return the ``MEASUrement:MEAS<x>:STLTYpe`` command.

        Description:
            - This command sets or returns the stop level source type.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:STLTYpe?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:STLTYpe?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:STLTYpe value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:STLTYpe {VDS|ID|VGE|VCE|IC}
            - MEASUrement:MEAS<x>:STLTYpe?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``VDS`` specifies the stop level source type as VDS.
            - ``ID`` specifies the stop level source type as ID.
            - ``VGE`` specifies the stop level source type as VGE.
            - ``VCE`` specifies the stop level source type as VCE.
            - ``IC`` specifies the stop level source type as IC.
        """
        return self._stltype

    @property
    def stsdirection(self) -> MeasurementMeasItemStsdirection:
        """Return the ``MEASUrement:MEAS<x>:STSDirection`` command.

        Description:
            - This command sets or returns the stop search direction for measurement. The
              measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:STSDirection?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:STSDirection?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:STSDirection value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:STSDirection {FORWARD|BACKWARD}
            - MEASUrement:MEAS<x>:STSDirection?
            ```

        Info:
            - ``FORWARD`` specifies the stop search direction for measurement as forward.
            - ``BACKWARD`` specifies the stop search direction for measurement as backward.
        """
        return self._stsdirection

    @property
    def stype(self) -> MeasurementMeasItemStype:
        """Return the ``MEASUrement:MEAS<x>:STYPe`` command.

        Description:
            - This command sets or queries the source type.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:STYPe?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:STYPe?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:STYPe value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:STYPe {VOLTage|CURRent|DIFFERENTIAL|SINGLE}
            - MEASUrement:MEAS<x>:STYPe?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``VOLTage`` sets source type as Voltage.
            - ``CURRent`` sets source type as Current.
            - ``DIFFERENTIAL`` sets source type as Differential.
            - ``SINGLE`` sets source type as Single.
        """
        return self._stype

    @property
    def subgroup(self) -> MeasurementMeasItemSubgroup:
        """Return the ``MEASUrement:MEAS<x>:SUBGROUP`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SUBGROUP?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:SUBGROUP?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.results``: The ``MEASUrement:MEAS<x>:SUBGROUP:RESUlts`` command tree.
        """
        return self._subgroup

    @property
    def sunits(self) -> MeasurementMeasItemSunits:
        """Return the ``MEASUrement:MEAS<x>:SUNits`` command.

        Description:
            - This command sets or queries the speed units for the specific measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:SUNits?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:SUNits?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:SUNits value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:SUNits {RPM|HZ}
            - MEASUrement:MEAS<x>:SUNits?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``RPM`` defines the speed measurement units as RPM.
            - ``HZ`` defines the speed measurement units as HZ.
        """
        return self._sunits

    @property
    def tckavg(self) -> MeasurementMeasItemTckavg:
        """Return the ``MEASUrement:MEAS<x>:TCKAVG`` command.

        Description:
            - This command sets or queries the average clock period value used in DDR measurements.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:TCKAVG?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:TCKAVG?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:TCKAVG value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:TCKAVG <NR3>
            - MEASUrement:MEAS<x>:TCKAVG?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR3>`` is a floating point number that represents the DDR average clock period in
              seconds.
        """
        return self._tckavg

    @property
    def tconstant(self) -> MeasurementMeasItemTconstant:
        """Return the ``MEASUrement:MEAS<x>:TCONstant`` command.

        Description:
            - This command sets or queries the measurement Torque Constant.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:TCONstant?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:TCONstant?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:TCONstant value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:TCONstant <NR1>
            - MEASUrement:MEAS<x>:TCONstant?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``NR1`` specifies the current multiplier value of the measurement in the range of 0 to
              100.
        """
        return self._tconstant

    @property
    def tdrpreset(self) -> MeasurementMeasItemTdrpreset:
        """Return the ``MEASUrement:MEAS<x>:TDRPreset`` command.

        Description:
            - This command executes the preset for TDR measurement.

        Usage:
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:TDRPreset value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:TDRPreset {EXECUTE}
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``EXECUTE`` executes the preset for TDR measurement.
        """
        return self._tdrpreset

    @property
    def timingmode(self) -> MeasurementMeasItemTimingmode:
        """Return the ``MEASUrement:MEAS<x>:TIMINGMode`` command.

        Description:
            - This command sets or queries the Timing mode for the specified DDR measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:TIMINGMode?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:TIMINGMode?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:TIMINGMode value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:TIMINGMode {EACHCLOCKCYCLE|TWOCLOCKCYCLES}
            - MEASUrement:MEAS<x>:TIMINGMode?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``EACHCLOCKCYCLE`` sets the DDR Timing Mode to use each clock cycle at a time.
            - ``TWOCLOCKCYCLES`` sets the DDR Timing Mode to use two cycles at a time.
        """
        return self._timingmode

    @property
    def tlevel(self) -> MeasurementMeasItemTlevel:
        """Return the ``MEASUrement:MEAS<x>:TLEVel`` command.

        Description:
            - This command sets or queries whether histogram center is percentage relative to unit
              amplitude or an absolute value, for eye height measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:TLEVel?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:TLEVel?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:TLEVel value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:TLEVel {PERCent|ABSolute}
            - MEASUrement:MEAS<x>:TLEVel?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``PERCent`` sets the histogram center as a percentage relative to unit amplitude.
            - ``ABSolute`` sets the histogram center as an absolute value.
        """
        return self._tlevel

    @property
    def tmethod(self) -> MeasurementMeasItemTmethod:
        """Return the ``MEASUrement:MEAS<x>:TMEThod`` command.

        Description:
            - This command sets or queries the measurement torque method.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:TMEThod?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:TMEThod?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:TMEThod value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:TMEThod {SENSOR|CURRENT}
            - MEASUrement:MEAS<x>:TMEThod?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``SENSOR`` specifies the Torque Method as SENSOR.
            - ``CURRENT`` specifies the Torque Method as CURRENT.
        """
        return self._tmethod

    @property
    def toedgesearchdirect(self) -> MeasurementMeasItemToedgesearchdirect:
        """Return the ``MEASUrement:MEAS<x>:TOEDGESEARCHDIRect`` command.

        Description:
            - This command sets or queries the to edge search direction for the measurement. The
              measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MEAS<x>:TOEDGESEARCHDIRect?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:TOEDGESEARCHDIRect?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:TOEDGESEARCHDIRect value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:TOEDGESEARCHDIRect {FORWard|BACKWard}
            - MEASUrement:MEAS<x>:TOEDGESEARCHDIRect?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``FORWard`` specifies a forward search to the edge.
            - ``BACKWard`` specifies a backward search to the edge.
        """
        return self._toedgesearchdirect

    @property
    def toedge(self) -> MeasurementMeasItemToedge:
        """Return the ``MEASUrement:MEAS<x>:TOEdge`` command.

        Description:
            - This command sets or queries the 'to edge' type for the measurement. The measurement
              number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:TOEdge?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:TOEdge?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:TOEdge value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:TOEdge {SAMEas|OPPositeas|RISe|FALL|BOTH}
            - MEASUrement:MEAS<x>:TOEdge?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``FALL`` specifies the falling edge of the waveform.
            - ``RISe`` specifies the rising edge of the waveform.
            - ``BOTH`` specifies both a rising and falling edge of the waveform.
            - ``SAMEas`` specifies that both edges of the waveform are the same.
            - ``OPPositeas`` specifies that the edges of the waveform are not the same.
        """
        return self._toedge

    @property
    def tosymbol(self) -> MeasurementMeasItemTosymbol:
        """Return the ``MEASUrement:MEAS<x>:TOSYmbol`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:TOSYmbol?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:TOSYmbol?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.logic2source``: The ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC2SOUrce`` command.
            - ``.logic3source``: The ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC3SOUrce`` command.
            - ``.logic4source``: The ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC4SOUrce`` command.
            - ``.logic5source``: The ``MEASUrement:MEAS<x>:TOSYmbol:LOGIC5SOUrce`` command.
            - ``.measureat``: The ``MEASUrement:MEAS<x>:TOSYmbol:MEASUREAT`` command.
        """
        return self._tosymbol

    @property
    def transition(self) -> MeasurementMeasItemTransition:
        """Return the ``MEASUrement:MEAS<x>:TRANSition`` command.

        Description:
            - This command sets or queries the transition edges flag for the measurement. The
              measurement number is specified by x.

        Usage:
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:TRANSition value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:TRANSition {ON|OFF|<NR1>}
            ```

        Info:
            - ``<NR1>`` = 1, the measurement is computed on rising (if measurement type is rise
              time) or falling edges (if measurement type is fall time) following a double
              transition only. If it is set to 0, the measurement is computed on all rising (if
              measurement type is rise time) or falling (if measurement type is fall time) edges.
            - ``OFF`` computes the measurement on all rising (if measurement type is rise time) or
              falling (if measurement type is fall time) edges.
            - ``ON`` computes the measurement on rising (if measurement type is rise time) or
              falling edges (if measurement type is fall time) following a double transition only.
        """
        return self._transition

    @property
    def type(self) -> MeasurementMeasItemType:
        """Return the ``MEASUrement:MEAS<x>:TYPe`` command.

        Description:
            - This command sets or queries the measurement type for the measurement specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:TYPe?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:TYPe?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:TYPe value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:TYPe {ACCOMMONMODE|ACPR|ACRMS|AMPLITUDE|AREA|BASE|BITAMPLITUDE|BITHIGH|BITLOW|BURSTWIDTH|COMMONMODE|CPOWER|DATARATE|DCD|DDJ|DDRAOS|DDRAOSPERTCK|DDRAOSPERUI|DDRAUS|DDRAUSPERTCK|DDRAUSPERUI|DDRHOLDDIFF|DDRSETUPDIFF|DDRTCHABS|DDRTCHAVERAGE|DDRTCKAVERAGE|DDRTCLABS|DDRTCLAVERAGE|DDRTERRMN|DDRTERRN|DDRTJITCC|DDRTJITDUTY|DDRTJITPER|DDRTPST|DDRTRPRE|DDRTWPRE|DDRVIXAC|DDRTDQSCK|DELAY|DJ|DJDIRAC|DPMOVERSHOOT|DPMPSIJ|DPMUNDERSHOOT|DPMRIPPLE|DPMTURNOFFTIME|DPMTURNONTIME|EYEHIGH|EYELOW|FALLSLEWRATE|FALLTIME|FREQUENCY|F2|F4|F8|HIGH|HEIGHT|HEIGHTBER|HIGHTIME|HOLD|IMDAANGLE|IMDADIRECTION|IMDADQ0|IMDAEFFICIENCY|IMDAHARMONICS|IMDAMECHPWR|IMDAPOWERQUALITY|IMDASPEED|IMDASYSEFF|IMDATORQUE|ISI|JITTERSUMMARY|J2|J9|LOW|LOWTIME|MAXIMUM|MEAN|MINIMUM|NDUtY|NPERIOD|NPJ|NOVERSHOOT|NWIDTH|OBW|PATTERNLENGTH|PDUTTY|PERIOD|PHASE|PHASENOISE|PJ|PK2Pk|POVERSHOOT|PWIDTH|QFACTOR|RDSON|RISESLEWRATE|RISETIME|RJ|RJDIRAC|RMS|SRJ|SSCFREQDEV|SSCMODRATE|SSCSLEWRATE|SETUP|SKEW|TDR|TIE|TIMEOUTSIDELEVEL|TJBER|TNTRATIO|TOP|UNITINTERVAL|VDIFFXOVR|WBGDDT|WBGDIODEDDT|WBGEOFF|WBGEON|WBGERR|WBGIPEAK|WBGIRRM|WBGQOSS|WBGQRR|WBGTDOFF|WBGTDON|WBGTF|WBGTON|WBGTOFF|WBGTR|WBGTRR|WBGTDT|WBGVPEAK|WIDTH|WIDTHBER}
            - MEASUrement:MEAS<x>:TYPe?
            ```

        Info:
            - ``ACCOMMONMODE`` AC Common Mode (Pk-Pk) is the peak-to-peak of the commonmode voltage
              of two sources. This measurement is made across the entire record.This measurement
              requires the DJA option and is not available on a 4 SeriesMSO instrument.
            - ``ACPR`` (Adjacent Channel Power Ratio) is the amount of power that leaks intoadjacent
              channels. This can be specified in terms of absolute power or a ratio ofadjacent
              channel power to the main channel power, called adjacent channel powerratio (ACPR) or
              adjacent channel leakage ratio (ACLR).
            - ``ACRMS`` (AC RMS) is the true Root Mean Square of the data points, about theMean.
              This measurement can be made across the entire record, or on each cyclein the record.
            - ``AMPLITUDE`` is the difference between the Top value and the Base value. This
              measurement can be made across the entire record, or on each cycle in the record.
            - ``AREA`` is the area under the curve, calculated by integrating the data points. The
              area measured above ground is positive. The area measured below ground is negative.
              This measurement can be made across the entire record, or on each cycle in the record.
            - ``BASE`` is the most common data value below the midpoint of the waveform. This
              measurement can be made across the entire record, or on each cycle in the record.
            - ``BITAMPLITUDE`` (Bit Amplitude) is the difference between the amplitudes of the 1 bit
              and the 0 bit surrounding a transition. The amplitude is measured over a user
              specified portion at the center of the recovered unit interval. This measurement is
              made on each transition bit in the record (Mean) or across the entire record (Mode).
              This measurement requires the DJA option and is not available on a 4 Series MSO
              instrument.
            - ``BITHIGH`` (Bit High) is the amplitude of a 1 bit. The amplitude is measured over a
              user specified portion at the center of the recovered unit interval. This measurement
              is made on each high bit in the record (Mean) or across the entire record (Mode). This
              measurement requires the DJA option and is not available on a 4 Series MSO instrument.
            - ``BITLOW`` (Bit Low) is the amplitude of a 0 bit. The amplitude is measured over a
              user specified portion at the center of the recovered unit interval. This measurement
              is made on each high bit in the record (Mean) or across the entire record (Mode). This
              measurement requires the DJA option and is not available on a 4 Series MSO instrument.
            - ``BURSTWIDTH`` (Burst Width) is the duration of a series of adjacent crossings of the
              Mid reference level (RM). Bursts are separated by a user-defined idle time (tI). This
              measurement is made on each burst in the record.
            - ``CCJITTER`` (Cycle-to-Cycle jitter) measures how much the clock period changes
              between any two adjacent cycles. Cycle-to-Cycle jitter is measured by applying a first
              order difference operation to the period jitter.
            - ``COMMONMODE`` (DC Common Mode) is the arithmetic mean of the common mode voltage of
              two sources. This measurement is made across the entire record. This measurement
              requires the DJA option and is not available on a 4 Series MSO instrument.
            - ``CPOWER`` (Channel Power) is the measurement of integrated power within a specified
              channel bandwidth for a RF signal. The resulting channel power is an absolute power
              measurement.
            - ``DATARATE`` (Data Rate) is the reciprocal of Unit Interval. This measurement is made
              on each bit in the record.
            - ``DCD`` (duty cycle distortion) is the peak-to-peak amplitude of the component of the
              deterministic jitter correlated with the signal polarity. This measurement is made
              across the entire record. This measurement requires the DJA option and is not
              available on a 4 Series MSO instrument.
            - ``DDJ`` (data dependent jitter) is the peak-to-peak amplitude of the component of the
              deterministic jitter correlated with the data pattern in the waveform. This
              measurement is made across the entire record. This measurement requires the DJA option
              and is not available on a 4 Series MSO instrument.
            - ``DDRAOS`` (area above signal) is the total area of the signal above a specified
              reference level. This measurement is made across the entire record.
            - ``DDRAOSPERTCK`` (area over signal for tCK events) is the total area of the signal
              above a specified reference level calculated over consecutive tCK intervals. It is
              applicable to clock and address/command waveforms.
            - ``DDRAOSPERUI`` (area over signal for UI events) is the total area of the signal above
              a specified reference level calculated over consecutive unit intervals. It is
              applicable to data and data strobe waveforms.
            - ``DDRAUS`` (area under signal) is the total area of the signal below a specified
              reference level. This measurement is made across the entire record.
            - ``DDRAUSPERTCK`` (area under signal for tCK events) is the total area of the signal
              below a specified reference level calculated over consecutive tCK intervals. It is
              applicable to clock and address/command waveforms.
            - ``DDRAUSPERUI`` (area under signal for UI events) is the total area of the signal
              below a specified reference level calculated over consecutive unit intervals. It is
              applicable to data and data strobe waveforms.
            - ``DDRHOLDDIFF`` (hold difference) is the elapsed time between the specified edge of a
              single-ended clock waveform and the specified edge of a differential data waveform.
              The measurement uses the closest respective waveform edges that fall within the range
              limits.This measurement is made across the entire record.
            - ``DDRSETUPDIFF`` (setup difference) is the elapsed time between the specified edge of
              a single-ended clock waveform and when the specified edge of a differential data
              waveform crosses a specified level. The measurement uses the closest respective
              waveform edges that fall within the range limits. This measurement is made across the
              entire record.
            - ``DDRTCHABS`` (absolute high pulse width) is the absolute value of the high pulse
              width as measured from one rising edge to the next falling edge.
            - ``DDRTCHAVERAGE`` (average high pulse width) is the average value of the high pulse
              width as measured from one rising edge to the next falling edge, across 200
              consecutive cycles. This measurement is made across the entire record.
            - ``DDRTCKAVERAGE`` (average clock period) is the average clock period calculated from
              rising edge to rising edge, across 200 consecutive cycles. This measurement is made
              across the entire record.
            - ``DDRTCLABS`` (absolute low pulse width) is the absolute value of the low pulse width
              as measured from a falling edge to the next rising edge. This measurement is made
              across the entire record.
            - ``DDRTCLAVERAGE`` (average low pulse width) is the average value of the low pulse
              width as measured from one falling edge to the next rising edge, across 200
              consecutive cycles.
            - ``DDRTERRMN`` (cumulative error) is the cumulative error across multiple consecutive
              defined cycles from tCK(avg).
            - ``DDRTERRN`` (cumulative error) is the cumulative error across specified consecutive
              cycles from tCK(avg). In other words, this measures the time difference between the
              sum of the clock period from a 200 cycle window and n times tCK(avg).
            - ``DDRTJITCC`` (cycle to cycle jitter period) is the absolute difference in clock
              period between two consecutive clock cycles. This measurement is made across the
              entire record.
            - ``DDRTJITDUTY`` (half period jitter) is the largest elapsed time between tCH and
              tCH(avg), and tCL and tCL(avg), over 200 consecutive cycles.
            - ``DDRTJITPER`` (clock period jitter) is the largest deviation of any tCK signal from
              tCK(avg). This measurement is made across the entire record.
            - ``DDRTPST`` (read/write burst postamble) is the width of the Read or Write burst
              postamble, measured from the last falling edge of the mid reference level to the start
              of an undriven state. This measurement is made across the entire record.
            - ``DDRTRPRE`` (read burst preamble) is the width of the Read burst preamble, measured
              from exiting tristate levels to the first driving edge of the differential strobe.
              This measurement is made across the entire record.
            - ``DDRTWPRE`` is the width of theWrite burst preamble, measured from exiting tristate
              levels to the first driving edge of the differential strobe. This measurement is made
              across the entire record.
            - ``DDRVIXAC`` is the differential input cross-point voltage measured from the true
              state transition (and it's compliment) to a specified reference level, measured on a
              single-ended signal.
            - ``DDRTDQSCK`` is the strobe output access time, measured between the rising edge of
              the clock and before or after the differential strobe Read preamble time. Signal edges
              are determined by the mid-ref threshold level settings.
            - ``DELay`` is the time between the specified Mid reference level (RM) crossing on one
              source to a specified Mid reference level (RM) crossing on a second source. This
              measurement is made on the first occurrence in the record.
            - ``DJ`` (deterministic jitter) is the peak-to-peak amplitude of all timing errors that
              exhibit deterministic behavior. This measurement is made across the entire record.
              This measurement requires the DJA option and is not available on a 4 Series MSO
              instrument.
            - ``DJDIRAC`` (dual-dirac deterministic jitter) is deterministic jitter based on a
              simplifying assumption that the histogram of all deterministic jitter can be modeled
              as a pair of equal-magnitude Dirac functions. This measurement is made across the
              entire record. This measurement requires the DJA option and is not available on a 4
              Series MSO instrument.
            - ``DPMPSIJ`` is the Power Supply Induced Jitter. This measurement helps in suppressing
              the jitter in high speed signals (victim) induced from power rail signals (aggressor).
            - ``EYEHIGH`` (Eye High) is the amplitude of a high (1) bit measured at a user specified
              location within the recovered unit interval. This measurement is made on each high bit
              in the record. This measurement requires the DJA option and is not available on a 4
              Series MSO instrument.
            - ``EYELOW`` (Eye Low) is the amplitude of a low (0) bit measured at a user specified
              location within the recovered unit interval. This measurement is made on each low bit
              in the record. This measurement requires the DJA option and is not available on a 4
              Series MSO instrument.
            - ``FALLSLEWRATE`` (Falling Slew Rate) is the rate of change in voltage as an edge
              transitions from the Top reference level (RT) to the Bottom reference level (RB). This
              measurement is made on each cycle in the record.
            - ``FALLTIME`` (Fall Time) is the time required for an edge to fall from the Top
              reference level (RT) to the Base reference level (RB). This measurement is made on
              each cycle in the record.
            - ``FREQuency`` is the reciprocal of Period. This measurement is made on each cycle in
              the record.
            - ``F2`` is the peak-to-peak amplitude of the periodic jitter occurring at a rate of Fb
              (data rate) divided by 2. This measurement is made across the entire record. This
              measurement requires the DJA option and is not available on a 4 Series MSO instrument.
            - ``F4`` is the peak-to-peak amplitude of the periodic jitter occurring at a rate of Fb
              (data rate) divided by 4. This measurement is made across the entire record. This
              measurement requires the DJA option and is not available on a 4 Series MSO instrument.
            - ``F8`` is the peak-to-peak amplitude of the periodic jitter occurring at a rate of Fb
              (data rate) divided by 8. This measurement is made across the entire record. This
              measurement requires the DJA option and is not available on a 4 Series MSO instrument.
            - ``HIGH`` (Eye High) is the amplitude of a high (1) bit measured at a user specified
              location within the recovered unit interval. This measurement is made on each high bit
              in the record.
            - ``HEIGHT`` (Eye Height) is the minimum vertical eye opening at the center of the
              recovered unit interval. This measurement is made across the entire record. This
              measurement requires the DJA option and is not available on a 4 Series MSO instrument.
            - ``HEIGHTBER`` (Eye Height@BER) is the predicted vertical eye opening that will be
              violated with a probability equal to the bit error rate. This measurement is made
              across the entire record. This measurement requires the DJA option and is not
              available on a 4 Series MSO instrument.
            - ``HIGHTIME`` (High Time) is the time the signal remains above the Top reference level
              (RT). This measurement is made on each cycle in the record.
            - ``HOLD`` (Hold Time) is the time between the specified Mid reference level crossing
              (RM) on the Clock source to the closest specified Mid reference level (RM) crossing on
              the Data source. This measurement is made on each specified Clock edge in the record.
            - ``IMDAANGLE`` (Angle) measures the phase angle. Configure QEI or Hall sensor to.
            - ``compute`` the angle measurement. Requires a IMDA-MECH License.
            - ``IMDADIRECTION`` (Direction) defines the direction of rotation of the motor. Set the
              direction A-B-C or A-C-B for Hall sensors and CW or CCW for QEI based on the motor
              configuration. Requires a IMDA-MECH License.
            - ``IMDADQ0`` measures the DQ0 values of the phasor plot. This measurement requires
              options IMDA and IMDA-DQ0. Requires a IMDA-MECH License.
            - ``IMDAEFFICIENCY`` (Efficiency) measures the ratio of sum of output power(s) to input
              power for respective input and output Voltage and Current pairs. Note: the current
              release cannot support 3V and 3I pairs, since this requires 12 channels. We restrict
              to 2V and 2I which needs 8 scope channels. Requires a IMDA-MECH License.
            - ``IMDAHARMONICS`` (Harmonics) plots the signal amplitude at the fundamental line
              frequency and its harmonics and measures the RMS amplitude and Total Harmonic
              Distortion of the signal. Requires a IMDA-MECH License.
            - ``IMDAMECHPWR`` (Mechanical Power) measures the mechanical power of the motor drive
              system. It is determined by the Speed and Torque. It is measured in watts. Requires a
              IMDA-MECH License.
            - ``IMDAPOWERQUALITY`` (Power Quality) measures the Frequency and RMS values of the
              voltage and current, Crest Factors of the voltage and current, True Power (PTRUE),
              Reactive Power (PRE), Apparent Power (PAPP), Power Factor, and Phase Angle (θ) of the
              AC signal. Requires a IMDA-MECH License.
            - ``IMDASPEED`` (Speed) measures the speed and acceleration. Requires a IMDA-MECH
              License.
            - ``IMDASYSEFF`` (System Efficiency) measures the total efficiency of the motor drive
              system. Requires a IMDA-MECH License.
            - ``IMDATORQUE`` (Torque) measures the torque of the motor. Configure Sensor (analog) or
              Current method to measure the torque. Requires a IMDA-MECH License.
            - ``ISI`` (Inter Symbol Interference) is defined as the range (difference between the
              maximum and minimum value) of DDJ-per-edge values appearing across all rising edges,
              or the range of DDJ-per-edge values across all falling edges, whichever is greater.
              This measurement requires the DJA option and is not available on a 4 Series MSO
              instrument.
            - ``JITTERSUMMARY`` (Jitter Summary) is a group consisting of the followingmeasurements:
              Data Rate, Pattern Length, TIE, TJ@BER, RJ, DJ, DJ-δδ, PJ,DDJ, DCD, Eye Width@BER and
              RJ-δδ. This measurement requires the DJAoption and is not available on a 4 Series MSO
              instrument.
            - ``JITTERSUMMARY`` (Jitter Summary) is a group consisting of the following
              measurements: TIE, TJ@BER, Eye Width@BER, Eye Height@BER, RJ-δδ, DJ-δδ, PJ, DDJ, DcD,
              F/2, F/4, F/8. This measurement requires the DJA option and is not available on a 4
              Series MSO instrument.
            - ``J2`` is the total jitter at a bit error rate of 2.5e-3 (TJ@2.5e-3). This measurement
              is made across the entire record. This measurement requires the DJA option and is not
              available on a 4 Series MSO instrument.
            - ``J9`` is the total jitter at a bit error rate of 2.5e-10 (TJ@2.5e-10). This
              measurement is made across the entire record. This measurement requires the DJA option
              and is not available on a 4 Series MSO instrument.
            - ``LOW`` (Eye Low) is the amplitude of a low (0) bit measured at a user specified
              location within the recovered unit interval. This measurement is made on each low bit
              in the record.
            - ``LOWTIME`` (Low Time) is the time the signal remains below the Base reference level
              (RB). This measurement is made on each cycle in the record.
            - ``MAXimum`` is the maximum data point. This measurement can be made across the entire
              record, or on each cycle in the record.
            - ``MEAN`` is the arithmetic mean of the data points. This measurement can be made
              across the entire record, or on each cycle in the record.
            - ``MINImum`` is the minimum data point. This measurement can be made across the entire
              record, or on each cycle in the record.
            - ``NDUty`` (Negative Duty Cycle) is the ratio of the Negative Pulse Width to the
              Period. This measurement is made on each cycle in the record.
            - ``NPERIOD`` (Duration N-Periods) is the time required to complete N cycles. A cycle is
              the time between two adjacent (same direction) crossings of the Mid reference level
              (RM). This measurement is made on each cycle in the record.
            - ``NPJ`` (non-periodic jitter) is the portion of the BUJ (bounded uncorrelated jitter)
              that is random. BUJ excludes DDJ, DCD and RJ. This measurement is made across the
              entire record. This measurement requires the DJA option and is not available on a 4
              Series MSO instrument.
            - ``NOVershoot`` (Negative Overshoot) is the difference between Minimum and Base,
              divided by the Amplitude. This measurement can be made across the entire record, or on
              each cycle in the record.
            - ``NWIDTH`` (Negative Pulse Width) is the time the signal remains below the Mid
              reference level (RM). This measurement is made on each cycle in the record.
            - ``OBW`` (Occupied Bandwidth) refers to the bandwidth, including energy of a certain
              proportion of the total transmitted power, with the center frequency of the specified
              channel as the center.
            - ``PATTERNLENGTH`` (Pattern Length) is the number of symbols that constitute onefull
              repetition of a sequence within a signal. This measurement requires the DJAoption and
              is not available on a 4 Series MSO instrument.
            - ``PDUTY`` (Positive Duty Cycle) is the ratio of the Positive Pulse Width to the
              Period. This measurement is made on each cycle in the record.
            - ``PERIOD`` is the time required to complete a cycle. A cycle is the time between two
              adjacent (same direction) crossings of the Mid reference level (RM). This measurement
              is made on each cycle in the record.
            - ``PHASE`` is the ratio of the Skew between two sources to the Period of the first
              source. This measurement is made on each cycle in the record.
            - ``PHASENOISE`` (Phase Noise) is the RMS magnitude of all integrated jitter falling
              within a user specified offset range of the fundamental clock frequency. This
              measurement is made across the entire record. This measurement is not available on a 4
              Series MSO instrument.
            - ``PJ`` (periodic jitter) is the peak-to-peak amplitude of the uncorrelated sinusoidal
              components of the deterministic jitter. This measurement is made across the entire
              record. This measurement requires the DJA option and is not available on a 4 Series
              MSO instrument.
            - ``PK2Pk`` (Peak-to-peak) is the difference between Maximum and Minimum. This
              measurement can be made across the entire record, or on each cycle in the record.
            - ``POVERSHOOT`` (Positive Overshoot) is the difference between Maximum and Top, divided
              by the Amplitude. This measurement can be made across the entire record, or on each
              cycle in the record.
            - ``PWIDTH`` (Positive Pulse Width) is the time the signal remains above the Mid
              reference level (RM). This measurement is made on each cycle in the record.
            - ``QFACTOR`` (Q-Factor) is the ratio of the vertical eye opening to RMS vertical noise
              measured at a user specified location within the recovered unit interval. This
              measurement is made across the entire record. This measurement requires the DJA option
              and is not available on a 4 Series MSO instrument.
            - ``RDSON`` (Dynamic resistance) is the resistance offered by a switching device
              whendevice is in ON condition. RDS(on) measurement will provide trend of
              dynamicresistance on auto created math waveform.
            - ``RISESLEWRATE`` (Rising Slew Rate) is the rate of change in voltage as an edge
              transitions from the Base reference level (RB) to the Top reference level (RT). This
              measurement is made on each cycle in the record.
            - ``RISETIME`` Rise Time is the time required for an edge to rise from the Base
              reference level (RB) to the Top reference level (RT). This measurement is made on each
              cycle in the record.
            - ``RJ`` (random jitter) is the RMS magnitude of all random timing errors following a
              Gaussian distribution. This measurement is made across the entire record. This
              measurement requires the DJA option and is not available on a 4 Series MSO instrument.
            - ``RJDIRAC`` (dual-dirac random jitter) is random jitter based on a simplifying
              assumption that the histogram of all deterministic jitter can be modeled as a pair of
              equal-magnitude Dirac functions. This measurement is made across the entire record.
              This measurement requires the DJA option and is not available on a 4 Series MSO
              instrument.
            - ``RMS`` is the true Root Mean Square of the data points. This measurement can be made
              across the entire record, or on each cycle in the record.
            - ``SRJ`` (sub-rate jitter) is the composite jitter due to periodic components at 1/2,
              1/4 and 1/8 of the data rate. This measurement is made across the entire record. This
              measurement requires the DJA option and is not available on a 4 Series MSO instrument.
            - ``SSCFREQDEV`` (SSC Frequency Deviation) is the spread spectrum clock frequency
              deviation. This measurement enables a time trend plot of the spread spectrum clock
              modulation profile. This measurement is made on each cycle in the record. This
              measurement requires the DJA option and is not available on a 4 Series MSO instrument.
            - ``SSCMODRATE`` (SSC Modulation Rate) is the modulating frequency of a spread spectrum
              clock. This measurement is made on each cycle in the record. This measurement requires
              the DJA option and is not available on a 4 Series MSO instrument.
            - ``SSCSLEWRATE`` (SSC Slew Rate) is the rate of change of the modulating frequencyof a
              spread spectrum clock. This measurement is made on each cycle in therecord. This
              measurement requires the DJA option and is not available on a 4Series MSO instrument.
            - ``SETUP`` (Setup Time) is the time between the specified Mid reference level (R.
            - ``SKEW`` Skew is the time between the specified Mid reference level (R.
            - ``TIE`` (time interval error) is the difference, in time, between an edge in the
              source waveform and the corresponding edge in a recovered reference clock. This
              measurement is made on each edge in the waveform. This measurement is not available on
              a 4 Series MSO instrument.
            - ``TIMEOUTSIDELEVEL`` Time Outside Level is the time the signal remains above the Top
              reference level (RT) and/or below the Base reference level (R.
            - ``TIMETOMAX`` Time to Max is the amount of time from the trigger point to the maximum
              data point. This measurement can be made across the entire record or on each cycle in
              the record.
            - ``TIMETOMIN`` Time to Min is the amount of time from the trigger point to the minimum
              data point. This measurement can be made across the entire record or on each cycle in
              the record.
            - ``TJBER`` (total jitter at a specified bit error rate) is the predicted peak-to-peak
              amplitude of jitter that will only be exceeded with a probability equal to the bit
              error rate. This measurement is made across the entire record. This measurement
              requires the DJA option and is not available on a 4 Series MSO instrument.
            - ``TNTRATIO`` T/nT Ratio is the ratio of a non-transition bit voltage (2nd and
              subsequent bit voltage after a transition) to its nearest preceding transition bit
              voltage (1st bit voltage after the transition). Bit voltages are measured at the
              interpolated midpoint of the recovered unit interval. This measurement is made on each
              non-transition bit in the record. This measurement requires the DJA option and is not
              available on a 4 Series MSO instrument.
            - ``TOP`` is the most common data value above the midpoint of the waveform. This
              measurement can be made across the entire record, or on each cycle in the record.
            - ``UNITINTERVAL`` (Unit Interval) is the time difference between two successive bits.
              This measurement is made on each bit in the record.
            - ``VDIFFXOVR`` (Differential Crossover) is the voltage level of a differential signal
              pair at the crossover points. This measurement is made at each crossover point in the
              record. This measurement requires the DJA option and is not available on a 4 Series
              MSO instrument.
            - ``WBGDDT`` (d/dt) measures the rate of change of voltage or current (slew rate) from
              the configured start level to the stop level. Requires a WBG-DPT License.
            - ``WBGDIODEDDT`` (Diode d/dt) measures the rate of change of voltage or current (slew
              rate) during the specified start and stop integration levels. Diode d/dt can be
              measured during rising or falling edge. Requires a WBG-DPT License.
            - ``WBGEOFF`` (Eoff) measures the energy dissipated in the Power Device during off
              region using the configured levels. Requires a WBG-DPT License.
            - ``WBGEON`` (Eon) measures the energy dissipated in the Power Device during on region
              using the configured levels. Requires a WBG-DPT License.
            - ``WBGERR`` (Err) measures the reverse recovery energy dissipated in the Power Device
              using the configured levels. Requires a WBG-DPT License.
            - ``WBGIPEAK`` (Ipeak) measures the peak current of the Power Device in the on region.
              Requires a WBG-DPT License.
            - ``WBGIRRM`` (Irrm) measures the maximum current dissipated in the Power Device in the
              reverse recovery region. Requires a WBG-DPT License.
            - ``WBGQOSS`` (Qoss) is the charge that must be supplied to the output capacitance of
              the power device during a specified time interval. Requires a WBG-DPT License.
            - ``WBGQRR`` (Qrr) measures the reverse recovery charge in the Power Device using the
              configured levels. Requires a WBG-DPT License.
            - ``WBGTDOFF`` (Td(off)) measures the turn off delay time of the Power Device in the off
              region using the configured levels. Requires a WBG-DPT License.
            - ``WBGTDON`` (Td(on)) measures the turn on delay time of the Power Device in the on
              region using the configured levels. Requires a WBG-DPT License.
            - ``WBGTF`` (Tf) measures the fall time of the Power Device in the off region using the
              configured levels.
            - ``WBGTOFF`` (Toff) measures the turn off time of the Power Device. It is the sum of
              the turn off delay time and the fall time. Requires a WBG-DPT License.
            - ``WBGTON`` (Ton) measures the turn on time of the Power Device. It is the sum of the
              turn on delay time and the rise time. Requires a WBG-DPT License.
            - ``WBGTR`` (Tr) measures the rise time of the Power Device in the on region using the
              configured levels. Requires a WBG-DPT License.
            - ``WBGTRR`` (Trr) measures the reverse recovery time of the Power Device using the
              configured levels. Requires a WBG-DPT License.
            - ``WBGTDT`` (Tdt) the time delay between turn on time of the high side MOSFET and turn
              on time of the low side MOSFET during the simultaneous switching. Requires a WBG-DPT
              License.
            - ``WBGVPEAK`` (Vpeak) measures the peak voltage of the Power Device in the off region.
              Requires a WBG-DPT License.
            - ``WIDTH`` (Eye Width) is the minimum horizontal eye opening at the user specified
              reference level. This measurement is made across the entire record. This measurement
              requires the DJA option and is not available on a 4 Series MSO instrument.
            - ``WIDTHBER`` (Eye Width@BER) is the predicted horizontal eye opening that will be
              violated with a probability equal to the bit error rate. This measurement is made
              across the entire record. This measurement requires the DJA option and is not
              available on a 4 Series MSO instrument.
        """  # noqa: E501
        return self._type

    @property
    def vlevel(self) -> MeasurementMeasItemVlevel:
        """Return the ``MEASUrement:MEAS<x>:VLEVel`` command.

        Description:
            - This command sets or queries whether histogram center is percentage relative to unit
              interval or an absolute value for eye width measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:VLEVel?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:VLEVel?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:VLEVel value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:VLEVel {PERCent|ABSolute}
            - MEASUrement:MEAS<x>:VLEVel?
            ```

        Info:
            - ``MEAS<x>`` is the measurement number.
            - ``PERCent`` sets the histogram center as a percentage relative to unit interval.
            - ``ABSolute`` sets the histogram center as an absolute value.
        """
        return self._vlevel

    @property
    def waittime(self) -> MeasurementMeasItemWaittime:
        """Return the ``MEASUrement:MEAS<x>:WAITTime`` command.

        Description:
            - Sets or queries the wait time.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:WAITTime?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:WAITTime?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:WAITTime value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:WAITTime <NR2>
            - MEASUrement:MEAS<x>:WAITTime?
            ```

        Info:
            - ``MEAS<x>`` is the measurement number.
            - ``<NR2>`` is the wait time, in the range of 1 s to 500 s.
        """
        return self._waittime

    @property
    def wbg(self) -> MeasurementMeasItemWbg:
        """Return the ``MEASUrement:MEAS<x>:WBG`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:WBG?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:WBG?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.afgsetup``: The ``MEASUrement:MEAS<x>:WBG:AFGSetup`` command.
            - ``.afgaddress``: The ``MEASUrement:MEAS<x>:WBG:AFGaddress`` command.
            - ``.cstatus``: The ``MEASUrement:MEAS<x>:WBG:CSTatus`` command.
            - ``.gtype``: The ``MEASUrement:MEAS<x>:WBG:GTYPe`` command.
            - ``.high``: The ``MEASUrement:MEAS<x>:WBG:HIGH`` command.
            - ``.load``: The ``MEASUrement:MEAS<x>:WBG:LOAD`` command.
            - ``.low``: The ``MEASUrement:MEAS<x>:WBG:LOW`` command.
            - ``.npuls``: The ``MEASUrement:MEAS<x>:WBG:NPULs`` command.
            - ``.pgval``: The ``MEASUrement:MEAS<x>:WBG:PG<x>Val`` command.
            - ``.pwval``: The ``MEASUrement:MEAS<x>:WBG:PW<x>Val`` command.
            - ``.timer``: The ``MEASUrement:MEAS<x>:WBG:TIMer`` command.
        """
        return self._wbg

    @property
    def width(self) -> MeasurementMeasItemWidth:
        """Return the ``MEASUrement:MEAS<x>:WIDTh`` command.

        Description:
            - This command sets or queries the histogram width in terms of percentage.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:WIDTh?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:WIDTh?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MEAS<x>:WIDTh value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:WIDTh <NR1>
            - MEASUrement:MEAS<x>:WIDTh?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
            - ``<NR1>`` is the value for the width.
        """
        return self._width

    @property
    def windowlength(self) -> MeasurementMeasItemWindowlength:
        """Return the ``MEASUrement:MEAS<x>:WINDOWLENgth`` command.

        Description:
            - This command sets or queries the window length for the measurement. The measurement
              number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:WINDOWLENgth?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MEAS<x>:WINDOWLENgth?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MEAS<x>:WINDOWLENgth value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:WINDOWLENgth <NR3>
            - MEASUrement:MEAS<x>:WINDOWLENgth?
            ```

        Info:
            - ``<NR3>`` is the value for the window length.
        """
        return self._windowlength

    @property
    def xunit(self) -> MeasurementMeasItemXunit:
        """Return the ``MEASUrement:MEAS<x>:XUNIT`` command.

        Description:
            - Returns the horizontal scale units of the specified measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:XUNIT?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:XUNIT?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:XUNIT?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
        """
        return self._xunit

    @property
    def yunit(self) -> MeasurementMeasItemYunit:
        """Return the ``MEASUrement:MEAS<x>:YUNIT`` command.

        Description:
            - Returns the vertical scale units of the specified measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>:YUNIT?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>:YUNIT?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:MEAS<x>:YUNIT?
            ```

        Info:
            - ``MEAS<x>`` specifies the measurement number.
        """
        return self._yunit


class MeasurementMathItemReflevelsPercentType(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MATH<x>:REFLevels:PERCent:TYPE`` command.

    Description:
        - This command specifies or queries the reference level percent type for the measurement.
          The math number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:PERCent:TYPE?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:PERCent:TYPE?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:PERCent:TYPE value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MATH<x>:REFLevels:PERCent:TYPE {TENNinety|TWENtyeighty|CUSTom}
        - MEASUrement:MATH<x>:REFLevels:PERCent:TYPE?
        ```

    Info:
        - ``MATH<x>`` specifies the math number.
        - ``TENNinety`` sets the values for Low, Mid and High Ref to 10%, 50% and 90% respectively.
        - ``TWENtyeighty`` sets the values for Low, Mid and High Ref are set to 20%, 50% and 80%
          respectively.
        - ``CUSTom`` allows setting other reference level percents.
    """


class MeasurementMathItemReflevelsPercentRisemid(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MATH<x>:REFLevels:PERCent:RISEMid`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the mid reference level of the rising edge when the measurement
          ref level method is set to percent. The math number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:PERCent:RISEMid?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:PERCent:RISEMid?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:PERCent:RISEMid value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MATH<x>:REFLevels:PERCent:RISEMid <NR3>
        - MEASUrement:MATH<x>:REFLevels:PERCent:RISEMid?
        ```

    Info:
        - ``MATH<x>`` specifies the math number.
        - ``<NR3>`` is the percentage (where 50% is equal to MID) used to calculate the mid
          reference level when the measurement Ref level method is set to Percent.
    """


class MeasurementMathItemReflevelsPercentRiselow(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MATH<x>:REFLevels:PERCent:RISELow`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the low reference level of the rising edge when the measurement
          ref level method is set to percent. The math number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:PERCent:RISELow?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:PERCent:RISELow?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:PERCent:RISELow value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MATH<x>:REFLevels:PERCent:RISELow <NR3>
        - MEASUrement:MATH<x>:REFLevels:PERCent:RISELow?
        ```

    Info:
        - ``MATH<x>`` specifies the math number.
        - ``<NR3>`` is the percentage (where 100% is equal to TOP) used to calculate the mid
          reference level when the measurement Ref level method is set to Percent.
    """


class MeasurementMathItemReflevelsPercentRisehigh(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MATH<x>:REFLevels:PERCent:RISEHigh`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the high reference level of the rising edge when the measurement
          ref level method is set to percent. The math number is specified by x. The measurement
          number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:PERCent:RISEHigh?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:PERCent:RISEHigh?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:PERCent:RISEHigh value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MATH<x>:REFLevels:PERCent:RISEHigh <NR3>
        - MEASUrement:MATH<x>:REFLevels:PERCent:RISEHigh?
        ```

    Info:
        - ``MATH<x>`` specifies the math number.
        - ``<NR3>`` is the percentage (where 100% is equal to TOP) used to calculate the high
          reference level when the measurement's Ref level method is set to Percent.
    """


class MeasurementMathItemReflevelsPercentHysteresis(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MATH<x>:REFLevels:PERCent:HYSTeresis`` command.

    Description:
        - This command sets or queries the percentage (where 100% is equal to MAX and 0% is equal to
          MIN) used to calculate the hysteresis of the reference level when the measurement ref
          level method is set to percent. The math number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:PERCent:HYSTeresis?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:PERCent:HYSTeresis?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:PERCent:HYSTeresis value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MATH<x>:REFLevels:PERCent:HYSTeresis <NR3>
        - MEASUrement:MATH<x>:REFLevels:PERCent:HYSTeresis?
        ```

    Info:
        - ``MATH<x>`` specifies the math number.
        - ``<NR3>`` is the hysteresis value used for the autoset.
    """


class MeasurementMathItemReflevelsPercentFallmid(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLMid`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the mid reference level of the falling edge when the measurement
          ref level method is set to percent. The math number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLMid?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLMid?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLMid value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MATH<x>:REFLevels:PERCent:FALLMid <NR3>
        - MEASUrement:MATH<x>:REFLevels:PERCent:FALLMid?
        ```

    Info:
        - ``MATH<x>`` specifies the math number.
        - ``<NR3>`` is the percentage (where 50% is equal to MID) used to calculate the mid
          reference level when the measurement Ref level method is set to Percent.
    """


class MeasurementMathItemReflevelsPercentFalllow(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLLow`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the low reference level of the falling edge when the measurement
          ref level method is set to percent. The math number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLLow?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLLow?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLLow value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MATH<x>:REFLevels:PERCent:FALLLow <NR3>
        - MEASUrement:MATH<x>:REFLevels:PERCent:FALLLow?
        ```

    Info:
        - ``MATH<x>`` specifies the math number.
        - ``<NR3>`` is the percentage (where 100% is equal to HIGH) used to calculate the mid
          reference level when the measurement's Ref level method is set to Percent.
    """


class MeasurementMathItemReflevelsPercentFallhigh(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLHigh`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the high reference level of the falling edge when the measurement
          ref level method is set to percent. The math number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLHigh?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLHigh?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLHigh value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MATH<x>:REFLevels:PERCent:FALLHigh <NR3>
        - MEASUrement:MATH<x>:REFLevels:PERCent:FALLHigh?
        ```

    Info:
        - ``MATH<x>`` specifies the math number.
        - ``<NR3>`` is the percentage (where 100% is equal to HIGH) used to calculate the high
          reference level when the measurement Ref level method is set to Percent.
    """


#  pylint: disable=too-many-instance-attributes
class MeasurementMathItemReflevelsPercent(SCPICmdRead):
    """The ``MEASUrement:MATH<x>:REFLevels:PERCent`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MATH<x>:REFLevels:PERCent?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:PERCent?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Info:
        - ``MATH<x>`` specifies the math number.

    Properties:
        - ``.fallhigh``: The ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLHigh`` command.
        - ``.falllow``: The ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLLow`` command.
        - ``.fallmid``: The ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLMid`` command.
        - ``.hysteresis``: The ``MEASUrement:MATH<x>:REFLevels:PERCent:HYSTeresis`` command.
        - ``.risehigh``: The ``MEASUrement:MATH<x>:REFLevels:PERCent:RISEHigh`` command.
        - ``.riselow``: The ``MEASUrement:MATH<x>:REFLevels:PERCent:RISELow`` command.
        - ``.risemid``: The ``MEASUrement:MATH<x>:REFLevels:PERCent:RISEMid`` command.
        - ``.type``: The ``MEASUrement:MATH<x>:REFLevels:PERCent:TYPE`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._fallhigh = MeasurementMathItemReflevelsPercentFallhigh(
            device, f"{self._cmd_syntax}:FALLHigh"
        )
        self._falllow = MeasurementMathItemReflevelsPercentFalllow(
            device, f"{self._cmd_syntax}:FALLLow"
        )
        self._fallmid = MeasurementMathItemReflevelsPercentFallmid(
            device, f"{self._cmd_syntax}:FALLMid"
        )
        self._hysteresis = MeasurementMathItemReflevelsPercentHysteresis(
            device, f"{self._cmd_syntax}:HYSTeresis"
        )
        self._risehigh = MeasurementMathItemReflevelsPercentRisehigh(
            device, f"{self._cmd_syntax}:RISEHigh"
        )
        self._riselow = MeasurementMathItemReflevelsPercentRiselow(
            device, f"{self._cmd_syntax}:RISELow"
        )
        self._risemid = MeasurementMathItemReflevelsPercentRisemid(
            device, f"{self._cmd_syntax}:RISEMid"
        )
        self._type = MeasurementMathItemReflevelsPercentType(device, f"{self._cmd_syntax}:TYPE")

    @property
    def fallhigh(self) -> MeasurementMathItemReflevelsPercentFallhigh:
        """Return the ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLHigh`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the high reference level of the falling edge when the
              measurement ref level method is set to percent. The math number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLHigh?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLHigh?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLHigh value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MATH<x>:REFLevels:PERCent:FALLHigh <NR3>
            - MEASUrement:MATH<x>:REFLevels:PERCent:FALLHigh?
            ```

        Info:
            - ``MATH<x>`` specifies the math number.
            - ``<NR3>`` is the percentage (where 100% is equal to HIGH) used to calculate the high
              reference level when the measurement Ref level method is set to Percent.
        """
        return self._fallhigh

    @property
    def falllow(self) -> MeasurementMathItemReflevelsPercentFalllow:
        """Return the ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLLow`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the low reference level of the falling edge when the
              measurement ref level method is set to percent. The math number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLLow?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLLow?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLLow value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MATH<x>:REFLevels:PERCent:FALLLow <NR3>
            - MEASUrement:MATH<x>:REFLevels:PERCent:FALLLow?
            ```

        Info:
            - ``MATH<x>`` specifies the math number.
            - ``<NR3>`` is the percentage (where 100% is equal to HIGH) used to calculate the mid
              reference level when the measurement's Ref level method is set to Percent.
        """
        return self._falllow

    @property
    def fallmid(self) -> MeasurementMathItemReflevelsPercentFallmid:
        """Return the ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLMid`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the mid reference level of the falling edge when the
              measurement ref level method is set to percent. The math number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLMid?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLMid?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLMid value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MATH<x>:REFLevels:PERCent:FALLMid <NR3>
            - MEASUrement:MATH<x>:REFLevels:PERCent:FALLMid?
            ```

        Info:
            - ``MATH<x>`` specifies the math number.
            - ``<NR3>`` is the percentage (where 50% is equal to MID) used to calculate the mid
              reference level when the measurement Ref level method is set to Percent.
        """
        return self._fallmid

    @property
    def hysteresis(self) -> MeasurementMathItemReflevelsPercentHysteresis:
        """Return the ``MEASUrement:MATH<x>:REFLevels:PERCent:HYSTeresis`` command.

        Description:
            - This command sets or queries the percentage (where 100% is equal to MAX and 0% is
              equal to MIN) used to calculate the hysteresis of the reference level when the
              measurement ref level method is set to percent. The math number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:PERCent:HYSTeresis?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:PERCent:HYSTeresis?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:PERCent:HYSTeresis value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MATH<x>:REFLevels:PERCent:HYSTeresis <NR3>
            - MEASUrement:MATH<x>:REFLevels:PERCent:HYSTeresis?
            ```

        Info:
            - ``MATH<x>`` specifies the math number.
            - ``<NR3>`` is the hysteresis value used for the autoset.
        """
        return self._hysteresis

    @property
    def risehigh(self) -> MeasurementMathItemReflevelsPercentRisehigh:
        """Return the ``MEASUrement:MATH<x>:REFLevels:PERCent:RISEHigh`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the high reference level of the rising edge when the
              measurement ref level method is set to percent. The math number is specified by x. The
              measurement number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:PERCent:RISEHigh?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:PERCent:RISEHigh?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:PERCent:RISEHigh value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MATH<x>:REFLevels:PERCent:RISEHigh <NR3>
            - MEASUrement:MATH<x>:REFLevels:PERCent:RISEHigh?
            ```

        Info:
            - ``MATH<x>`` specifies the math number.
            - ``<NR3>`` is the percentage (where 100% is equal to TOP) used to calculate the high
              reference level when the measurement's Ref level method is set to Percent.
        """
        return self._risehigh

    @property
    def riselow(self) -> MeasurementMathItemReflevelsPercentRiselow:
        """Return the ``MEASUrement:MATH<x>:REFLevels:PERCent:RISELow`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the low reference level of the rising edge when the
              measurement ref level method is set to percent. The math number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:PERCent:RISELow?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:PERCent:RISELow?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:PERCent:RISELow value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MATH<x>:REFLevels:PERCent:RISELow <NR3>
            - MEASUrement:MATH<x>:REFLevels:PERCent:RISELow?
            ```

        Info:
            - ``MATH<x>`` specifies the math number.
            - ``<NR3>`` is the percentage (where 100% is equal to TOP) used to calculate the mid
              reference level when the measurement Ref level method is set to Percent.
        """
        return self._riselow

    @property
    def risemid(self) -> MeasurementMathItemReflevelsPercentRisemid:
        """Return the ``MEASUrement:MATH<x>:REFLevels:PERCent:RISEMid`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the mid reference level of the rising edge when the
              measurement ref level method is set to percent. The math number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:PERCent:RISEMid?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:PERCent:RISEMid?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:PERCent:RISEMid value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MATH<x>:REFLevels:PERCent:RISEMid <NR3>
            - MEASUrement:MATH<x>:REFLevels:PERCent:RISEMid?
            ```

        Info:
            - ``MATH<x>`` specifies the math number.
            - ``<NR3>`` is the percentage (where 50% is equal to MID) used to calculate the mid
              reference level when the measurement Ref level method is set to Percent.
        """
        return self._risemid

    @property
    def type(self) -> MeasurementMathItemReflevelsPercentType:
        """Return the ``MEASUrement:MATH<x>:REFLevels:PERCent:TYPE`` command.

        Description:
            - This command specifies or queries the reference level percent type for the
              measurement. The math number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:PERCent:TYPE?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:PERCent:TYPE?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:PERCent:TYPE value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MATH<x>:REFLevels:PERCent:TYPE {TENNinety|TWENtyeighty|CUSTom}
            - MEASUrement:MATH<x>:REFLevels:PERCent:TYPE?
            ```

        Info:
            - ``MATH<x>`` specifies the math number.
            - ``TENNinety`` sets the values for Low, Mid and High Ref to 10%, 50% and 90%
              respectively.
            - ``TWENtyeighty`` sets the values for Low, Mid and High Ref are set to 20%, 50% and 80%
              respectively.
            - ``CUSTom`` allows setting other reference level percents.
        """
        return self._type


class MeasurementMathItemReflevelsMethod(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MATH<x>:REFLevels:METHod`` command.

    Description:
        - This command sets or queries the method used to calculate reference levels for the
          measurement. The math number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MATH<x>:REFLevels:METHod?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:METHod?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:METHod value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MATH<x>:REFLevels:METHod {PERCent|ABSolute}
        - MEASUrement:MATH<x>:REFLevels:METHod?
        ```

    Info:
        - ``MATH<x>`` specifies the math number.
        - ``PERCent`` specifies that the reference levels are calculated as a percent relative to
          HIGH and LOW. The percentages are defined using the
          ``MEASUrement:MATH<x>:REFLevel:PERCent`` commands.
        - ``ABSolute`` specifies that the reference levels are set explicitly using the
          ``MEASUrement:MATH<x>:REFLevel:ABSolute`` commands. This method is useful when precise
          values are required.
    """


class MeasurementMathItemReflevelsBasetop(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MATH<x>:REFLevels:BASETop`` command.

    Description:
        - This command sets or queries the method used to calculate the TOP and BASE used to
          calculate reference levels for the measurement. The math number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MATH<x>:REFLevels:BASETop?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:BASETop?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:BASETop value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MATH<x>:REFLevels:BASETop {AUTO|MINMax|MEANhistogram|MODEhistogram|EYEhistogram}
        - MEASUrement:MATH<x>:REFLevels:BASETop?
        ```

    Info:
        - ``MATH<x>`` specifies the math number.
        - ``AUTO`` automatically chooses a reference level method.
        - ``MINMax`` specifies that reference levels are relative to the measurement MIN and MAX.
        - ``MEANhistogram`` specifies that reference levels are relative to the histogram mean BASE
          and TOP.
        - ``MODEhistogram`` specifies that reference levels are relative to the histogram mode BASE
          and TOP.
        - ``EYEhistogram`` specifies that reverence levels are relative to the eye histogram BASE
          and TOP.
    """  # noqa: E501


class MeasurementMathItemReflevelsAbsoluteType(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MATH<x>:REFLevels:ABSolute:TYPE`` command.

    Description:
        - This command sets or queries the reference level type for the measurement. The math number
          is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:ABSolute:TYPE?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:ABSolute:TYPE?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:ABSolute:TYPE value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MATH<x>:REFLevels:ABSolute:TYPE {SAME|UNIQue}
        - MEASUrement:MATH<x>:REFLevels:ABSolute:TYPE?
        ```

    Info:
        - ``MATH<x>`` specifies the math number.
        - ``SAME`` specifies that the absolute levels are set the same.
        - ``UNIQue`` specifies that the absolute levels can be set independently.
    """


class MeasurementMathItemReflevelsAbsoluteRisemid(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISEMid`` command.

    Description:
        - This command sets or queries the value used as the mid reference level of the rising edge
          when the measurement ref level method is set to absolute. The math number is specified by
          x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISEMid?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISEMid?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISEMid value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MATH<x>:REFLevels:ABSolute:RISEMid <NR3>
        - MEASUrement:MATH<x>:REFLevels:ABSolute:RISEMid?
        ```

    Info:
        - ``MATH<x>`` specifies the math number.
        - ``<NR3>`` is the mid reference level (where 50% is equal to MID) used to calculate the mid
          reference level when the measurement Ref level method is set to Absolute.
    """


class MeasurementMathItemReflevelsAbsoluteRiselow(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISELow`` command.

    Description:
        - This command sets or queries the value used as the low reference level of the rising edge
          when the measurement ref level method is set to absolute. The math number is specified by
          x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISELow?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISELow?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISELow value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MATH<x>:REFLevels:ABSolute:RISELow <NR3>
        - MEASUrement:MATH<x>:REFLevels:ABSolute:RISELow?
        ```

    Info:
        - ``MATH<x>`` specifies the math number.
        - ``<NR3>`` is the high reference level, and is the zero percent level when
          ``MEASUrement:IMMed:REFLevel:METHod`` is set to Absolute.
    """


class MeasurementMathItemReflevelsAbsoluteRisehigh(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISEHigh`` command.

    Description:
        - This command sets or queries the value used as the high reference level of the rising edge
          when the measurement ref level method is set to absolute. The math number is specified by
          x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISEHigh?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISEHigh?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISEHigh value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MATH<x>:REFLevels:ABSolute:RISEHigh <NR3>
        - MEASUrement:MATH<x>:REFLevels:ABSolute:RISEHigh?
        ```

    Info:
        - ``MATH<x>`` specifies the math number.
        - ``<NR3>`` is the high reference level, and is the zero percent level when
          ``MEASUrement:IMMed:REFLevel:METHod`` is set to Absolute.
    """


class MeasurementMathItemReflevelsAbsoluteHysteresis(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MATH<x>:REFLevels:ABSolute:HYSTeresis`` command.

    Description:
        - This command sets or queries the value of the hysteresis of the reference level when the
          measurement ref level method is set to absolute. The math number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:ABSolute:HYSTeresis?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:ABSolute:HYSTeresis?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:ABSolute:HYSTeresis value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MATH<x>:REFLevels:ABSolute:HYSTeresis <NR3>
        - MEASUrement:MATH<x>:REFLevels:ABSolute:HYSTeresis?
        ```

    Info:
        - ``MATH<x>`` specifies the math number.
        - ``<NR3>`` is the hysteresis value used for the autoset.
    """


class MeasurementMathItemReflevelsAbsoluteFallmid(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLMid`` command.

    Description:
        - This command sets or queries the value used as the mid reference level of the falling edge
          when the measurement ref level method is set to absolute. The math number is specified by
          x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLMid?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLMid?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLMid value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MATH<x>:REFLevels:ABSolute:FALLMid <NR3>
        - MEASUrement:MATH<x>:REFLevels:ABSolute:FALLMid?
        ```

    Info:
        - ``MATH<x>`` specifies the math number.
        - ``<NR3>`` is the mid reference level (where 50% is equal to MID) used to calculate the mid
          reference level when the measurement's Ref level method is set to Absolute.
    """


class MeasurementMathItemReflevelsAbsoluteFalllow(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLLow`` command.

    Description:
        - This command sets or queries the value used as the low reference level of the falling edge
          when the measuement ref level method is set to absolute. The math number is specified by
          x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLLow?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLLow?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLLow value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MATH<x>:REFLevels:ABSolute:FALLLow <NR3>
        - MEASUrement:MATH<x>:REFLevels:ABSolute:FALLLow?
        ```

    Info:
        - ``MATH<x>`` specifies the math number.
        - ``<NR3>`` is the high reference level, and is the zero percent level when
          ``MEASUrement:IMMed:REFLevel:METHod`` is set to Absolute.
    """


class MeasurementMathItemReflevelsAbsoluteFallhigh(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLHigh`` command.

    Description:
        - This command sets or queries the value used as the high reference level of the falling
          edge when the measurement ref level method is set to absolute. The math number is
          specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLHigh?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLHigh?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLHigh value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:MATH<x>:REFLevels:ABSolute:FALLHigh <NR3>
        - MEASUrement:MATH<x>:REFLevels:ABSolute:FALLHigh?
        ```

    Info:
        - ``MATH<x>`` specifies the math number.
        - ``<NR3>`` is the high reference level, and is the zero percent level when
          ``MEASUrement:IMMed:REFLevel:METHod`` is set to Absolute.
    """


#  pylint: disable=too-many-instance-attributes
class MeasurementMathItemReflevelsAbsolute(SCPICmdRead):
    """The ``MEASUrement:MATH<x>:REFLevels:ABSolute`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MATH<x>:REFLevels:ABSolute?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:MATH<x>:REFLevels:ABSolute?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Info:
        - ``MATH<x>`` specifies the math number.

    Properties:
        - ``.fallhigh``: The ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLHigh`` command.
        - ``.falllow``: The ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLLow`` command.
        - ``.fallmid``: The ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLMid`` command.
        - ``.hysteresis``: The ``MEASUrement:MATH<x>:REFLevels:ABSolute:HYSTeresis`` command.
        - ``.risehigh``: The ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISEHigh`` command.
        - ``.riselow``: The ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISELow`` command.
        - ``.risemid``: The ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISEMid`` command.
        - ``.type``: The ``MEASUrement:MATH<x>:REFLevels:ABSolute:TYPE`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._fallhigh = MeasurementMathItemReflevelsAbsoluteFallhigh(
            device, f"{self._cmd_syntax}:FALLHigh"
        )
        self._falllow = MeasurementMathItemReflevelsAbsoluteFalllow(
            device, f"{self._cmd_syntax}:FALLLow"
        )
        self._fallmid = MeasurementMathItemReflevelsAbsoluteFallmid(
            device, f"{self._cmd_syntax}:FALLMid"
        )
        self._hysteresis = MeasurementMathItemReflevelsAbsoluteHysteresis(
            device, f"{self._cmd_syntax}:HYSTeresis"
        )
        self._risehigh = MeasurementMathItemReflevelsAbsoluteRisehigh(
            device, f"{self._cmd_syntax}:RISEHigh"
        )
        self._riselow = MeasurementMathItemReflevelsAbsoluteRiselow(
            device, f"{self._cmd_syntax}:RISELow"
        )
        self._risemid = MeasurementMathItemReflevelsAbsoluteRisemid(
            device, f"{self._cmd_syntax}:RISEMid"
        )
        self._type = MeasurementMathItemReflevelsAbsoluteType(device, f"{self._cmd_syntax}:TYPE")

    @property
    def fallhigh(self) -> MeasurementMathItemReflevelsAbsoluteFallhigh:
        """Return the ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLHigh`` command.

        Description:
            - This command sets or queries the value used as the high reference level of the falling
              edge when the measurement ref level method is set to absolute. The math number is
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLHigh?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLHigh?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLHigh value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MATH<x>:REFLevels:ABSolute:FALLHigh <NR3>
            - MEASUrement:MATH<x>:REFLevels:ABSolute:FALLHigh?
            ```

        Info:
            - ``MATH<x>`` specifies the math number.
            - ``<NR3>`` is the high reference level, and is the zero percent level when
              ``MEASUrement:IMMed:REFLevel:METHod`` is set to Absolute.
        """
        return self._fallhigh

    @property
    def falllow(self) -> MeasurementMathItemReflevelsAbsoluteFalllow:
        """Return the ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLLow`` command.

        Description:
            - This command sets or queries the value used as the low reference level of the falling
              edge when the measuement ref level method is set to absolute. The math number is
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLLow?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLLow?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLLow value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MATH<x>:REFLevels:ABSolute:FALLLow <NR3>
            - MEASUrement:MATH<x>:REFLevels:ABSolute:FALLLow?
            ```

        Info:
            - ``MATH<x>`` specifies the math number.
            - ``<NR3>`` is the high reference level, and is the zero percent level when
              ``MEASUrement:IMMed:REFLevel:METHod`` is set to Absolute.
        """
        return self._falllow

    @property
    def fallmid(self) -> MeasurementMathItemReflevelsAbsoluteFallmid:
        """Return the ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLMid`` command.

        Description:
            - This command sets or queries the value used as the mid reference level of the falling
              edge when the measurement ref level method is set to absolute. The math number is
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLMid?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLMid?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLMid value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MATH<x>:REFLevels:ABSolute:FALLMid <NR3>
            - MEASUrement:MATH<x>:REFLevels:ABSolute:FALLMid?
            ```

        Info:
            - ``MATH<x>`` specifies the math number.
            - ``<NR3>`` is the mid reference level (where 50% is equal to MID) used to calculate the
              mid reference level when the measurement's Ref level method is set to Absolute.
        """
        return self._fallmid

    @property
    def hysteresis(self) -> MeasurementMathItemReflevelsAbsoluteHysteresis:
        """Return the ``MEASUrement:MATH<x>:REFLevels:ABSolute:HYSTeresis`` command.

        Description:
            - This command sets or queries the value of the hysteresis of the reference level when
              the measurement ref level method is set to absolute. The math number is specified by
              x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:ABSolute:HYSTeresis?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:ABSolute:HYSTeresis?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:ABSolute:HYSTeresis value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MATH<x>:REFLevels:ABSolute:HYSTeresis <NR3>
            - MEASUrement:MATH<x>:REFLevels:ABSolute:HYSTeresis?
            ```

        Info:
            - ``MATH<x>`` specifies the math number.
            - ``<NR3>`` is the hysteresis value used for the autoset.
        """
        return self._hysteresis

    @property
    def risehigh(self) -> MeasurementMathItemReflevelsAbsoluteRisehigh:
        """Return the ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISEHigh`` command.

        Description:
            - This command sets or queries the value used as the high reference level of the rising
              edge when the measurement ref level method is set to absolute. The math number is
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISEHigh?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISEHigh?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISEHigh value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MATH<x>:REFLevels:ABSolute:RISEHigh <NR3>
            - MEASUrement:MATH<x>:REFLevels:ABSolute:RISEHigh?
            ```

        Info:
            - ``MATH<x>`` specifies the math number.
            - ``<NR3>`` is the high reference level, and is the zero percent level when
              ``MEASUrement:IMMed:REFLevel:METHod`` is set to Absolute.
        """
        return self._risehigh

    @property
    def riselow(self) -> MeasurementMathItemReflevelsAbsoluteRiselow:
        """Return the ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISELow`` command.

        Description:
            - This command sets or queries the value used as the low reference level of the rising
              edge when the measurement ref level method is set to absolute. The math number is
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISELow?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISELow?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISELow value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MATH<x>:REFLevels:ABSolute:RISELow <NR3>
            - MEASUrement:MATH<x>:REFLevels:ABSolute:RISELow?
            ```

        Info:
            - ``MATH<x>`` specifies the math number.
            - ``<NR3>`` is the high reference level, and is the zero percent level when
              ``MEASUrement:IMMed:REFLevel:METHod`` is set to Absolute.
        """
        return self._riselow

    @property
    def risemid(self) -> MeasurementMathItemReflevelsAbsoluteRisemid:
        """Return the ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISEMid`` command.

        Description:
            - This command sets or queries the value used as the mid reference level of the rising
              edge when the measurement ref level method is set to absolute. The math number is
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISEMid?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISEMid?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISEMid value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MATH<x>:REFLevels:ABSolute:RISEMid <NR3>
            - MEASUrement:MATH<x>:REFLevels:ABSolute:RISEMid?
            ```

        Info:
            - ``MATH<x>`` specifies the math number.
            - ``<NR3>`` is the mid reference level (where 50% is equal to MID) used to calculate the
              mid reference level when the measurement Ref level method is set to Absolute.
        """
        return self._risemid

    @property
    def type(self) -> MeasurementMathItemReflevelsAbsoluteType:
        """Return the ``MEASUrement:MATH<x>:REFLevels:ABSolute:TYPE`` command.

        Description:
            - This command sets or queries the reference level type for the measurement. The math
              number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:ABSolute:TYPE?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:ABSolute:TYPE?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:ABSolute:TYPE value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MATH<x>:REFLevels:ABSolute:TYPE {SAME|UNIQue}
            - MEASUrement:MATH<x>:REFLevels:ABSolute:TYPE?
            ```

        Info:
            - ``MATH<x>`` specifies the math number.
            - ``SAME`` specifies that the absolute levels are set the same.
            - ``UNIQue`` specifies that the absolute levels can be set independently.
        """
        return self._type


class MeasurementMathItemReflevels(SCPICmdRead):
    """The ``MEASUrement:MATH<x>:REFLevels`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MATH<x>:REFLevels?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MATH<x>:REFLevels?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Info:
        - ``MATH<x>`` specifies the math number.

    Properties:
        - ``.absolute``: The ``MEASUrement:MATH<x>:REFLevels:ABSolute`` command tree.
        - ``.basetop``: The ``MEASUrement:MATH<x>:REFLevels:BASETop`` command.
        - ``.method``: The ``MEASUrement:MATH<x>:REFLevels:METHod`` command.
        - ``.percent``: The ``MEASUrement:MATH<x>:REFLevels:PERCent`` command tree.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._absolute = MeasurementMathItemReflevelsAbsolute(
            device, f"{self._cmd_syntax}:ABSolute"
        )
        self._basetop = MeasurementMathItemReflevelsBasetop(device, f"{self._cmd_syntax}:BASETop")
        self._method = MeasurementMathItemReflevelsMethod(device, f"{self._cmd_syntax}:METHod")
        self._percent = MeasurementMathItemReflevelsPercent(device, f"{self._cmd_syntax}:PERCent")

    @property
    def absolute(self) -> MeasurementMathItemReflevelsAbsolute:
        """Return the ``MEASUrement:MATH<x>:REFLevels:ABSolute`` command tree.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:ABSolute?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:ABSolute?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Info:
            - ``MATH<x>`` specifies the math number.

        Sub-properties:
            - ``.fallhigh``: The ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLHigh`` command.
            - ``.falllow``: The ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLLow`` command.
            - ``.fallmid``: The ``MEASUrement:MATH<x>:REFLevels:ABSolute:FALLMid`` command.
            - ``.hysteresis``: The ``MEASUrement:MATH<x>:REFLevels:ABSolute:HYSTeresis`` command.
            - ``.risehigh``: The ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISEHigh`` command.
            - ``.riselow``: The ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISELow`` command.
            - ``.risemid``: The ``MEASUrement:MATH<x>:REFLevels:ABSolute:RISEMid`` command.
            - ``.type``: The ``MEASUrement:MATH<x>:REFLevels:ABSolute:TYPE`` command.
        """
        return self._absolute

    @property
    def basetop(self) -> MeasurementMathItemReflevelsBasetop:
        """Return the ``MEASUrement:MATH<x>:REFLevels:BASETop`` command.

        Description:
            - This command sets or queries the method used to calculate the TOP and BASE used to
              calculate reference levels for the measurement. The math number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MATH<x>:REFLevels:BASETop?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:BASETop?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:BASETop value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MATH<x>:REFLevels:BASETop {AUTO|MINMax|MEANhistogram|MODEhistogram|EYEhistogram}
            - MEASUrement:MATH<x>:REFLevels:BASETop?
            ```

        Info:
            - ``MATH<x>`` specifies the math number.
            - ``AUTO`` automatically chooses a reference level method.
            - ``MINMax`` specifies that reference levels are relative to the measurement MIN and
              MAX.
            - ``MEANhistogram`` specifies that reference levels are relative to the histogram mean
              BASE and TOP.
            - ``MODEhistogram`` specifies that reference levels are relative to the histogram mode
              BASE and TOP.
            - ``EYEhistogram`` specifies that reverence levels are relative to the eye histogram
              BASE and TOP.
        """  # noqa: E501
        return self._basetop

    @property
    def method(self) -> MeasurementMathItemReflevelsMethod:
        """Return the ``MEASUrement:MATH<x>:REFLevels:METHod`` command.

        Description:
            - This command sets or queries the method used to calculate reference levels for the
              measurement. The math number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MATH<x>:REFLevels:METHod?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:METHod?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:METHod value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MATH<x>:REFLevels:METHod {PERCent|ABSolute}
            - MEASUrement:MATH<x>:REFLevels:METHod?
            ```

        Info:
            - ``MATH<x>`` specifies the math number.
            - ``PERCent`` specifies that the reference levels are calculated as a percent relative
              to HIGH and LOW. The percentages are defined using the
              ``MEASUrement:MATH<x>:REFLevel:PERCent`` commands.
            - ``ABSolute`` specifies that the reference levels are set explicitly using the
              ``MEASUrement:MATH<x>:REFLevel:ABSolute`` commands. This method is useful when precise
              values are required.
        """
        return self._method

    @property
    def percent(self) -> MeasurementMathItemReflevelsPercent:
        """Return the ``MEASUrement:MATH<x>:REFLevels:PERCent`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MATH<x>:REFLevels:PERCent?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:MATH<x>:REFLevels:PERCent?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Info:
            - ``MATH<x>`` specifies the math number.

        Sub-properties:
            - ``.fallhigh``: The ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLHigh`` command.
            - ``.falllow``: The ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLLow`` command.
            - ``.fallmid``: The ``MEASUrement:MATH<x>:REFLevels:PERCent:FALLMid`` command.
            - ``.hysteresis``: The ``MEASUrement:MATH<x>:REFLevels:PERCent:HYSTeresis`` command.
            - ``.risehigh``: The ``MEASUrement:MATH<x>:REFLevels:PERCent:RISEHigh`` command.
            - ``.riselow``: The ``MEASUrement:MATH<x>:REFLevels:PERCent:RISELow`` command.
            - ``.risemid``: The ``MEASUrement:MATH<x>:REFLevels:PERCent:RISEMid`` command.
            - ``.type``: The ``MEASUrement:MATH<x>:REFLevels:PERCent:TYPE`` command.
        """
        return self._percent


class MeasurementMathItem(ValidatedDynamicNumberCmd, SCPICmdRead):
    """The ``MEASUrement:MATH<x>`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:MATH<x>?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:MATH<x>?`` query and raise
          an AssertionError if the returned value does not match ``value``.

    Info:
        - ``MATH<x>`` specifies the math number.

    Properties:
        - ``.reflevels``: The ``MEASUrement:MATH<x>:REFLevels`` command tree.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._reflevels = MeasurementMathItemReflevels(device, f"{self._cmd_syntax}:REFLevels")

    @property
    def reflevels(self) -> MeasurementMathItemReflevels:
        """Return the ``MEASUrement:MATH<x>:REFLevels`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MATH<x>:REFLevels?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MATH<x>:REFLevels?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Info:
            - ``MATH<x>`` specifies the math number.

        Sub-properties:
            - ``.absolute``: The ``MEASUrement:MATH<x>:REFLevels:ABSolute`` command tree.
            - ``.basetop``: The ``MEASUrement:MATH<x>:REFLevels:BASETop`` command.
            - ``.method``: The ``MEASUrement:MATH<x>:REFLevels:METHod`` command.
            - ``.percent``: The ``MEASUrement:MATH<x>:REFLevels:PERCent`` command tree.
        """
        return self._reflevels


class MeasurementLockrjvalue(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:LOCKRJValue`` command.

    Description:
        - This command sets or queries the RJ lock value.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:LOCKRJValue?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:LOCKRJValue?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:LOCKRJValue value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:LOCKRJValue <NR3>
        - MEASUrement:LOCKRJValue?
        ```

    Info:
        - ``<NR3>`` default value = 1e-12; minimum value = 1e-15; maximum value = 1.
    """


class MeasurementLockrj(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:LOCKRJ`` command.

    Description:
        - This command sets or queries the state of RJ locking.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:LOCKRJ?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:LOCKRJ?`` query and raise
          an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:LOCKRJ value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:LOCKRJ {ON|OFF|1|0}
        - MEASUrement:LOCKRJ?
        ```

    Info:
        - ``ON`` indicates that RJ locking is active.
        - ``OFF`` indicates that RJ locking is off.
        - ``1`` turns on RJ locking. Any number value other than 0 will turn RJ locking on.
        - ``0`` turns off RJ locking.
    """


class MeasurementList(SCPICmdRead):
    """The ``MEASUrement:LIST`` command.

    Description:
        - This query returns a comma separated list of all currently defined measurements.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:LIST?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:LIST?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement:LIST?
        ```
    """


class MeasurementJittermodel(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:JITTermodel`` command.

    Description:
        - This command sets or queries the model used to separate random from deterministic jitter
          for jitter measurements.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:JITTermodel?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:JITTermodel?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:JITTermodel value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:JITTermodel {SPECTRAL|SPECTRALBUJ}
        - MEASUrement:JITTermodel?
        ```

    Info:
        - ``SPECTRAL`` sets the jitter separation model to spectral only.
        - ``SPECTRALBUJ`` sets the jitter separation model to spectral plus BUJ.
    """


class MeasurementInterp(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:INTERp`` command.

    Description:
        - This command sets or queries the interpolation mode used to locate edge crossings.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:INTERp?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:INTERp?`` query and raise
          an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:INTERp value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:INTERp {AUTO|SINX|LINear}
        - MEASUrement:INTERp?
        ```

    Info:
        - ``AUTO`` automatically selects the interpolation mode.
        - ``SINX`` specifies sin(x)/x interpolation, where acquired points are fit to a curve.
        - ``LINear`` specifies linear interpolation, where acquired points are connected with
          straight lines.
    """


class MeasurementHighlevelWiring(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:HIGHLEVel:WIRing`` command.

    Description:
        - This command sets or queries the wiring configuration for the measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:WIRing?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:HIGHLEVel:WIRing?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:HIGHLEVel:WIRing value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:HIGHLEVel:WIRing {P1W2V1I1|P1W3V2I2|P3W3V2I2|P3W3V3I3|P3W3|DCP1W2}
        - MEASUrement:HIGHLEVel:WIRing?
        ```

    Info:
        - ``P1W2V1I1`` specifies 1 phase- 2 wire (with 1 voltage and 1 current sources) wiring
          configuration.
        - ``P1W3V2I2`` specifies 1 phase- 3 wire (with 2 voltage and 2 current sources) wiring
          configuration.
        - ``P3W3V2I2`` specifies 3 phase- 3 wire (with 2 voltage and 2 current sources) wiring
          configuration.
        - ``P3W3V3I3`` specifies 3 phase- 3 wire (with 3 voltage and 3 current sources) wiring
          configuration.
        - ``P3W3`` specifies 3 phase and 3 wire, the 3rd wire being Neutral.
        - ``DCP1W2`` specifies DC 1 phase and 2 wire, the 2nd wire being Neutral.
    """


class MeasurementHighlevelSource(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:HIGHLEVel:SOURCE`` command.

    Description:
        - This command sets or queries global input source.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:SOURCE?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:HIGHLEVel:SOURCE?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:HIGHLEVel:SOURCE value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:HIGHLEVel:SOURCE {CH<x>|MATH<x>|REF<x>}
        - MEASUrement:HIGHLEVel:SOURCE?
        ```

    Info:
        - ``CH<x>`` specifies an analog channel as source.
        - ``MATH<x>`` specifies a math channel as source.
        - ``REF<x>`` specifies a reference waveform as the source.
    """


class MeasurementHighlevelOutwiring(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:HIGHLEVel:OUTWIRing`` command.

    Description:
        - This command sets or queries the global output wiring.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:OUTWIRing?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:HIGHLEVel:OUTWIRing?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:HIGHLEVel:OUTWIRing value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:HIGHLEVel:OUTWIRing {P1W2V1I1|P3W3V2I2|P3W3V3I3|P3W3|DCP1W2}
        - MEASUrement:HIGHLEVel:OUTWIRing?
        ```

    Info:
        - ``P1W2V1I1`` specifies 1 phase- 2 wire (with 1 voltage and 1 current sources) wiring
          configuration.
        - ``P3W3V2I2`` specifies 3 phase- 3 wire (with 2 voltage and 2 current sources) wiring
          configuration.
        - ``P3W3V3I3`` specifies 3 phase- 3 wire (with 3 voltage and 3 current sources) wiring
          configuration.
        - ``P3W3`` specifies 3 phase and 3 wire, the 3rd wire being Neutral.
        - ``DCP1W2`` specifies DC 1 phase and 2 wire, the 2nd wire being Neutral.
    """


class MeasurementHighlevelOutsource(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:HIGHLEVel:OUTSOURCE`` command.

    Description:
        - This command sets or queries global output source.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:OUTSOURCE?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:HIGHLEVel:OUTSOURCE?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:HIGHLEVel:OUTSOURCE value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:HIGHLEVel:OUTSOURCE {CH<x>|MATH<x>|REF<x>}
        - MEASUrement:HIGHLEVel:OUTSOURCE?
        ```

    Info:
        - ``CH<x>`` specifies an analog channel as source.
        - ``MATH<x>`` specifies a math channel as source.
        - ``REF<x>`` specifies a reference waveform as the source.
    """


class MeasurementHighlevelOutlowpassSpec(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:HIGHLEVel:OUTLOWPass:SPEC`` command.

    Description:
        - This command sets or queries global output low pass filter order.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:OUTLOWPass:SPEC?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:HIGHLEVel:OUTLOWPass:SPEC?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:HIGHLEVel:OUTLOWPass:SPEC value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:HIGHLEVel:OUTLOWPass:SPEC {NONE|FIRST|SECOND|THIRD}
        - MEASUrement:HIGHLEVel:OUTLOWPass:SPEC?
        ```

    Info:
        - ``NONE`` specifies the global output low pass filter order as none.
        - ``FIRST`` specifies the global output low pass filter order as first.
        - ``SECOND`` specifies the global output low pass filter order as second.
        - ``THIRD`` specifies the global output low pass filter order as third.
    """


class MeasurementHighlevelOutlowpassFreq(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:HIGHLEVel:OUTLOWPass:FREQ`` command.

    Description:
        - This command sets or queries global output low pass filter frequency.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:OUTLOWPass:FREQ?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:HIGHLEVel:OUTLOWPass:FREQ?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:HIGHLEVel:OUTLOWPass:FREQ value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:HIGHLEVel:OUTLOWPass:FREQ <NR3>
        - MEASUrement:HIGHLEVel:OUTLOWPass:FREQ?
        ```

    Info:
        - ``<NR3>`` specifies the global output low pass filter frequency. The argument range is 20
          Hz to 10e6 Hz.
    """


class MeasurementHighlevelOutlowpass(SCPICmdRead):
    """The ``MEASUrement:HIGHLEVel:OUTLOWPass`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:OUTLOWPass?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:HIGHLEVel:OUTLOWPass?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.freq``: The ``MEASUrement:HIGHLEVel:OUTLOWPass:FREQ`` command.
        - ``.spec``: The ``MEASUrement:HIGHLEVel:OUTLOWPass:SPEC`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._freq = MeasurementHighlevelOutlowpassFreq(device, f"{self._cmd_syntax}:FREQ")
        self._spec = MeasurementHighlevelOutlowpassSpec(device, f"{self._cmd_syntax}:SPEC")

    @property
    def freq(self) -> MeasurementHighlevelOutlowpassFreq:
        """Return the ``MEASUrement:HIGHLEVel:OUTLOWPass:FREQ`` command.

        Description:
            - This command sets or queries global output low pass filter frequency.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:OUTLOWPass:FREQ?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:HIGHLEVel:OUTLOWPass:FREQ?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:HIGHLEVel:OUTLOWPass:FREQ value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:HIGHLEVel:OUTLOWPass:FREQ <NR3>
            - MEASUrement:HIGHLEVel:OUTLOWPass:FREQ?
            ```

        Info:
            - ``<NR3>`` specifies the global output low pass filter frequency. The argument range is
              20 Hz to 10e6 Hz.
        """
        return self._freq

    @property
    def spec(self) -> MeasurementHighlevelOutlowpassSpec:
        """Return the ``MEASUrement:HIGHLEVel:OUTLOWPass:SPEC`` command.

        Description:
            - This command sets or queries global output low pass filter order.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:OUTLOWPass:SPEC?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:HIGHLEVel:OUTLOWPass:SPEC?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:HIGHLEVel:OUTLOWPass:SPEC value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:HIGHLEVel:OUTLOWPass:SPEC {NONE|FIRST|SECOND|THIRD}
            - MEASUrement:HIGHLEVel:OUTLOWPass:SPEC?
            ```

        Info:
            - ``NONE`` specifies the global output low pass filter order as none.
            - ``FIRST`` specifies the global output low pass filter order as first.
            - ``SECOND`` specifies the global output low pass filter order as second.
            - ``THIRD`` specifies the global output low pass filter order as third.
        """
        return self._spec


class MeasurementHighlevelOutlineselected(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:HIGHLEVel:OUTLINESelected`` command.

    Description:
        - This command sets or queries global output select lines.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:OUTLINESelected?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:HIGHLEVel:OUTLINESelected?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:HIGHLEVel:OUTLINESelected value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:HIGHLEVel:OUTLINESelected {XYZY|XZYZ|YXZX|XN|YN|ZN}
        - MEASUrement:HIGHLEVel:OUTLINESelected?
        ```

    Info:
        - ``XYZY`` specifies the global output select lines as XYZY.
        - ``XZYZ`` specifies the global output select lines as XZYZ.
        - ``YXZX`` specifies the global output select lines as YXZX.
        - ``XN`` specifies the global output select lines as XN.
        - ``YN`` specifies the global output select lines as YN.
        - ``ZN`` specifies the global output select lines as ZN.
    """


class MeasurementHighlevelOutl2ltol2n(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:HIGHLEVel:OUTL2LTOL2N`` command.

    Description:
        - This command sets or queries global output Line-to-Line to Line-to-Neutral Conversion.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:OUTL2LTOL2N?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:HIGHLEVel:OUTL2LTOL2N?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:HIGHLEVel:OUTL2LTOL2N value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:HIGHLEVel:OUTL2LTOL2N {0|1}
        - MEASUrement:HIGHLEVel:OUTL2LTOL2N?
        ```
    """


class MeasurementHighlevelOutedgequalifier(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:HIGHLEVel:OUTEDGEQUALifier`` command.

    Description:
        - This command sets or queries global output edge qualifier source.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:OUTEDGEQUALifier?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:HIGHLEVel:OUTEDGEQUALifier?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:HIGHLEVel:OUTEDGEQUALifier value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:HIGHLEVel:OUTEDGEQUALifier {CH<x>|MATH<x>|REF<x>}
        - MEASUrement:HIGHLEVel:OUTEDGEQUALifier?
        ```

    Info:
        - ``CH<x>`` specifies an analog channel as source.
        - ``MATH<x>`` specifies a math channel as source.
        - ``REF<x>`` specifies a reference waveform as the source.
    """


class MeasurementHighlevelLineselected(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:HIGHLEVel:LINESelected`` command.

    Description:
        - This command sets or queries global input select lines.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:LINESelected?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:HIGHLEVel:LINESelected?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:HIGHLEVel:LINESelected value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:HIGHLEVel:LINESelected {ABCB|ACBC|BACA|AN|BN|CN}
        - MEASUrement:HIGHLEVel:LINESelected?
        ```

    Info:
        - ``ABCB`` specifies the global input select lines as ABCB.
        - ``ACBC`` specifies the global input select lines as ACBC.
        - ``BACA`` specifies the global input select lines as BACA.
        - ``AN`` specifies the global input select lines as AN.
        - ``BN`` specifies the global input select lines as BN.
        - ``CN`` specifies the global input select lines as CN.
    """


class MeasurementHighlevelL2ltol2n(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:HIGHLEVel:L2LTOL2N`` command.

    Description:
        - This command enables the Line-to-Line to Line-to-Neutral Conversion.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:L2LTOL2N?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:HIGHLEVel:L2LTOL2N?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:HIGHLEVel:L2LTOL2N value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:HIGHLEVel:L2LTOL2N {0|1}
        - MEASUrement:HIGHLEVel:L2LTOL2N?
        ```
    """


class MeasurementHighlevelInlowpassSpec(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:HIGHLEVel:INLOWPass:SPEC`` command.

    Description:
        - This command sets or queries global input low pass filter order.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:INLOWPass:SPEC?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:HIGHLEVel:INLOWPass:SPEC?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:HIGHLEVel:INLOWPass:SPEC value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:HIGHLEVel:INLOWPass:SPEC {NONE|FIRST|SECOND|THIRD}
        - MEASUrement:HIGHLEVel:INLOWPass:SPEC?
        ```

    Info:
        - ``NONE`` specifies the global input low pass filter order as none.
        - ``FIRST`` specifies the global input low pass filter order as first.
        - ``SECOND`` specifies the global input low pass filter order as second.
        - ``THIRD`` specifies the global input low pass filter order as third.
    """


class MeasurementHighlevelInlowpassFreq(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:HIGHLEVel:INLOWPass:FREQ`` command.

    Description:
        - This command sets or queries global input low pass filter frequency.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:INLOWPass:FREQ?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:HIGHLEVel:INLOWPass:FREQ?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:HIGHLEVel:INLOWPass:FREQ value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:HIGHLEVel:INLOWPass:FREQ <NR3>
        - MEASUrement:HIGHLEVel:INLOWPass:FREQ?
        ```

    Info:
        - ``<NR3>`` specifies the global input low pass filter frequency. The argument range is 20
          Hz to 10e6 Hz.
    """


class MeasurementHighlevelInlowpass(SCPICmdRead):
    """The ``MEASUrement:HIGHLEVel:INLOWPass`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:INLOWPass?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:HIGHLEVel:INLOWPass?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.freq``: The ``MEASUrement:HIGHLEVel:INLOWPass:FREQ`` command.
        - ``.spec``: The ``MEASUrement:HIGHLEVel:INLOWPass:SPEC`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._freq = MeasurementHighlevelInlowpassFreq(device, f"{self._cmd_syntax}:FREQ")
        self._spec = MeasurementHighlevelInlowpassSpec(device, f"{self._cmd_syntax}:SPEC")

    @property
    def freq(self) -> MeasurementHighlevelInlowpassFreq:
        """Return the ``MEASUrement:HIGHLEVel:INLOWPass:FREQ`` command.

        Description:
            - This command sets or queries global input low pass filter frequency.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:INLOWPass:FREQ?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:HIGHLEVel:INLOWPass:FREQ?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:HIGHLEVel:INLOWPass:FREQ value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:HIGHLEVel:INLOWPass:FREQ <NR3>
            - MEASUrement:HIGHLEVel:INLOWPass:FREQ?
            ```

        Info:
            - ``<NR3>`` specifies the global input low pass filter frequency. The argument range is
              20 Hz to 10e6 Hz.
        """
        return self._freq

    @property
    def spec(self) -> MeasurementHighlevelInlowpassSpec:
        """Return the ``MEASUrement:HIGHLEVel:INLOWPass:SPEC`` command.

        Description:
            - This command sets or queries global input low pass filter order.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:INLOWPass:SPEC?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:HIGHLEVel:INLOWPass:SPEC?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:HIGHLEVel:INLOWPass:SPEC value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:HIGHLEVel:INLOWPass:SPEC {NONE|FIRST|SECOND|THIRD}
            - MEASUrement:HIGHLEVel:INLOWPass:SPEC?
            ```

        Info:
            - ``NONE`` specifies the global input low pass filter order as none.
            - ``FIRST`` specifies the global input low pass filter order as first.
            - ``SECOND`` specifies the global input low pass filter order as second.
            - ``THIRD`` specifies the global input low pass filter order as third.
        """
        return self._spec


class MeasurementHighlevelEdgequalifier(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:HIGHLEVel:EDGEQUALifier`` command.

    Description:
        - This command sets or queries global input edge qualifier source.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:EDGEQUALifier?``
          query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:HIGHLEVel:EDGEQUALifier?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:HIGHLEVel:EDGEQUALifier value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:HIGHLEVel:EDGEQUALifier {CH<x>|MATH<x>|REF<x>}
        - MEASUrement:HIGHLEVel:EDGEQUALifier?
        ```

    Info:
        - ``CH<x>`` specifies an analog channel as source.
        - ``MATH<x>`` specifies a math channel as source.
        - ``REF<x>`` specifies a reference waveform as the source.
    """


class MeasurementHighlevelConfiguration(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:HIGHLEVel:CONFIGuration`` command.

    Description:
        - This command sets or queries the global input and output configuration.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:CONFIGuration?``
          query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:HIGHLEVel:CONFIGuration?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:HIGHLEVel:CONFIGuration value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:HIGHLEVel:CONFIGuration {INPUT|OUTPUT}
        - MEASUrement:HIGHLEVel:CONFIGuration?
        ```

    Info:
        - ``INPUT`` specifies the source settings configuration as input.
        - ``OUTPUT`` specifies the source settings configuration as output.
    """


#  pylint: disable=too-many-instance-attributes
class MeasurementHighlevel(SCPICmdRead):
    """The ``MEASUrement:HIGHLEVel`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:HIGHLEVel?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.configuration``: The ``MEASUrement:HIGHLEVel:CONFIGuration`` command.
        - ``.edgequalifier``: The ``MEASUrement:HIGHLEVel:EDGEQUALifier`` command.
        - ``.inlowpass``: The ``MEASUrement:HIGHLEVel:INLOWPass`` command tree.
        - ``.l2ltol2n``: The ``MEASUrement:HIGHLEVel:L2LTOL2N`` command.
        - ``.lineselected``: The ``MEASUrement:HIGHLEVel:LINESelected`` command.
        - ``.outedgequalifier``: The ``MEASUrement:HIGHLEVel:OUTEDGEQUALifier`` command.
        - ``.outl2ltol2n``: The ``MEASUrement:HIGHLEVel:OUTL2LTOL2N`` command.
        - ``.outlineselected``: The ``MEASUrement:HIGHLEVel:OUTLINESelected`` command.
        - ``.outlowpass``: The ``MEASUrement:HIGHLEVel:OUTLOWPass`` command tree.
        - ``.outsource``: The ``MEASUrement:HIGHLEVel:OUTSOURCE`` command.
        - ``.outwiring``: The ``MEASUrement:HIGHLEVel:OUTWIRing`` command.
        - ``.source``: The ``MEASUrement:HIGHLEVel:SOURCE`` command.
        - ``.wiring``: The ``MEASUrement:HIGHLEVel:WIRing`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._configuration = MeasurementHighlevelConfiguration(
            device, f"{self._cmd_syntax}:CONFIGuration"
        )
        self._edgequalifier = MeasurementHighlevelEdgequalifier(
            device, f"{self._cmd_syntax}:EDGEQUALifier"
        )
        self._inlowpass = MeasurementHighlevelInlowpass(device, f"{self._cmd_syntax}:INLOWPass")
        self._l2ltol2n = MeasurementHighlevelL2ltol2n(device, f"{self._cmd_syntax}:L2LTOL2N")
        self._lineselected = MeasurementHighlevelLineselected(
            device, f"{self._cmd_syntax}:LINESelected"
        )
        self._outedgequalifier = MeasurementHighlevelOutedgequalifier(
            device, f"{self._cmd_syntax}:OUTEDGEQUALifier"
        )
        self._outl2ltol2n = MeasurementHighlevelOutl2ltol2n(
            device, f"{self._cmd_syntax}:OUTL2LTOL2N"
        )
        self._outlineselected = MeasurementHighlevelOutlineselected(
            device, f"{self._cmd_syntax}:OUTLINESelected"
        )
        self._outlowpass = MeasurementHighlevelOutlowpass(device, f"{self._cmd_syntax}:OUTLOWPass")
        self._outsource = MeasurementHighlevelOutsource(device, f"{self._cmd_syntax}:OUTSOURCE")
        self._outwiring = MeasurementHighlevelOutwiring(device, f"{self._cmd_syntax}:OUTWIRing")
        self._source = MeasurementHighlevelSource(device, f"{self._cmd_syntax}:SOURCE")
        self._wiring = MeasurementHighlevelWiring(device, f"{self._cmd_syntax}:WIRing")

    @property
    def configuration(self) -> MeasurementHighlevelConfiguration:
        """Return the ``MEASUrement:HIGHLEVel:CONFIGuration`` command.

        Description:
            - This command sets or queries the global input and output configuration.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:CONFIGuration?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:HIGHLEVel:CONFIGuration?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:HIGHLEVel:CONFIGuration value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:HIGHLEVel:CONFIGuration {INPUT|OUTPUT}
            - MEASUrement:HIGHLEVel:CONFIGuration?
            ```

        Info:
            - ``INPUT`` specifies the source settings configuration as input.
            - ``OUTPUT`` specifies the source settings configuration as output.
        """
        return self._configuration

    @property
    def edgequalifier(self) -> MeasurementHighlevelEdgequalifier:
        """Return the ``MEASUrement:HIGHLEVel:EDGEQUALifier`` command.

        Description:
            - This command sets or queries global input edge qualifier source.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:EDGEQUALifier?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:HIGHLEVel:EDGEQUALifier?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:HIGHLEVel:EDGEQUALifier value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:HIGHLEVel:EDGEQUALifier {CH<x>|MATH<x>|REF<x>}
            - MEASUrement:HIGHLEVel:EDGEQUALifier?
            ```

        Info:
            - ``CH<x>`` specifies an analog channel as source.
            - ``MATH<x>`` specifies a math channel as source.
            - ``REF<x>`` specifies a reference waveform as the source.
        """
        return self._edgequalifier

    @property
    def inlowpass(self) -> MeasurementHighlevelInlowpass:
        """Return the ``MEASUrement:HIGHLEVel:INLOWPass`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:INLOWPass?``
              query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:HIGHLEVel:INLOWPass?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.freq``: The ``MEASUrement:HIGHLEVel:INLOWPass:FREQ`` command.
            - ``.spec``: The ``MEASUrement:HIGHLEVel:INLOWPass:SPEC`` command.
        """
        return self._inlowpass

    @property
    def l2ltol2n(self) -> MeasurementHighlevelL2ltol2n:
        """Return the ``MEASUrement:HIGHLEVel:L2LTOL2N`` command.

        Description:
            - This command enables the Line-to-Line to Line-to-Neutral Conversion.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:L2LTOL2N?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:HIGHLEVel:L2LTOL2N?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:HIGHLEVel:L2LTOL2N value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:HIGHLEVel:L2LTOL2N {0|1}
            - MEASUrement:HIGHLEVel:L2LTOL2N?
            ```
        """
        return self._l2ltol2n

    @property
    def lineselected(self) -> MeasurementHighlevelLineselected:
        """Return the ``MEASUrement:HIGHLEVel:LINESelected`` command.

        Description:
            - This command sets or queries global input select lines.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:LINESelected?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:HIGHLEVel:LINESelected?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:HIGHLEVel:LINESelected value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:HIGHLEVel:LINESelected {ABCB|ACBC|BACA|AN|BN|CN}
            - MEASUrement:HIGHLEVel:LINESelected?
            ```

        Info:
            - ``ABCB`` specifies the global input select lines as ABCB.
            - ``ACBC`` specifies the global input select lines as ACBC.
            - ``BACA`` specifies the global input select lines as BACA.
            - ``AN`` specifies the global input select lines as AN.
            - ``BN`` specifies the global input select lines as BN.
            - ``CN`` specifies the global input select lines as CN.
        """
        return self._lineselected

    @property
    def outedgequalifier(self) -> MeasurementHighlevelOutedgequalifier:
        """Return the ``MEASUrement:HIGHLEVel:OUTEDGEQUALifier`` command.

        Description:
            - This command sets or queries global output edge qualifier source.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:HIGHLEVel:OUTEDGEQUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:HIGHLEVel:OUTEDGEQUALifier?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:HIGHLEVel:OUTEDGEQUALifier value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:HIGHLEVel:OUTEDGEQUALifier {CH<x>|MATH<x>|REF<x>}
            - MEASUrement:HIGHLEVel:OUTEDGEQUALifier?
            ```

        Info:
            - ``CH<x>`` specifies an analog channel as source.
            - ``MATH<x>`` specifies a math channel as source.
            - ``REF<x>`` specifies a reference waveform as the source.
        """
        return self._outedgequalifier

    @property
    def outl2ltol2n(self) -> MeasurementHighlevelOutl2ltol2n:
        """Return the ``MEASUrement:HIGHLEVel:OUTL2LTOL2N`` command.

        Description:
            - This command sets or queries global output Line-to-Line to Line-to-Neutral Conversion.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:OUTL2LTOL2N?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:HIGHLEVel:OUTL2LTOL2N?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:HIGHLEVel:OUTL2LTOL2N value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:HIGHLEVel:OUTL2LTOL2N {0|1}
            - MEASUrement:HIGHLEVel:OUTL2LTOL2N?
            ```
        """
        return self._outl2ltol2n

    @property
    def outlineselected(self) -> MeasurementHighlevelOutlineselected:
        """Return the ``MEASUrement:HIGHLEVel:OUTLINESelected`` command.

        Description:
            - This command sets or queries global output select lines.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:OUTLINESelected?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:HIGHLEVel:OUTLINESelected?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:HIGHLEVel:OUTLINESelected value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:HIGHLEVel:OUTLINESelected {XYZY|XZYZ|YXZX|XN|YN|ZN}
            - MEASUrement:HIGHLEVel:OUTLINESelected?
            ```

        Info:
            - ``XYZY`` specifies the global output select lines as XYZY.
            - ``XZYZ`` specifies the global output select lines as XZYZ.
            - ``YXZX`` specifies the global output select lines as YXZX.
            - ``XN`` specifies the global output select lines as XN.
            - ``YN`` specifies the global output select lines as YN.
            - ``ZN`` specifies the global output select lines as ZN.
        """
        return self._outlineselected

    @property
    def outlowpass(self) -> MeasurementHighlevelOutlowpass:
        """Return the ``MEASUrement:HIGHLEVel:OUTLOWPass`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:OUTLOWPass?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:HIGHLEVel:OUTLOWPass?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.freq``: The ``MEASUrement:HIGHLEVel:OUTLOWPass:FREQ`` command.
            - ``.spec``: The ``MEASUrement:HIGHLEVel:OUTLOWPass:SPEC`` command.
        """
        return self._outlowpass

    @property
    def outsource(self) -> MeasurementHighlevelOutsource:
        """Return the ``MEASUrement:HIGHLEVel:OUTSOURCE`` command.

        Description:
            - This command sets or queries global output source.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:OUTSOURCE?``
              query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:HIGHLEVel:OUTSOURCE?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:HIGHLEVel:OUTSOURCE value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:HIGHLEVel:OUTSOURCE {CH<x>|MATH<x>|REF<x>}
            - MEASUrement:HIGHLEVel:OUTSOURCE?
            ```

        Info:
            - ``CH<x>`` specifies an analog channel as source.
            - ``MATH<x>`` specifies a math channel as source.
            - ``REF<x>`` specifies a reference waveform as the source.
        """
        return self._outsource

    @property
    def outwiring(self) -> MeasurementHighlevelOutwiring:
        """Return the ``MEASUrement:HIGHLEVel:OUTWIRing`` command.

        Description:
            - This command sets or queries the global output wiring.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:OUTWIRing?``
              query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:HIGHLEVel:OUTWIRing?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:HIGHLEVel:OUTWIRing value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:HIGHLEVel:OUTWIRing {P1W2V1I1|P3W3V2I2|P3W3V3I3|P3W3|DCP1W2}
            - MEASUrement:HIGHLEVel:OUTWIRing?
            ```

        Info:
            - ``P1W2V1I1`` specifies 1 phase- 2 wire (with 1 voltage and 1 current sources) wiring
              configuration.
            - ``P3W3V2I2`` specifies 3 phase- 3 wire (with 2 voltage and 2 current sources) wiring
              configuration.
            - ``P3W3V3I3`` specifies 3 phase- 3 wire (with 3 voltage and 3 current sources) wiring
              configuration.
            - ``P3W3`` specifies 3 phase and 3 wire, the 3rd wire being Neutral.
            - ``DCP1W2`` specifies DC 1 phase and 2 wire, the 2nd wire being Neutral.
        """
        return self._outwiring

    @property
    def source(self) -> MeasurementHighlevelSource:
        """Return the ``MEASUrement:HIGHLEVel:SOURCE`` command.

        Description:
            - This command sets or queries global input source.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:SOURCE?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:HIGHLEVel:SOURCE?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:HIGHLEVel:SOURCE value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:HIGHLEVel:SOURCE {CH<x>|MATH<x>|REF<x>}
            - MEASUrement:HIGHLEVel:SOURCE?
            ```

        Info:
            - ``CH<x>`` specifies an analog channel as source.
            - ``MATH<x>`` specifies a math channel as source.
            - ``REF<x>`` specifies a reference waveform as the source.
        """
        return self._source

    @property
    def wiring(self) -> MeasurementHighlevelWiring:
        """Return the ``MEASUrement:HIGHLEVel:WIRing`` command.

        Description:
            - This command sets or queries the wiring configuration for the measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel:WIRing?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:HIGHLEVel:WIRing?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:HIGHLEVel:WIRing value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:HIGHLEVel:WIRing {P1W2V1I1|P1W3V2I2|P3W3V2I2|P3W3V3I3|P3W3|DCP1W2}
            - MEASUrement:HIGHLEVel:WIRing?
            ```

        Info:
            - ``P1W2V1I1`` specifies 1 phase- 2 wire (with 1 voltage and 1 current sources) wiring
              configuration.
            - ``P1W3V2I2`` specifies 1 phase- 3 wire (with 2 voltage and 2 current sources) wiring
              configuration.
            - ``P3W3V2I2`` specifies 3 phase- 3 wire (with 2 voltage and 2 current sources) wiring
              configuration.
            - ``P3W3V3I3`` specifies 3 phase- 3 wire (with 3 voltage and 3 current sources) wiring
              configuration.
            - ``P3W3`` specifies 3 phase and 3 wire, the 3rd wire being Neutral.
            - ``DCP1W2`` specifies DC 1 phase and 2 wire, the 2nd wire being Neutral.
        """
        return self._wiring


class MeasurementGatingStarttime(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:GATing:STARTtime`` command.

    Description:
        - Sets or queries the start gate time for all measurements that use Global gating.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:GATing:STARTtime?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:GATing:STARTtime?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:GATing:STARTtime value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:GATing:STARTtime <NR3>
        - MEASUrement:GATing:STARTtime?
        ```

    Info:
        - ``<NR3>`` is the time gating start gate time in seconds. The valid range is -10000 s to
          10000 s.
    """


class MeasurementGatingSearchsource(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:GATing:SEARCHSource`` command.

    Description:
        - This command sets or queries the global gating search source when the gating type is
          search.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:GATing:SEARCHSource?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:GATing:SEARCHSource?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:GATing:SEARCHSource value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:GATing:SEARCHSource SEARCH<x>
        - MEASUrement:GATing:SEARCHSource?
        ```

    Info:
        - ``SEARCH<x>`` specifies the search source.
    """


class MeasurementGatingMidref(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:GATing:MIDRef`` command.

    Description:
        - This command sets or queries the global gating mid ref value used for logic gating.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:GATing:MIDRef?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:GATing:MIDRef?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:GATing:MIDRef value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:GATing:MIDRef <NR3>
        - MEASUrement:GATing:MIDRef?
        ```

    Info:
        - ``<NR3>`` is the mid ref value for gating.
    """


class MeasurementGatingLogicsource(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:GATing:LOGICSource`` command.

    Description:
        - This command sets or queries the gating data source used for logic gating.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:GATing:LOGICSource?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:GATing:LOGICSource?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:GATing:LOGICSource value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:GATing:LOGICSource {CH<x>|MATH<x>|REF<x>}
        - MEASUrement:GATing:LOGICSource?
        ```

    Info:
        - ``CH<x>`` specifies an analog channel as source.
        - ``MATH<x>`` specifies a math channel as source.
        - ``REF<x>`` specifies a reference waveform as the source.
    """


class MeasurementGatingHysteresis(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:GATing:HYSTeresis`` command.

    Description:
        - This command sets or queries the global gating hysteresis value used for logic gating.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:GATing:HYSTeresis?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:GATing:HYSTeresis?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:GATing:HYSTeresis value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:GATing:HYSTeresis <NR3>
        - MEASUrement:GATing:HYSTeresis?
        ```

    Info:
        - ``<NR3>`` is the gating hysteresis.
    """


class MeasurementGatingEndtime(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:GATing:ENDtime`` command.

    Description:
        - Sets or queries the end gate time for all measurements that use Global gating.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:GATing:ENDtime?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:GATing:ENDtime?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:GATing:ENDtime value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:GATing:ENDtime <NR3>
        - MEASUrement:GATing:ENDtime?
        ```

    Info:
        - ``<NR3>`` is the time gating end gate time in seconds. The valid range is -10000 s to
          10000 s.
    """


class MeasurementGatingActive(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:GATing:ACTive`` command.

    Description:
        - This command sets or queries the global gating active level used for logic gating.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:GATing:ACTive?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:GATing:ACTive?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:GATing:ACTive value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:GATing:ACTive {HIGH|LOW}
        - MEASUrement:GATing:ACTive?
        ```

    Info:
        - ``HIGH`` specifies the gate is HIGH.
        - ``LOW`` specifies the gate is LOW.
    """


class MeasurementGating(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:GATing`` command.

    Description:
        - This command sets or queries the global gating type for the measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:GATing?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:GATing?`` query and raise
          an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:GATing value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:GATing {NONE|SCREEN|CURSor|LOGic|SEARch|TIMe}
        - MEASUrement:GATing?
        ```

    Info:
        - ``NONE`` turns off measurement gating.
        - ``SCREEN`` turns on gating, using the left and right edges of the screen.
        - ``CURSor`` limits measurements to the portion of the waveform between the vertical bar
          cursors, even if they are off screen.
        - ``LOGic`` specifies that measurements are taken only on the portion of the waveform where
          the logic source is in the active state.
        - ``SEARCH`` specifies that measurements are taken based on search criteria.
        - ``TIMe`` limits measurements to the portion of the waveform between the Start and End gate
          times.

    Properties:
        - ``.active``: The ``MEASUrement:GATing:ACTive`` command.
        - ``.endtime``: The ``MEASUrement:GATing:ENDtime`` command.
        - ``.hysteresis``: The ``MEASUrement:GATing:HYSTeresis`` command.
        - ``.logicsource``: The ``MEASUrement:GATing:LOGICSource`` command.
        - ``.midref``: The ``MEASUrement:GATing:MIDRef`` command.
        - ``.searchsource``: The ``MEASUrement:GATing:SEARCHSource`` command.
        - ``.starttime``: The ``MEASUrement:GATing:STARTtime`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._active = MeasurementGatingActive(device, f"{self._cmd_syntax}:ACTive")
        self._endtime = MeasurementGatingEndtime(device, f"{self._cmd_syntax}:ENDtime")
        self._hysteresis = MeasurementGatingHysteresis(device, f"{self._cmd_syntax}:HYSTeresis")
        self._logicsource = MeasurementGatingLogicsource(device, f"{self._cmd_syntax}:LOGICSource")
        self._midref = MeasurementGatingMidref(device, f"{self._cmd_syntax}:MIDRef")
        self._searchsource = MeasurementGatingSearchsource(
            device, f"{self._cmd_syntax}:SEARCHSource"
        )
        self._starttime = MeasurementGatingStarttime(device, f"{self._cmd_syntax}:STARTtime")

    @property
    def active(self) -> MeasurementGatingActive:
        """Return the ``MEASUrement:GATing:ACTive`` command.

        Description:
            - This command sets or queries the global gating active level used for logic gating.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:GATing:ACTive?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:GATing:ACTive?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:GATing:ACTive value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:GATing:ACTive {HIGH|LOW}
            - MEASUrement:GATing:ACTive?
            ```

        Info:
            - ``HIGH`` specifies the gate is HIGH.
            - ``LOW`` specifies the gate is LOW.
        """
        return self._active

    @property
    def endtime(self) -> MeasurementGatingEndtime:
        """Return the ``MEASUrement:GATing:ENDtime`` command.

        Description:
            - Sets or queries the end gate time for all measurements that use Global gating.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:GATing:ENDtime?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:GATing:ENDtime?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:GATing:ENDtime value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:GATing:ENDtime <NR3>
            - MEASUrement:GATing:ENDtime?
            ```

        Info:
            - ``<NR3>`` is the time gating end gate time in seconds. The valid range is -10000 s to
              10000 s.
        """
        return self._endtime

    @property
    def hysteresis(self) -> MeasurementGatingHysteresis:
        """Return the ``MEASUrement:GATing:HYSTeresis`` command.

        Description:
            - This command sets or queries the global gating hysteresis value used for logic gating.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:GATing:HYSTeresis?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:GATing:HYSTeresis?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:GATing:HYSTeresis value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:GATing:HYSTeresis <NR3>
            - MEASUrement:GATing:HYSTeresis?
            ```

        Info:
            - ``<NR3>`` is the gating hysteresis.
        """
        return self._hysteresis

    @property
    def logicsource(self) -> MeasurementGatingLogicsource:
        """Return the ``MEASUrement:GATing:LOGICSource`` command.

        Description:
            - This command sets or queries the gating data source used for logic gating.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:GATing:LOGICSource?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:GATing:LOGICSource?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:GATing:LOGICSource value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:GATing:LOGICSource {CH<x>|MATH<x>|REF<x>}
            - MEASUrement:GATing:LOGICSource?
            ```

        Info:
            - ``CH<x>`` specifies an analog channel as source.
            - ``MATH<x>`` specifies a math channel as source.
            - ``REF<x>`` specifies a reference waveform as the source.
        """
        return self._logicsource

    @property
    def midref(self) -> MeasurementGatingMidref:
        """Return the ``MEASUrement:GATing:MIDRef`` command.

        Description:
            - This command sets or queries the global gating mid ref value used for logic gating.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:GATing:MIDRef?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:GATing:MIDRef?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:GATing:MIDRef value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:GATing:MIDRef <NR3>
            - MEASUrement:GATing:MIDRef?
            ```

        Info:
            - ``<NR3>`` is the mid ref value for gating.
        """
        return self._midref

    @property
    def searchsource(self) -> MeasurementGatingSearchsource:
        """Return the ``MEASUrement:GATing:SEARCHSource`` command.

        Description:
            - This command sets or queries the global gating search source when the gating type is
              search.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:GATing:SEARCHSource?``
              query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:GATing:SEARCHSource?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:GATing:SEARCHSource value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:GATing:SEARCHSource SEARCH<x>
            - MEASUrement:GATing:SEARCHSource?
            ```

        Info:
            - ``SEARCH<x>`` specifies the search source.
        """
        return self._searchsource

    @property
    def starttime(self) -> MeasurementGatingStarttime:
        """Return the ``MEASUrement:GATing:STARTtime`` command.

        Description:
            - Sets or queries the start gate time for all measurements that use Global gating.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:GATing:STARTtime?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:GATing:STARTtime?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:GATing:STARTtime value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:GATing:STARTtime <NR3>
            - MEASUrement:GATing:STARTtime?
            ```

        Info:
            - ``<NR3>`` is the time gating start gate time in seconds. The valid range is -10000 s
              to 10000 s.
        """
        return self._starttime


class MeasurementFiltersRamptime(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:FILTers:RAMPtime`` command.

    Description:
        - This command sets or queries the global filter ramp time for the measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:FILTers:RAMPtime?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:FILTers:RAMPtime?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:FILTers:RAMPtime value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:FILTers:RAMPtime <NR3>
        - MEASUrement:FILTers:RAMPtime?
        ```

    Info:
        - ``<NR3>`` is the current filter ramp time.
    """


class MeasurementFiltersLowpassSpec(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:FILTers:LOWPass:SPEC`` command.

    Description:
        - This command sets or queries the global low pass filter order for the measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:FILTers:LOWPass:SPEC?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:FILTers:LOWPass:SPEC?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:FILTers:LOWPass:SPEC value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:FILTers:LOWPass:SPEC {NONE|FIRST|SECOND|THIRD}
        - MEASUrement:FILTers:LOWPass:SPEC?
        ```

    Info:
        - ``NONE`` specifies no low pass filter.
        - ``FIRST`` specifies a first order low pass filter.
        - ``SECOND`` specifies a second order low pass filter.
        - ``THIRD`` specifies a third order low pass filter.
    """


class MeasurementFiltersLowpassFreq(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:FILTers:LOWPass:FREQ`` command.

    Description:
        - This command sets or queries the global low pass filter cutoff frequency for the
          measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:FILTers:LOWPass:FREQ?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:FILTers:LOWPass:FREQ?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:FILTers:LOWPass:FREQ value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:FILTers:LOWPass:FREQ <NR3>
        - MEASUrement:FILTers:LOWPass:FREQ?
        ```

    Info:
        - ``<NR3>`` is the current low pass filter frequency.
    """


class MeasurementFiltersLowpass(SCPICmdRead):
    """The ``MEASUrement:FILTers:LOWPass`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:FILTers:LOWPass?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:FILTers:LOWPass?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.freq``: The ``MEASUrement:FILTers:LOWPass:FREQ`` command.
        - ``.spec``: The ``MEASUrement:FILTers:LOWPass:SPEC`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._freq = MeasurementFiltersLowpassFreq(device, f"{self._cmd_syntax}:FREQ")
        self._spec = MeasurementFiltersLowpassSpec(device, f"{self._cmd_syntax}:SPEC")

    @property
    def freq(self) -> MeasurementFiltersLowpassFreq:
        """Return the ``MEASUrement:FILTers:LOWPass:FREQ`` command.

        Description:
            - This command sets or queries the global low pass filter cutoff frequency for the
              measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:FILTers:LOWPass:FREQ?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:FILTers:LOWPass:FREQ?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:FILTers:LOWPass:FREQ value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:FILTers:LOWPass:FREQ <NR3>
            - MEASUrement:FILTers:LOWPass:FREQ?
            ```

        Info:
            - ``<NR3>`` is the current low pass filter frequency.
        """
        return self._freq

    @property
    def spec(self) -> MeasurementFiltersLowpassSpec:
        """Return the ``MEASUrement:FILTers:LOWPass:SPEC`` command.

        Description:
            - This command sets or queries the global low pass filter order for the measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:FILTers:LOWPass:SPEC?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:FILTers:LOWPass:SPEC?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:FILTers:LOWPass:SPEC value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:FILTers:LOWPass:SPEC {NONE|FIRST|SECOND|THIRD}
            - MEASUrement:FILTers:LOWPass:SPEC?
            ```

        Info:
            - ``NONE`` specifies no low pass filter.
            - ``FIRST`` specifies a first order low pass filter.
            - ``SECOND`` specifies a second order low pass filter.
            - ``THIRD`` specifies a third order low pass filter.
        """
        return self._spec


class MeasurementFiltersHighpassSpec(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:FILTers:HIGHPass:SPEC`` command.

    Description:
        - This command sets or queries the global high pass filter order for the measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:FILTers:HIGHPass:SPEC?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:FILTers:HIGHPass:SPEC?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:FILTers:HIGHPass:SPEC value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:FILTers:HIGHPass:SPEC {NONE|FIRST|SECOND|THIRD}
        - MEASUrement:FILTers:HIGHPass:SPEC?
        ```

    Info:
        - ``NONE`` specifies no high pass filter.
        - ``FIRST`` specifies a first order high pass filter.
        - ``SECOND`` specifies a second order high pass filter.
        - ``THIRD`` specifies a third order high pass filter.
    """


class MeasurementFiltersHighpassFreq(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:FILTers:HIGHPass:FREQ`` command.

    Description:
        - This command sets or queries the global high pass filter frequency for the measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:FILTers:HIGHPass:FREQ?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:FILTers:HIGHPass:FREQ?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:FILTers:HIGHPass:FREQ value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:FILTers:HIGHPass:FREQ <NR3>
        - MEASUrement:FILTers:HIGHPass:FREQ?
        ```

    Info:
        - ``<NR3>`` is the current high pass filter frequency.
    """


class MeasurementFiltersHighpass(SCPICmdRead):
    """The ``MEASUrement:FILTers:HIGHPass`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:FILTers:HIGHPass?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:FILTers:HIGHPass?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.freq``: The ``MEASUrement:FILTers:HIGHPass:FREQ`` command.
        - ``.spec``: The ``MEASUrement:FILTers:HIGHPass:SPEC`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._freq = MeasurementFiltersHighpassFreq(device, f"{self._cmd_syntax}:FREQ")
        self._spec = MeasurementFiltersHighpassSpec(device, f"{self._cmd_syntax}:SPEC")

    @property
    def freq(self) -> MeasurementFiltersHighpassFreq:
        """Return the ``MEASUrement:FILTers:HIGHPass:FREQ`` command.

        Description:
            - This command sets or queries the global high pass filter frequency for the
              measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:FILTers:HIGHPass:FREQ?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:FILTers:HIGHPass:FREQ?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:FILTers:HIGHPass:FREQ value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:FILTers:HIGHPass:FREQ <NR3>
            - MEASUrement:FILTers:HIGHPass:FREQ?
            ```

        Info:
            - ``<NR3>`` is the current high pass filter frequency.
        """
        return self._freq

    @property
    def spec(self) -> MeasurementFiltersHighpassSpec:
        """Return the ``MEASUrement:FILTers:HIGHPass:SPEC`` command.

        Description:
            - This command sets or queries the global high pass filter order for the measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:FILTers:HIGHPass:SPEC?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:FILTers:HIGHPass:SPEC?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:FILTers:HIGHPass:SPEC value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:FILTers:HIGHPass:SPEC {NONE|FIRST|SECOND|THIRD}
            - MEASUrement:FILTers:HIGHPass:SPEC?
            ```

        Info:
            - ``NONE`` specifies no high pass filter.
            - ``FIRST`` specifies a first order high pass filter.
            - ``SECOND`` specifies a second order high pass filter.
            - ``THIRD`` specifies a third order high pass filter.
        """
        return self._spec


class MeasurementFiltersBlankingtime(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:FILTers:BLANKingtime`` command.

    Description:
        - This command sets or queries the global filter blanking time.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:FILTers:BLANKingtime?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:FILTers:BLANKingtime?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:FILTers:BLANKingtime value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:FILTers:BLANKingtime <NR3>
        - MEASUrement:FILTers:BLANKingtime?
        ```

    Info:
        - ``<NR3>`` is the current filter blanking time.
    """


class MeasurementFilters(SCPICmdRead):
    """The ``MEASUrement:FILTers`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:FILTers?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:FILTers?`` query and raise
          an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.blankingtime``: The ``MEASUrement:FILTers:BLANKingtime`` command.
        - ``.highpass``: The ``MEASUrement:FILTers:HIGHPass`` command tree.
        - ``.lowpass``: The ``MEASUrement:FILTers:LOWPass`` command tree.
        - ``.ramptime``: The ``MEASUrement:FILTers:RAMPtime`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._blankingtime = MeasurementFiltersBlankingtime(
            device, f"{self._cmd_syntax}:BLANKingtime"
        )
        self._highpass = MeasurementFiltersHighpass(device, f"{self._cmd_syntax}:HIGHPass")
        self._lowpass = MeasurementFiltersLowpass(device, f"{self._cmd_syntax}:LOWPass")
        self._ramptime = MeasurementFiltersRamptime(device, f"{self._cmd_syntax}:RAMPtime")

    @property
    def blankingtime(self) -> MeasurementFiltersBlankingtime:
        """Return the ``MEASUrement:FILTers:BLANKingtime`` command.

        Description:
            - This command sets or queries the global filter blanking time.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:FILTers:BLANKingtime?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:FILTers:BLANKingtime?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:FILTers:BLANKingtime value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:FILTers:BLANKingtime <NR3>
            - MEASUrement:FILTers:BLANKingtime?
            ```

        Info:
            - ``<NR3>`` is the current filter blanking time.
        """
        return self._blankingtime

    @property
    def highpass(self) -> MeasurementFiltersHighpass:
        """Return the ``MEASUrement:FILTers:HIGHPass`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:FILTers:HIGHPass?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:FILTers:HIGHPass?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.freq``: The ``MEASUrement:FILTers:HIGHPass:FREQ`` command.
            - ``.spec``: The ``MEASUrement:FILTers:HIGHPass:SPEC`` command.
        """
        return self._highpass

    @property
    def lowpass(self) -> MeasurementFiltersLowpass:
        """Return the ``MEASUrement:FILTers:LOWPass`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:FILTers:LOWPass?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:FILTers:LOWPass?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.freq``: The ``MEASUrement:FILTers:LOWPass:FREQ`` command.
            - ``.spec``: The ``MEASUrement:FILTers:LOWPass:SPEC`` command.
        """
        return self._lowpass

    @property
    def ramptime(self) -> MeasurementFiltersRamptime:
        """Return the ``MEASUrement:FILTers:RAMPtime`` command.

        Description:
            - This command sets or queries the global filter ramp time for the measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:FILTers:RAMPtime?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:FILTers:RAMPtime?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:FILTers:RAMPtime value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:FILTers:RAMPtime <NR3>
            - MEASUrement:FILTers:RAMPtime?
            ```

        Info:
            - ``<NR3>`` is the current filter ramp time.
        """
        return self._ramptime


class MeasurementEyerender(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:EYERENDER`` command.

    Description:
        - This command sets or queries the state of high-performance eye rendering for an eye
          diagram.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:EYERENDER?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:EYERENDER?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:EYERENDER value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:EYERENDER {ON|OFF|<NR1>}
        - MEASUrement:EYERENDER?
        ```

    Info:
        - ``<NR1>`` = 0 disables high-performance eye rendering for an eye diagram; any other value
          turns this feature on.
        - ``OFF`` disables high-performance eye rendering for an eye diagram.
        - ``ON`` enables high-performance eye rendering for an eye diagram.
    """


class MeasurementEnablepjitter(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:ENABLEPjitter`` command.

    Description:
        - This command sets or queries the state of period jitter analysis mode.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:ENABLEPjitter?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:ENABLEPjitter?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:ENABLEPjitter value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:ENABLEPjitter {ON|OFF|1|0}
        - MEASUrement:ENABLEPjitter?
        ```

    Info:
        - ``ON`` indicates that period jitter analysis mode is active.
        - ``OFF`` indicates that period jitter analysis mode is off.
        - ``1`` turns on period jitter analysis mode. Any number value other than 0 will turn period
          jitter analysis mode on.
        - ``0`` turns off period jitter analysis mode.
    """


class MeasurementEdgeItem(ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:EDGE<x>`` command.

    Description:
        - This command sets or queries the type of the edge for the measurement.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:EDGE<x>?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:EDGE<x>?`` query and raise
          an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:EDGE<x> value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:EDGE<x> {RISE|FALL|BOTH}
        - MEASUrement:EDGE<x>?
        ```

    Info:
        - ``FALL`` specifies the falling edge of the waveform.
        - ``RISE`` specifies the rising edge of the waveform.
        - ``BOTH`` specifies both a rising and falling edge of the waveform.
    """


class MeasurementDisplayunits(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:DISPLAYUnits`` command.

    Description:
        - This command sets or queries the display units used for jitter summary measurements.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:DISPLAYUnits?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:DISPLAYUnits?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:DISPLAYUnits value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:DISPLAYUnits {SEConds|UNITINtervals}
        - MEASUrement:DISPLAYUnits?
        ```

    Info:
        - ``SEConds`` set the display units to seconds.
        - ``UNITINtervals`` set the display units to unit intervals.
    """


class MeasurementDiracmodel(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:DIRacmodel`` command.

    Description:
        - This command sets or queries the dirac model used to separate random from deterministic
          jitter for jitter measurements.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:DIRacmodel?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:DIRacmodel?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:DIRacmodel value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:DIRacmodel {PCIExpress|FIBREchannel}
        - MEASUrement:DIRacmodel?
        ```

    Info:
        - ``PCIExpress`` specifies the PCIExpress dirac model.
        - ``FIBREchannel`` specifies the FIBREchannel dirac model.
    """


class MeasurementDelete(SCPICmdWrite):
    """The ``MEASUrement:DELete`` command.

    Description:
        - The command deletes the specified measurement.

    Usage:
        - Using the ``.write(value)`` method will send the ``MEASUrement:DELete value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:DELete <QString>
        ```

    Info:
        - ``<QString>`` is the measurement to delete. Argument is of the form 'MEAS<NR1>' where
          <NR1> is ≥1.
    """

    _WRAP_ARG_WITH_QUOTES = True


class MeasurementDeleteall(SCPICmdWriteNoArguments):
    """The ``MEASUrement:DELETEALL`` command.

    Description:
        - This command deletes all the active instances of measurements defined in the scope
          application.

    Usage:
        - Using the ``.write()`` method will send the ``MEASUrement:DELETEALL`` command.

    SCPI Syntax:
        ```
        - MEASUrement:DELETEALL
        ```
    """


class MeasurementDdjmethod(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:DDJMethod`` command.

    Description:
        - This command sets or queries the model used to separate-out DDJ from TIE.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:DDJMethod?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:DDJMethod?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:DDJMethod value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:DDJMethod {SPECtraldomain|TIMDomain}
        - MEASUrement:DDJMethod?
        ```
    """


class MeasurementClockrecoveryTdcompensation(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CLOCKRecovery:TDCOMPensation`` command.

    Description:
        - This command sets the PLL clock recovery loop feedback time-constants such that the actual
          transfer function matches closely to a mathematical filter polynomial. This will affect
          measurements whose ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:CLOCKRecovery:TDCOMPensation?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:CLOCKRecovery:TDCOMPensation?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CLOCKRecovery:TDCOMPensation value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CLOCKRecovery:TDCOMPensation {1|0}
        - MEASUrement:CLOCKRecovery:TDCOMPensation?
        ```

    Info:
        - ``1`` specifies automatic transition density compensation is on.
        - ``0`` specifies automatic transition density compensation is off.
    """


class MeasurementClockrecoveryStandard(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CLOCKRecovery:STAndard`` command.

    Description:
        - This command sets or queries the global communications standard used when PLL clock
          recovery is used for the measurement. This will affect measurements whose
          ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:CLOCKRecovery:STAndard?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:CLOCKRecovery:STAndard?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CLOCKRecovery:STAndard value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CLOCKRecovery:STAndard {CUSTom|ENET100|FW1394BS400B|FW1394BS800B|FW1394BS1600B|FBD1|FBD2|FBD3|FC133|FC266|FC531|FC1063|FC2125|FC4250|FC8500|ENET1000|IBA2500|IBA_GEN2|OC1|OC3|OC12|OC48|PCIE_GEN1|PCIE_GEN2|PCIE_GEN3|RIO125|RIO250|RIO3125|SAS15_NOSSC|SAS3_NOSSC|SAS6_NOSSC|SAS12_NOSSC|SAS15_SSC|SAS3_SSC|SAS6_SSC|SAS12_SSC|SATA_GEN1|SATA_GEN2|SATA_GEN3|USB3|XAUI|XAUI_GEN2}
        - MEASUrement:CLOCKRecovery:STAndard?
        ```

    Info:
        - ``CUSTom`` sets a custom standard.
        - ``ENET100`` sets the standard to ENET100.
        - ``FW1394BS400B`` sets the standard to FW1394BS400B.
        - ``FW1394BS800B`` sets the standard to FW1394BS800B.
        - ``FW1394BS1600B`` sets the standard to FW1394BS1600B.
        - ``FBD1`` sets the standard to FBD1.
        - ``FBD2`` sets the standard to FBD2.
        - ``FBD3`` sets the standard to FBD3.
        - ``FC133`` sets the standard to FC133.
        - ``FC266`` sets the standard to FC266.
        - ``FC531`` sets the standard to FC531.
        - ``FC1063`` sets the standard to FC1063.
        - ``FC2125`` sets the standard to FC2125.
        - ``FC4250`` sets the standard to FC4250.
        - ``FC8500`` sets the standard to FC8500.
        - ``ENET1000`` sets the standard to ENET1000.
        - ``IBA2500`` sets the standard to IBA2500.
        - ``IBA_GEN2`` sets the standard to ``IBA_GEN2``.
        - ``OC1`` sets the standard to OC1.
        - ``OC3`` sets the standard to OC3.
        - ``OC12`` sets the standard to OC12.
        - ``OC48`` sets the standard to OC48.
        - ``PCIE`` _GEN1 sets the standard to ``PCIE_GEN1``.
        - ``PCIE_GEN2`` sets the standard to ``PCIE_GEN2``.
        - ``PCIE_GEN3`` sets the standard to ``PCIE_GEN3``.
        - ``RIO125`` sets the standard to RIO125.
        - ``RIO250`` sets the standard to RIO250.
        - ``RIO3125`` sets the standard to RIO3125.
        - ``SAS15_NOSSC`` sets the standard to ``SAS15_NOSSC``.
        - ``SAS3_NOSSC`` sets the standard to ``SAS3_NOSSC``.
        - ``SAS6_NOSSC`` sets the standard to ``SAS6_NOSSC``.
        - ``SAS12_NOSSC`` sets the standard to ``SAS12_NOSSC``.
        - ``SAS15_SSC`` sets the standard to ``SAS15_SSC``.
        - ``SAS3_SSC`` sets the standard to ``SAS3_SSC``.
        - ``SAS6_SSC`` sets the standard to ``SAS6_SSC``.
        - ``SAS12_SSC`` sets the standard to ``SAS12_SSC``.
        - ``SATA_GEN1`` sets the standard to ``SATA_GEN1``.
        - ``SATA_GEN2`` sets the standard to ``SATA_GEN2``.
        - ``SATA_GEN3`` sets the standard to ``SATA_GEN3``.
        - ``USB3`` sets the standard to USB3.
        - ``XAUI`` sets the standard to XAUI.
        - ``XAUI_GEN2`` sets the standard to ``XAUI_GEN2``.
    """  # noqa: E501


class MeasurementClockrecoveryNominaloffsetSelectiontype(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CLOCKRecovery:NOMINALOFFset:SELECTIONtype`` command.

    Description:
        - This command sets or queries the global offset type used when explicit clock recovery is
          used for the measurement. This will affect measurements whose
          ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:CLOCKRecovery:NOMINALOFFset:SELECTIONtype?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:CLOCKRecovery:NOMINALOFFset:SELECTIONtype?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CLOCKRecovery:NOMINALOFFset:SELECTIONtype value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CLOCKRecovery:NOMINALOFFset:SELECTIONtype {AUTO|MANUAL}
        - MEASUrement:CLOCKRecovery:NOMINALOFFset:SELECTIONtype?
        ```

    Info:
        - ``AUTO`` sets the selection type to AUTO.
        - ``MANUAL`` sets the selection type to MANUAL.
    """


class MeasurementClockrecoveryNominaloffset(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CLOCKRecovery:NOMINALOFFset`` command.

    Description:
        - This command sets or queries the global offset value used when explicit clock recovery is
          used for the measurement. This will affect measurements whose
          ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:CLOCKRecovery:NOMINALOFFset?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:CLOCKRecovery:NOMINALOFFset?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CLOCKRecovery:NOMINALOFFset value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CLOCKRecovery:NOMINALOFFset <NR3>
        - MEASUrement:CLOCKRecovery:NOMINALOFFset?
        ```

    Info:
        - ``<NR3>`` is the global clock offset.

    Properties:
        - ``.selectiontype``: The ``MEASUrement:CLOCKRecovery:NOMINALOFFset:SELECTIONtype`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._selectiontype = MeasurementClockrecoveryNominaloffsetSelectiontype(
            device, f"{self._cmd_syntax}:SELECTIONtype"
        )

    @property
    def selectiontype(self) -> MeasurementClockrecoveryNominaloffsetSelectiontype:
        """Return the ``MEASUrement:CLOCKRecovery:NOMINALOFFset:SELECTIONtype`` command.

        Description:
            - This command sets or queries the global offset type used when explicit clock recovery
              is used for the measurement. This will affect measurements whose
              ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:CLOCKRecovery:NOMINALOFFset:SELECTIONtype?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:NOMINALOFFset:SELECTIONtype?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:NOMINALOFFset:SELECTIONtype value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CLOCKRecovery:NOMINALOFFset:SELECTIONtype {AUTO|MANUAL}
            - MEASUrement:CLOCKRecovery:NOMINALOFFset:SELECTIONtype?
            ```

        Info:
            - ``AUTO`` sets the selection type to AUTO.
            - ``MANUAL`` sets the selection type to MANUAL.
        """
        return self._selectiontype


class MeasurementClockrecoveryModel(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CLOCKRecovery:MODel`` command.

    Description:
        - This command sets or queries the global phase locked loop (PLL) clock recovery model used
          when PLL clock recovery is used for the measurement. This will affect measurements whose
          ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:CLOCKRecovery:MODel?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:CLOCKRecovery:MODel?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:CLOCKRecovery:MODel value``
          command.

    SCPI Syntax:
        ```
        - MEASUrement:CLOCKRecovery:MODel TYPE<x>
        - MEASUrement:CLOCKRecovery:MODel?
        ```

    Info:
        - ``TYPE<x>`` sets PLL clock recovery to a PLL model type. Valid values are 1 or 2.
    """


class MeasurementClockrecoveryMethod(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CLOCKRecovery:METHod`` command.

    Description:
        - This command sets or queries the global clock recovery method for the measurement. This
          will affect measurements whose ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set
          to 1.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:CLOCKRecovery:METHod?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:CLOCKRecovery:METHod?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CLOCKRecovery:METHod value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CLOCKRecovery:METHod {PLL|CONSTANTCLOCK|EXPLICITCLOCK}
        - MEASUrement:CLOCKRecovery:METHod?
        ```

    Info:
        - ``PLL`` specifies using the phase locked loop.
        - ``CONSTANTCLOCK`` specifies using a constant clock.
        - ``EXPLICITCLOCK`` specifies using an explicit clock.
    """


class MeasurementClockrecoveryMeanautocalculate(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CLOCKRecovery:MEANAUTOCalculate`` command.

    Description:
        - This command sets or queries how often the clock is calculated when constant clock
          recovery is used for the measurement. This will affect measurements whose
          ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:CLOCKRecovery:MEANAUTOCalculate?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:CLOCKRecovery:MEANAUTOCalculate?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CLOCKRecovery:MEANAUTOCalculate value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CLOCKRecovery:MEANAUTOCalculate {FIRST|EVERY}
        - MEASUrement:CLOCKRecovery:MEANAUTOCalculate?
        ```

    Info:
        - ``FIRST`` calculates the clock on the first acquisition.
        - ``EVERY`` calculates the clock on every acquisition.
    """


class MeasurementClockrecoveryLoopbandwidth(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CLOCKRecovery:LOOPBandwidth`` command.

    Description:
        - This command sets or queries the global loop bandwidth used when PLL clock recovery is
          used for the measurement. This will affect measurements whose
          ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:CLOCKRecovery:LOOPBandwidth?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:CLOCKRecovery:LOOPBandwidth?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CLOCKRecovery:LOOPBandwidth value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CLOCKRecovery:LOOPBandwidth <NR3>
        - MEASUrement:CLOCKRecovery:LOOPBandwidth?
        ```

    Info:
        - ``<NR3>`` is the global loop bandwidth.
    """


class MeasurementClockrecoveryJtfbandwidth(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CLOCKRecovery:JTFBandwidth`` command.

    Description:
        - This command sets or queries the global JTF bandwidth used when PLL clock recovery is used
          for the measurement. This will affect measurements whose
          ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:CLOCKRecovery:JTFBandwidth?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:CLOCKRecovery:JTFBandwidth?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CLOCKRecovery:JTFBandwidth value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CLOCKRecovery:JTFBandwidth <NR3>
        - MEASUrement:CLOCKRecovery:JTFBandwidth?
        ```

    Info:
        - ``<NR3>`` is the global clock recovery JTF bandwidth.
    """


class MeasurementClockrecoveryExplicitclockmode(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CLOCKRecovery:EXPLICITCLOCKMODe`` command.

    Description:
        - This command sets or queries the global explicit clock mode used when explicit clock
          recovery is used for the measurement. This will affect measurements whose
          ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:CLOCKRecovery:EXPLICITCLOCKMODe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:CLOCKRecovery:EXPLICITCLOCKMODe?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CLOCKRecovery:EXPLICITCLOCKMODe value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CLOCKRecovery:EXPLICITCLOCKMODe {EDGE|PLL}
        - MEASUrement:CLOCKRecovery:EXPLICITCLOCKMODe?
        ```

    Info:
        - ``EDGE`` sets the clock mode to clock edge.
        - ``PLL`` sets the clock mode to phase locked loop.
    """


class MeasurementClockrecoveryDatarate(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CLOCKRecovery:DATARate`` command.

    Description:
        - This command sets or queries the global nominal data bit rate used when nominal data rate
          clock recovery is used for the measurement. This will affect measurements whose
          ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:CLOCKRecovery:DATARate?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:CLOCKRecovery:DATARate?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CLOCKRecovery:DATARate value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CLOCKRecovery:DATARate <NR3>
        - MEASUrement:CLOCKRecovery:DATARate?
        ```

    Info:
        - ``<NR3>`` is the global value for the Nominal data rate.
    """


class MeasurementClockrecoveryDatapath(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CLOCKRecovery:DATAPath`` command.

    Description:
        - This command sets or queries the global file containing the data pattern used when known
          data pattern clock recovery is used for the measurement. This will affect measurements
          whose ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:CLOCKRecovery:DATAPath?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:CLOCKRecovery:DATAPath?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CLOCKRecovery:DATAPath value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CLOCKRecovery:DATAPath <QString>
        - MEASUrement:CLOCKRecovery:DATAPath?
        ```

    Info:
        - ``<QString>`` is the path and filename, in quotes, of the file containing the data
          pattern.
    """

    _WRAP_ARG_WITH_QUOTES = True


class MeasurementClockrecoveryDamping(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CLOCKRecovery:DAMPing`` command.

    Description:
        - This command sets or queries the global damping value used when PLL clock recovery is used
          for the measurement. This will affect measurements whose
          ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:CLOCKRecovery:DAMPing?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:CLOCKRecovery:DAMPing?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CLOCKRecovery:DAMPing value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CLOCKRecovery:DAMPing <NR3>
        - MEASUrement:CLOCKRecovery:DAMPing?
        ```

    Info:
        - ``<NR3>`` is the global clock recovery damping value.
    """


class MeasurementClockrecoveryConstclockmode(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CLOCKRecovery:CONSTCLOCKMODe`` command.

    Description:
        - This command sets or queries the global constant clock mode used when constant clock
          recovery is used for the measurement. This will affect measurements whose
          ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:CLOCKRecovery:CONSTCLOCKMODe?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:CLOCKRecovery:CONSTCLOCKMODe?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CLOCKRecovery:CONSTCLOCKMODe value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CLOCKRecovery:CONSTCLOCKMODe {MEAN|MEDian|FIXed}
        - MEASUrement:CLOCKRecovery:CONSTCLOCKMODe?
        ```

    Info:
        - ``MEAN`` sets the constant clock mode to MEAN.
        - ``MEDian`` sets the constant clock mode to MEDian.
        - ``FIXed`` sets the constant clock mode to FIXed.
    """


class MeasurementClockrecoveryClockmultiplier(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CLOCKRecovery:CLOCKMultiplier`` command.

    Description:
        - This command sets or queries the global clock multiplier used when explicit clock recovery
          is used for the measurement. This will affect measurements whose
          ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:CLOCKRecovery:CLOCKMultiplier?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:CLOCKRecovery:CLOCKMultiplier?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CLOCKRecovery:CLOCKMultiplier value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CLOCKRecovery:CLOCKMultiplier <NR3>
        - MEASUrement:CLOCKRecovery:CLOCKMultiplier?
        ```

    Info:
        - ``<NR3>`` is the global clock multiplier.
    """


class MeasurementClockrecoveryClockfrequency(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CLOCKRecovery:CLOCKFrequency`` command.

    Description:
        - This command sets or queries the global clock frequency used when fixed constant clock
          recovery is used for the measurement. This will affect measurements whose
          ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:CLOCKRecovery:CLOCKFrequency?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:CLOCKRecovery:CLOCKFrequency?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CLOCKRecovery:CLOCKFrequency value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CLOCKRecovery:CLOCKFrequency <NR3>
        - MEASUrement:CLOCKRecovery:CLOCKFrequency?
        ```

    Info:
        - ``<NR3>`` is the global clock frequency used with Constant Clock - Fixed clock recovery
          method.
    """


class MeasurementClockrecoveryAdvancedMethod(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CLOCKRecovery:ADVanced:METHod`` command.

    Description:
        - This command sets or queries the global advanced clock recovery method. This will affect
          measurements whose ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:CLOCKRecovery:ADVanced:METHod?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:CLOCKRecovery:ADVanced:METHod?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CLOCKRecovery:ADVanced:METHod value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CLOCKRecovery:ADVanced:METHod {NONE|NOMinal|PATTern}
        - MEASUrement:CLOCKRecovery:ADVanced:METHod?
        ```

    Info:
        - ``NONE`` sets to use no advanced CRD method.
        - ``NOMinal`` sets the advanced CRD method to Nominal Data Rate.
        - ``PATTern`` sets the advanced CDR method to use a Known Data Pattern.
    """


class MeasurementClockrecoveryAdvanced(SCPICmdRead):
    """The ``MEASUrement:CLOCKRecovery:ADVanced`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:CLOCKRecovery:ADVanced?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:CLOCKRecovery:ADVanced?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.method``: The ``MEASUrement:CLOCKRecovery:ADVanced:METHod`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._method = MeasurementClockrecoveryAdvancedMethod(device, f"{self._cmd_syntax}:METHod")

    @property
    def method(self) -> MeasurementClockrecoveryAdvancedMethod:
        """Return the ``MEASUrement:CLOCKRecovery:ADVanced:METHod`` command.

        Description:
            - This command sets or queries the global advanced clock recovery method. This will
              affect measurements whose ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to
              1.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:CLOCKRecovery:ADVanced:METHod?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:ADVanced:METHod?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:ADVanced:METHod value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CLOCKRecovery:ADVanced:METHod {NONE|NOMinal|PATTern}
            - MEASUrement:CLOCKRecovery:ADVanced:METHod?
            ```

        Info:
            - ``NONE`` sets to use no advanced CRD method.
            - ``NOMinal`` sets the advanced CRD method to Nominal Data Rate.
            - ``PATTern`` sets the advanced CDR method to use a Known Data Pattern.
        """
        return self._method


#  pylint: disable=too-many-instance-attributes
class MeasurementClockrecovery(SCPICmdRead):
    """The ``MEASUrement:CLOCKRecovery`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:CLOCKRecovery?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:CLOCKRecovery?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.advanced``: The ``MEASUrement:CLOCKRecovery:ADVanced`` command tree.
        - ``.clockfrequency``: The ``MEASUrement:CLOCKRecovery:CLOCKFrequency`` command.
        - ``.clockmultiplier``: The ``MEASUrement:CLOCKRecovery:CLOCKMultiplier`` command.
        - ``.constclockmode``: The ``MEASUrement:CLOCKRecovery:CONSTCLOCKMODe`` command.
        - ``.damping``: The ``MEASUrement:CLOCKRecovery:DAMPing`` command.
        - ``.datapath``: The ``MEASUrement:CLOCKRecovery:DATAPath`` command.
        - ``.datarate``: The ``MEASUrement:CLOCKRecovery:DATARate`` command.
        - ``.explicitclockmode``: The ``MEASUrement:CLOCKRecovery:EXPLICITCLOCKMODe`` command.
        - ``.jtfbandwidth``: The ``MEASUrement:CLOCKRecovery:JTFBandwidth`` command.
        - ``.loopbandwidth``: The ``MEASUrement:CLOCKRecovery:LOOPBandwidth`` command.
        - ``.meanautocalculate``: The ``MEASUrement:CLOCKRecovery:MEANAUTOCalculate`` command.
        - ``.method``: The ``MEASUrement:CLOCKRecovery:METHod`` command.
        - ``.model``: The ``MEASUrement:CLOCKRecovery:MODel`` command.
        - ``.nominaloffset``: The ``MEASUrement:CLOCKRecovery:NOMINALOFFset`` command.
        - ``.standard``: The ``MEASUrement:CLOCKRecovery:STAndard`` command.
        - ``.tdcompensation``: The ``MEASUrement:CLOCKRecovery:TDCOMPensation`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._advanced = MeasurementClockrecoveryAdvanced(device, f"{self._cmd_syntax}:ADVanced")
        self._clockfrequency = MeasurementClockrecoveryClockfrequency(
            device, f"{self._cmd_syntax}:CLOCKFrequency"
        )
        self._clockmultiplier = MeasurementClockrecoveryClockmultiplier(
            device, f"{self._cmd_syntax}:CLOCKMultiplier"
        )
        self._constclockmode = MeasurementClockrecoveryConstclockmode(
            device, f"{self._cmd_syntax}:CONSTCLOCKMODe"
        )
        self._damping = MeasurementClockrecoveryDamping(device, f"{self._cmd_syntax}:DAMPing")
        self._datapath = MeasurementClockrecoveryDatapath(device, f"{self._cmd_syntax}:DATAPath")
        self._datarate = MeasurementClockrecoveryDatarate(device, f"{self._cmd_syntax}:DATARate")
        self._explicitclockmode = MeasurementClockrecoveryExplicitclockmode(
            device, f"{self._cmd_syntax}:EXPLICITCLOCKMODe"
        )
        self._jtfbandwidth = MeasurementClockrecoveryJtfbandwidth(
            device, f"{self._cmd_syntax}:JTFBandwidth"
        )
        self._loopbandwidth = MeasurementClockrecoveryLoopbandwidth(
            device, f"{self._cmd_syntax}:LOOPBandwidth"
        )
        self._meanautocalculate = MeasurementClockrecoveryMeanautocalculate(
            device, f"{self._cmd_syntax}:MEANAUTOCalculate"
        )
        self._method = MeasurementClockrecoveryMethod(device, f"{self._cmd_syntax}:METHod")
        self._model = MeasurementClockrecoveryModel(device, f"{self._cmd_syntax}:MODel")
        self._nominaloffset = MeasurementClockrecoveryNominaloffset(
            device, f"{self._cmd_syntax}:NOMINALOFFset"
        )
        self._standard = MeasurementClockrecoveryStandard(device, f"{self._cmd_syntax}:STAndard")
        self._tdcompensation = MeasurementClockrecoveryTdcompensation(
            device, f"{self._cmd_syntax}:TDCOMPensation"
        )

    @property
    def advanced(self) -> MeasurementClockrecoveryAdvanced:
        """Return the ``MEASUrement:CLOCKRecovery:ADVanced`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:CLOCKRecovery:ADVanced?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:ADVanced?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.method``: The ``MEASUrement:CLOCKRecovery:ADVanced:METHod`` command.
        """
        return self._advanced

    @property
    def clockfrequency(self) -> MeasurementClockrecoveryClockfrequency:
        """Return the ``MEASUrement:CLOCKRecovery:CLOCKFrequency`` command.

        Description:
            - This command sets or queries the global clock frequency used when fixed constant clock
              recovery is used for the measurement. This will affect measurements whose
              ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:CLOCKRecovery:CLOCKFrequency?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:CLOCKFrequency?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:CLOCKFrequency value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CLOCKRecovery:CLOCKFrequency <NR3>
            - MEASUrement:CLOCKRecovery:CLOCKFrequency?
            ```

        Info:
            - ``<NR3>`` is the global clock frequency used with Constant Clock - Fixed clock
              recovery method.
        """
        return self._clockfrequency

    @property
    def clockmultiplier(self) -> MeasurementClockrecoveryClockmultiplier:
        """Return the ``MEASUrement:CLOCKRecovery:CLOCKMultiplier`` command.

        Description:
            - This command sets or queries the global clock multiplier used when explicit clock
              recovery is used for the measurement. This will affect measurements whose
              ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:CLOCKRecovery:CLOCKMultiplier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:CLOCKMultiplier?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:CLOCKMultiplier value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CLOCKRecovery:CLOCKMultiplier <NR3>
            - MEASUrement:CLOCKRecovery:CLOCKMultiplier?
            ```

        Info:
            - ``<NR3>`` is the global clock multiplier.
        """
        return self._clockmultiplier

    @property
    def constclockmode(self) -> MeasurementClockrecoveryConstclockmode:
        """Return the ``MEASUrement:CLOCKRecovery:CONSTCLOCKMODe`` command.

        Description:
            - This command sets or queries the global constant clock mode used when constant clock
              recovery is used for the measurement. This will affect measurements whose
              ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:CLOCKRecovery:CONSTCLOCKMODe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:CONSTCLOCKMODe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:CONSTCLOCKMODe value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CLOCKRecovery:CONSTCLOCKMODe {MEAN|MEDian|FIXed}
            - MEASUrement:CLOCKRecovery:CONSTCLOCKMODe?
            ```

        Info:
            - ``MEAN`` sets the constant clock mode to MEAN.
            - ``MEDian`` sets the constant clock mode to MEDian.
            - ``FIXed`` sets the constant clock mode to FIXed.
        """
        return self._constclockmode

    @property
    def damping(self) -> MeasurementClockrecoveryDamping:
        """Return the ``MEASUrement:CLOCKRecovery:DAMPing`` command.

        Description:
            - This command sets or queries the global damping value used when PLL clock recovery is
              used for the measurement. This will affect measurements whose
              ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:CLOCKRecovery:DAMPing?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:DAMPing?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:DAMPing value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CLOCKRecovery:DAMPing <NR3>
            - MEASUrement:CLOCKRecovery:DAMPing?
            ```

        Info:
            - ``<NR3>`` is the global clock recovery damping value.
        """
        return self._damping

    @property
    def datapath(self) -> MeasurementClockrecoveryDatapath:
        """Return the ``MEASUrement:CLOCKRecovery:DATAPath`` command.

        Description:
            - This command sets or queries the global file containing the data pattern used when
              known data pattern clock recovery is used for the measurement. This will affect
              measurements whose ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:CLOCKRecovery:DATAPath?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:DATAPath?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:DATAPath value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CLOCKRecovery:DATAPath <QString>
            - MEASUrement:CLOCKRecovery:DATAPath?
            ```

        Info:
            - ``<QString>`` is the path and filename, in quotes, of the file containing the data
              pattern.
        """
        return self._datapath

    @property
    def datarate(self) -> MeasurementClockrecoveryDatarate:
        """Return the ``MEASUrement:CLOCKRecovery:DATARate`` command.

        Description:
            - This command sets or queries the global nominal data bit rate used when nominal data
              rate clock recovery is used for the measurement. This will affect measurements whose
              ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:CLOCKRecovery:DATARate?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:DATARate?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:DATARate value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CLOCKRecovery:DATARate <NR3>
            - MEASUrement:CLOCKRecovery:DATARate?
            ```

        Info:
            - ``<NR3>`` is the global value for the Nominal data rate.
        """
        return self._datarate

    @property
    def explicitclockmode(self) -> MeasurementClockrecoveryExplicitclockmode:
        """Return the ``MEASUrement:CLOCKRecovery:EXPLICITCLOCKMODe`` command.

        Description:
            - This command sets or queries the global explicit clock mode used when explicit clock
              recovery is used for the measurement. This will affect measurements whose
              ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:CLOCKRecovery:EXPLICITCLOCKMODe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:EXPLICITCLOCKMODe?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:EXPLICITCLOCKMODe value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CLOCKRecovery:EXPLICITCLOCKMODe {EDGE|PLL}
            - MEASUrement:CLOCKRecovery:EXPLICITCLOCKMODe?
            ```

        Info:
            - ``EDGE`` sets the clock mode to clock edge.
            - ``PLL`` sets the clock mode to phase locked loop.
        """
        return self._explicitclockmode

    @property
    def jtfbandwidth(self) -> MeasurementClockrecoveryJtfbandwidth:
        """Return the ``MEASUrement:CLOCKRecovery:JTFBandwidth`` command.

        Description:
            - This command sets or queries the global JTF bandwidth used when PLL clock recovery is
              used for the measurement. This will affect measurements whose
              ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:CLOCKRecovery:JTFBandwidth?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:JTFBandwidth?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:JTFBandwidth value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CLOCKRecovery:JTFBandwidth <NR3>
            - MEASUrement:CLOCKRecovery:JTFBandwidth?
            ```

        Info:
            - ``<NR3>`` is the global clock recovery JTF bandwidth.
        """
        return self._jtfbandwidth

    @property
    def loopbandwidth(self) -> MeasurementClockrecoveryLoopbandwidth:
        """Return the ``MEASUrement:CLOCKRecovery:LOOPBandwidth`` command.

        Description:
            - This command sets or queries the global loop bandwidth used when PLL clock recovery is
              used for the measurement. This will affect measurements whose
              ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:CLOCKRecovery:LOOPBandwidth?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:LOOPBandwidth?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:LOOPBandwidth value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CLOCKRecovery:LOOPBandwidth <NR3>
            - MEASUrement:CLOCKRecovery:LOOPBandwidth?
            ```

        Info:
            - ``<NR3>`` is the global loop bandwidth.
        """
        return self._loopbandwidth

    @property
    def meanautocalculate(self) -> MeasurementClockrecoveryMeanautocalculate:
        """Return the ``MEASUrement:CLOCKRecovery:MEANAUTOCalculate`` command.

        Description:
            - This command sets or queries how often the clock is calculated when constant clock
              recovery is used for the measurement. This will affect measurements whose
              ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:CLOCKRecovery:MEANAUTOCalculate?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:MEANAUTOCalculate?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:MEANAUTOCalculate value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CLOCKRecovery:MEANAUTOCalculate {FIRST|EVERY}
            - MEASUrement:CLOCKRecovery:MEANAUTOCalculate?
            ```

        Info:
            - ``FIRST`` calculates the clock on the first acquisition.
            - ``EVERY`` calculates the clock on every acquisition.
        """
        return self._meanautocalculate

    @property
    def method(self) -> MeasurementClockrecoveryMethod:
        """Return the ``MEASUrement:CLOCKRecovery:METHod`` command.

        Description:
            - This command sets or queries the global clock recovery method for the measurement.
              This will affect measurements whose ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag
              is set to 1.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:CLOCKRecovery:METHod?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:METHod?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:METHod value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CLOCKRecovery:METHod {PLL|CONSTANTCLOCK|EXPLICITCLOCK}
            - MEASUrement:CLOCKRecovery:METHod?
            ```

        Info:
            - ``PLL`` specifies using the phase locked loop.
            - ``CONSTANTCLOCK`` specifies using a constant clock.
            - ``EXPLICITCLOCK`` specifies using an explicit clock.
        """
        return self._method

    @property
    def model(self) -> MeasurementClockrecoveryModel:
        """Return the ``MEASUrement:CLOCKRecovery:MODel`` command.

        Description:
            - This command sets or queries the global phase locked loop (PLL) clock recovery model
              used when PLL clock recovery is used for the measurement. This will affect
              measurements whose ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:CLOCKRecovery:MODel?``
              query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:CLOCKRecovery:MODel?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:MODel value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CLOCKRecovery:MODel TYPE<x>
            - MEASUrement:CLOCKRecovery:MODel?
            ```

        Info:
            - ``TYPE<x>`` sets PLL clock recovery to a PLL model type. Valid values are 1 or 2.
        """
        return self._model

    @property
    def nominaloffset(self) -> MeasurementClockrecoveryNominaloffset:
        """Return the ``MEASUrement:CLOCKRecovery:NOMINALOFFset`` command.

        Description:
            - This command sets or queries the global offset value used when explicit clock recovery
              is used for the measurement. This will affect measurements whose
              ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:CLOCKRecovery:NOMINALOFFset?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:NOMINALOFFset?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:NOMINALOFFset value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CLOCKRecovery:NOMINALOFFset <NR3>
            - MEASUrement:CLOCKRecovery:NOMINALOFFset?
            ```

        Info:
            - ``<NR3>`` is the global clock offset.

        Sub-properties:
            - ``.selectiontype``: The ``MEASUrement:CLOCKRecovery:NOMINALOFFset:SELECTIONtype``
              command.
        """
        return self._nominaloffset

    @property
    def standard(self) -> MeasurementClockrecoveryStandard:
        """Return the ``MEASUrement:CLOCKRecovery:STAndard`` command.

        Description:
            - This command sets or queries the global communications standard used when PLL clock
              recovery is used for the measurement. This will affect measurements whose
              ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is set to 1.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:CLOCKRecovery:STAndard?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:STAndard?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:STAndard value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CLOCKRecovery:STAndard {CUSTom|ENET100|FW1394BS400B|FW1394BS800B|FW1394BS1600B|FBD1|FBD2|FBD3|FC133|FC266|FC531|FC1063|FC2125|FC4250|FC8500|ENET1000|IBA2500|IBA_GEN2|OC1|OC3|OC12|OC48|PCIE_GEN1|PCIE_GEN2|PCIE_GEN3|RIO125|RIO250|RIO3125|SAS15_NOSSC|SAS3_NOSSC|SAS6_NOSSC|SAS12_NOSSC|SAS15_SSC|SAS3_SSC|SAS6_SSC|SAS12_SSC|SATA_GEN1|SATA_GEN2|SATA_GEN3|USB3|XAUI|XAUI_GEN2}
            - MEASUrement:CLOCKRecovery:STAndard?
            ```

        Info:
            - ``CUSTom`` sets a custom standard.
            - ``ENET100`` sets the standard to ENET100.
            - ``FW1394BS400B`` sets the standard to FW1394BS400B.
            - ``FW1394BS800B`` sets the standard to FW1394BS800B.
            - ``FW1394BS1600B`` sets the standard to FW1394BS1600B.
            - ``FBD1`` sets the standard to FBD1.
            - ``FBD2`` sets the standard to FBD2.
            - ``FBD3`` sets the standard to FBD3.
            - ``FC133`` sets the standard to FC133.
            - ``FC266`` sets the standard to FC266.
            - ``FC531`` sets the standard to FC531.
            - ``FC1063`` sets the standard to FC1063.
            - ``FC2125`` sets the standard to FC2125.
            - ``FC4250`` sets the standard to FC4250.
            - ``FC8500`` sets the standard to FC8500.
            - ``ENET1000`` sets the standard to ENET1000.
            - ``IBA2500`` sets the standard to IBA2500.
            - ``IBA_GEN2`` sets the standard to ``IBA_GEN2``.
            - ``OC1`` sets the standard to OC1.
            - ``OC3`` sets the standard to OC3.
            - ``OC12`` sets the standard to OC12.
            - ``OC48`` sets the standard to OC48.
            - ``PCIE`` _GEN1 sets the standard to ``PCIE_GEN1``.
            - ``PCIE_GEN2`` sets the standard to ``PCIE_GEN2``.
            - ``PCIE_GEN3`` sets the standard to ``PCIE_GEN3``.
            - ``RIO125`` sets the standard to RIO125.
            - ``RIO250`` sets the standard to RIO250.
            - ``RIO3125`` sets the standard to RIO3125.
            - ``SAS15_NOSSC`` sets the standard to ``SAS15_NOSSC``.
            - ``SAS3_NOSSC`` sets the standard to ``SAS3_NOSSC``.
            - ``SAS6_NOSSC`` sets the standard to ``SAS6_NOSSC``.
            - ``SAS12_NOSSC`` sets the standard to ``SAS12_NOSSC``.
            - ``SAS15_SSC`` sets the standard to ``SAS15_SSC``.
            - ``SAS3_SSC`` sets the standard to ``SAS3_SSC``.
            - ``SAS6_SSC`` sets the standard to ``SAS6_SSC``.
            - ``SAS12_SSC`` sets the standard to ``SAS12_SSC``.
            - ``SATA_GEN1`` sets the standard to ``SATA_GEN1``.
            - ``SATA_GEN2`` sets the standard to ``SATA_GEN2``.
            - ``SATA_GEN3`` sets the standard to ``SATA_GEN3``.
            - ``USB3`` sets the standard to USB3.
            - ``XAUI`` sets the standard to XAUI.
            - ``XAUI_GEN2`` sets the standard to ``XAUI_GEN2``.
        """  # noqa: E501
        return self._standard

    @property
    def tdcompensation(self) -> MeasurementClockrecoveryTdcompensation:
        """Return the ``MEASUrement:CLOCKRecovery:TDCOMPensation`` command.

        Description:
            - This command sets the PLL clock recovery loop feedback time-constants such that the
              actual transfer function matches closely to a mathematical filter polynomial. This
              will affect measurements whose ``:MEASUrement:MEAS<x>:CLOCKRecovery:GLOBal`` flag is
              set to 1.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:CLOCKRecovery:TDCOMPensation?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:TDCOMPensation?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CLOCKRecovery:TDCOMPensation value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CLOCKRecovery:TDCOMPensation {1|0}
            - MEASUrement:CLOCKRecovery:TDCOMPensation?
            ```

        Info:
            - ``1`` specifies automatic transition density compensation is on.
            - ``0`` specifies automatic transition density compensation is off.
        """
        return self._tdcompensation


class MeasurementChannelReflevelsPercentType(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CH<x>:REFLevels:PERCent:TYPE`` command.

    Description:
        - This command specifies or queries the reference level percent type for the measurement.
          The channel number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:CH<x>:REFLevels:PERCent:TYPE?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:PERCent:TYPE?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:PERCent:TYPE value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CH<x>:REFLevels:PERCent:TYPE {TENNinety|TWENtyeighty|CUSTom}
        - MEASUrement:CH<x>:REFLevels:PERCent:TYPE?
        ```

    Info:
        - ``TENNinety`` specifies reference levels at the 10 and 90% levels.
        - ``TWENtyeighty`` specifies reference levels at the 20 and 80% levels.
        - ``CUSTom`` specifies custom reference levels.
    """


class MeasurementChannelReflevelsPercentRisemid(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CH<x>:REFLevels:PERCent:RISEMid`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the mid reference level of the rising edge when the measurement
          ref level method is set to percent. The channel number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:CH<x>:REFLevels:PERCent:RISEMid?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:PERCent:RISEMid?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:PERCent:RISEMid value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CH<x>:REFLevels:PERCent:RISEMid <NR3>
        - MEASUrement:CH<x>:REFLevels:PERCent:RISEMid?
        ```

    Info:
        - ``<NR3>`` is the percentage (where 50% is equal to MID) used to calculate the mid
          reference level when the measurement's Ref level method is set to Percent.
    """


class MeasurementChannelReflevelsPercentRiselow(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CH<x>:REFLevels:PERCent:RISELow`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the low reference level of the rising edge when the measurement
          ref level method is set to percent. The channel number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:CH<x>:REFLevels:PERCent:RISELow?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:PERCent:RISELow?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:PERCent:RISELow value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CH<x>:REFLevels:PERCent:RISELow <NR3>
        - MEASUrement:CH<x>:REFLevels:PERCent:RISELow?
        ```

    Info:
        - ``<NR3>`` is the percentage (where 100% is equal to TOP) used to calculate the mid
          reference level when the measurement's Ref level method is set to Percent.
    """


class MeasurementChannelReflevelsPercentRisehigh(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CH<x>:REFLevels:PERCent:RISEHigh`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the high reference level of the rising edge when the measurement
          ref level method is set to percent. The channel number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:CH<x>:REFLevels:PERCent:RISEHigh?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:PERCent:RISEHigh?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:PERCent:RISEHigh value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CH<x>:REFLevels:PERCent:RISEHigh <NR3>
        - MEASUrement:CH<x>:REFLevels:PERCent:RISEHigh?
        ```

    Info:
        - ``<NR3>`` is the percentage (where 100% is equal to TOP) used to calculate the high
          reference level when the measurement's Ref level method is set to Percent.
    """


class MeasurementChannelReflevelsPercentHysteresis(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CH<x>:REFLevels:PERCent:HYSTeresis`` command.

    Description:
        - This command sets or queries the percentage (where 100% is equal to MAX and 0% is equal to
          MIN) used to calculate the hysteresis of the reference level when the measurement ref
          level method is set to percent. The channel number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:CH<x>:REFLevels:PERCent:HYSTeresis?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:PERCent:HYSTeresis?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:PERCent:HYSTeresis value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CH<x>:REFLevels:PERCent:HYSTeresis <NR3>
        - MEASUrement:CH<x>:REFLevels:PERCent:HYSTeresis?
        ```

    Info:
        - ``<NR3>`` is the hysteresis value used for the autoset.
    """


class MeasurementChannelReflevelsPercentFallmid(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CH<x>:REFLevels:PERCent:FALLMid`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the mid reference level of the falling edge when the source ref
          level method is set to percent. The channel number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:CH<x>:REFLevels:PERCent:FALLMid?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:PERCent:FALLMid?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:PERCent:FALLMid value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CH<x>:REFLevels:PERCent:FALLMid <NR3>
        - MEASUrement:CH<x>:REFLevels:PERCent:FALLMid?
        ```

    Info:
        - ``<NR3>`` is the percentage (where 50% is equal to MID) used to calculate the mid
          reference level when the measurement's Ref level method is set to Percent.
    """


class MeasurementChannelReflevelsPercentFalllow(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CH<x>:REFLevels:PERCent:FALLLow`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the low reference level of the falling edge when the source ref
          level method is set to percent. The channel number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:CH<x>:REFLevels:PERCent:FALLLow?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:PERCent:FALLLow?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:PERCent:FALLLow value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CH<x>:REFLevels:PERCent:FALLLow <NR3>
        - MEASUrement:CH<x>:REFLevels:PERCent:FALLLow?
        ```

    Info:
        - ``<NR3>`` is the percentage (where 100% is equal to TOP) used to calculate the low
          reference level when the measurement Ref level method is set to Percent.
    """


class MeasurementChannelReflevelsPercentFallhigh(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CH<x>:REFLevels:PERCent:FALLHigh`` command.

    Description:
        - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal to
          BASE) used to calculate the high reference level of the falling edge when the source ref
          level method is set to percent. The channel number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:CH<x>:REFLevels:PERCent:FALLHigh?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:PERCent:FALLHigh?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:PERCent:FALLHigh value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CH<x>:REFLevels:PERCent:FALLHigh <NR3>
        - MEASUrement:CH<x>:REFLevels:PERCent:FALLHigh?
        ```

    Info:
        - ``<NR3>`` is the percentage (where 100% is equal to TOP) used to calculate the high
          reference level when the measurement's Ref level method is set to Percent.
    """


#  pylint: disable=too-many-instance-attributes
class MeasurementChannelReflevelsPercent(SCPICmdRead):
    """The ``MEASUrement:CH<x>:REFLevels:PERCent`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:CH<x>:REFLevels:PERCent?``
          query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:CH<x>:REFLevels:PERCent?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.fallhigh``: The ``MEASUrement:CH<x>:REFLevels:PERCent:FALLHigh`` command.
        - ``.falllow``: The ``MEASUrement:CH<x>:REFLevels:PERCent:FALLLow`` command.
        - ``.fallmid``: The ``MEASUrement:CH<x>:REFLevels:PERCent:FALLMid`` command.
        - ``.hysteresis``: The ``MEASUrement:CH<x>:REFLevels:PERCent:HYSTeresis`` command.
        - ``.risehigh``: The ``MEASUrement:CH<x>:REFLevels:PERCent:RISEHigh`` command.
        - ``.riselow``: The ``MEASUrement:CH<x>:REFLevels:PERCent:RISELow`` command.
        - ``.risemid``: The ``MEASUrement:CH<x>:REFLevels:PERCent:RISEMid`` command.
        - ``.type``: The ``MEASUrement:CH<x>:REFLevels:PERCent:TYPE`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._fallhigh = MeasurementChannelReflevelsPercentFallhigh(
            device, f"{self._cmd_syntax}:FALLHigh"
        )
        self._falllow = MeasurementChannelReflevelsPercentFalllow(
            device, f"{self._cmd_syntax}:FALLLow"
        )
        self._fallmid = MeasurementChannelReflevelsPercentFallmid(
            device, f"{self._cmd_syntax}:FALLMid"
        )
        self._hysteresis = MeasurementChannelReflevelsPercentHysteresis(
            device, f"{self._cmd_syntax}:HYSTeresis"
        )
        self._risehigh = MeasurementChannelReflevelsPercentRisehigh(
            device, f"{self._cmd_syntax}:RISEHigh"
        )
        self._riselow = MeasurementChannelReflevelsPercentRiselow(
            device, f"{self._cmd_syntax}:RISELow"
        )
        self._risemid = MeasurementChannelReflevelsPercentRisemid(
            device, f"{self._cmd_syntax}:RISEMid"
        )
        self._type = MeasurementChannelReflevelsPercentType(device, f"{self._cmd_syntax}:TYPE")

    @property
    def fallhigh(self) -> MeasurementChannelReflevelsPercentFallhigh:
        """Return the ``MEASUrement:CH<x>:REFLevels:PERCent:FALLHigh`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the high reference level of the falling edge when the
              source ref level method is set to percent. The channel number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:CH<x>:REFLevels:PERCent:FALLHigh?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:PERCent:FALLHigh?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:PERCent:FALLHigh value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CH<x>:REFLevels:PERCent:FALLHigh <NR3>
            - MEASUrement:CH<x>:REFLevels:PERCent:FALLHigh?
            ```

        Info:
            - ``<NR3>`` is the percentage (where 100% is equal to TOP) used to calculate the high
              reference level when the measurement's Ref level method is set to Percent.
        """
        return self._fallhigh

    @property
    def falllow(self) -> MeasurementChannelReflevelsPercentFalllow:
        """Return the ``MEASUrement:CH<x>:REFLevels:PERCent:FALLLow`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the low reference level of the falling edge when the source
              ref level method is set to percent. The channel number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:CH<x>:REFLevels:PERCent:FALLLow?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:PERCent:FALLLow?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:PERCent:FALLLow value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CH<x>:REFLevels:PERCent:FALLLow <NR3>
            - MEASUrement:CH<x>:REFLevels:PERCent:FALLLow?
            ```

        Info:
            - ``<NR3>`` is the percentage (where 100% is equal to TOP) used to calculate the low
              reference level when the measurement Ref level method is set to Percent.
        """
        return self._falllow

    @property
    def fallmid(self) -> MeasurementChannelReflevelsPercentFallmid:
        """Return the ``MEASUrement:CH<x>:REFLevels:PERCent:FALLMid`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the mid reference level of the falling edge when the source
              ref level method is set to percent. The channel number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:CH<x>:REFLevels:PERCent:FALLMid?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:PERCent:FALLMid?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:PERCent:FALLMid value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CH<x>:REFLevels:PERCent:FALLMid <NR3>
            - MEASUrement:CH<x>:REFLevels:PERCent:FALLMid?
            ```

        Info:
            - ``<NR3>`` is the percentage (where 50% is equal to MID) used to calculate the mid
              reference level when the measurement's Ref level method is set to Percent.
        """
        return self._fallmid

    @property
    def hysteresis(self) -> MeasurementChannelReflevelsPercentHysteresis:
        """Return the ``MEASUrement:CH<x>:REFLevels:PERCent:HYSTeresis`` command.

        Description:
            - This command sets or queries the percentage (where 100% is equal to MAX and 0% is
              equal to MIN) used to calculate the hysteresis of the reference level when the
              measurement ref level method is set to percent. The channel number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:CH<x>:REFLevels:PERCent:HYSTeresis?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:PERCent:HYSTeresis?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:PERCent:HYSTeresis value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CH<x>:REFLevels:PERCent:HYSTeresis <NR3>
            - MEASUrement:CH<x>:REFLevels:PERCent:HYSTeresis?
            ```

        Info:
            - ``<NR3>`` is the hysteresis value used for the autoset.
        """
        return self._hysteresis

    @property
    def risehigh(self) -> MeasurementChannelReflevelsPercentRisehigh:
        """Return the ``MEASUrement:CH<x>:REFLevels:PERCent:RISEHigh`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the high reference level of the rising edge when the
              measurement ref level method is set to percent. The channel number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:CH<x>:REFLevels:PERCent:RISEHigh?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:PERCent:RISEHigh?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:PERCent:RISEHigh value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CH<x>:REFLevels:PERCent:RISEHigh <NR3>
            - MEASUrement:CH<x>:REFLevels:PERCent:RISEHigh?
            ```

        Info:
            - ``<NR3>`` is the percentage (where 100% is equal to TOP) used to calculate the high
              reference level when the measurement's Ref level method is set to Percent.
        """
        return self._risehigh

    @property
    def riselow(self) -> MeasurementChannelReflevelsPercentRiselow:
        """Return the ``MEASUrement:CH<x>:REFLevels:PERCent:RISELow`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the low reference level of the rising edge when the
              measurement ref level method is set to percent. The channel number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:CH<x>:REFLevels:PERCent:RISELow?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:PERCent:RISELow?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:PERCent:RISELow value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CH<x>:REFLevels:PERCent:RISELow <NR3>
            - MEASUrement:CH<x>:REFLevels:PERCent:RISELow?
            ```

        Info:
            - ``<NR3>`` is the percentage (where 100% is equal to TOP) used to calculate the mid
              reference level when the measurement's Ref level method is set to Percent.
        """
        return self._riselow

    @property
    def risemid(self) -> MeasurementChannelReflevelsPercentRisemid:
        """Return the ``MEASUrement:CH<x>:REFLevels:PERCent:RISEMid`` command.

        Description:
            - This command sets or queries the percentage (where 99% is equal to TOP and 1% is equal
              to BASE) used to calculate the mid reference level of the rising edge when the
              measurement ref level method is set to percent. The channel number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:CH<x>:REFLevels:PERCent:RISEMid?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:PERCent:RISEMid?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:PERCent:RISEMid value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CH<x>:REFLevels:PERCent:RISEMid <NR3>
            - MEASUrement:CH<x>:REFLevels:PERCent:RISEMid?
            ```

        Info:
            - ``<NR3>`` is the percentage (where 50% is equal to MID) used to calculate the mid
              reference level when the measurement's Ref level method is set to Percent.
        """
        return self._risemid

    @property
    def type(self) -> MeasurementChannelReflevelsPercentType:
        """Return the ``MEASUrement:CH<x>:REFLevels:PERCent:TYPE`` command.

        Description:
            - This command specifies or queries the reference level percent type for the
              measurement. The channel number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:CH<x>:REFLevels:PERCent:TYPE?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:PERCent:TYPE?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:PERCent:TYPE value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CH<x>:REFLevels:PERCent:TYPE {TENNinety|TWENtyeighty|CUSTom}
            - MEASUrement:CH<x>:REFLevels:PERCent:TYPE?
            ```

        Info:
            - ``TENNinety`` specifies reference levels at the 10 and 90% levels.
            - ``TWENtyeighty`` specifies reference levels at the 20 and 80% levels.
            - ``CUSTom`` specifies custom reference levels.
        """
        return self._type


class MeasurementChannelReflevelsMethod(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CH<x>:REFLevels:METHod`` command.

    Description:
        - This command sets or queries the method used to calculate reference levels for the
          measurement. The channel number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:CH<x>:REFLevels:METHod?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:CH<x>:REFLevels:METHod?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:METHod value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CH<x>:REFLevels:METHod {PERCent|ABSolute}
        - MEASUrement:CH<x>:REFLevels:METHod?
        ```

    Info:
        - ``PERCent`` specifies percent reference level units.
        - ``ABSolute`` specifies absolute reference level units.
    """


class MeasurementChannelReflevelsBasetop(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CH<x>:REFLevels:BASETop`` command.

    Description:
        - This command sets or queries the method used to calculate the TOP and BASE, used to
          calculate reference levels for the measurement. The channel number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:CH<x>:REFLevels:BASETop?``
          query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:CH<x>:REFLevels:BASETop?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:BASETop value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CH<x>:REFLevels:BASETop {AUTO|MINMax|MEANhistogram|MODEhistogram|EYEhistogram}
        - MEASUrement:CH<x>:REFLevels:BASETop?
        ```

    Info:
        - ``AUTO`` automatically chooses a reference level method.
        - ``MINMax`` specifies that reference levels are relative to the measurement MIN and MAX.
        - ``MEANhistogram`` specifies that reference levels are relative to the histogram mean BASE
          and TOP.
        - ``MODEhistogram`` specifies that reference levels are relative to the histogram mode BASE
          and TOP.
        - ``EYEhistogram`` specifies that reverence levels are relative to the eye histogram BASE
          and TOP.
    """


class MeasurementChannelReflevelsAbsoluteType(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CH<x>:REFLevels:ABSolute:TYPE`` command.

    Description:
        - This command sets or queries the reference level type for the source. The channel number
          is specified by x.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:CH<x>:REFLevels:ABSolute:TYPE?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:ABSolute:TYPE?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:ABSolute:TYPE value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CH<x>:REFLevels:ABSolute:TYPE {SAME|UNIQue}
        - MEASUrement:CH<x>:REFLevels:ABSolute:TYPE?
        ```

    Info:
        - ``SAME`` specifies that the absolute reference levels for the specified measurement
          channel are the same.
        - ``UNIQue`` specifies that the absolute reference levels for the specified measurement
          channel are not the same.
    """


class MeasurementChannelReflevelsAbsoluteRisemid(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CH<x>:REFLevels:ABSolute:RISEMid`` command.

    Description:
        - This command sets or queries the value used as the mid reference level of the rising edge
          when the source ref level method is set to absolute. The channel number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:CH<x>:REFLevels:ABSolute:RISEMid?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:ABSolute:RISEMid?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:ABSolute:RISEMid value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CH<x>:REFLevels:ABSolute:RISEMid <NR3>
        - MEASUrement:CH<x>:REFLevels:ABSolute:RISEMid?
        ```

    Info:
        - ``<NR3>`` is the mid reference level of the rising edge when the source ref level method
          is set to absolute.
    """


class MeasurementChannelReflevelsAbsoluteRiselow(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CH<x>:REFLevels:ABSolute:RISELow`` command.

    Description:
        - This command sets or queries the value used as the low reference level of the rising edge
          when the source ref level method is set to absolute. The channel number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:CH<x>:REFLevels:ABSolute:RISELow?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:ABSolute:RISELow?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:ABSolute:RISELow value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CH<x>:REFLevels:ABSolute:RISELow <NR3>
        - MEASUrement:CH<x>:REFLevels:ABSolute:RISELow?
        ```

    Info:
        - ``<NR3>`` is the low reference level of the rising edge when the source ref level method
          is set to absolute.
    """


class MeasurementChannelReflevelsAbsoluteRisehigh(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CH<x>:REFLevels:ABSolute:RISEHigh`` command.

    Description:
        - This command sets or queries the value used as the high reference level of the rising edge
          when the source ref level method is set to absolute. The channel number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:CH<x>:REFLevels:ABSolute:RISEHigh?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:ABSolute:RISEHigh?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:ABSolute:RISEHigh value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CH<x>:REFLevels:ABSolute:RISEHigh <NR3>
        - MEASUrement:CH<x>:REFLevels:ABSolute:RISEHigh?
        ```

    Info:
        - ``<NR3>`` is the high reference level of the rising edge when the source ref level method
          is set to absolute.
    """


class MeasurementChannelReflevelsAbsoluteHysteresis(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CH<x>:REFLevels:ABSolute:HYSTeresis`` command.

    Description:
        - This command sets or queries the value of the hysteresis of the reference level when the
          source ref level method is set to absolute. The channel number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:CH<x>:REFLevels:ABSolute:HYSTeresis?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:ABSolute:HYSTeresis?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:ABSolute:HYSTeresis value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CH<x>:REFLevels:ABSolute:HYSTeresis <NR3>
        - MEASUrement:CH<x>:REFLevels:ABSolute:HYSTeresis?
        ```

    Info:
        - ``<NR3>`` is the hysteresis value used for autoset.
    """


class MeasurementChannelReflevelsAbsoluteFallmid(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLMid`` command.

    Description:
        - This command sets or queries the value used as the mid reference level of the falling edge
          when the source ref level method is set to absolute. The channel number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLMid?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLMid?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLMid value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CH<x>:REFLevels:ABSolute:FALLMid <NR3>
        - MEASUrement:CH<x>:REFLevels:ABSolute:FALLMid?
        ```

    Info:
        - ``<NR3>`` is the mid reference level used to calculate the mid reference level when the
          measurement's Ref level method is set to Absolute.
    """


class MeasurementChannelReflevelsAbsoluteFalllow(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLLow`` command.

    Description:
        - This command sets or queries the value used as the low reference level of the falling edge
          when the source ref level method is set to absolute. The channel number is specified by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLLow?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLLow?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLLow value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CH<x>:REFLevels:ABSolute:FALLLow <NR3>
        - MEASUrement:CH<x>:REFLevels:ABSolute:FALLLow?
        ```

    Info:
        - ``<NR3>`` is the high reference level, and is the zero percent level when
          ``MEASUrement:IMMed:REFLevel:METHod`` is set to Absolute.
    """


class MeasurementChannelReflevelsAbsoluteFallhigh(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLHigh`` command.

    Description:
        - This command sets or queries the value used as the high reference level of the falling
          edge when the source ref level method is set to absolute. The channel number is specified
          by x.

    Usage:
        - Using the ``.query()`` method will send the
          ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLHigh?`` query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLHigh?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLHigh value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:CH<x>:REFLevels:ABSolute:FALLHigh M <NR3>
        - MEASUrement:CH<x>:REFLevels:ABSolute:FALLHigh?
        ```

    Info:
        - ``<NR3>`` is the high reference level, and is the zero percent level when
          ``MEASUrement:IMMed:REFLevel:METHod`` is set to Absolute.
    """


#  pylint: disable=too-many-instance-attributes
class MeasurementChannelReflevelsAbsolute(SCPICmdRead):
    """The ``MEASUrement:CH<x>:REFLevels:ABSolute`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:CH<x>:REFLevels:ABSolute?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``MEASUrement:CH<x>:REFLevels:ABSolute?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.fallhigh``: The ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLHigh`` command.
        - ``.falllow``: The ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLLow`` command.
        - ``.fallmid``: The ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLMid`` command.
        - ``.hysteresis``: The ``MEASUrement:CH<x>:REFLevels:ABSolute:HYSTeresis`` command.
        - ``.risehigh``: The ``MEASUrement:CH<x>:REFLevels:ABSolute:RISEHigh`` command.
        - ``.riselow``: The ``MEASUrement:CH<x>:REFLevels:ABSolute:RISELow`` command.
        - ``.risemid``: The ``MEASUrement:CH<x>:REFLevels:ABSolute:RISEMid`` command.
        - ``.type``: The ``MEASUrement:CH<x>:REFLevels:ABSolute:TYPE`` command.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._fallhigh = MeasurementChannelReflevelsAbsoluteFallhigh(
            device, f"{self._cmd_syntax}:FALLHigh"
        )
        self._falllow = MeasurementChannelReflevelsAbsoluteFalllow(
            device, f"{self._cmd_syntax}:FALLLow"
        )
        self._fallmid = MeasurementChannelReflevelsAbsoluteFallmid(
            device, f"{self._cmd_syntax}:FALLMid"
        )
        self._hysteresis = MeasurementChannelReflevelsAbsoluteHysteresis(
            device, f"{self._cmd_syntax}:HYSTeresis"
        )
        self._risehigh = MeasurementChannelReflevelsAbsoluteRisehigh(
            device, f"{self._cmd_syntax}:RISEHigh"
        )
        self._riselow = MeasurementChannelReflevelsAbsoluteRiselow(
            device, f"{self._cmd_syntax}:RISELow"
        )
        self._risemid = MeasurementChannelReflevelsAbsoluteRisemid(
            device, f"{self._cmd_syntax}:RISEMid"
        )
        self._type = MeasurementChannelReflevelsAbsoluteType(device, f"{self._cmd_syntax}:TYPE")

    @property
    def fallhigh(self) -> MeasurementChannelReflevelsAbsoluteFallhigh:
        """Return the ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLHigh`` command.

        Description:
            - This command sets or queries the value used as the high reference level of the falling
              edge when the source ref level method is set to absolute. The channel number is
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLHigh?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLHigh?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLHigh value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CH<x>:REFLevels:ABSolute:FALLHigh M <NR3>
            - MEASUrement:CH<x>:REFLevels:ABSolute:FALLHigh?
            ```

        Info:
            - ``<NR3>`` is the high reference level, and is the zero percent level when
              ``MEASUrement:IMMed:REFLevel:METHod`` is set to Absolute.
        """
        return self._fallhigh

    @property
    def falllow(self) -> MeasurementChannelReflevelsAbsoluteFalllow:
        """Return the ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLLow`` command.

        Description:
            - This command sets or queries the value used as the low reference level of the falling
              edge when the source ref level method is set to absolute. The channel number is
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLLow?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLLow?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLLow value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CH<x>:REFLevels:ABSolute:FALLLow <NR3>
            - MEASUrement:CH<x>:REFLevels:ABSolute:FALLLow?
            ```

        Info:
            - ``<NR3>`` is the high reference level, and is the zero percent level when
              ``MEASUrement:IMMed:REFLevel:METHod`` is set to Absolute.
        """
        return self._falllow

    @property
    def fallmid(self) -> MeasurementChannelReflevelsAbsoluteFallmid:
        """Return the ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLMid`` command.

        Description:
            - This command sets or queries the value used as the mid reference level of the falling
              edge when the source ref level method is set to absolute. The channel number is
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLMid?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLMid?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLMid value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CH<x>:REFLevels:ABSolute:FALLMid <NR3>
            - MEASUrement:CH<x>:REFLevels:ABSolute:FALLMid?
            ```

        Info:
            - ``<NR3>`` is the mid reference level used to calculate the mid reference level when
              the measurement's Ref level method is set to Absolute.
        """
        return self._fallmid

    @property
    def hysteresis(self) -> MeasurementChannelReflevelsAbsoluteHysteresis:
        """Return the ``MEASUrement:CH<x>:REFLevels:ABSolute:HYSTeresis`` command.

        Description:
            - This command sets or queries the value of the hysteresis of the reference level when
              the source ref level method is set to absolute. The channel number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:CH<x>:REFLevels:ABSolute:HYSTeresis?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:ABSolute:HYSTeresis?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:ABSolute:HYSTeresis value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CH<x>:REFLevels:ABSolute:HYSTeresis <NR3>
            - MEASUrement:CH<x>:REFLevels:ABSolute:HYSTeresis?
            ```

        Info:
            - ``<NR3>`` is the hysteresis value used for autoset.
        """
        return self._hysteresis

    @property
    def risehigh(self) -> MeasurementChannelReflevelsAbsoluteRisehigh:
        """Return the ``MEASUrement:CH<x>:REFLevels:ABSolute:RISEHigh`` command.

        Description:
            - This command sets or queries the value used as the high reference level of the rising
              edge when the source ref level method is set to absolute. The channel number is
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:CH<x>:REFLevels:ABSolute:RISEHigh?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:ABSolute:RISEHigh?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:ABSolute:RISEHigh value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CH<x>:REFLevels:ABSolute:RISEHigh <NR3>
            - MEASUrement:CH<x>:REFLevels:ABSolute:RISEHigh?
            ```

        Info:
            - ``<NR3>`` is the high reference level of the rising edge when the source ref level
              method is set to absolute.
        """
        return self._risehigh

    @property
    def riselow(self) -> MeasurementChannelReflevelsAbsoluteRiselow:
        """Return the ``MEASUrement:CH<x>:REFLevels:ABSolute:RISELow`` command.

        Description:
            - This command sets or queries the value used as the low reference level of the rising
              edge when the source ref level method is set to absolute. The channel number is
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:CH<x>:REFLevels:ABSolute:RISELow?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:ABSolute:RISELow?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:ABSolute:RISELow value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CH<x>:REFLevels:ABSolute:RISELow <NR3>
            - MEASUrement:CH<x>:REFLevels:ABSolute:RISELow?
            ```

        Info:
            - ``<NR3>`` is the low reference level of the rising edge when the source ref level
              method is set to absolute.
        """
        return self._riselow

    @property
    def risemid(self) -> MeasurementChannelReflevelsAbsoluteRisemid:
        """Return the ``MEASUrement:CH<x>:REFLevels:ABSolute:RISEMid`` command.

        Description:
            - This command sets or queries the value used as the mid reference level of the rising
              edge when the source ref level method is set to absolute. The channel number is
              specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:CH<x>:REFLevels:ABSolute:RISEMid?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:ABSolute:RISEMid?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:ABSolute:RISEMid value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CH<x>:REFLevels:ABSolute:RISEMid <NR3>
            - MEASUrement:CH<x>:REFLevels:ABSolute:RISEMid?
            ```

        Info:
            - ``<NR3>`` is the mid reference level of the rising edge when the source ref level
              method is set to absolute.
        """
        return self._risemid

    @property
    def type(self) -> MeasurementChannelReflevelsAbsoluteType:
        """Return the ``MEASUrement:CH<x>:REFLevels:ABSolute:TYPE`` command.

        Description:
            - This command sets or queries the reference level type for the source. The channel
              number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the
              ``MEASUrement:CH<x>:REFLevels:ABSolute:TYPE?`` query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:ABSolute:TYPE?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:ABSolute:TYPE value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CH<x>:REFLevels:ABSolute:TYPE {SAME|UNIQue}
            - MEASUrement:CH<x>:REFLevels:ABSolute:TYPE?
            ```

        Info:
            - ``SAME`` specifies that the absolute reference levels for the specified measurement
              channel are the same.
            - ``UNIQue`` specifies that the absolute reference levels for the specified measurement
              channel are not the same.
        """
        return self._type


class MeasurementChannelReflevels(SCPICmdRead):
    """The ``MEASUrement:CH<x>:REFLevels`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:CH<x>:REFLevels?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:CH<x>:REFLevels?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.absolute``: The ``MEASUrement:CH<x>:REFLevels:ABSolute`` command tree.
        - ``.basetop``: The ``MEASUrement:CH<x>:REFLevels:BASETop`` command.
        - ``.method``: The ``MEASUrement:CH<x>:REFLevels:METHod`` command.
        - ``.percent``: The ``MEASUrement:CH<x>:REFLevels:PERCent`` command tree.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._absolute = MeasurementChannelReflevelsAbsolute(device, f"{self._cmd_syntax}:ABSolute")
        self._basetop = MeasurementChannelReflevelsBasetop(device, f"{self._cmd_syntax}:BASETop")
        self._method = MeasurementChannelReflevelsMethod(device, f"{self._cmd_syntax}:METHod")
        self._percent = MeasurementChannelReflevelsPercent(device, f"{self._cmd_syntax}:PERCent")

    @property
    def absolute(self) -> MeasurementChannelReflevelsAbsolute:
        """Return the ``MEASUrement:CH<x>:REFLevels:ABSolute`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:CH<x>:REFLevels:ABSolute?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:ABSolute?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.fallhigh``: The ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLHigh`` command.
            - ``.falllow``: The ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLLow`` command.
            - ``.fallmid``: The ``MEASUrement:CH<x>:REFLevels:ABSolute:FALLMid`` command.
            - ``.hysteresis``: The ``MEASUrement:CH<x>:REFLevels:ABSolute:HYSTeresis`` command.
            - ``.risehigh``: The ``MEASUrement:CH<x>:REFLevels:ABSolute:RISEHigh`` command.
            - ``.riselow``: The ``MEASUrement:CH<x>:REFLevels:ABSolute:RISELow`` command.
            - ``.risemid``: The ``MEASUrement:CH<x>:REFLevels:ABSolute:RISEMid`` command.
            - ``.type``: The ``MEASUrement:CH<x>:REFLevels:ABSolute:TYPE`` command.
        """
        return self._absolute

    @property
    def basetop(self) -> MeasurementChannelReflevelsBasetop:
        """Return the ``MEASUrement:CH<x>:REFLevels:BASETop`` command.

        Description:
            - This command sets or queries the method used to calculate the TOP and BASE, used to
              calculate reference levels for the measurement. The channel number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:CH<x>:REFLevels:BASETop?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:BASETop?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:BASETop value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CH<x>:REFLevels:BASETop {AUTO|MINMax|MEANhistogram|MODEhistogram|EYEhistogram}
            - MEASUrement:CH<x>:REFLevels:BASETop?
            ```

        Info:
            - ``AUTO`` automatically chooses a reference level method.
            - ``MINMax`` specifies that reference levels are relative to the measurement MIN and
              MAX.
            - ``MEANhistogram`` specifies that reference levels are relative to the histogram mean
              BASE and TOP.
            - ``MODEhistogram`` specifies that reference levels are relative to the histogram mode
              BASE and TOP.
            - ``EYEhistogram`` specifies that reverence levels are relative to the eye histogram
              BASE and TOP.
        """  # noqa: E501
        return self._basetop

    @property
    def method(self) -> MeasurementChannelReflevelsMethod:
        """Return the ``MEASUrement:CH<x>:REFLevels:METHod`` command.

        Description:
            - This command sets or queries the method used to calculate reference levels for the
              measurement. The channel number is specified by x.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:CH<x>:REFLevels:METHod?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:METHod?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:METHod value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:CH<x>:REFLevels:METHod {PERCent|ABSolute}
            - MEASUrement:CH<x>:REFLevels:METHod?
            ```

        Info:
            - ``PERCent`` specifies percent reference level units.
            - ``ABSolute`` specifies absolute reference level units.
        """
        return self._method

    @property
    def percent(self) -> MeasurementChannelReflevelsPercent:
        """Return the ``MEASUrement:CH<x>:REFLevels:PERCent`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:CH<x>:REFLevels:PERCent?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``MEASUrement:CH<x>:REFLevels:PERCent?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.fallhigh``: The ``MEASUrement:CH<x>:REFLevels:PERCent:FALLHigh`` command.
            - ``.falllow``: The ``MEASUrement:CH<x>:REFLevels:PERCent:FALLLow`` command.
            - ``.fallmid``: The ``MEASUrement:CH<x>:REFLevels:PERCent:FALLMid`` command.
            - ``.hysteresis``: The ``MEASUrement:CH<x>:REFLevels:PERCent:HYSTeresis`` command.
            - ``.risehigh``: The ``MEASUrement:CH<x>:REFLevels:PERCent:RISEHigh`` command.
            - ``.riselow``: The ``MEASUrement:CH<x>:REFLevels:PERCent:RISELow`` command.
            - ``.risemid``: The ``MEASUrement:CH<x>:REFLevels:PERCent:RISEMid`` command.
            - ``.type``: The ``MEASUrement:CH<x>:REFLevels:PERCent:TYPE`` command.
        """
        return self._percent


class MeasurementChannel(ValidatedChannel, SCPICmdRead):
    """The ``MEASUrement:CH<x>`` command tree.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:CH<x>?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:CH<x>?`` query and raise
          an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.reflevels``: The ``MEASUrement:CH<x>:REFLevels`` command tree.
    """

    def __init__(self, device: Optional["PIControl"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._reflevels = MeasurementChannelReflevels(device, f"{self._cmd_syntax}:REFLevels")

    @property
    def reflevels(self) -> MeasurementChannelReflevels:
        """Return the ``MEASUrement:CH<x>:REFLevels`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:CH<x>:REFLevels?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:CH<x>:REFLevels?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.absolute``: The ``MEASUrement:CH<x>:REFLevels:ABSolute`` command tree.
            - ``.basetop``: The ``MEASUrement:CH<x>:REFLevels:BASETop`` command.
            - ``.method``: The ``MEASUrement:CH<x>:REFLevels:METHod`` command.
            - ``.percent``: The ``MEASUrement:CH<x>:REFLevels:PERCent`` command tree.
        """
        return self._reflevels


class MeasurementAutoset(SCPICmdWrite):
    """The ``MEASUrement:AUTOset`` command.

    Description:
        - This command performs a specified autoset.

    Usage:
        - Using the ``.write(value)`` method will send the ``MEASUrement:AUTOset value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:AUTOset {DPMAutoset|DPMPReset|EXECute|THREEPHASEAUTOset|WBGDeskewexec|WBGPREset|WBGGSTIM}
        ```

    Info:
        - ``DPMAutoset`` performs a power rail autoset operation. Requires a DPM license.
        - ``DPMPReset`` performs a power rail preset operation. Requires a DPM license.
        - ``EXECute`` performs an analysis jitter autoset.
        - ``THREEPHASEAUTOset`` performs an IMDA 3 phase autoset.
        - ``WBGDeskewexec`` performs WBG deskew on specific measurements. Requires a WBG-DPT
          license.
        - ``WBGPREset`` performs a measurement specific preset. Requires a WBG-DPT license.
        - ``WBGGSTIM`` performs gate stimulus forWBG measurement. Requires aWBG-DPT license.
    """  # noqa: E501


class MeasurementAnnotate(SCPICmdWrite, SCPICmdRead):
    """The ``MEASUrement:ANNOTate`` command.

    Description:
        - This command sets or queries the annotation state for measurements.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement:ANNOTate?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement:ANNOTate?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``MEASUrement:ANNOTate value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:ANNOTate {OFF|AUTO}
        - MEASUrement:ANNOTate?
        ```

    Info:
        - ``OFF`` turns off measurement annotations.
        - ``AUTO`` turns on visible measurement annotations.
    """


class MeasurementAddnew(SCPICmdWrite):
    """The ``MEASUrement:ADDNew`` command.

    Description:
        - This command adds the specified measurement.

    Usage:
        - Using the ``.write(value)`` method will send the ``MEASUrement:ADDNew value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:ADDNew <QString>
        ```

    Info:
        - ``<QString>`` is the measurement to add. The argument is of the form 'MEAS<NR1>' where NR1
          ≥ 1.
    """

    _WRAP_ARG_WITH_QUOTES = True


class MeasurementAddmeas(SCPICmdWrite):
    """The ``MEASUrement:ADDMEAS`` command.

    Description:
        - This command adds a measurement.

    Usage:
        - Using the ``.write(value)`` method will send the ``MEASUrement:ADDMEAS value`` command.

    SCPI Syntax:
        ```
        - MEASUrement:ADDMEAS {ACCOMMONMODE|ACPR|ACRMS|AMPLITUDE|AREA|BASE|BITAMPLITUDE|BITHIGH|BITLOW|BURSTWIDTH|CCJITTER|COMMONMODE|CPOWER|DATARATE|DCD|DDJ|DDRAOS|DDRAOSPERTCK|DDRAOSPERUI|DDRAUS|DDRAUSPERTCK|DDRAUSPERUI|DDRHOLDDIFF|DDRSETUPDIFF|DDRTCHABS|DDRTCHAVERAGE|DDRTCKAVERAGE|DDRTCLABS|DDRTCLAVERAGE|DDRTERRMN|DDRTERRN|DDRTJITCC|DDRTJITDUTY|DDRTJITPER|DDRTPST|DDRTRPRE|DDRTWPRE|DDRVIXAC|DDRTDQSCK|DELAY|DJ|DJDIRAC|DPMPSIJ|EYEHIGH|EYELOW|FALLSLEWRATE|FALLTIME|FREQUENCY|F2|F4|F8|HEIGHT|HEIGHTBER|HIGH|HIGHTIME|HOLD|IMDAANGLE|IMDADIRECTION|IMDADQ0|IMDAEFFICIENCY|IMDAHARMONICS|IMDAMECHPWR|IMDAPOWERQUALITY|IMDASPEED|IMDASYSEFF|IMDATORQUE|ISI|JITTERSUMMARY|J2|J9|LOW|LOWTIME|MAXIMUM|MEAN|MINIMUM|NDUty|NOVERSHOOT|NPERIOD|NPJ|NWIDTH|OBW|PATTERNLENGTH|PDUTY|PERIOD|PHASE|PHASENOISE|PJ|PK2Pk|POVERSHOOT|PWIDTH|QFACTOR|RISESLEWRATE|RISETIME|RJ|RJDIRAC|RMS|SETUP|SKEW|SRJ|SSCFREQDEV|SSCMODRATE|SSCSLEWRATE|TIE|TIMEOUTSIDELEVEL|TIMETOMAX|TIMETOMIN|TJBER|TNTRATIO|TOP|UNITINTERVAL|VDIFFXOVR|WBGDDT|WBGDIODEDDT|WBGEOFF|WBGEON|WBGERR|WBGIPEAK|WBGIRRM|WBGQOSS|WBGQRR|WBGTDOFF|WBGTDON|WBGTF|WBGTON|WBGTOFF|WBGTR|WBGTRR|WBGTDT|WBGVPEAK|WIDTH|WIDTHBER}
        ```

    Info:
        - ``ACCOMMONMODE`` AC Common Mode (Pk-Pk) is the peak-to-peak of the commonmode voltage of
          two sources. This measurement is made across the entire record.This measurement requires
          the DJA option and is not available on a 4 SeriesMSO instrument.
        - ``ACPR`` (Adjacent Channel Power Ratio) is the amount of power that leaks intoadjacent
          channels. This can be specified in terms of absolute power or a ratio ofadjacent channel
          power to the main channel power, called adjacent channel powerratio (ACPR) or adjacent
          channel leakage ratio (ACLR).
        - ``ACRMS`` (AC RMS) is the true Root Mean Square of the data points, about theMean. This
          measurement can be made across the entire record, or on each cyclein the record.
        - ``AMPLITUDE`` is the difference between the Top value and the Base value. This measurement
          can be made across the entire record, or on each cycle in the record.
        - ``AREA`` is the area under the curve, calculated by integrating the data points. The area
          measured above ground is positive. The area measured below ground is negative. This
          measurement can be made across the entire record, or on each cycle in the record.
        - ``BASE`` is the most common data value below the midpoint of the waveform. This
          measurement can be made across the entire record, or on each cycle in the record.
        - ``BITAMPLITUDE`` (Bit Amplitude) is the difference between the amplitudes of the 1 bit and
          the 0 bit surrounding a transition. The amplitude is measured over a user specified
          portion at the center of the recovered unit interval. This measurement is made on each
          transition bit in the record (Mean) or across the entire record (Mode). This measurement
          requires the DJA option and is not available on a 4 Series MSO instrument.
        - ``BITHIGH`` (Bit High) is the amplitude of a 1 bit. The amplitude is measured over a user
          specified portion at the center of the recovered unit interval. This measurement is made
          on each high bit in the record (Mean) or across the entire record (Mode). This measurement
          requires the DJA option and is not available on a 4 Series MSO instrument.
        - ``BITLOW`` (Bit Low) is the amplitude of a 0 bit. The amplitude is measured over a user
          specified portion at the center of the recovered unit interval. This measurement is made
          on each high bit in the record (Mean) or across the entire record (Mode). This measurement
          requires the DJA option and is not available on a 4 Series MSO instrument.
        - ``BURSTWIDTH`` (Burst Width) is the duration of a series of adjacent crossings of the Mid
          reference level (RM). Bursts are separated by a user-defined idle time (tI). This
          measurement is made on each burst in the record.
        - ``CCJITTER`` (Cycle-to-Cycle jitter) measures how much the clock period changes between
          any two adjacent cycles. Cycle-to-Cycle jitter is measured by applying a first order
          difference operation to the period jitter.
        - ``COMMONMODE`` (DC Common Mode) is the arithmetic mean of the common mode voltage of two
          sources. This measurement is made across the entire record. This measurement requires the
          DJA option and is not available on a 4 Series MSO instrument.
        - ``CPOWER`` (Channel Power) is the measurement of integrated power within a specified
          channel bandwidth for a RF signal. The resulting channel power is an absolute power
          measurement.
        - ``DATARATE`` (Data Rate) is the reciprocal of Unit Interval. This measurement is made on
          each bit in the record.
        - ``DCD`` (duty cycle distortion) is the peak-to-peak amplitude of the component of the
          deterministic jitter correlated with the signal polarity. This measurement is made across
          the entire record. This measurement requires the DJA option and is not available on a 4
          Series MSO instrument.
        - ``DDJ`` (data dependent jitter) is the peak-to-peak amplitude of the component of the
          deterministic jitter correlated with the data pattern in the waveform. This measurement is
          made across the entire record. This measurement requires the DJA option and is not
          available on a 4 Series MSO instrument.
        - ``DDRAOS`` (area above signal) is the total area of the signal above a specified reference
          level. This measurement is made across the entire record.
        - ``DDRAOSPERTCK`` (area over signal for tCK events) is the total area of the signal above a
          specified reference level calculated over consecutive tCK intervals. It is applicable to
          clock and address/command waveforms.
        - ``DDRAOSPERUI`` (area over signal for UI events) is the total area of the signal above a
          specified reference level calculated over consecutive unit intervals. It is applicable to
          data and data strobe waveforms.
        - ``DDRAUS`` (area under signal) is the total area of the signal below a specified reference
          level. This measurement is made across the entire record.
        - ``DDRAUSPERTCK`` (area under signal for tCK events) is the total area of the signal below
          a specified reference level calculated over consecutive tCK intervals. It is applicable to
          clock and address/command waveforms.
        - ``DDRAUSPERUI`` (area under signal for UI events) is the total area of the signal below a
          specified reference level calculated over consecutive unit intervals. It is applicable to
          data and data strobe waveforms.
        - ``DDRHOLDDIFF`` (hold difference) is the elapsed time between the specified edge of a
          single-ended clock waveform and the specified edge of a differential data waveform. The
          measurement uses the closest respective waveform edges that fall within the range
          limits.This measurement is made across the entire record.
        - ``DDRSETUPDIFF`` (setup difference) is the elapsed time between the specified edge of a
          single-ended clock waveform and when the specified edge of a differential data waveform
          crosses a specified level. The measurement uses the closest respective waveform edges that
          fall within the range limits. This measurement is made across the entire record.
        - ``DDRTCHABS`` (absolute high pulse width) is the absolute value of the high pulse width as
          measured from one rising edge to the next falling edge.
        - ``DDRTCHAVERAGE`` (average high pulse width) is the average value of the high pulse width
          as measured from one rising edge to the next falling edge, across 200 consecutive cycles.
          This measurement is made across the entire record.
        - ``DDRTCKAVERAGE`` (average clock period) is the average clock period calculated from
          rising edge to rising edge, across 200 consecutive cycles. This measurement is made across
          the entire record.
        - ``DDRTCLABS`` (absolute low pulse width) is the absolute value of the low pulse width as
          measured from a falling edge to the next rising edge. This measurement is made across the
          entire record.
        - ``DDRTCLAVERAGE`` (average low pulse width) is the average value of the low pulse width as
          measured from one falling edge to the next rising edge, across 200 consecutive cycles.
        - ``DDRTERRMN`` (cumulative error) is the cumulative error across multiple consecutive
          defined cycles from tCK(avg).
        - ``DDRTERRN`` (cumulative error) is the cumulative error across specified consecutive
          cycles from tCK(avg). In other words, this measures the time difference between the sum of
          the clock period from a 200 cycle window and n times tCK(avg).
        - ``DDRTJITCC`` (cycle to cycle jitter period) is the absolute difference in clock period
          between two consecutive clock cycles. This measurement is made across the entire record.
        - ``DDRTJITDUTY`` (half period jitter) is the largest elapsed time between tCH and tCH(avg),
          and tCL and tCL(avg), over 200 consecutive cycles.
        - ``DDRTJITPER`` (clock period jitter) is the largest deviation of any tCK signal from
          tCK(avg). This measurement is made across the entire record.
        - ``DDRTPST`` (read/write burst postamble) is the width of the Read or Write burst
          postamble, measured from the last falling edge of the mid reference level to the start of
          an undriven state. This measurement is made across the entire record.
        - ``DDRTRPRE`` (read burst preamble) is the width of the Read burst preamble, measured from
          exiting tristate levels to the first driving edge of the differential strobe. This
          measurement is made across the entire record.
        - ``DDRTWPRE`` is the width of theWrite burst preamble, measured from exiting tristate
          levels to the first driving edge of the differential strobe. This measurement is made
          across the entire record.
        - ``DDRVIXAC`` is the differential input cross-point voltage measured from the true state
          transition (and it's compliment) to a specified reference level, measured on a
          single-ended signal.
        - ``DDRTDQSCK`` is the strobe output access time, measured between the rising edge of the
          clock and before or after the differential strobe Read preamble time. Signal edges are
          determined by the mid-ref threshold level settings.
        - ``DELay`` is the time between the specified Mid reference level (RM) crossing on one
          source to a specified Mid reference level (RM) crossing on a second source. This
          measurement is made on the first occurrence in the record.
        - ``DJ`` (deterministic jitter) is the peak-to-peak amplitude of all timing errors that
          exhibit deterministic behavior. This measurement is made across the entire record. This
          measurement requires the DJA option and is not available on a 4 Series MSO instrument.
        - ``DJDIRAC`` (dual-dirac deterministic jitter) is deterministic jitter based on a
          simplifying assumption that the histogram of all deterministic jitter can be modeled as a
          pair of equal-magnitude Dirac functions. This measurement is made across the entire
          record. This measurement requires the DJA option and is not available on a 4 Series MSO
          instrument.
        - ``DPMPSIJ`` is the Power Supply Induced Jitter. This measurement helps in suppressing the
          jitter in high speed signals (victim) induced from power rail signals (aggressor).
        - ``EYEHIGH`` (Eye High) is the amplitude of a high (1) bit measured at a user specified
          location within the recovered unit interval. This measurement is made on each high bit in
          the record. This measurement requires the DJA option and is not available on a 4 Series
          MSO instrument.
        - ``EYELOW`` (Eye Low) is the amplitude of a low (0) bit measured at a user specified
          location within the recovered unit interval. This measurement is made on each low bit in
          the record. This measurement requires the DJA option and is not available on a 4 Series
          MSO instrument.
        - ``FALLSLEWRATE`` (Falling Slew Rate) is the rate of change in voltage as an edge
          transitions from the Top reference level (RT) to the Bottom reference level (RB). This
          measurement is made on each cycle in the record.
        - ``FALLTIME`` (Fall Time) is the time required for an edge to fall from the Top reference
          level (RT) to the Base reference level (RB). This measurement is made on each cycle in the
          record.
        - ``FREQuency`` is the reciprocal of Period. This measurement is made on each cycle in the
          record.
        - ``F2`` is the peak-to-peak amplitude of the periodic jitter occurring at a rate of Fb
          (data rate) divided by 2. This measurement is made across the entire record. This
          measurement requires the DJA option and is not available on a 4 Series MSO instrument.
        - ``F4`` is the peak-to-peak amplitude of the periodic jitter occurring at a rate of Fb
          (data rate) divided by 4. This measurement is made across the entire record. This
          measurement requires the DJA option and is not available on a 4 Series MSO instrument.
        - ``F8`` is the peak-to-peak amplitude of the periodic jitter occurring at a rate of Fb
          (data rate) divided by 8. This measurement is made across the entire record. This
          measurement requires the DJA option and is not available on a 4 Series MSO instrument.
        - ``HIGH`` (Eye High) is the amplitude of a high (1) bit measured at a user specified
          location within the recovered unit interval. This measurement is made on each high bit in
          the record.
        - ``HEIGHT`` (Eye Height) is the minimum vertical eye opening at the center of the recovered
          unit interval. This measurement is made across the entire record. This measurement
          requires the DJA option and is not available on a 4 Series MSO instrument.
        - ``HEIGHTBER`` (Eye Height@BER) is the predicted vertical eye opening that will be violated
          with a probability equal to the bit error rate. This measurement is made across the entire
          record. This measurement requires the DJA option and is not available on a 4 Series MSO
          instrument.
        - ``HIGHTIME`` (High Time) is the time the signal remains above the Top reference level
          (RT). This measurement is made on each cycle in the record.
        - ``HOLD`` (Hold Time) is the time between the specified Mid reference level crossing (RM)
          on the Clock source to the closest specified Mid reference level (RM) crossing on the Data
          source. This measurement is made on each specified Clock edge in the record.
        - ``IMDAANGLE`` (Angle) measures the phase angle. Configure QEI or Hall sensor to.
        - ``compute`` the angle measurement. Requires a IMDA-MECH License.
        - ``IMDADIRECTION`` (Direction) defines the direction of rotation of the motor. Set the
          direction A-B-C or A-C-B for Hall sensors and CW or CCW for QEI based on the motor
          configuration. Requires a IMDA-MECH License.
        - ``IMDADQ0`` measures the DQ0 values of the phasor plot. This measurement requires options
          IMDA and IMDA-DQ0. Requires a IMDA-MECH License.
        - ``IMDAEFFICIENCY`` (Efficiency) measures the ratio of sum of output power(s) to input
          power for respective input and output Voltage and Current pairs. Note: the current release
          cannot support 3V and 3I pairs, since this requires 12 channels. We restrict to 2V and 2I
          which needs 8 scope channels. Requires a IMDA-MECH License.
        - ``IMDAHARMONICS`` (Harmonics) plots the signal amplitude at the fundamental line frequency
          and its harmonics and measures the RMS amplitude and Total Harmonic Distortion of the
          signal. Requires a IMDA-MECH License.
        - ``IMDAMECHPWR`` (Mechanical Power) measures the mechanical power of the motor drive
          system. It is determined by the Speed and Torque. It is measured in watts. Requires a
          IMDA-MECH License.
        - ``IMDAPOWERQUALITY`` (Power Quality) measures the Frequency and RMS values of the voltage
          and current, Crest Factors of the voltage and current, True Power (PTRUE), Reactive Power
          (PRE), Apparent Power (PAPP), Power Factor, and Phase Angle (θ) of the AC signal. Requires
          a IMDA-MECH License.
        - ``IMDASPEED`` (Speed) measures the speed and acceleration. Requires a IMDA-MECH License.
        - ``IMDASYSEFF`` (System Efficiency) measures the total efficiency of the motor drive
          system. Requires a IMDA-MECH License.
        - ``IMDATORQUE`` (Torque) measures the torque of the motor. Configure Sensor (analog) or
          Current method to measure the torque. Requires a IMDA-MECH License.
        - ``ISI`` (Inter Symbol Interference) is defined as the range (difference between the
          maximum and minimum value) of DDJ-per-edge values appearing across all rising edges, or
          the range of DDJ-per-edge values across all falling edges, whichever is greater.
        - ``JITTERSUMMARY`` (Jitter Summary) is a group consisting of the following measurements:
          Data Rate, Pattern Length, TIE, TJ@BER, RJ, DJ, DJ-δδ, PJ, DDJ, DCD, ISI, and Eye
          Width@BER and RJ-δδ. This measurement requires the DJAoption and is not available on a 4
          Series MSO instrument.
        - ``J2`` is the total jitter at a bit error rate of 2.5e-3 (TJ@2.5e-3). This measurement is
          made across the entire record. This measurement requires the DJA option and is not
          available on a 4 Series MSO instrument.
        - ``J9`` is the total jitter at a bit error rate of 2.5e-10 (TJ@2.5e-10). This measurement
          is made across the entire record. This measurement requires the DJA option and is not
          available on a 4 Series MSO instrument.
        - ``LOW`` (Eye Low) is the amplitude of a low (0) bit measured at a user specified location
          within the recovered unit interval. This measurement is made on each low bit in the
          record.
        - ``LOWTIME`` (Low Time) is the time the signal remains below the Base reference level (RB).
          This measurement is made on each cycle in the record.
        - ``MAXimum`` is the maximum data point. This measurement can be made across the entire
          record, or on each cycle in the record.
        - ``MEAN`` is the arithmetic mean of the data points. This measurement can be made across
          the entire record, or on each cycle in the record.
        - ``MINImum`` is the minimum data point. This measurement can be made across the entire
          record, or on each cycle in the record.
        - ``NDUty`` (Negative Duty Cycle) is the ratio of the Negative Pulse Width to the Period.
          This measurement is made on each cycle in the record.
        - ``NPERIOD`` (Duration N-Periods) is the time required to complete N cycles. A cycle is the
          time between two adjacent (same direction) crossings of the Mid reference level (RM). This
          measurement is made on each cycle in the record.
        - ``NPJ`` (non-periodic jitter) is the portion of the BUJ (bounded uncorrelated jitter) that
          is random. BUJ excludes DDJ, DCD and RJ. This measurement is made across the entire
          record. This measurement requires the DJA option and is not available on a 4 Series MSO
          instrument.
        - ``NOVershoot`` (Negative Overshoot) is the difference between Minimum and Base, divided by
          the Amplitude. This measurement can be made across the entire record, or on each cycle in
          the record.
        - ``NWIDTH`` (Negative Pulse Width) is the time the signal remains below the Mid reference
          level (R.
        - ``OBW`` (Occupied Bandwidth) refers to the bandwidth, including energy of a certain
          proportion of the total transmitted power, with the center frequency of the specified
          channel as the center.
        - ``PATTERNLENGTH`` (Pattern Length) is the number of symbols that constitute onefull
          repetition of a sequence within a signal. This measurement requires the DJAoption and is
          not available on a 4 Series MSO instrument.
        - ``PDUTY`` (Positive Duty Cycle) is the ratio of the Positive Pulse Width to the Period.
          This measurement is made on each cycle in the record.
        - ``PERIOD`` is the time required to complete a cycle. A cycle is the time between two
          adjacent (same direction) crossings of the Mid reference level (RM). This measurement is
          made on each cycle in the record.
        - ``PHASE`` is the ratio of the Skew between two sources to the Period of the first source.
          This measurement is made on each cycle in the record.
        - ``PHASENOISE`` (Phase Noise) is the RMS magnitude of all integrated jitter falling within
          a user specified offset range of the fundamental clock frequency. This measurement is made
          across the entire record. This measurement is not available on a 4 Series MSO instrument.
        - ``PJ`` (periodic jitter) is the peak-to-peak amplitude of the uncorrelated sinusoidal
          components of the deterministic jitter. This measurement is made across the entire record.
          This measurement requires the DJA option and is not available on a 4 Series MSO
          instrument.
        - ``PK2Pk`` (Peak-to-peak) is the difference between Maximum and Minimum. This measurement
          can be made across the entire record, or on each cycle in the record.
        - ``POVERSHOOT`` (Positive Overshoot) is the difference between Maximum and Top, divided by
          the Amplitude. This measurement can be made across the entire record, or on each cycle in
          the record.
        - ``PWIDTH`` (Positive Pulse Width) is the time the signal remains above the Mid reference
          level (RM). This measurement is made on each cycle in the record.
        - ``QFACTOR`` (Q-Factor) is the ratio of the vertical eye opening to RMS vertical noise
          measured at a user specified location within the recovered unit interval. This measurement
          is made across the entire record. This measurement requires the DJA option and is not
          available on a 4 Series MSO instrument.
        - ``RISESLEWRATE`` (Rising Slew Rate) is the rate of change in voltage as an edge
          transitions from the Base reference level (RB) to the Top reference level (RT). This
          measurement is made on each cycle in the record.
        - ``RISETIME`` Rise Time is the time required for an edge to rise from the Base reference
          level (RB) to the Top reference level (RT). This measurement is made on each cycle in the
          record.
        - ``RJ`` (random jitter) is the RMS magnitude of all random timing errors following a
          Gaussian distribution. This measurement is made across the entire record. This measurement
          requires the DJA option and is not available on a 4 Series MSO instrument.
        - ``RJDIRAC`` (dual-dirac random jitter) is random jitter based on a simplifying assumption
          that the histogram of all deterministic jitter can be modeled as a pair of equal-magnitude
          Dirac functions. This measurement is made across the entire record. This measurement
          requires the DJA option and is not available on a 4 Series MSO instrument.
        - ``RMS`` is the true Root Mean Square of the data points. This measurement can be made
          across the entire record, or on each cycle in the record.
        - ``SRJ`` (sub-rate jitter) is the composite jitter due to periodic components at 1/2, 1/4
          and 1/8 of the data rate. This measurement is made across the entire record. This
          measurement requires the DJA option and is not available on a 4 Series MSO instrument.
        - ``SSCFREQDEV`` (SSC Frequency Deviation) is the spread spectrum clock frequency deviation.
          This measurement enables a time trend plot of the spread spectrum clock modulation
          profile. This measurement is made on each cycle in the record. This measurement requires
          the DJA option and is not available on a 4 Series MSO instrument.
        - ``SSCMODRATE`` (SSC Modulation Rate) is the modulating frequency of a spread spectrum
          clock. This measurement is made on each cycle in the record. This measurement requires the
          DJA option and is not available on a 4 Series MSO instrument.
        - ``SSCSLEWRATE`` (SSC Slew Rate) is the rate of change of the modulating frequencyof a
          spread spectrum clock. This measurement is made on each cycle in therecord. This
          measurement requires the DJA option and is not available on a 4Series MSO instrument.
        - ``SETUP`` (Setup Time) is the time between the specified Mid reference level (RM) crossing
          on the Data source to the closest specified Mid reference level (RM) crossing on the Clock
          source. This measurement is made on each specified Clock edge in the record.
        - ``SKEW`` Skew is the time between the specified Mid reference level (RM) crossing on one
          source to the following specified Mid reference level (RM) crossing on a second source.
          This measurement is made on each cycle in the record.
        - ``TIE`` (time interval error) is the difference, in time, between an edge in the source
          waveform and the corresponding edge in a recovered reference clock. This measurement is
          made on each edge in the waveform. This measurement is not available on a 4 Series MSO
          instrument.
        - ``TIMEOUTSIDELEVEL`` Time Outside Level is the time the signal remains above the Top
          reference level (RT) and/or below the Base reference level (RB). This measurement is made
          on each occurrence in the record.
        - ``TIMETOMAX`` Time to Max is the amount of time from the trigger point to the maximum data
          point. This measurement can be made across the entire record or on each cycle in the
          record.
        - ``TIMETOMIN`` Time to Min is the amount of time from the trigger point to the minimum data
          point. This measurement can be made across the entire record or on each cycle in the
          record.
        - ``TJBER`` (total jitter at a specified bit error rate) is the predicted peak-to-peak
          amplitude of jitter that will only be exceeded with a probability equal to the bit error
          rate. This measurement is made across the entire record. This measurement requires the DJA
          option and is not available on a 4 Series MSO instrument.
        - ``TNTRATIO`` T/nT Ratio is the ratio of a non-transition bit voltage (2nd and subsequent
          bit voltage after a transition) to its nearest preceding transition bit voltage (1st bit
          voltage after the transition). Bit voltages are measured at the interpolated midpoint of
          the recovered unit interval. This measurement is made on each non-transition bit in the
          record. This measurement requires the DJA option and is not available on a 4 Series MSO
          instrument.
        - ``TOP`` is the most common data value above the midpoint of the waveform. This measurement
          can be made across the entire record, or on each cycle in the record.
        - ``UNITINTERVAL`` (Unit Interval) is the time difference between two successive bits. This
          measurement is made on each bit in the record.
        - ``VDIFFXOVR`` (Differential Crossover) is the voltage level of a differential signal pair
          at the crossover points. This measurement is made at each crossover point in the record.
          This measurement requires the DJA option and is not available on a 4 Series MSO
          instrument.
        - ``WBGDDT`` (d/dt) measures the rate of change of voltage or current (slew rate) from the
          configured start level to the stop level. Requires a WBG-DPT License.
        - ``WBGDIODEDDT`` (Diode d/dt) measures the rate of change of voltage or current (slew rate)
          during the specified start and stop integration levels. Diode d/dt can be measured during
          rising or falling edge. Requires a WBG-DPT License.
        - ``WBGEOFF`` (Eoff) measures the energy dissipated in the Power Device during off region
          using the configured levels. Requires a WBG-DPT License.
        - ``WBGEON`` (Eon) measures the energy dissipated in the Power Device during on region using
          the configured levels. Requires a WBG-DPT License.
        - ``WBGERR`` (Err) measures the reverse recovery energy dissipated in the Power Device using
          the configured levels. Requires a WBG-DPT License.
        - ``WBGIPEAK`` (Ipeak) measures the peak current of the Power Device in the on region.
          Requires a WBG-DPT License.
        - ``WBGIRRM`` (Irrm) measures the maximum current dissipated in the Power Device in the
          reverse recovery region. Requires a WBG-DPT License.
        - ``WBGQOSS`` (Qoss) is the charge that must be supplied to the output capacitance of the
          power device during a specified time interval. Requires a WBG-DPT License.
        - ``WBGQRR`` (Qrr) measures the reverse recovery charge in the Power Device using the
          configured levels. Requires a WBG-DPT License.
        - ``WBGTDOFF`` (Td(off)) measures the turn off delay time of the Power Device in the off
          region using the configured levels. Requires a WBG-DPT License.
        - ``WBGTDON`` (Td(on)) measures the turn on delay time of the Power Device in the on region
          using the configured levels. Requires a WBG-DPT License.
        - ``WBGTF`` (Tf) measures the fall time of the Power Device in the off region using the
          configured levels.
        - ``WBGTOFF`` (Toff) measures the turn off time of the Power Device. It is the sum of the
          turn off delay time and the fall time. Requires a WBG-DPT License.
        - ``WBGTON`` (Ton) measures the turn on time of the Power Device. It is the sum of the turn
          on delay time and the rise time. Requires a WBG-DPT License.
        - ``WBGTR`` (Tr) measures the rise time of the Power Device in the on region using the
          configured levels. Requires a WBG-DPT License.
        - ``WBGTRR`` (Trr) measures the reverse recovery time of the Power Device using the
          configured levels. Requires a WBG-DPT License.
        - ``WBGTDT`` (Tdt) the time delay between turn on time of the high side MOSFET and turn on
          time of the low side MOSFET during the simultaneous switching. Requires a WBG-DPT License.
        - ``WBGVPEAK`` (Vpeak) measures the peak voltage of the Power Device in the off region.
          Requires a WBG-DPT License.
        - ``WIDTH`` (Eye Width) is the minimum horizontal eye opening at the user specified
          reference level. This measurement is made across the entire record. This measurement
          requires the DJA option and is not available on a 4 Series MSO instrument.
        - ``WIDTHBER`` (Eye Width@BER) is the predicted horizontal eye opening that will be violated
          with a probability equal to the bit error rate. This measurement is made across the entire
          record. This measurement requires the DJA option and is not available on a 4 Series MSO
          instrument.
    """  # noqa: E501


#  pylint: disable=too-many-instance-attributes,too-many-public-methods
class Measurement(SCPICmdRead):
    """The ``MEASUrement`` command.

    Description:
        - This query-only command returns all measurement parameters.

    Usage:
        - Using the ``.query()`` method will send the ``MEASUrement?`` query.
        - Using the ``.verify(value)`` method will send the ``MEASUrement?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    SCPI Syntax:
        ```
        - MEASUrement?
        ```

    Properties:
        - ``.addmeas``: The ``MEASUrement:ADDMEAS`` command.
        - ``.addnew``: The ``MEASUrement:ADDNew`` command.
        - ``.annotate``: The ``MEASUrement:ANNOTate`` command.
        - ``.autoset``: The ``MEASUrement:AUTOset`` command.
        - ``.ch``: The ``MEASUrement:CH<x>`` command tree.
        - ``.clockrecovery``: The ``MEASUrement:CLOCKRecovery`` command tree.
        - ``.ddjmethod``: The ``MEASUrement:DDJMethod`` command.
        - ``.deleteall``: The ``MEASUrement:DELETEALL`` command.
        - ``.delete``: The ``MEASUrement:DELete`` command.
        - ``.diracmodel``: The ``MEASUrement:DIRacmodel`` command.
        - ``.displayunits``: The ``MEASUrement:DISPLAYUnits`` command.
        - ``.edge``: The ``MEASUrement:EDGE<x>`` command.
        - ``.enablepjitter``: The ``MEASUrement:ENABLEPjitter`` command.
        - ``.eyerender``: The ``MEASUrement:EYERENDER`` command.
        - ``.filters``: The ``MEASUrement:FILTers`` command tree.
        - ``.gating``: The ``MEASUrement:GATing`` command.
        - ``.highlevel``: The ``MEASUrement:HIGHLEVel`` command tree.
        - ``.interp``: The ``MEASUrement:INTERp`` command.
        - ``.jittermodel``: The ``MEASUrement:JITTermodel`` command.
        - ``.list``: The ``MEASUrement:LIST`` command.
        - ``.lockrj``: The ``MEASUrement:LOCKRJ`` command.
        - ``.lockrjvalue``: The ``MEASUrement:LOCKRJValue`` command.
        - ``.math``: The ``MEASUrement:MATH<x>`` command tree.
        - ``.meas``: The ``MEASUrement:MEAS<x>`` command tree.
        - ``.measrange``: The ``MEASUrement:MEASRange`` command tree.
        - ``.mech``: The ``MEASUrement:MECH`` command tree.
        - ``.minui``: The ``MEASUrement:MINUI`` command.
        - ``.population``: The ``MEASUrement:POPUlation`` command tree.
        - ``.ref``: The ``MEASUrement:REF<x>`` command tree.
        - ``.reflevels``: The ``MEASUrement:REFLevels`` command tree.
        - ``.results``: The ``MEASUrement:RESUlts`` command tree.
        - ``.statistics``: The ``MEASUrement:STATIstics`` command tree.
        - ``.wbg``: The ``MEASUrement:WBG`` command tree.
    """

    def __init__(
        self, device: Optional["PIControl"] = None, cmd_syntax: str = "MEASUrement"
    ) -> None:
        super().__init__(device, cmd_syntax)
        self._addmeas = MeasurementAddmeas(device, f"{self._cmd_syntax}:ADDMEAS")
        self._addnew = MeasurementAddnew(device, f"{self._cmd_syntax}:ADDNew")
        self._annotate = MeasurementAnnotate(device, f"{self._cmd_syntax}:ANNOTate")
        self._autoset = MeasurementAutoset(device, f"{self._cmd_syntax}:AUTOset")
        self._ch: Dict[int, MeasurementChannel] = DefaultDictPassKeyToFactory(
            lambda x: MeasurementChannel(device, f"{self._cmd_syntax}:CH{x}")
        )
        self._clockrecovery = MeasurementClockrecovery(device, f"{self._cmd_syntax}:CLOCKRecovery")
        self._ddjmethod = MeasurementDdjmethod(device, f"{self._cmd_syntax}:DDJMethod")
        self._deleteall = MeasurementDeleteall(device, f"{self._cmd_syntax}:DELETEALL")
        self._delete = MeasurementDelete(device, f"{self._cmd_syntax}:DELete")
        self._diracmodel = MeasurementDiracmodel(device, f"{self._cmd_syntax}:DIRacmodel")
        self._displayunits = MeasurementDisplayunits(device, f"{self._cmd_syntax}:DISPLAYUnits")
        self._edge: Dict[int, MeasurementEdgeItem] = DefaultDictPassKeyToFactory(
            lambda x: MeasurementEdgeItem(device, f"{self._cmd_syntax}:EDGE{x}")
        )
        self._enablepjitter = MeasurementEnablepjitter(device, f"{self._cmd_syntax}:ENABLEPjitter")
        self._eyerender = MeasurementEyerender(device, f"{self._cmd_syntax}:EYERENDER")
        self._filters = MeasurementFilters(device, f"{self._cmd_syntax}:FILTers")
        self._gating = MeasurementGating(device, f"{self._cmd_syntax}:GATing")
        self._highlevel = MeasurementHighlevel(device, f"{self._cmd_syntax}:HIGHLEVel")
        self._interp = MeasurementInterp(device, f"{self._cmd_syntax}:INTERp")
        self._jittermodel = MeasurementJittermodel(device, f"{self._cmd_syntax}:JITTermodel")
        self._list = MeasurementList(device, f"{self._cmd_syntax}:LIST")
        self._lockrj = MeasurementLockrj(device, f"{self._cmd_syntax}:LOCKRJ")
        self._lockrjvalue = MeasurementLockrjvalue(device, f"{self._cmd_syntax}:LOCKRJValue")
        self._math: Dict[int, MeasurementMathItem] = DefaultDictPassKeyToFactory(
            lambda x: MeasurementMathItem(device, f"{self._cmd_syntax}:MATH{x}")
        )
        self._meas: Dict[int, MeasurementMeasItem] = DefaultDictPassKeyToFactory(
            lambda x: MeasurementMeasItem(device, f"{self._cmd_syntax}:MEAS{x}")
        )
        self._measrange = MeasurementMeasrange(device, f"{self._cmd_syntax}:MEASRange")
        self._mech = MeasurementMech(device, f"{self._cmd_syntax}:MECH")
        self._minui = MeasurementMinui(device, f"{self._cmd_syntax}:MINUI")
        self._population = MeasurementPopulation(device, f"{self._cmd_syntax}:POPUlation")
        self._ref: Dict[int, MeasurementRefItem] = DefaultDictPassKeyToFactory(
            lambda x: MeasurementRefItem(device, f"{self._cmd_syntax}:REF{x}")
        )
        self._reflevels = MeasurementReflevels(device, f"{self._cmd_syntax}:REFLevels")
        self._results = MeasurementResults(device, f"{self._cmd_syntax}:RESUlts")
        self._statistics = MeasurementStatistics(device, f"{self._cmd_syntax}:STATIstics")
        self._wbg = MeasurementWbg(device, f"{self._cmd_syntax}:WBG")

    @property
    def addmeas(self) -> MeasurementAddmeas:
        """Return the ``MEASUrement:ADDMEAS`` command.

        Description:
            - This command adds a measurement.

        Usage:
            - Using the ``.write(value)`` method will send the ``MEASUrement:ADDMEAS value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:ADDMEAS {ACCOMMONMODE|ACPR|ACRMS|AMPLITUDE|AREA|BASE|BITAMPLITUDE|BITHIGH|BITLOW|BURSTWIDTH|CCJITTER|COMMONMODE|CPOWER|DATARATE|DCD|DDJ|DDRAOS|DDRAOSPERTCK|DDRAOSPERUI|DDRAUS|DDRAUSPERTCK|DDRAUSPERUI|DDRHOLDDIFF|DDRSETUPDIFF|DDRTCHABS|DDRTCHAVERAGE|DDRTCKAVERAGE|DDRTCLABS|DDRTCLAVERAGE|DDRTERRMN|DDRTERRN|DDRTJITCC|DDRTJITDUTY|DDRTJITPER|DDRTPST|DDRTRPRE|DDRTWPRE|DDRVIXAC|DDRTDQSCK|DELAY|DJ|DJDIRAC|DPMPSIJ|EYEHIGH|EYELOW|FALLSLEWRATE|FALLTIME|FREQUENCY|F2|F4|F8|HEIGHT|HEIGHTBER|HIGH|HIGHTIME|HOLD|IMDAANGLE|IMDADIRECTION|IMDADQ0|IMDAEFFICIENCY|IMDAHARMONICS|IMDAMECHPWR|IMDAPOWERQUALITY|IMDASPEED|IMDASYSEFF|IMDATORQUE|ISI|JITTERSUMMARY|J2|J9|LOW|LOWTIME|MAXIMUM|MEAN|MINIMUM|NDUty|NOVERSHOOT|NPERIOD|NPJ|NWIDTH|OBW|PATTERNLENGTH|PDUTY|PERIOD|PHASE|PHASENOISE|PJ|PK2Pk|POVERSHOOT|PWIDTH|QFACTOR|RISESLEWRATE|RISETIME|RJ|RJDIRAC|RMS|SETUP|SKEW|SRJ|SSCFREQDEV|SSCMODRATE|SSCSLEWRATE|TIE|TIMEOUTSIDELEVEL|TIMETOMAX|TIMETOMIN|TJBER|TNTRATIO|TOP|UNITINTERVAL|VDIFFXOVR|WBGDDT|WBGDIODEDDT|WBGEOFF|WBGEON|WBGERR|WBGIPEAK|WBGIRRM|WBGQOSS|WBGQRR|WBGTDOFF|WBGTDON|WBGTF|WBGTON|WBGTOFF|WBGTR|WBGTRR|WBGTDT|WBGVPEAK|WIDTH|WIDTHBER}
            ```

        Info:
            - ``ACCOMMONMODE`` AC Common Mode (Pk-Pk) is the peak-to-peak of the commonmode voltage
              of two sources. This measurement is made across the entire record.This measurement
              requires the DJA option and is not available on a 4 SeriesMSO instrument.
            - ``ACPR`` (Adjacent Channel Power Ratio) is the amount of power that leaks intoadjacent
              channels. This can be specified in terms of absolute power or a ratio ofadjacent
              channel power to the main channel power, called adjacent channel powerratio (ACPR) or
              adjacent channel leakage ratio (ACLR).
            - ``ACRMS`` (AC RMS) is the true Root Mean Square of the data points, about theMean.
              This measurement can be made across the entire record, or on each cyclein the record.
            - ``AMPLITUDE`` is the difference between the Top value and the Base value. This
              measurement can be made across the entire record, or on each cycle in the record.
            - ``AREA`` is the area under the curve, calculated by integrating the data points. The
              area measured above ground is positive. The area measured below ground is negative.
              This measurement can be made across the entire record, or on each cycle in the record.
            - ``BASE`` is the most common data value below the midpoint of the waveform. This
              measurement can be made across the entire record, or on each cycle in the record.
            - ``BITAMPLITUDE`` (Bit Amplitude) is the difference between the amplitudes of the 1 bit
              and the 0 bit surrounding a transition. The amplitude is measured over a user
              specified portion at the center of the recovered unit interval. This measurement is
              made on each transition bit in the record (Mean) or across the entire record (Mode).
              This measurement requires the DJA option and is not available on a 4 Series MSO
              instrument.
            - ``BITHIGH`` (Bit High) is the amplitude of a 1 bit. The amplitude is measured over a
              user specified portion at the center of the recovered unit interval. This measurement
              is made on each high bit in the record (Mean) or across the entire record (Mode). This
              measurement requires the DJA option and is not available on a 4 Series MSO instrument.
            - ``BITLOW`` (Bit Low) is the amplitude of a 0 bit. The amplitude is measured over a
              user specified portion at the center of the recovered unit interval. This measurement
              is made on each high bit in the record (Mean) or across the entire record (Mode). This
              measurement requires the DJA option and is not available on a 4 Series MSO instrument.
            - ``BURSTWIDTH`` (Burst Width) is the duration of a series of adjacent crossings of the
              Mid reference level (RM). Bursts are separated by a user-defined idle time (tI). This
              measurement is made on each burst in the record.
            - ``CCJITTER`` (Cycle-to-Cycle jitter) measures how much the clock period changes
              between any two adjacent cycles. Cycle-to-Cycle jitter is measured by applying a first
              order difference operation to the period jitter.
            - ``COMMONMODE`` (DC Common Mode) is the arithmetic mean of the common mode voltage of
              two sources. This measurement is made across the entire record. This measurement
              requires the DJA option and is not available on a 4 Series MSO instrument.
            - ``CPOWER`` (Channel Power) is the measurement of integrated power within a specified
              channel bandwidth for a RF signal. The resulting channel power is an absolute power
              measurement.
            - ``DATARATE`` (Data Rate) is the reciprocal of Unit Interval. This measurement is made
              on each bit in the record.
            - ``DCD`` (duty cycle distortion) is the peak-to-peak amplitude of the component of the
              deterministic jitter correlated with the signal polarity. This measurement is made
              across the entire record. This measurement requires the DJA option and is not
              available on a 4 Series MSO instrument.
            - ``DDJ`` (data dependent jitter) is the peak-to-peak amplitude of the component of the
              deterministic jitter correlated with the data pattern in the waveform. This
              measurement is made across the entire record. This measurement requires the DJA option
              and is not available on a 4 Series MSO instrument.
            - ``DDRAOS`` (area above signal) is the total area of the signal above a specified
              reference level. This measurement is made across the entire record.
            - ``DDRAOSPERTCK`` (area over signal for tCK events) is the total area of the signal
              above a specified reference level calculated over consecutive tCK intervals. It is
              applicable to clock and address/command waveforms.
            - ``DDRAOSPERUI`` (area over signal for UI events) is the total area of the signal above
              a specified reference level calculated over consecutive unit intervals. It is
              applicable to data and data strobe waveforms.
            - ``DDRAUS`` (area under signal) is the total area of the signal below a specified
              reference level. This measurement is made across the entire record.
            - ``DDRAUSPERTCK`` (area under signal for tCK events) is the total area of the signal
              below a specified reference level calculated over consecutive tCK intervals. It is
              applicable to clock and address/command waveforms.
            - ``DDRAUSPERUI`` (area under signal for UI events) is the total area of the signal
              below a specified reference level calculated over consecutive unit intervals. It is
              applicable to data and data strobe waveforms.
            - ``DDRHOLDDIFF`` (hold difference) is the elapsed time between the specified edge of a
              single-ended clock waveform and the specified edge of a differential data waveform.
              The measurement uses the closest respective waveform edges that fall within the range
              limits.This measurement is made across the entire record.
            - ``DDRSETUPDIFF`` (setup difference) is the elapsed time between the specified edge of
              a single-ended clock waveform and when the specified edge of a differential data
              waveform crosses a specified level. The measurement uses the closest respective
              waveform edges that fall within the range limits. This measurement is made across the
              entire record.
            - ``DDRTCHABS`` (absolute high pulse width) is the absolute value of the high pulse
              width as measured from one rising edge to the next falling edge.
            - ``DDRTCHAVERAGE`` (average high pulse width) is the average value of the high pulse
              width as measured from one rising edge to the next falling edge, across 200
              consecutive cycles. This measurement is made across the entire record.
            - ``DDRTCKAVERAGE`` (average clock period) is the average clock period calculated from
              rising edge to rising edge, across 200 consecutive cycles. This measurement is made
              across the entire record.
            - ``DDRTCLABS`` (absolute low pulse width) is the absolute value of the low pulse width
              as measured from a falling edge to the next rising edge. This measurement is made
              across the entire record.
            - ``DDRTCLAVERAGE`` (average low pulse width) is the average value of the low pulse
              width as measured from one falling edge to the next rising edge, across 200
              consecutive cycles.
            - ``DDRTERRMN`` (cumulative error) is the cumulative error across multiple consecutive
              defined cycles from tCK(avg).
            - ``DDRTERRN`` (cumulative error) is the cumulative error across specified consecutive
              cycles from tCK(avg). In other words, this measures the time difference between the
              sum of the clock period from a 200 cycle window and n times tCK(avg).
            - ``DDRTJITCC`` (cycle to cycle jitter period) is the absolute difference in clock
              period between two consecutive clock cycles. This measurement is made across the
              entire record.
            - ``DDRTJITDUTY`` (half period jitter) is the largest elapsed time between tCH and
              tCH(avg), and tCL and tCL(avg), over 200 consecutive cycles.
            - ``DDRTJITPER`` (clock period jitter) is the largest deviation of any tCK signal from
              tCK(avg). This measurement is made across the entire record.
            - ``DDRTPST`` (read/write burst postamble) is the width of the Read or Write burst
              postamble, measured from the last falling edge of the mid reference level to the start
              of an undriven state. This measurement is made across the entire record.
            - ``DDRTRPRE`` (read burst preamble) is the width of the Read burst preamble, measured
              from exiting tristate levels to the first driving edge of the differential strobe.
              This measurement is made across the entire record.
            - ``DDRTWPRE`` is the width of theWrite burst preamble, measured from exiting tristate
              levels to the first driving edge of the differential strobe. This measurement is made
              across the entire record.
            - ``DDRVIXAC`` is the differential input cross-point voltage measured from the true
              state transition (and it's compliment) to a specified reference level, measured on a
              single-ended signal.
            - ``DDRTDQSCK`` is the strobe output access time, measured between the rising edge of
              the clock and before or after the differential strobe Read preamble time. Signal edges
              are determined by the mid-ref threshold level settings.
            - ``DELay`` is the time between the specified Mid reference level (RM) crossing on one
              source to a specified Mid reference level (RM) crossing on a second source. This
              measurement is made on the first occurrence in the record.
            - ``DJ`` (deterministic jitter) is the peak-to-peak amplitude of all timing errors that
              exhibit deterministic behavior. This measurement is made across the entire record.
              This measurement requires the DJA option and is not available on a 4 Series MSO
              instrument.
            - ``DJDIRAC`` (dual-dirac deterministic jitter) is deterministic jitter based on a
              simplifying assumption that the histogram of all deterministic jitter can be modeled
              as a pair of equal-magnitude Dirac functions. This measurement is made across the
              entire record. This measurement requires the DJA option and is not available on a 4
              Series MSO instrument.
            - ``DPMPSIJ`` is the Power Supply Induced Jitter. This measurement helps in suppressing
              the jitter in high speed signals (victim) induced from power rail signals (aggressor).
            - ``EYEHIGH`` (Eye High) is the amplitude of a high (1) bit measured at a user specified
              location within the recovered unit interval. This measurement is made on each high bit
              in the record. This measurement requires the DJA option and is not available on a 4
              Series MSO instrument.
            - ``EYELOW`` (Eye Low) is the amplitude of a low (0) bit measured at a user specified
              location within the recovered unit interval. This measurement is made on each low bit
              in the record. This measurement requires the DJA option and is not available on a 4
              Series MSO instrument.
            - ``FALLSLEWRATE`` (Falling Slew Rate) is the rate of change in voltage as an edge
              transitions from the Top reference level (RT) to the Bottom reference level (RB). This
              measurement is made on each cycle in the record.
            - ``FALLTIME`` (Fall Time) is the time required for an edge to fall from the Top
              reference level (RT) to the Base reference level (RB). This measurement is made on
              each cycle in the record.
            - ``FREQuency`` is the reciprocal of Period. This measurement is made on each cycle in
              the record.
            - ``F2`` is the peak-to-peak amplitude of the periodic jitter occurring at a rate of Fb
              (data rate) divided by 2. This measurement is made across the entire record. This
              measurement requires the DJA option and is not available on a 4 Series MSO instrument.
            - ``F4`` is the peak-to-peak amplitude of the periodic jitter occurring at a rate of Fb
              (data rate) divided by 4. This measurement is made across the entire record. This
              measurement requires the DJA option and is not available on a 4 Series MSO instrument.
            - ``F8`` is the peak-to-peak amplitude of the periodic jitter occurring at a rate of Fb
              (data rate) divided by 8. This measurement is made across the entire record. This
              measurement requires the DJA option and is not available on a 4 Series MSO instrument.
            - ``HIGH`` (Eye High) is the amplitude of a high (1) bit measured at a user specified
              location within the recovered unit interval. This measurement is made on each high bit
              in the record.
            - ``HEIGHT`` (Eye Height) is the minimum vertical eye opening at the center of the
              recovered unit interval. This measurement is made across the entire record. This
              measurement requires the DJA option and is not available on a 4 Series MSO instrument.
            - ``HEIGHTBER`` (Eye Height@BER) is the predicted vertical eye opening that will be
              violated with a probability equal to the bit error rate. This measurement is made
              across the entire record. This measurement requires the DJA option and is not
              available on a 4 Series MSO instrument.
            - ``HIGHTIME`` (High Time) is the time the signal remains above the Top reference level
              (RT). This measurement is made on each cycle in the record.
            - ``HOLD`` (Hold Time) is the time between the specified Mid reference level crossing
              (RM) on the Clock source to the closest specified Mid reference level (RM) crossing on
              the Data source. This measurement is made on each specified Clock edge in the record.
            - ``IMDAANGLE`` (Angle) measures the phase angle. Configure QEI or Hall sensor to.
            - ``compute`` the angle measurement. Requires a IMDA-MECH License.
            - ``IMDADIRECTION`` (Direction) defines the direction of rotation of the motor. Set the
              direction A-B-C or A-C-B for Hall sensors and CW or CCW for QEI based on the motor
              configuration. Requires a IMDA-MECH License.
            - ``IMDADQ0`` measures the DQ0 values of the phasor plot. This measurement requires
              options IMDA and IMDA-DQ0. Requires a IMDA-MECH License.
            - ``IMDAEFFICIENCY`` (Efficiency) measures the ratio of sum of output power(s) to input
              power for respective input and output Voltage and Current pairs. Note: the current
              release cannot support 3V and 3I pairs, since this requires 12 channels. We restrict
              to 2V and 2I which needs 8 scope channels. Requires a IMDA-MECH License.
            - ``IMDAHARMONICS`` (Harmonics) plots the signal amplitude at the fundamental line
              frequency and its harmonics and measures the RMS amplitude and Total Harmonic
              Distortion of the signal. Requires a IMDA-MECH License.
            - ``IMDAMECHPWR`` (Mechanical Power) measures the mechanical power of the motor drive
              system. It is determined by the Speed and Torque. It is measured in watts. Requires a
              IMDA-MECH License.
            - ``IMDAPOWERQUALITY`` (Power Quality) measures the Frequency and RMS values of the
              voltage and current, Crest Factors of the voltage and current, True Power (PTRUE),
              Reactive Power (PRE), Apparent Power (PAPP), Power Factor, and Phase Angle (θ) of the
              AC signal. Requires a IMDA-MECH License.
            - ``IMDASPEED`` (Speed) measures the speed and acceleration. Requires a IMDA-MECH
              License.
            - ``IMDASYSEFF`` (System Efficiency) measures the total efficiency of the motor drive
              system. Requires a IMDA-MECH License.
            - ``IMDATORQUE`` (Torque) measures the torque of the motor. Configure Sensor (analog) or
              Current method to measure the torque. Requires a IMDA-MECH License.
            - ``ISI`` (Inter Symbol Interference) is defined as the range (difference between the
              maximum and minimum value) of DDJ-per-edge values appearing across all rising edges,
              or the range of DDJ-per-edge values across all falling edges, whichever is greater.
            - ``JITTERSUMMARY`` (Jitter Summary) is a group consisting of the following
              measurements: Data Rate, Pattern Length, TIE, TJ@BER, RJ, DJ, DJ-δδ, PJ, DDJ, DCD,
              ISI, and Eye Width@BER and RJ-δδ. This measurement requires the DJAoption and is not
              available on a 4 Series MSO instrument.
            - ``J2`` is the total jitter at a bit error rate of 2.5e-3 (TJ@2.5e-3). This measurement
              is made across the entire record. This measurement requires the DJA option and is not
              available on a 4 Series MSO instrument.
            - ``J9`` is the total jitter at a bit error rate of 2.5e-10 (TJ@2.5e-10). This
              measurement is made across the entire record. This measurement requires the DJA option
              and is not available on a 4 Series MSO instrument.
            - ``LOW`` (Eye Low) is the amplitude of a low (0) bit measured at a user specified
              location within the recovered unit interval. This measurement is made on each low bit
              in the record.
            - ``LOWTIME`` (Low Time) is the time the signal remains below the Base reference level
              (RB). This measurement is made on each cycle in the record.
            - ``MAXimum`` is the maximum data point. This measurement can be made across the entire
              record, or on each cycle in the record.
            - ``MEAN`` is the arithmetic mean of the data points. This measurement can be made
              across the entire record, or on each cycle in the record.
            - ``MINImum`` is the minimum data point. This measurement can be made across the entire
              record, or on each cycle in the record.
            - ``NDUty`` (Negative Duty Cycle) is the ratio of the Negative Pulse Width to the
              Period. This measurement is made on each cycle in the record.
            - ``NPERIOD`` (Duration N-Periods) is the time required to complete N cycles. A cycle is
              the time between two adjacent (same direction) crossings of the Mid reference level
              (RM). This measurement is made on each cycle in the record.
            - ``NPJ`` (non-periodic jitter) is the portion of the BUJ (bounded uncorrelated jitter)
              that is random. BUJ excludes DDJ, DCD and RJ. This measurement is made across the
              entire record. This measurement requires the DJA option and is not available on a 4
              Series MSO instrument.
            - ``NOVershoot`` (Negative Overshoot) is the difference between Minimum and Base,
              divided by the Amplitude. This measurement can be made across the entire record, or on
              each cycle in the record.
            - ``NWIDTH`` (Negative Pulse Width) is the time the signal remains below the Mid
              reference level (R.
            - ``OBW`` (Occupied Bandwidth) refers to the bandwidth, including energy of a certain
              proportion of the total transmitted power, with the center frequency of the specified
              channel as the center.
            - ``PATTERNLENGTH`` (Pattern Length) is the number of symbols that constitute onefull
              repetition of a sequence within a signal. This measurement requires the DJAoption and
              is not available on a 4 Series MSO instrument.
            - ``PDUTY`` (Positive Duty Cycle) is the ratio of the Positive Pulse Width to the
              Period. This measurement is made on each cycle in the record.
            - ``PERIOD`` is the time required to complete a cycle. A cycle is the time between two
              adjacent (same direction) crossings of the Mid reference level (RM). This measurement
              is made on each cycle in the record.
            - ``PHASE`` is the ratio of the Skew between two sources to the Period of the first
              source. This measurement is made on each cycle in the record.
            - ``PHASENOISE`` (Phase Noise) is the RMS magnitude of all integrated jitter falling
              within a user specified offset range of the fundamental clock frequency. This
              measurement is made across the entire record. This measurement is not available on a 4
              Series MSO instrument.
            - ``PJ`` (periodic jitter) is the peak-to-peak amplitude of the uncorrelated sinusoidal
              components of the deterministic jitter. This measurement is made across the entire
              record. This measurement requires the DJA option and is not available on a 4 Series
              MSO instrument.
            - ``PK2Pk`` (Peak-to-peak) is the difference between Maximum and Minimum. This
              measurement can be made across the entire record, or on each cycle in the record.
            - ``POVERSHOOT`` (Positive Overshoot) is the difference between Maximum and Top, divided
              by the Amplitude. This measurement can be made across the entire record, or on each
              cycle in the record.
            - ``PWIDTH`` (Positive Pulse Width) is the time the signal remains above the Mid
              reference level (RM). This measurement is made on each cycle in the record.
            - ``QFACTOR`` (Q-Factor) is the ratio of the vertical eye opening to RMS vertical noise
              measured at a user specified location within the recovered unit interval. This
              measurement is made across the entire record. This measurement requires the DJA option
              and is not available on a 4 Series MSO instrument.
            - ``RISESLEWRATE`` (Rising Slew Rate) is the rate of change in voltage as an edge
              transitions from the Base reference level (RB) to the Top reference level (RT). This
              measurement is made on each cycle in the record.
            - ``RISETIME`` Rise Time is the time required for an edge to rise from the Base
              reference level (RB) to the Top reference level (RT). This measurement is made on each
              cycle in the record.
            - ``RJ`` (random jitter) is the RMS magnitude of all random timing errors following a
              Gaussian distribution. This measurement is made across the entire record. This
              measurement requires the DJA option and is not available on a 4 Series MSO instrument.
            - ``RJDIRAC`` (dual-dirac random jitter) is random jitter based on a simplifying
              assumption that the histogram of all deterministic jitter can be modeled as a pair of
              equal-magnitude Dirac functions. This measurement is made across the entire record.
              This measurement requires the DJA option and is not available on a 4 Series MSO
              instrument.
            - ``RMS`` is the true Root Mean Square of the data points. This measurement can be made
              across the entire record, or on each cycle in the record.
            - ``SRJ`` (sub-rate jitter) is the composite jitter due to periodic components at 1/2,
              1/4 and 1/8 of the data rate. This measurement is made across the entire record. This
              measurement requires the DJA option and is not available on a 4 Series MSO instrument.
            - ``SSCFREQDEV`` (SSC Frequency Deviation) is the spread spectrum clock frequency
              deviation. This measurement enables a time trend plot of the spread spectrum clock
              modulation profile. This measurement is made on each cycle in the record. This
              measurement requires the DJA option and is not available on a 4 Series MSO instrument.
            - ``SSCMODRATE`` (SSC Modulation Rate) is the modulating frequency of a spread spectrum
              clock. This measurement is made on each cycle in the record. This measurement requires
              the DJA option and is not available on a 4 Series MSO instrument.
            - ``SSCSLEWRATE`` (SSC Slew Rate) is the rate of change of the modulating frequencyof a
              spread spectrum clock. This measurement is made on each cycle in therecord. This
              measurement requires the DJA option and is not available on a 4Series MSO instrument.
            - ``SETUP`` (Setup Time) is the time between the specified Mid reference level (RM)
              crossing on the Data source to the closest specified Mid reference level (RM) crossing
              on the Clock source. This measurement is made on each specified Clock edge in the
              record.
            - ``SKEW`` Skew is the time between the specified Mid reference level (RM) crossing on
              one source to the following specified Mid reference level (RM) crossing on a second
              source. This measurement is made on each cycle in the record.
            - ``TIE`` (time interval error) is the difference, in time, between an edge in the
              source waveform and the corresponding edge in a recovered reference clock. This
              measurement is made on each edge in the waveform. This measurement is not available on
              a 4 Series MSO instrument.
            - ``TIMEOUTSIDELEVEL`` Time Outside Level is the time the signal remains above the Top
              reference level (RT) and/or below the Base reference level (RB). This measurement is
              made on each occurrence in the record.
            - ``TIMETOMAX`` Time to Max is the amount of time from the trigger point to the maximum
              data point. This measurement can be made across the entire record or on each cycle in
              the record.
            - ``TIMETOMIN`` Time to Min is the amount of time from the trigger point to the minimum
              data point. This measurement can be made across the entire record or on each cycle in
              the record.
            - ``TJBER`` (total jitter at a specified bit error rate) is the predicted peak-to-peak
              amplitude of jitter that will only be exceeded with a probability equal to the bit
              error rate. This measurement is made across the entire record. This measurement
              requires the DJA option and is not available on a 4 Series MSO instrument.
            - ``TNTRATIO`` T/nT Ratio is the ratio of a non-transition bit voltage (2nd and
              subsequent bit voltage after a transition) to its nearest preceding transition bit
              voltage (1st bit voltage after the transition). Bit voltages are measured at the
              interpolated midpoint of the recovered unit interval. This measurement is made on each
              non-transition bit in the record. This measurement requires the DJA option and is not
              available on a 4 Series MSO instrument.
            - ``TOP`` is the most common data value above the midpoint of the waveform. This
              measurement can be made across the entire record, or on each cycle in the record.
            - ``UNITINTERVAL`` (Unit Interval) is the time difference between two successive bits.
              This measurement is made on each bit in the record.
            - ``VDIFFXOVR`` (Differential Crossover) is the voltage level of a differential signal
              pair at the crossover points. This measurement is made at each crossover point in the
              record. This measurement requires the DJA option and is not available on a 4 Series
              MSO instrument.
            - ``WBGDDT`` (d/dt) measures the rate of change of voltage or current (slew rate) from
              the configured start level to the stop level. Requires a WBG-DPT License.
            - ``WBGDIODEDDT`` (Diode d/dt) measures the rate of change of voltage or current (slew
              rate) during the specified start and stop integration levels. Diode d/dt can be
              measured during rising or falling edge. Requires a WBG-DPT License.
            - ``WBGEOFF`` (Eoff) measures the energy dissipated in the Power Device during off
              region using the configured levels. Requires a WBG-DPT License.
            - ``WBGEON`` (Eon) measures the energy dissipated in the Power Device during on region
              using the configured levels. Requires a WBG-DPT License.
            - ``WBGERR`` (Err) measures the reverse recovery energy dissipated in the Power Device
              using the configured levels. Requires a WBG-DPT License.
            - ``WBGIPEAK`` (Ipeak) measures the peak current of the Power Device in the on region.
              Requires a WBG-DPT License.
            - ``WBGIRRM`` (Irrm) measures the maximum current dissipated in the Power Device in the
              reverse recovery region. Requires a WBG-DPT License.
            - ``WBGQOSS`` (Qoss) is the charge that must be supplied to the output capacitance of
              the power device during a specified time interval. Requires a WBG-DPT License.
            - ``WBGQRR`` (Qrr) measures the reverse recovery charge in the Power Device using the
              configured levels. Requires a WBG-DPT License.
            - ``WBGTDOFF`` (Td(off)) measures the turn off delay time of the Power Device in the off
              region using the configured levels. Requires a WBG-DPT License.
            - ``WBGTDON`` (Td(on)) measures the turn on delay time of the Power Device in the on
              region using the configured levels. Requires a WBG-DPT License.
            - ``WBGTF`` (Tf) measures the fall time of the Power Device in the off region using the
              configured levels.
            - ``WBGTOFF`` (Toff) measures the turn off time of the Power Device. It is the sum of
              the turn off delay time and the fall time. Requires a WBG-DPT License.
            - ``WBGTON`` (Ton) measures the turn on time of the Power Device. It is the sum of the
              turn on delay time and the rise time. Requires a WBG-DPT License.
            - ``WBGTR`` (Tr) measures the rise time of the Power Device in the on region using the
              configured levels. Requires a WBG-DPT License.
            - ``WBGTRR`` (Trr) measures the reverse recovery time of the Power Device using the
              configured levels. Requires a WBG-DPT License.
            - ``WBGTDT`` (Tdt) the time delay between turn on time of the high side MOSFET and turn
              on time of the low side MOSFET during the simultaneous switching. Requires a WBG-DPT
              License.
            - ``WBGVPEAK`` (Vpeak) measures the peak voltage of the Power Device in the off region.
              Requires a WBG-DPT License.
            - ``WIDTH`` (Eye Width) is the minimum horizontal eye opening at the user specified
              reference level. This measurement is made across the entire record. This measurement
              requires the DJA option and is not available on a 4 Series MSO instrument.
            - ``WIDTHBER`` (Eye Width@BER) is the predicted horizontal eye opening that will be
              violated with a probability equal to the bit error rate. This measurement is made
              across the entire record. This measurement requires the DJA option and is not
              available on a 4 Series MSO instrument.
        """  # noqa: E501
        return self._addmeas

    @property
    def addnew(self) -> MeasurementAddnew:
        """Return the ``MEASUrement:ADDNew`` command.

        Description:
            - This command adds the specified measurement.

        Usage:
            - Using the ``.write(value)`` method will send the ``MEASUrement:ADDNew value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:ADDNew <QString>
            ```

        Info:
            - ``<QString>`` is the measurement to add. The argument is of the form 'MEAS<NR1>' where
              NR1 ≥ 1.
        """
        return self._addnew

    @property
    def annotate(self) -> MeasurementAnnotate:
        """Return the ``MEASUrement:ANNOTate`` command.

        Description:
            - This command sets or queries the annotation state for measurements.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:ANNOTate?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:ANNOTate?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:ANNOTate value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:ANNOTate {OFF|AUTO}
            - MEASUrement:ANNOTate?
            ```

        Info:
            - ``OFF`` turns off measurement annotations.
            - ``AUTO`` turns on visible measurement annotations.
        """
        return self._annotate

    @property
    def autoset(self) -> MeasurementAutoset:
        """Return the ``MEASUrement:AUTOset`` command.

        Description:
            - This command performs a specified autoset.

        Usage:
            - Using the ``.write(value)`` method will send the ``MEASUrement:AUTOset value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:AUTOset {DPMAutoset|DPMPReset|EXECute|THREEPHASEAUTOset|WBGDeskewexec|WBGPREset|WBGGSTIM}
            ```

        Info:
            - ``DPMAutoset`` performs a power rail autoset operation. Requires a DPM license.
            - ``DPMPReset`` performs a power rail preset operation. Requires a DPM license.
            - ``EXECute`` performs an analysis jitter autoset.
            - ``THREEPHASEAUTOset`` performs an IMDA 3 phase autoset.
            - ``WBGDeskewexec`` performs WBG deskew on specific measurements. Requires a WBG-DPT
              license.
            - ``WBGPREset`` performs a measurement specific preset. Requires a WBG-DPT license.
            - ``WBGGSTIM`` performs gate stimulus forWBG measurement. Requires aWBG-DPT license.
        """  # noqa: E501
        return self._autoset

    @property
    def ch(self) -> Dict[int, MeasurementChannel]:
        """Return the ``MEASUrement:CH<x>`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:CH<x>?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:CH<x>?`` query and
              raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.reflevels``: The ``MEASUrement:CH<x>:REFLevels`` command tree.
        """
        return self._ch

    @property
    def clockrecovery(self) -> MeasurementClockrecovery:
        """Return the ``MEASUrement:CLOCKRecovery`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:CLOCKRecovery?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:CLOCKRecovery?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.advanced``: The ``MEASUrement:CLOCKRecovery:ADVanced`` command tree.
            - ``.clockfrequency``: The ``MEASUrement:CLOCKRecovery:CLOCKFrequency`` command.
            - ``.clockmultiplier``: The ``MEASUrement:CLOCKRecovery:CLOCKMultiplier`` command.
            - ``.constclockmode``: The ``MEASUrement:CLOCKRecovery:CONSTCLOCKMODe`` command.
            - ``.damping``: The ``MEASUrement:CLOCKRecovery:DAMPing`` command.
            - ``.datapath``: The ``MEASUrement:CLOCKRecovery:DATAPath`` command.
            - ``.datarate``: The ``MEASUrement:CLOCKRecovery:DATARate`` command.
            - ``.explicitclockmode``: The ``MEASUrement:CLOCKRecovery:EXPLICITCLOCKMODe`` command.
            - ``.jtfbandwidth``: The ``MEASUrement:CLOCKRecovery:JTFBandwidth`` command.
            - ``.loopbandwidth``: The ``MEASUrement:CLOCKRecovery:LOOPBandwidth`` command.
            - ``.meanautocalculate``: The ``MEASUrement:CLOCKRecovery:MEANAUTOCalculate`` command.
            - ``.method``: The ``MEASUrement:CLOCKRecovery:METHod`` command.
            - ``.model``: The ``MEASUrement:CLOCKRecovery:MODel`` command.
            - ``.nominaloffset``: The ``MEASUrement:CLOCKRecovery:NOMINALOFFset`` command.
            - ``.standard``: The ``MEASUrement:CLOCKRecovery:STAndard`` command.
            - ``.tdcompensation``: The ``MEASUrement:CLOCKRecovery:TDCOMPensation`` command.
        """
        return self._clockrecovery

    @property
    def ddjmethod(self) -> MeasurementDdjmethod:
        """Return the ``MEASUrement:DDJMethod`` command.

        Description:
            - This command sets or queries the model used to separate-out DDJ from TIE.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:DDJMethod?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:DDJMethod?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:DDJMethod value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:DDJMethod {SPECtraldomain|TIMDomain}
            - MEASUrement:DDJMethod?
            ```
        """
        return self._ddjmethod

    @property
    def deleteall(self) -> MeasurementDeleteall:
        """Return the ``MEASUrement:DELETEALL`` command.

        Description:
            - This command deletes all the active instances of measurements defined in the scope
              application.

        Usage:
            - Using the ``.write()`` method will send the ``MEASUrement:DELETEALL`` command.

        SCPI Syntax:
            ```
            - MEASUrement:DELETEALL
            ```
        """
        return self._deleteall

    @property
    def delete(self) -> MeasurementDelete:
        """Return the ``MEASUrement:DELete`` command.

        Description:
            - The command deletes the specified measurement.

        Usage:
            - Using the ``.write(value)`` method will send the ``MEASUrement:DELete value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:DELete <QString>
            ```

        Info:
            - ``<QString>`` is the measurement to delete. Argument is of the form 'MEAS<NR1>' where
              <NR1> is ≥1.
        """
        return self._delete

    @property
    def diracmodel(self) -> MeasurementDiracmodel:
        """Return the ``MEASUrement:DIRacmodel`` command.

        Description:
            - This command sets or queries the dirac model used to separate random from
              deterministic jitter for jitter measurements.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:DIRacmodel?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:DIRacmodel?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:DIRacmodel value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:DIRacmodel {PCIExpress|FIBREchannel}
            - MEASUrement:DIRacmodel?
            ```

        Info:
            - ``PCIExpress`` specifies the PCIExpress dirac model.
            - ``FIBREchannel`` specifies the FIBREchannel dirac model.
        """
        return self._diracmodel

    @property
    def displayunits(self) -> MeasurementDisplayunits:
        """Return the ``MEASUrement:DISPLAYUnits`` command.

        Description:
            - This command sets or queries the display units used for jitter summary measurements.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:DISPLAYUnits?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:DISPLAYUnits?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:DISPLAYUnits value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:DISPLAYUnits {SEConds|UNITINtervals}
            - MEASUrement:DISPLAYUnits?
            ```

        Info:
            - ``SEConds`` set the display units to seconds.
            - ``UNITINtervals`` set the display units to unit intervals.
        """
        return self._displayunits

    @property
    def edge(self) -> Dict[int, MeasurementEdgeItem]:
        """Return the ``MEASUrement:EDGE<x>`` command.

        Description:
            - This command sets or queries the type of the edge for the measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:EDGE<x>?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:EDGE<x>?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:EDGE<x> value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:EDGE<x> {RISE|FALL|BOTH}
            - MEASUrement:EDGE<x>?
            ```

        Info:
            - ``FALL`` specifies the falling edge of the waveform.
            - ``RISE`` specifies the rising edge of the waveform.
            - ``BOTH`` specifies both a rising and falling edge of the waveform.
        """
        return self._edge

    @property
    def enablepjitter(self) -> MeasurementEnablepjitter:
        """Return the ``MEASUrement:ENABLEPjitter`` command.

        Description:
            - This command sets or queries the state of period jitter analysis mode.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:ENABLEPjitter?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:ENABLEPjitter?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:ENABLEPjitter value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:ENABLEPjitter {ON|OFF|1|0}
            - MEASUrement:ENABLEPjitter?
            ```

        Info:
            - ``ON`` indicates that period jitter analysis mode is active.
            - ``OFF`` indicates that period jitter analysis mode is off.
            - ``1`` turns on period jitter analysis mode. Any number value other than 0 will turn
              period jitter analysis mode on.
            - ``0`` turns off period jitter analysis mode.
        """
        return self._enablepjitter

    @property
    def eyerender(self) -> MeasurementEyerender:
        """Return the ``MEASUrement:EYERENDER`` command.

        Description:
            - This command sets or queries the state of high-performance eye rendering for an eye
              diagram.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:EYERENDER?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:EYERENDER?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:EYERENDER value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:EYERENDER {ON|OFF|<NR1>}
            - MEASUrement:EYERENDER?
            ```

        Info:
            - ``<NR1>`` = 0 disables high-performance eye rendering for an eye diagram; any other
              value turns this feature on.
            - ``OFF`` disables high-performance eye rendering for an eye diagram.
            - ``ON`` enables high-performance eye rendering for an eye diagram.
        """
        return self._eyerender

    @property
    def filters(self) -> MeasurementFilters:
        """Return the ``MEASUrement:FILTers`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:FILTers?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:FILTers?`` query and
              raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.blankingtime``: The ``MEASUrement:FILTers:BLANKingtime`` command.
            - ``.highpass``: The ``MEASUrement:FILTers:HIGHPass`` command tree.
            - ``.lowpass``: The ``MEASUrement:FILTers:LOWPass`` command tree.
            - ``.ramptime``: The ``MEASUrement:FILTers:RAMPtime`` command.
        """
        return self._filters

    @property
    def gating(self) -> MeasurementGating:
        """Return the ``MEASUrement:GATing`` command.

        Description:
            - This command sets or queries the global gating type for the measurement.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:GATing?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:GATing?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:GATing value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:GATing {NONE|SCREEN|CURSor|LOGic|SEARch|TIMe}
            - MEASUrement:GATing?
            ```

        Info:
            - ``NONE`` turns off measurement gating.
            - ``SCREEN`` turns on gating, using the left and right edges of the screen.
            - ``CURSor`` limits measurements to the portion of the waveform between the vertical bar
              cursors, even if they are off screen.
            - ``LOGic`` specifies that measurements are taken only on the portion of the waveform
              where the logic source is in the active state.
            - ``SEARCH`` specifies that measurements are taken based on search criteria.
            - ``TIMe`` limits measurements to the portion of the waveform between the Start and End
              gate times.

        Sub-properties:
            - ``.active``: The ``MEASUrement:GATing:ACTive`` command.
            - ``.endtime``: The ``MEASUrement:GATing:ENDtime`` command.
            - ``.hysteresis``: The ``MEASUrement:GATing:HYSTeresis`` command.
            - ``.logicsource``: The ``MEASUrement:GATing:LOGICSource`` command.
            - ``.midref``: The ``MEASUrement:GATing:MIDRef`` command.
            - ``.searchsource``: The ``MEASUrement:GATing:SEARCHSource`` command.
            - ``.starttime``: The ``MEASUrement:GATing:STARTtime`` command.
        """
        return self._gating

    @property
    def highlevel(self) -> MeasurementHighlevel:
        """Return the ``MEASUrement:HIGHLEVel`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:HIGHLEVel?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:HIGHLEVel?`` query and
              raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.configuration``: The ``MEASUrement:HIGHLEVel:CONFIGuration`` command.
            - ``.edgequalifier``: The ``MEASUrement:HIGHLEVel:EDGEQUALifier`` command.
            - ``.inlowpass``: The ``MEASUrement:HIGHLEVel:INLOWPass`` command tree.
            - ``.l2ltol2n``: The ``MEASUrement:HIGHLEVel:L2LTOL2N`` command.
            - ``.lineselected``: The ``MEASUrement:HIGHLEVel:LINESelected`` command.
            - ``.outedgequalifier``: The ``MEASUrement:HIGHLEVel:OUTEDGEQUALifier`` command.
            - ``.outl2ltol2n``: The ``MEASUrement:HIGHLEVel:OUTL2LTOL2N`` command.
            - ``.outlineselected``: The ``MEASUrement:HIGHLEVel:OUTLINESelected`` command.
            - ``.outlowpass``: The ``MEASUrement:HIGHLEVel:OUTLOWPass`` command tree.
            - ``.outsource``: The ``MEASUrement:HIGHLEVel:OUTSOURCE`` command.
            - ``.outwiring``: The ``MEASUrement:HIGHLEVel:OUTWIRing`` command.
            - ``.source``: The ``MEASUrement:HIGHLEVel:SOURCE`` command.
            - ``.wiring``: The ``MEASUrement:HIGHLEVel:WIRing`` command.
        """
        return self._highlevel

    @property
    def interp(self) -> MeasurementInterp:
        """Return the ``MEASUrement:INTERp`` command.

        Description:
            - This command sets or queries the interpolation mode used to locate edge crossings.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:INTERp?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:INTERp?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:INTERp value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:INTERp {AUTO|SINX|LINear}
            - MEASUrement:INTERp?
            ```

        Info:
            - ``AUTO`` automatically selects the interpolation mode.
            - ``SINX`` specifies sin(x)/x interpolation, where acquired points are fit to a curve.
            - ``LINear`` specifies linear interpolation, where acquired points are connected with
              straight lines.
        """
        return self._interp

    @property
    def jittermodel(self) -> MeasurementJittermodel:
        """Return the ``MEASUrement:JITTermodel`` command.

        Description:
            - This command sets or queries the model used to separate random from deterministic
              jitter for jitter measurements.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:JITTermodel?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:JITTermodel?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:JITTermodel value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:JITTermodel {SPECTRAL|SPECTRALBUJ}
            - MEASUrement:JITTermodel?
            ```

        Info:
            - ``SPECTRAL`` sets the jitter separation model to spectral only.
            - ``SPECTRALBUJ`` sets the jitter separation model to spectral plus BUJ.
        """
        return self._jittermodel

    @property
    def list(self) -> MeasurementList:
        """Return the ``MEASUrement:LIST`` command.

        Description:
            - This query returns a comma separated list of all currently defined measurements.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:LIST?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:LIST?`` query and
              raise an AssertionError if the returned value does not match ``value``.

        SCPI Syntax:
            ```
            - MEASUrement:LIST?
            ```
        """
        return self._list

    @property
    def lockrj(self) -> MeasurementLockrj:
        """Return the ``MEASUrement:LOCKRJ`` command.

        Description:
            - This command sets or queries the state of RJ locking.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:LOCKRJ?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:LOCKRJ?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:LOCKRJ value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:LOCKRJ {ON|OFF|1|0}
            - MEASUrement:LOCKRJ?
            ```

        Info:
            - ``ON`` indicates that RJ locking is active.
            - ``OFF`` indicates that RJ locking is off.
            - ``1`` turns on RJ locking. Any number value other than 0 will turn RJ locking on.
            - ``0`` turns off RJ locking.
        """
        return self._lockrj

    @property
    def lockrjvalue(self) -> MeasurementLockrjvalue:
        """Return the ``MEASUrement:LOCKRJValue`` command.

        Description:
            - This command sets or queries the RJ lock value.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:LOCKRJValue?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:LOCKRJValue?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:LOCKRJValue value``
              command.

        SCPI Syntax:
            ```
            - MEASUrement:LOCKRJValue <NR3>
            - MEASUrement:LOCKRJValue?
            ```

        Info:
            - ``<NR3>`` default value = 1e-12; minimum value = 1e-15; maximum value = 1.
        """
        return self._lockrjvalue

    @property
    def math(self) -> Dict[int, MeasurementMathItem]:
        """Return the ``MEASUrement:MATH<x>`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MATH<x>?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MATH<x>?`` query and
              raise an AssertionError if the returned value does not match ``value``.

        Info:
            - ``MATH<x>`` specifies the math number.

        Sub-properties:
            - ``.reflevels``: The ``MEASUrement:MATH<x>:REFLevels`` command tree.
        """
        return self._math

    @property
    def meas(self) -> Dict[int, MeasurementMeasItem]:
        """Return the ``MEASUrement:MEAS<x>`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEAS<x>?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEAS<x>?`` query and
              raise an AssertionError if the returned value does not match ``value``.

        Info:
            - ``MEAS<x>`` specifies the measurement number.

        Sub-properties:
            - ``.abandwidth``: The ``MEASUrement:MEAS<x>:ABANdwidth`` command.
            - ``.achannels``: The ``MEASUrement:MEAS<x>:ACHANnels`` command.
            - ``.amethod``: The ``MEASUrement:MEAS<x>:AMEThod`` command.
            - ``.bcount``: The ``MEASUrement:MEAS<x>:BCOunt`` command.
            - ``.bdelay``: The ``MEASUrement:MEAS<x>:BDELay`` command.
            - ``.ber``: The ``MEASUrement:MEAS<x>:BER`` command.
            - ``.bin``: The ``MEASUrement:MEAS<x>:BIN`` command.
            - ``.bitabsolute``: The ``MEASUrement:MEAS<x>:BITAbsolute`` command.
            - ``.bitcfgmode``: The ``MEASUrement:MEAS<x>:BITCfgmode`` command.
            - ``.bitend``: The ``MEASUrement:MEAS<x>:BITEnd`` command.
            - ``.bitpcnt``: The ``MEASUrement:MEAS<x>:BITPcnt`` command.
            - ``.bitstart``: The ``MEASUrement:MEAS<x>:BITSTart`` command.
            - ``.bittype``: The ``MEASUrement:MEAS<x>:BITType`` command.
            - ``.bmtype``: The ``MEASUrement:MEAS<x>:BMTYPe`` command.
            - ``.burstedgtype``: The ``MEASUrement:MEAS<x>:BURSTEDGTYPe`` command.
            - ``.bvoltage``: The ``MEASUrement:MEAS<x>:BVOLTage`` command.
            - ``.ccresults``: The ``MEASUrement:MEAS<x>:CCRESUlts`` command tree.
            - ``.cfval``: The ``MEASUrement:MEAS<x>:CF<x>Val`` command.
            - ``.clockrecovery``: The ``MEASUrement:MEAS<x>:CLOCKRecovery`` command tree.
            - ``.commonmode``: The ``MEASUrement:MEAS<x>:COMMONMode`` command tree.
            - ``.cover``: The ``MEASUrement:MEAS<x>:COVer`` command.
            - ``.cpwidth``: The ``MEASUrement:MEAS<x>:CPWIDTh`` command.
            - ``.cspacing``: The ``MEASUrement:MEAS<x>:CSPACing`` command.
            - ``.customlimitsfile``: The ``MEASUrement:MEAS<x>:CUSTOMLIMITSFile`` command.
            - ``.cyclemode``: The ``MEASUrement:MEAS<x>:CYCLemode`` command.
            - ``.dbdown``: The ``MEASUrement:MEAS<x>:DBDown`` command.
            - ``.delay``: The ``MEASUrement:MEAS<x>:DELay`` command tree.
            - ``.displaystat``: The ``MEASUrement:MEAS<x>:DISPlaystat`` command tree.
            - ``.dmethod``: The ``MEASUrement:MEAS<x>:DMEThod`` command.
            - ``.dvds``: The ``MEASUrement:MEAS<x>:DVDS`` command.
            - ``.edge``: The ``MEASUrement:MEAS<x>:EDGE<x>`` command.
            - ``.edgeincre``: The ``MEASUrement:MEAS<x>:EDGEIncre`` command.
            - ``.edgequalone``: The ``MEASUrement:MEAS<x>:EDGEQUALONE`` command.
            - ``.edgequaltwo``: The ``MEASUrement:MEAS<x>:EDGEQUALTWO`` command.
            - ``.edgequalifier``: The ``MEASUrement:MEAS<x>:EDGEQUALifier`` command.
            - ``.edges``: The ``MEASUrement:MEAS<x>:EDGES`` command tree.
            - ``.eequal``: The ``MEASUrement:MEAS<x>:EEQUal`` command.
            - ``.einductance``: The ``MEASUrement:MEAS<x>:EINDuctance`` command.
            - ``.einterpolation``: The ``MEASUrement:MEAS<x>:EINTerpolation`` command.
            - ``.extenduis``: The ``MEASUrement:MEAS<x>:EXTENDuis`` command.
            - ``.eyerender``: The ``MEASUrement:MEAS<x>:EYERender`` command.
            - ``.failcount``: The ``MEASUrement:MEAS<x>:FAILCount`` command.
            - ``.fcount``: The ``MEASUrement:MEAS<x>:FCOunt`` command.
            - ``.filterrangefrom``: The ``MEASUrement:MEAS<x>:FILTERRANGEFROM`` command.
            - ``.filterrangeto``: The ``MEASUrement:MEAS<x>:FILTERRANGETO`` command.
            - ``.filters``: The ``MEASUrement:MEAS<x>:FILTers`` command tree.
            - ``.forder``: The ``MEASUrement:MEAS<x>:FORDer`` command.
            - ``.fparameter``: The ``MEASUrement:MEAS<x>:FPARAmeter`` command.
            - ``.freq``: The ``MEASUrement:MEAS<x>:FREQ`` command.
            - ``.fromedgesearchdirect``: The ``MEASUrement:MEAS<x>:FROMEDGESEARCHDIRect`` command.
            - ``.fromsymbol``: The ``MEASUrement:MEAS<x>:FROMSymbol`` command tree.
            - ``.fromedge``: The ``MEASUrement:MEAS<x>:FROMedge`` command.
            - ``.ftype``: The ``MEASUrement:MEAS<x>:FTYPe`` command.
            - ``.fundcurrent``: The ``MEASUrement:MEAS<x>:FUNDCURRent`` command.
            - ``.gating``: The ``MEASUrement:MEAS<x>:GATing`` command.
            - ``.globalref``: The ``MEASUrement:MEAS<x>:GLOBalref`` command.
            - ``.harmonicsclass``: The ``MEASUrement:MEAS<x>:HARMONICSCLass`` command.
            - ``.harmonicssource``: The ``MEASUrement:MEAS<x>:HARMONICSSOURce`` command.
            - ``.harmonicsstd``: The ``MEASUrement:MEAS<x>:HARMONICSStd`` command.
            - ``.harmonicsunits``: The ``MEASUrement:MEAS<x>:HARMONICSUNits`` command.
            - ``.highlevel``: The ``MEASUrement:MEAS<x>:HIGHLEVel`` command tree.
            - ``.highrefvoltage``: The ``MEASUrement:MEAS<x>:HIGHREFVoltage`` command.
            - ``.hlevel``: The ``MEASUrement:MEAS<x>:HLEVel`` command tree.
            - ``.htorque``: The ``MEASUrement:MEAS<x>:HTORque`` command.
            - ``.hvoltage``: The ``MEASUrement:MEAS<x>:HVOLtage`` command.
            - ``.idletime``: The ``MEASUrement:MEAS<x>:IDLETime`` command.
            - ``.inputlevel``: The ``MEASUrement:MEAS<x>:INPUTLEVel`` command.
            - ``.inputpower``: The ``MEASUrement:MEAS<x>:INPUTPOwer`` command.
            - ``.jittersummary``: The ``MEASUrement:MEAS<x>:JITTERSummary`` command tree.
            - ``.label``: The ``MEASUrement:MEAS<x>:LABel`` command.
            - ``.lineselected``: The ``MEASUrement:MEAS<x>:LINESelected`` command.
            - ``.lowrefvoltage``: The ``MEASUrement:MEAS<x>:LOWREFVoltage`` command.
            - ``.ltorque``: The ``MEASUrement:MEAS<x>:LTORque`` command.
            - ``.ltype``: The ``MEASUrement:MEAS<x>:LTYPe`` command.
            - ``.lunits``: The ``MEASUrement:MEAS<x>:LUNITs`` command.
            - ``.lvoltage``: The ``MEASUrement:MEAS<x>:LVOLtage`` command.
            - ``.matime``: The ``MEASUrement:MEAS<x>:MATime`` command.
            - ``.maxcurrent``: The ``MEASUrement:MEAS<x>:MAXCUrrent`` command.
            - ``.maxcycle``: The ``MEASUrement:MEAS<x>:MAXCycle`` command.
            - ``.maxg1voltage``: The ``MEASUrement:MEAS<x>:MAXG1Voltage`` command.
            - ``.maxg2voltage``: The ``MEASUrement:MEAS<x>:MAXG2Voltage`` command.
            - ``.maxgvoltage``: The ``MEASUrement:MEAS<x>:MAXGVoltage`` command.
            - ``.maxvoltage``: The ``MEASUrement:MEAS<x>:MAXVoltage`` command.
            - ``.measrange``: The ``MEASUrement:MEAS<x>:MEASRange`` command tree.
            - ``.mech``: The ``MEASUrement:MEAS<x>:MECH`` command tree.
            - ``.mincycle``: The ``MEASUrement:MEAS<x>:MINCycle`` command.
            - ``.nvalue``: The ``MEASUrement:MEAS<x>:NVALUe`` command.
            - ``.obwmethod``: The ``MEASUrement:MEAS<x>:OBWMethod`` command.
            - ``.oddeven``: The ``MEASUrement:MEAS<x>:ODDEVen`` command.
            - ``.ofilters``: The ``MEASUrement:MEAS<x>:OFILters`` command tree.
            - ``.osangle``: The ``MEASUrement:MEAS<x>:OSANgle`` command.
            - ``.outedgequalifier``: The ``MEASUrement:MEAS<x>:OUTEDGEQUALifier`` command.
            - ``.outfilters``: The ``MEASUrement:MEAS<x>:OUTFILTers`` command tree.
            - ``.outputvoltage``: The ``MEASUrement:MEAS<x>:OUTPUT<x>VOLTage`` command.
            - ``.passfailenabled``: The ``MEASUrement:MEAS<x>:PASSFAILENabled`` command.
            - ``.passfailhighlimit``: The ``MEASUrement:MEAS<x>:PASSFAILHIGHlimit`` command.
            - ``.passfaillimit``: The ``MEASUrement:MEAS<x>:PASSFAILLIMit`` command.
            - ``.passfaillowlimit``: The ``MEASUrement:MEAS<x>:PASSFAILLOWlimit`` command.
            - ``.passfailmargin``: The ``MEASUrement:MEAS<x>:PASSFAILMARgin`` command.
            - ``.passfailwhen``: The ``MEASUrement:MEAS<x>:PASSFAILWHEN`` command.
            - ``.patterndetection``: The ``MEASUrement:MEAS<x>:PATTERNDETECTION`` command.
            - ``.patternlength``: The ``MEASUrement:MEAS<x>:PATTERNLENgth`` command.
            - ``.patterntype``: The ``MEASUrement:MEAS<x>:PATTERNTYPe`` command.
            - ``.pcount``: The ``MEASUrement:MEAS<x>:PCOUNt`` command.
            - ``.perfreq``: The ``MEASUrement:MEAS<x>:PERFREQ`` command tree.
            - ``.pfrequency``: The ``MEASUrement:MEAS<x>:PFREquency`` command.
            - ``.polarity``: The ``MEASUrement:MEAS<x>:POLarity`` command.
            - ``.population``: The ``MEASUrement:MEAS<x>:POPUlation`` command tree.
            - ``.popower``: The ``MEASUrement:MEAS<x>:POPower`` command.
            - ``.powerfactor``: The ``MEASUrement:MEAS<x>:POWERFACtor`` command.
            - ``.pregion``: The ``MEASUrement:MEAS<x>:PREGion`` command.
            - ``.presistance``: The ``MEASUrement:MEAS<x>:PRESistance`` command.
            - ``.pthreshold``: The ``MEASUrement:MEAS<x>:PTHReshold`` command.
            - ``.pwidth``: The ``MEASUrement:MEAS<x>:PWIDth`` command.
            - ``.redge``: The ``MEASUrement:MEAS<x>:REDGe`` command.
            - ``.reflevels``: The ``MEASUrement:MEAS<x>:REFLevels`` command tree.
            - ``.reflevels1``: The ``MEASUrement:MEAS<x>:REFLevels1`` command tree.
            - ``.refmode``: The ``MEASUrement:MEAS<x>:REFMode`` command.
            - ``.refvoltageval``: The ``MEASUrement:MEAS<x>:REFVOLTAGE<x>Val`` command.
            - ``.refvoltage``: The ``MEASUrement:MEAS<x>:REFVoltage`` command.
            - ``.results``: The ``MEASUrement:MEAS<x>:RESUlts`` command tree.
            - ``.rfrequency``: The ``MEASUrement:MEAS<x>:RFREquency`` command.
            - ``.ripplefreqval``: The ``MEASUrement:MEAS<x>:RIPPLEFREQ<x>Val`` command.
            - ``.rrange``: The ``MEASUrement:MEAS<x>:RRANGE`` command.
            - ``.sequence``: The ``MEASUrement:MEAS<x>:SEQuence`` command.
            - ``.signalfrequency``: The ``MEASUrement:MEAS<x>:SIGNALFREQUEncy`` command.
            - ``.signaltype``: The ``MEASUrement:MEAS<x>:SIGNALType`` command.
            - ``.slabs``: The ``MEASUrement:MEAS<x>:SLABs`` command.
            - ``.slpct``: The ``MEASUrement:MEAS<x>:SLPCt`` command.
            - ``.sltype``: The ``MEASUrement:MEAS<x>:SLTYpe`` command.
            - ``.smoothingfilter``: The ``MEASUrement:MEAS<x>:SMOOTHINGFILTER`` command.
            - ``.source``: The ``MEASUrement:MEAS<x>:SOURCE`` command.
            - ``.source1``: The ``MEASUrement:MEAS<x>:SOUrce1`` command.
            - ``.spanval``: The ``MEASUrement:MEAS<x>:SPAN<x>Val`` command.
            - ``.srate``: The ``MEASUrement:MEAS<x>:SRATe`` command.
            - ``.srho``: The ``MEASUrement:MEAS<x>:SRHo`` command.
            - ``.ssc``: The ``MEASUrement:MEAS<x>:SSC`` command tree.
            - ``.ssdirection``: The ``MEASUrement:MEAS<x>:SSDirection`` command.
            - ``.status``: The ``MEASUrement:MEAS<x>:STATUS`` command.
            - ``.stlabs``: The ``MEASUrement:MEAS<x>:STLABs`` command.
            - ``.stlpct``: The ``MEASUrement:MEAS<x>:STLPct`` command.
            - ``.stltype``: The ``MEASUrement:MEAS<x>:STLTYpe`` command.
            - ``.stsdirection``: The ``MEASUrement:MEAS<x>:STSDirection`` command.
            - ``.stype``: The ``MEASUrement:MEAS<x>:STYPe`` command.
            - ``.subgroup``: The ``MEASUrement:MEAS<x>:SUBGROUP`` command tree.
            - ``.sunits``: The ``MEASUrement:MEAS<x>:SUNits`` command.
            - ``.tckavg``: The ``MEASUrement:MEAS<x>:TCKAVG`` command.
            - ``.tconstant``: The ``MEASUrement:MEAS<x>:TCONstant`` command.
            - ``.tdrpreset``: The ``MEASUrement:MEAS<x>:TDRPreset`` command.
            - ``.timingmode``: The ``MEASUrement:MEAS<x>:TIMINGMode`` command.
            - ``.tlevel``: The ``MEASUrement:MEAS<x>:TLEVel`` command.
            - ``.tmethod``: The ``MEASUrement:MEAS<x>:TMEThod`` command.
            - ``.toedgesearchdirect``: The ``MEASUrement:MEAS<x>:TOEDGESEARCHDIRect`` command.
            - ``.toedge``: The ``MEASUrement:MEAS<x>:TOEdge`` command.
            - ``.tosymbol``: The ``MEASUrement:MEAS<x>:TOSYmbol`` command tree.
            - ``.transition``: The ``MEASUrement:MEAS<x>:TRANSition`` command.
            - ``.type``: The ``MEASUrement:MEAS<x>:TYPe`` command.
            - ``.vlevel``: The ``MEASUrement:MEAS<x>:VLEVel`` command.
            - ``.waittime``: The ``MEASUrement:MEAS<x>:WAITTime`` command.
            - ``.wbg``: The ``MEASUrement:MEAS<x>:WBG`` command tree.
            - ``.width``: The ``MEASUrement:MEAS<x>:WIDTh`` command.
            - ``.windowlength``: The ``MEASUrement:MEAS<x>:WINDOWLENgth`` command.
            - ``.xunit``: The ``MEASUrement:MEAS<x>:XUNIT`` command.
            - ``.yunit``: The ``MEASUrement:MEAS<x>:YUNIT`` command.
        """
        return self._meas

    @property
    def measrange(self) -> MeasurementMeasrange:
        """Return the ``MEASUrement:MEASRange`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MEASRange?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MEASRange?`` query and
              raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.max``: The ``MEASUrement:MEASRange:MAX`` command.
            - ``.min``: The ``MEASUrement:MEASRange:MIN`` command.
            - ``.state``: The ``MEASUrement:MEASRange:STATE`` command.
        """
        return self._measrange

    @property
    def mech(self) -> MeasurementMech:
        """Return the ``MEASUrement:MECH`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MECH?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MECH?`` query and
              raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.eindexz``: The ``MEASUrement:MECH:EINDexz`` command.
            - ``.gratio``: The ``MEASUrement:MECH:GRATio`` command.
            - ``.munits``: The ``MEASUrement:MECH:MUNits`` command.
            - ``.ppairs``: The ``MEASUrement:MECH:PPAirs`` command.
            - ``.pprotation``: The ``MEASUrement:MECH:PPRotation`` command.
            - ``.source1``: The ``MEASUrement:MECH:SOUrce1`` command.
            - ``.stype``: The ``MEASUrement:MECH:STYPe`` command.
        """
        return self._mech

    @property
    def minui(self) -> MeasurementMinui:
        """Return the ``MEASUrement:MINUI`` command.

        Description:
            - This command sets or queries the minimum number of unit intervals required for BUJ
              analysis.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:MINUI?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:MINUI?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``MEASUrement:MINUI value`` command.

        SCPI Syntax:
            ```
            - MEASUrement:MINUI <NR3>
            - MEASUrement:MINUI?
            ```

        Info:
            - ``<NR3>`` is the minimum number of unit intervals required for BUJ analysis.
        """
        return self._minui

    @property
    def population(self) -> MeasurementPopulation:
        """Return the ``MEASUrement:POPUlation`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:POPUlation?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:POPUlation?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.limit``: The ``MEASUrement:POPUlation:LIMIT`` command tree.
        """
        return self._population

    @property
    def ref(self) -> Dict[int, MeasurementRefItem]:
        """Return the ``MEASUrement:REF<x>`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:REF<x>?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:REF<x>?`` query and
              raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.reflevels``: The ``MEASUrement:REF<x>:REFLevels`` command tree.
        """
        return self._ref

    @property
    def reflevels(self) -> MeasurementReflevels:
        """Return the ``MEASUrement:REFLevels`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:REFLevels?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:REFLevels?`` query and
              raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.absolute``: The ``MEASUrement:REFLevels:ABSolute`` command tree.
            - ``.basetop``: The ``MEASUrement:REFLevels:BASETop`` command.
            - ``.jittermode``: The ``MEASUrement:REFLevels:JITTERMODE`` command.
            - ``.method``: The ``MEASUrement:REFLevels:METHod`` command.
            - ``.mode``: The ``MEASUrement:REFLevels:MODE`` command.
            - ``.percent``: The ``MEASUrement:REFLevels:PERCent`` command tree.
            - ``.type``: The ``MEASUrement:REFLevels:TYPE`` command.
        """
        return self._reflevels

    @property
    def results(self) -> MeasurementResults:
        """Return the ``MEASUrement:RESUlts`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:RESUlts?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:RESUlts?`` query and
              raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.history``: The ``MEASUrement:RESUlts:HISTory`` command tree.
        """
        return self._results

    @property
    def statistics(self) -> MeasurementStatistics:
        """Return the ``MEASUrement:STATIstics`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:STATIstics?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:STATIstics?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.cyclemode``: The ``MEASUrement:STATIstics:CYCLEMode`` command.
        """
        return self._statistics

    @property
    def wbg(self) -> MeasurementWbg:
        """Return the ``MEASUrement:WBG`` command tree.

        Usage:
            - Using the ``.query()`` method will send the ``MEASUrement:WBG?`` query.
            - Using the ``.verify(value)`` method will send the ``MEASUrement:WBG?`` query and raise
              an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.pdevice``: The ``MEASUrement:WBG:PDEVice`` command.
        """
        return self._wbg
